Hello, Guest the thread was 4k called and contains 33 replays

last post from Richi at the

Teensy 3.5 - Co2-Raumluftwächter

  • Hallo,


    die erste Version des neuen Teensy 3.5 Raumluftwächters ist fertig .


    So sieht es aus :




    Ich habe auch noch ein kleines Video dazu gemacht, so sieht man in mal in Aktion :



    @Matthias war so nett und hat uns den ersten Sketch programmiert .


    Arduino_Workspace_RaumluftWaechter_TEENSY_3_5.zip


    Das Oled Display wird als SPI Display angesteuert, man braucht also nicht mehr umjumpern , die werden meist als SPI ausgeliefert .


    Um das Display ordentlich anzusteuern, muss im SouceCode noch das SPI Display aktiviert werden und die folgende Zeile eingefügt werden :

    Code
    //U8G2_SSD1309_128X64_NONAME2_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 26, /* reset=*/ 25);
    U8G2_SSD1309_128X64_NONAME0_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 27, /* data=*/ 28, /* cs=*/ 10, /* dc=*/ 26, /* reset=*/ 25);  


    hier noch mal der gesamte Quellcode , so wie ich ihn momentan geflasht habe :



    Es ist eine "Soundkarte" On Board :D Die spielt eine "alert.wav" , die auf der Micro-SD Karte ist ab, wenn der eingestellte Warnlevel erreicht ist .

    Die Wave Datei sollte 44100Hz und 16Bit Stereo haben


    Es wird die RTC Uhr im Teensy genutzt und über eine 1225 LiIon Zelle gehalten .


    Es gibt 3 Tasten mit denen man ein paar Dinge einstellen kann . Habe ich im Video ein wenig erklärt .

    Es sind aber nicht alle Funktionen umgesetzt .


    man kann noch keine Offsets im Menu einstellen und die Uhrzeit nicht .

    ( Die Uhrzeit stellt sich beim flashen , dazu nehme ich immer die Batterie raus und lösche praktisch die RTC Zeit . Dann wird beim Flashen die aktuelle PC Zeit mit übertragen um im RTC gespeichert )


    der Helligkeitssensor 1750 ist integriert aber wird (noch) nicht zum Dimmen oder aufhellen benutzt . Das müssen wir uns noch hin- bzw. einbauen .


    Auf jedenfalls ist das auch wieder ein schönes Stück Hardware . Werr Interesse an Platinen hat , kann sich bei mir melden, ich werden mal, von einer neuen Version, ein paar herstellen lassen, Matthias hat noch etwas am Layout geändert .


    Gruß Martin


    Aktuelle Version vom 10.02.2022 Arduino_Workspace_RaumluftWaechter_TEENSY_3_5.zip

    Eine ADMIN schläft nicht er ROOT

  • Nabend,


    hier mal ein kleines Update .

    @Matthias war doch noch mal ne Woche lang fleißig und hat weiter an der Teensy 3.5 Co2 Software gebastelt .


    Bei der ersten Version gab es, wie auch bei der ArduinoNano Version, eine einfrieren des Displays bzw. Absturz oder einfrieren der Software .


    Matthias hat es aber herausbekommen, die Freezes hatten nur etwas mit dem SCD30 Sensor zu tun.

    Was da im Detail programmiert wurde kann ich nicht sagen , anstelle eines


    //yield();


    ist jetzt ein


    delay(25);


    im Sourcecode . Das wird aber nicht alles gewesen sein, war erst mal ein erster Versuch .


    Letztendlich läuft der Co2 Monitor bei mir jetzt auch schon ca. 24h ohne Fehler und Abstürze , also alles gut .


    Ausserdem funktionieren jetzt auch alle Menüpunkte , man kann also auch die Uhr stellen .

    Es wird ein neuer, bzw. zusätzlicher Lichtsensor der TLS2561 integriert .

    Der Night/Daymodus funktioniert entweder nach Zeit ( 9-21 Uhr ist Tag ) oder wenn ein Lichtsensor installiert ist nach der Lichtintensität . Das ist fest im Sketch auf 8 Lux eingestellt .

    Vielleicht kann man das ja auch noch ins Menu basteln, ich wollte mich da mal ausprobieren ;) Dauert aber noch etwas ..


    Ausserdem hat Matthias noch eine Optionen für die Ansteuerung des OLED's eingebaut .


    Man kann das OLED wie bei der Arduino Nano Version als I2C ansteuern oder auch als SPI und beim SPI gibt es eine Software und eine Hardware Variante .


    Ob sich da ein Unterschied bemerkbar macht weiss ich nicht , ich steuer das aktuell als SPI Software an .

    Wenn das Display unter I2C angesteuert wird soll es hin und wieder mal zu Problemen kommen .

    Ausserdem braucht man bei der SPI Variante nichts am OLED herumlöten , die sind schon als SPI voreingestellt, jedenfalls die die ich gekauft habe .


    Im Source ist auch der MH-Z19 enthalten, und ein 1750 Helligkeitssensor .

    Den MH-Z19 habe ich noch nicht hier, kann den also auch noch nicht ausprobieren ob er funktioniert .

    Den 1750 habe ich mit der neuen Version noch nicht getestet , kommt aber noch .


    So , erst mal genug geschrieben, hier noch der aktuelle SourceCode, den werde ich auch später noch mal in der ersten Nachricht einfügen .


    Arduino_Workspace_RaumluftWaechter_TEENSY_3_5.zip

    Eine ADMIN schläft nicht er ROOT

  • ich finds eeeecht irre, wie viel Zeit Matthias dann doch für den Source-Code aufgewendet hat - eigentlich wollte er es ja "nur" funktionabel bringen...


    und jetzt gibts ein richtiges Menü - ich bin MEGA gespannt auf morgen

    Boulderdash64 : ich will das Teil bei dir richtig durchprobieren!

  • ich finds eeeecht irre, wie viel Zeit Matthias dann doch für den Source-Code aufgewendet hat - eigentlich wollte er es ja "nur" funktionabel bringen...


    und jetzt gibts ein richtiges Menü - ich bin MEGA gespannt auf morgen

    Boulderdash64 : ich will das Teil bei dir richtig durchprobieren!

    Ja, das hat mich auch richtig gefreut . Und,man hat nen schönen Sourcecode wo man drin und dran rumbasteln kann .


    Das macht echt Spaß

    Eine ADMIN schläft nicht er ROOT

  • Mach das, ich hab das Päckchen noch nicht angerührt - ist ja nicht meins, daher wollte ich da auch nicht einfach so was öffnen!!

    :thumbup: Atari 800XL / Atari 1040 STF(M) / VIC20 / C64 / C128(D) / C16 / C+4 / Amiga 500(+) / Amiga 2000 / Amiga 1200 / Amiga 4000 / CD32 / PSone / PS2 / PS3 / PS4 / N64 / GameCube / Wii / WiiU / Switch - hab ich! :thumbup:

  • aber selbstverständlich darfst du den öffnen ...mir fällt nur grad ein: der nutzt dir eigentlich rein GAR nichts ...der hat ja inzwischen

    - keinen Sensor

    - kein Display

    - keine Frontplatte

    mehr :whistling:


    ..das wird schwierig :D

  • Es geht weiter ...


    Was mir noch fehlte an der Firmware , war die Möglichkeit Offset Werte der Sensoren zu ändern ..

    Also hatte ich das ins Menu mit eingebaut, habe es dann aber nicht hinbekommen negative Werte wie z.B. -100 für den SCD30 zu speichern :/ , Beim Auslesen hat er immer Fehler gemacht . Nach stundenlangen herumprobieren habe ich Matthias danach gefragt . Seine Tips hatte ich schon umgesetzt, leider ohne Erfolg, aber dann über Nacht hat Matthias nochmal an der Firmware herumprogrammiert und gleich ein paar neue Optionen eingebaut :thumbup: :thumbup: :


    Der Fehler beim abspeichern im EEPROM und wieder einlesen hing mit den unterschiedlichen Variablenbereichen zusammen . Durch herumprobieren hat Matthias herausbekommen das wir int_16_t nehmen müssen, weil int "unsigned" ist und deshalb keine negativen Werte zulässt . Das wird wahrscheinlich ein Fehler in der Arduino IDE sein oder soll der allgemeinen Verwirrung der Arduino IDE Nutzer dienen :facepaw


    Folgendes hat Matthias noch eingebaut :


    - Brightness @ Light lässt sich bis 0 bzw. aus regeln

    - ist das Display ausgeschaltet ( Nachtmodus) dann kann man die Anzeige erscheinen lassen wenn man einen der beiden Knöpfe drückt .

    - für den Lichtsensor kann man einen Offset einstellen

    - man kann im Menü die Schwelle ab welchem Lux Wert der NachtModus aktiv wird einstellen .


    folgende Einstellmöglichkeiten gibt es im Menu :


    1. UPDATE INTERVALL -- Interval wie oft sie Sensorwerte gelesen werden
    2. DISLPAY CONTRAST -- OLED Display Kontrast / Helligkeit
    3. LIGHT THRESHOLD -- Helligkeitssensor Schwelle für den Nachtmodus in Lux
    4. LIGHT SENS OFFSET -- Offset Wert für den Lichtsensor
    5. BRIGHTNESS @ DAY -- Helligkeit der LED's für den Tag Modus
    6. BRIGHTNESS @ NIGHT -- Helligkeit der LED's für den Nachtmodu
    7. DISLPAY @ NIGHT - OLED Anzeige im Nachtmodus Ja/Nein
    8. SOUND @ DAY -- Alarmsound im Tag Modus Ja/Nein
    9. SOUND @ NIGHT -- Alarmsound im Nacht Modus Ja/Nein
    10. AIR VERY GOOD VALUE -- sehr guter Co2 / Luftqualitäts Wert
    11. AIR VERY BAD VALUE -- sehr schlechter Co2 / Luftqualitäts Wert
    12. AIR ALARM VALUE -- Co2/Luftqualität Schwelle ab wann ein Alarm ausgelöst wird
    13. AIR SENS OFFSET -- Co2 Sensor Offset Wert
    14. DAY START HOUR -- Stunde wann der Tag Modus beginnt
    15. DAY END HOUR -- Stunde wann der tag Modus beendet ist
    16. CLOCK - RTC Uhrzeit nachstellen
    17. EXIT - Menu verlassen , alle Werte werden im EEprom gespeichert.

    hier die Firmware von Matthias Arduino_Workspace_RaumluftWaechter_TEENSY_3_5.zip

    @Matthias - Besten Dank :danke2 für diese toll DatenBasis .


    So, weiter gehts ... ich habe noch weiter daran herumgebastelt und das Menü noch ein wenig erweitert . Jetzt kann man auch noch die Offset Werte für die Temperatur und die Luftfeuchtigkeit einstellen .


    Ausserdem kann man den Updateintervall als Minimum auf 5 Sekunden einstellen . War vorher auf ein min. von 30 Sekunden begrenzt

    Die Helligkeit der LED im Nachtmodus kann man in 1 er Schritten bis auf 0 herabsetzen , so hat man feinere Abstimmöglichkeiten .


    Im Nachtmodus wird jetzt der Aktuallisierungsbalken und die Trennlinie ausgeblendet damit man Nachts das Display anlassen kann und es nicht so hell scheint .


    ich hoffe ich habe jetzt alles beschrieben und hoffe das ich Euch nicht gelangweilt habe . Sonst im SourceCode nachschauen, ich habe alle Änderungen die ich gemacht habe mit // Mad: ... kommentiert .


    ich bin ja nicht der Programmierfreak, aber Dank des gut aufgeräumten SourceCodes von @Matthias konnte sogar ich die Änderungen implementieren .


    Hier noch mal das komplette Menu für meine geänderte Version :

    1. UPDATE INTERVALL -- Interval wie oft sie Sensorwerte gelesen werden
    2. DISLPAY CONTRAST -- OLED Display Kontrast / Helligkeit
    3. LIGHT THRESHOLD -- Helligkeitssensor Schwelle für den Nachtmodus in Lux
    4. LIGHT SENS OFFSET -- Offset Wert für den Lichtsensor
    5. BRIGHTNESS @ DAY -- Helligkeit der LED's für den Tag Modus
    6. BRIGHTNESS @ NIGHT -- Helligkeit der LED's für den Nachtmodu
    7. DISLPAY @ NIGHT - OLED Anzeige im Nachtmodus Ja/Nein
    8. SOUND @ DAY -- Alarmsound im Tag Modus Ja/Nein
    9. SOUND @ NIGHT -- Alarmsound im Nacht Modus Ja/Nein
    10. AIR VERY GOOD VALUE -- sehr guter Co2 / Luftqualitäts Wert
    11. AIR VERY BAD VALUE -- sehr schlechter Co2 / Luftqualitäts Wert
    12. AIR ALARM VALUE -- Co2/Luftqualität Schwelle ab wann ein Alarm ausgelöst wird
    13. AIR SENS OFFSET -- Co2 Sensor Offset Wert
    14. TEMP SENS OFFSET -- Temperatur Offset Wert
    15. HUM SENS OFFSET -- Luftfeuchtigkeit Offset Wert
    16. DAY START HOUR -- Stunde wann der Tag Modus beginnt
    17. DAY END HOUR -- Stunde wann der tag Modus beendet ist
    18. CLOCK - RTC Uhrzeit nachstellen
    19. EXIT - Menu verlassen , alle Werte werden im EEprom gespeichert.

    und hier der Sourcecode meiner geänderten Version Raumluftwaechter_Teensy_3_5_Mad_1Mhz_de.zip


    Ich hänge die Firmware nachher auch noch mal in den Startbeitrag dieses Threats .

    Eine ADMIN schläft nicht er ROOT

  • ..ich muss erstmal wieder rein kommen - es gibt ja inzwischen sooo viele Neuerungen, da blick ich überhaupt nicht mehr durch


    eine Bitte, die ich auch schon Matthias vorgetragen hab:

    können wir bitte einen Versionszähler einführen - ich speicher deine eigene erstellte Software jetzt mal unter _mad_V1.ino ab

    ..weil sonst blick ich irgendwann gar nicht mehr durch :trink_041:


    und Matthias arbeitet bereits an einer uEmbedded-Wächter-Version:

    :whistling:

  • Das mit den Versionen ist ne gute Idee. Ja es wird langsam mehr .

    Die uEnbedded Version sieht auch gut aus :thumbup:


    Ich habe ja auch noch den MH-Z19 bestellt und wollte den mal in dem Board testen und dann bin ich gerade dabei einen BME280 mit einzubauen . Der kann Luftdruck, LuftFeuchtigkeit und Temperatur . Die ideale Ergänzung zum MH-Z19 .

    Der Sensor am Teensy mit einem Beispiel Code läuft schon , der Rest dauert noch ein wenig , ich tue mich da etwas schwer ;(


    Aber es wird …

    Eine ADMIN schläft nicht er ROOT

  • da ich nicht diesen sündhaft teuren Regler einsetzen wollte, hab ich einen einfachen 7805 benutzt:


    bei 7,5V oder 9V Eingang vom Netzteil wird er nichtmal lauwarm

    und das ohne Kühlkörper - geschätzt: 40°C

    und funktioniert super :thumbup:

  • da ich nicht diesen sündhaft teuren Regler einsetzen wollte, hab ich einen einfachen 7805 benutzt:

    so gehts auch :thumbup:

    Eine ADMIN schläft nicht er ROOT

  • Und noch ein kleines Update .


    Ich habe einen BME-280 Sensor mit ein gebaut .

    Das ist ein Bosch Sensor.



    Der Senor kann Luftdruck, Temperatur und Luftfeuchtigkeit . Das wird mal interessant wenn man den MH-Z19 Co2 Sensor benutzt bei dem die Temperatur nicht ordentlich angezeigt werden kann und der auch keine Luftfeuchtigkeit anzeigen kann .


    Momentan benutzt ich vom BME-280 aber nur den Luftdruck, habe dazu das Display etwas umgebaut , werde ich aber bestimmt noch weiter dran rumbsateln .




    und hier die Firmware dazu .


    Raumluftwaechter_Teensy_3_5_Mad_1Mhz_de_2022_02_16.zip


    um eine bessere Übersicht über die verschiedenen Versionen der Firmware zu bekommen , habe ich eine Filebase eingerichtet und mal die verschiedenen Versionen von mir und Matthias hochgeladen . Die Filebase wird später freigeschaltet, gebe ich dann nochmal gesondert bekannt .

    Eine ADMIN schläft nicht er ROOT

  • Was KÖNNTE man noch alles brauchen?

    CO2, CO, O2, O3!!

    Luftdruck, Luftfeuchtigkeit, Lufttemperatur von direkt vor Ort - 1-?? externe Sensoren per Funk

    Helligkeit,

    Lautstärke der Umgebung,

    Sonnenintensität (wenn man es mal mit raus zum Sonnen nimmt)


    mehr fällt mir gerade nicht ein - einiges nur Spielerei sicherlich, anderes durchaus von Interesse, wie CO oder O3...

    :thumbup: Atari 800XL / Atari 1040 STF(M) / VIC20 / C64 / C128(D) / C16 / C+4 / Amiga 500(+) / Amiga 2000 / Amiga 1200 / Amiga 4000 / CD32 / PSone / PS2 / PS3 / PS4 / N64 / GameCube / Wii / WiiU / Switch - hab ich! :thumbup:

  • Eyyy, die Woche ist noch nicht um und ausserdem - siehe Whatsapp - ich kann ja aktuell GAAAAR NIX damit machen :( :( :(

    Und keine Sorge... Knetis kommen - weißt Du doch :D

    :thumbup: Atari 800XL / Atari 1040 STF(M) / VIC20 / C64 / C128(D) / C16 / C+4 / Amiga 500(+) / Amiga 2000 / Amiga 1200 / Amiga 4000 / CD32 / PSone / PS2 / PS3 / PS4 / N64 / GameCube / Wii / WiiU / Switch - hab ich! :thumbup:

  • Und heute mal ein bisschen an der Hardware gebastelt ..


    und wieder gibt es Bilder :D


    von vorn , unverändert … außer das alle Schrauben drin sind ^^



    von hinten , jetzt mit einem USB TP4056 Lithium AkkuLader versehen und mit der 3,7V 2500Ah Zelle direkt die 5V der Platine versorgt. Der Plolu 5V Regler ist ausgebaut .


    So kann man den Co2 Wächter direkt mit nem MicroUSB Kabel z.B am Pc oder einfachen Netzteilen betreiben .



    und hier noch ein Blick von oben mit TSL2561 Helligkeitssensor



    und von der Seite, der LadeAnschluss und Ein/Aus Schalter .




    so kann man den Raumluftwächter wunderbar autark benutzen und überall mit hinnehmen :thumbup:

    Eine ADMIN schläft nicht er ROOT

  • Hallo,


    Ich habe noch mal ein bisschen herumgebastelt und das Display Layout geändert .


    Das ist der TagModus



    und das der NachtModus



    da habe ich mich jetzt 3 Tage mit herumgequält … bzw. beschäftigt … Ist schon kompliziert für Anfänger aber die u8g2 Library ist schon genial, kann man ne Menge mit machen .


    Macht aber auch Spaß das ganze :thumbup:


    Den Source gibt es später , der muss erst mal aufgeräumt werden etc.. da dauert noch nen paar Tage .


    Und im Teensy sind immer. och 80% Platz :D

    Da kriegen wir noch viel rein :/


    Gruß Martin

    Eine ADMIN schläft nicht er ROOT

  • WOW - genial! ... den würd ich gern mal ausprobieren :sonst_131:

    ich warte ja noch auf die neuen Sensoren und Displays, dann bau ich auch mal nen Teensy mit SPI-Display auf ...mein extra auf I2C umgebautes jetzt wieder "rückbauen" fände ich etwas ..unkomod :sonst_011:


    edit: jetzt seh ichs erst: ...2 Nachkommastellen bei der Temp? ... :happy_182: ...als OB!

    da bin ich gespannt, wie du DAS justieren willst :happy_043:

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!