AttNo.de – weiteres Addon als CO2-Sensor mit einem MH-Z19

Attno.de als CO2-Sensor

Den AttNode gibt es ja nun inzwischen in der Version 3 – mit einem Attiny3216-Chip von Atmel. Dieser Weiterentwicklung verdanken wir nun die Möglichkeit, auch Sensoren mit UART-Anschluss anbinden zu können. Der MH-Z19c, ein CO2-Sensor der Firma Winsen aus China, ist ein Vertreter dieser Kategorie. Er misst die CO2-Konzentration der Umgebungsluft im Bereich von 400 – 5000 ppm. So weit zur Theorie, wie sieht das Ganze nun aus?

Ziel war es, einen kleinen, speziell auf die Aufgabe der CO2-Messung zugeschnittenen Sensor mit Datenübertragung via LoRaWAN® der Messewerte und lokaler Darstellung des gemessenen CO2-Niveaus zu entwickeln.

Was kann er nun wirklich?

Basierend auf dem Layout (Position PIN-Header und Größe der PCB) entstand eine Addon-PCB. Folgende Funktionen stehen damit zur Verfügung:

  • Betrieb des Sensors mit einer Betriebsspanung von 5V
  • Integration von 2 Neopixel-LED’s zur lokalen Visualisierung am Sensor
  • PIN-Header zur Aufnahme des MH-Z19c
  • Anschluss eines Buttons zum Starten einer AdHoc-Messung bzw. beim längeren Betätigen des Tasters (>7s) die Kalibrierung des Sensors

Für die Erweiterung der Toleranz der Betriebsspannung wurde mit dem MCP1703 ein LDO integriert, dieser arbeitet eigentlich im Bereich von 3-15V. Er liefert eine konstante Betriebsspannung von 3,3V nur für den AttNo.de. Da jedoch der MH-Z19sowie die Neopixel 5V benötigen, muss der Node aktuell mit 5V (USB-Anschluss) betrieben werden.

Hier eine Toleranz des Sensors für den kompletten Node mit allen Komponenten herzustellen, ist eine der Folgeaufgaben im Projekt.

Für den Betrieb des Nodes mit dem AddOn ist kein Powerpack erforderlich.

Alle Informationen, die Gerberfiles sowie die *.stl-Files des Gehäuses zu diesem Addon sind im Github, alle Infos zum AttNo.de, die Software sowie Infos zum Payloaddecoder auf der Website des Projektes attnod.de zu finden.

Wie geht es weiter?

Es gibt im GitHub bereits einige Issues die wir angehen wollen – ergo wird es weitere Versionen zu diesem Node geben.

Gleichzeitig wird an verschiedensten Stellen an weiteren Anwendungsfällen für den AttNo.de gebastelt, lasst Euch überraschen!

ATTiny84 – Chip programmieren bevor er auf der PCB festgelötet wird

Das Ansinnen klingt eigentlich etwas sonderbar, hat man den Chip auf der Platine, steht einem in der Regel ein Prog-Header zur Verfügung, mit dem man seinen Quellcode problemlos auf den Chip bekommt. Dachte ich mir auch so.

Leider machte ich mit Chips vom netten Chinesen eine andere Erfahrung – einmal auf der Leiterplatte liesen sich etwa die Hälfte der gelieferten Chips nicht programmieren. 🙁

Was nun – einfach wieder runter löten, den Nächsten drauf und dann hoffen das der richtig geht? Auch hier gab es bei einigen Nodes mehr als nur eine Zusatzrunde – also musste etwas anderes her. Nun sind die Chips der Bauform SOIC-14 nicht wirklich dazu geeignet, die 6 Kontakte mit Hand anzupinnen und dann mit nicht vorhandenen 3. Hand das Schreiben auf den Chip zu starten.

  1. Versuch – eine Programmierklammer (Deutsche Quelle, Ali)

Einmal die richtigen Kontakte mit Dupontwires angebunden und auf der Seite des Programmieradapters die Kabel in einen 6fach-Adapter gepackt konnte es los gehen.

Die IC’s auf die antistatische Arbeitsplatte gelegt und dann einfach die Klammer von oben (richtig herum!!!) darauf gesetzt- durch die Rillen an den Kontakten funktionierte das schon mal richtig gut.

