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 :

    Spoiler anzeigen

    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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • Hier noch mal der Link zu Youtube

    Eine ADMIN schläft nicht er ROOT

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • 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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • 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 bin signifikant genug :!:

  • 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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • 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 / PS5 / 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

    ich bin signifikant genug :!:

  • 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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • ..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:

    ich bin signifikant genug :!:

  • 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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • 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:

    ich bin signifikant genug :!:

  • 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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • 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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • 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 / PS5 / 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 / PS5 / 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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • 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

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • 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:

    ich bin signifikant genug :!:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!