Kann man so machen, nur die Nummer mit den Dupont-Wire ist eine mächtige Frickelei – das muss doch noch besser gehen!

Also, Variante 2 – Ein Programmierkopf, gefunden bei Ali

Erst mal den Programmierkopf auf ein Breadboard gepackt, mit Dupon-Wires verkabelt und den Diamex-Adapter angesteckt. Nun braucht man nur noch mit der Pinzette den IC richtig rum einlegen und schon kann der Chip programmiert werden.

Ich glaube, ich werde mir den Programmierkopf auf eine Lochrasterplatte löten, die noch einen passenden Header für den Adapter hat und habe damit eine fast perfekte Lösung.

Einlegen des IC’s in den Programmierkopf
und ab gehts, der Sketch wird auf den IC geschrieben

Das Entnehmen des Chips und das Einlegen des Nächsten erspare ich Euch hier, ich glaube das kann sich jeder gut selbst vorstellen. Die Ausschussquote der neuen IC-Lieferung, diesmal von Reichelt lag übrigens bei genau 0% – rechnet man bei dem günstigeren Preis vom Ali die defekten IC’s mit ein – beide Lieferanten nehmen sich preislich nichts. Aber, wenn alle IC’ssofort gehen wird das Basteln wesentlich entspannter!

Ich teste auf Grund der Erfahrungen die Chips jetzt sofort bei Einlagerung – so erspart man sich böse Überraschungen. Und sowohl die Klammer als auch den Programmierkopf habe ich mit auch gleich passend für den ATTiny3216 mit bestellt – der kommt ja demnächst mit dem attno.de in der Version V3.

IoT für “Pfeifen”

Ein Beitrag von Andreas K. auf TheThingsNetwork.org

Das Spielen einer Orgel ist eine Wissenschaft für sich, gleichwohl auch alles was dazu gehört.
Wußtet Ihr, dass eine Temperaturänderung von 10 Grad eine Frequenzänderung von 7Hz bei Labialpfeifen ausmacht ? Oder dass Ihre Wohlfühltemperatur zwischen 14 und 16 Grad liegt ?

Wir bisher auch nicht ¯(ツ)/¯.

Aber man lernt ja immer wieder dazu, so auch gerade beim Anwendungsfall “Klimamessung von Orgeln”.
Ein Freund und Organist der Moritzorgel in Halle erzählte mir von seiner “Klimamessung” via 3G Router und Netatmo, hinter dicken Mauern wahrlich keine Freude.
So kam doch schnell die Idee auf, das kann man mit den kleinen TinyLora Modulen locker abbilden.
Ein Blick auf die Karte zeigte ein Gateway in der direkten Nachbarschaft, umso besser.

So zogen 5 kleine Nodes aus.

und verteilten sich

um fortan das Klima der Moritzorgel in Halle zu messen.

Visualsiert wird das ganze via InfluxDB und Grafana.

Der hat doch ne Beule!?

Es gibt was Neues zum TinyLoRa Node. Es wurden erste Exemplare mit Beule gesichtet.

Die Lösung des Rätsels findet sich bereits in Stefans Gitea. Dort gibt es jetzt neue Optionen.

define HAS_SHT21_BRIGHTNESS – configure a SHT21 Sensor + Brightness Measurement via LED
define HAS_BME280_BRIGHTNESS – configure a BME280 Sensor + Brightness Measurement via LED

Auszug aus der secconfig.h

Ah, richtig – die Beule ist durchsichtig und im Quelltext steht etwas von Brightness.

Der Sketch wurde so angepasst das über einen Eingang die Helligkeit gemessen werden kann. Die Zielstellung dabei war es nicht, die Helligkeit auf 2 Lux genau zu ermitteln sondern zu erkennen, ob ein Raum hell oder dunkel ist. Dies hat mit speziellen Anforderungen eines Anwendungsfalles zu tun für welchen wir die Erweiterung geplant und realisiert haben.
Um dem Low Poweransatz gerecht zu werden bekommt die LED nur für die Messungen Spannung.

Die LED ist in Sperrrichtung an 2 GPIOs angeschlossen. Die LED wird aufgeladen und gemessen, bis sie wieder entladen wird. Je dunkler die Umgebung der LED ist, desto länger dauert es, sie zu entladen.
Am besten geeignet sind klare LEDs mit einer niedrigen Vorwärtsspannung, z.B. rot oder gelb.

Dies bedeutet in dem folgenden Bild – ein Low-Level signalisiert einen hellen Raum

Damit sollte man dann in einer finalen Visualisierung entweder die Werte invertieren oder einfach nur anhand zweier Schwellwerte Hell und Dunkel ausgeben. Wichtig – diese Schwellwerte sollten individuell für den jeweiligen Einbauort definiert werden.

Zum Prinzip der Messung ein Auszug aus https://www.elektronik-labor.de/Elo/LEDsensor.html:

Für die Lichtmessung wird die LED zunächst kurz in Sperrrichtung auf 3 V geladen. Die LED-Sperrschicht ist zugleich ein kleiner Kondensator mit ca. 5-20 pF, der diese Spannung mehrere 100 Millisekunden halten kann. Ein als hochohmiger Eingang geschalteter Port liest also High-Zustände. Ganz anders sieht es aber aus, wenn die LED beleuchtet wird. Nun arbeitet sie gleichzeitig als Fotodiode. Der erhöhte Sperrstrom entlädt die Sperrschichtkapazität in wenigen Millisekunden, bei starker Beleuchtung sogar in weniger als einer Millisekunde. Damit setzt die LED die Beleuchtungsstärke in eine Messzeit um.

Damit erhält der Tiny eine weitere Funktion – und es geht weiter!
Vielen Dank an @twentysixer für die Erweiterung des Sketches um diese Funktion und die Ergänzung der Doku auf https://www.ttgw.de

Feinstaubsensor – Auswahl und Gehäuse

Schon seit vielen Monaten wabert das Thema Feinstaubfilter durch die Tweets und Einträge diverser Foreneinträge. Seit jetzt der Paxcountersketch von Cyberman54 den SDS011 unterstützt habe ich mich mal daran gemacht, meine luftdaten.info-Version mit WLAN einmal auf LoRa umzubauen.

Eine der ersten Reaktionen im Forum – Paxcounter und Feinstaubsensor – wie passt das zusammen?
Nun ja, der Paxcounter wurde in der letzten Zeit vom einfachen Sensor eher zum Schweitzer Taschenmesser umgebaut und wenn man die Parameter entsprechend setzt macht man aus diesem Node einen Klimasensor.

Doch dazu mehr. Hier soll es erst einmal um die Geräteauswahl und das Gehäuse gehen.

Die Geräteauswahl war in meinem Fall recht einfach. Im Standard unterstützt der Feinstaubsensor von luftdaten.info den Node.MCU in zwei unterschiedlichen Bauformen. Da ich gern ein dafür designtes Gehäuse nutzen wollte, musste das Board vergleichbare Maße haben. Ein Display war weniger relevant da dieses im Gehäuse eh nicht mehr sichtbar sein wird.

„Feinstaubsensor – Auswahl und Gehäuse“ weiterlesen

TinyLoRa Node

+ + + Update 24.05.2020 – Alternativer Programmieradapter und Erweiterung um die Messung der Helligkeit + + +

Der TinyLoRa Node steht aktuell in der Version Zwei unter https://ttgw.de zur Verfügung. Dort finden sich neben den Gerber-Files für die Platinen auch die stl-Files für verschiedene Gehäusevarianten zum selbst Drucken und eine BOM für die Teile.

Dabei ist es gar nicht so viel, was sich am Ende auf der Platine wieder findet. Die Arbeit macht ein AT Tiny 84-Chip und für die Kommunikation ist ein RFM95-Modul zuständig.

Dazu noch zwei Widerstände, zwei Kondensatoren, eine LED und eine Batteriehalterung für eine CR2032-Knopfzelle und eine Antenne – fertig ist die Hardware.

Die Platinen habe ich direkt beim Developer des Nodes bezogen, mit den Gerberfiles kann man diese jedoch auch bei den einschlägigen PCB-Herstellern bestellen.

Dem ganzen Kleinkram gibt es beim Elektronikversand oder dem freundlichen Chinesen – je nach Geschmack und Termindruck. Alle Teile sind im SMD-Format 1206.

„TinyLoRa Node“ weiterlesen

Der BBC micro:bit

Micro:bit

Nach dem wir mit dem Verein Nucleon e.V. im Sommer 2019 einen ersten Schnupperkurs für Kids von 9-11 Jahren durchgeführt haben möchten wir an dieser Stelle nun weitere Informationen, Beispiele und Links zum Thema micro:bit bereitstellen. Wir haben mit dem Kurs unsere ersten Erfahrungen sammeln können und sind davon überzeugt das wir dieses Thema weiter ausbauen müssen, der Bedarf ist vorhanden.

Was ist der BBC micro:bit überhaupt?

Der micro:bit ist ein kleiner kostengünstiger Computer der speziell für die Schulungen auch sehr junger Schüler gebaut worden ist.

Der micro:bit ist das Resultat einer Zusammenarbeit von Firmen und Communities rund um die Welt. Die Micro:bit Educational Foundation hält die Gemeinschaft zusammen so das dort viele Informationen zusammen laufen und auch die Links zu den online Plattformen direkt zu erreichen sind.

Übersicht BBC Micro:bit von https://microbit.org

Node-RED und die Meta Daten der Nodes

Wir haben nun schon die Nucleon Wetter Nodes in einem Node-RED Flow, so das diese ihre Wetter Daten in die InfluxDB senden. Jeder Node liefert aber auch noch eine Handvoll Meta Daten über den Standort und interessante Daten zur Übertragung. Diese Daten wollen wir natürlich auch aufbereiten und zur Anzeige bringen.

Übersicht des vollständigen Flows mit Meta Daten

Der oben gezeigte Node-RED Flow ist das Ziel dieses Beitrags. Wir werden auch hier jeden Node besprechen so das am Ende ein Nachbau in der eigenen Node-RED Instanz möglich wird.

„Node-RED und die Meta Daten der Nodes“ weiterlesen

Node-RED und der Wetter-Flow für den BaseNode

Wir haben im Artikel Node-RED zur Verarbeitung der TTN Daten unsere Node-RED Umgebung eingerichtet, jetzt werden wir die ersten Schritte gehen um aus dem The Things Network (TTN) die ersten Daten abzuholen.

Grundlegende Funktionsweise

Node-RED arbeitet mit grafischen Ablaufplänen den sogenannten Flows. In diesen Flows werden diverse Nodes eingesetzt die unterschiedliche Funktionen beinhalten. Im folgenden werde ich die verwendeten Nodes vorstellen.

Die verwendeten Nodes in Node-RED

Der Wetter Flow in der Übersicht
„Node-RED und der Wetter-Flow für den BaseNode“ weiterlesen

Node-RED zur Verarbeitung der TTN Daten

Die Node-RED Plattform eignet sich hervorragend um schnell Daten von A nach B zu bekommen und sie zwischen durch anzupassen, transformieren oder mit anderen Daten anzureichern, als sie auch auf unterschiedliche Datensenken zu verteilen.

Ein klassischer ETL Prozess mit grafischer Oberfläche.

Die Einrichtung der Datenbanken können wir an anderer Stelle mal genauer besprechen, hier soll es erst einmal um Node-RED gehen.

Installation

Node.js und npm

Um Node.JS auf dein System zu installieren gibt es viele Möglichkeiten, ich möchte an dieser Stelle die Installation unter Debian kurz erklären. Wer schon die aktuelle Version von Node.JS und npm laufen hat kann zur Installation von Node-RED weiter gehen.

Du musst Node.js PPA zu deinem System hinzufügen, welches auf der offiziellen Website von Nodejs bereitgestellt wird. Wir müssen auch das Software-Properties-Common-Paket installieren, falls es nicht bereits installiert ist. Du kannst entweder die aktuelle Version Node.js oder die LTS-Version installieren.

Eine gute Idee ist es auch für Node-RED einen eigenen User anzulegen, da einige Nodes nicht sauber installiert werden können wenn Node-RED unter root installiert wurde. Grade beim RaspberryPI sind Probleme bekannt wenn Node-RED unter dem User pi installiert ist.

„Node-RED zur Verarbeitung der TTN Daten“ weiterlesen