Ohne das sie es groß bekannt gemacht haben, haben die netten Leute vom Umweltcampus Birkenfeld gleich ein paar neue Blöcke für die Octopus Platine bereitgestellt.
Recht unspektakulär aber nützlich, sind die beiden C code Blöcke. Mit diesen kann man freien, eigenen C Code einfügen, bereits im Ardublockly und nicht erst in der Arduino IDE. Die finden sich bei Kontrollstrukturen.
Viel spektakulärer ist der CO2-Server Block. Er stellt auf dem Octopus einen kleinen Server zur Verfügung, der eine kleine Ampel darstellt. Diese kann mit jedem Gerät, das sich in ein WLAN einwählen kann und Webseiten darstellen, ausgelesen werden.
Ich habe sie mit dem AcessPoint Block kombiniert. Nun spannt der Octopus sein eigenes WLAN auf und man kann auf der Adresse http://192.168.4.1 auf die Website zugreifen. Die Werte die er unter Value empfängt, etwa aus dem SCD30 Block werden zum einen als Wert dargestellt, zum anderen lassen sich auch „Limits“ Schwellen eintragen, ab denen das Smiley gelb und rot wird. Die Adresse wird beim hochfahren im Seriellmonitor angezeigt. Zugriff auf diesen im Ardublock Übersicht Button „Seriellmonitor“
Bei Sensor 1 und Value 1 lassen sich dann einfach weitere Sensoren hinzufügen. Das praktische ist, das sich so ohne eine zusätzliche Anzeige, mit einem Mobilgerät die Werte auslesen lassen. Wodurch man nochmal den Preis senken kann (nicht jede Platine hat ja Neopixel dran).
Man kann die Daten für den WLAN Acesspoint etwa in einen QR Code eingeben, dann können es die Anwesenden gleich abscannen. Und ggf. einen zweiten QR Code mit dem Link.
SSID: MeinOctiWLAN mit Passwort: MeinOctiWLAN zum scannen
While building your own Co2 Sensor and Warning Lights
More an more Germany are more and more concerned with Lüften. Lüften means to open the Windows of the room you are in and then venilate it properly. It’s done best, by opening two windows on walls opposing each other, thus letting air blow through.
Because Germans are masters in „Lüften“ and because many people wanted to know, how to build these little warning lights, in order to know when they should open the Windows and let fresh air in, I wrote a lot of articles on my blog. But these were all in German. So Miska Knapek translatedone article into English and I did some editing.
As aerosol is difficult to measure, but it roughly correlates with CO2 concentration in the air of an enclosed space, clever people like Guido Burger and the Umweltcampus Birkenfeld have devised a way to easily measure CO2 concentrations.
Fortunately, Sensirion makes a CO2 sensor and Guido Burger has ready to tinker microcontroller, the Octopus Board, which can interface and control the CO2 sensor. It is possible to use a Node MCU as well.
The microcontroller can be programmed using the ArduBlocks visual Arduino programming language. Of course you can still do text based programming, if you want it. See the ArduBlocks equivalent code towards the bottom of this article.
With ArduBlocks, using visual ‘programming blocks’, one can do the essential bits of a programming language – loops, conditional statements (if/then), and send/receive signals from various sensors, or send and receive data via MQTT, Thingsspeak or Blynk. (Sorry the Articles are in German, but you may use Google Translate)
The Campus Birkenfeld of Technische Hochschule Trier has more material about this CO2 measuring device, including relevant considerations, background, as well assembled a bit of a building instruction (but it’s all in German). While I enjoy tinkering, in the end I was mostly interested in having a working measuring device. Thus I’ve assembled a quick assembly guide here, below.
CO2 sensor SCD30 – these are available with different interfaces. Eg. With a Grove connector – although often sold out – as well as without. In the case of the CO2 sensors without a grove connector, one needs to solder or otherwise connect it to the microcontroller. Slightly cumbersome but manageable. Ca. 45 EUR
Grove cabel – connecting straight to the Octopus Platine, one can use this to attach sensors, displays and other electronics with Grove interfaces. Ca. 3 EUR
LCD panel – To display the data from the CO2 sensor. There are several variants, also with Grove connectors. From 6 EUR.from Mouser.
Apower source– Likely you already have one – a USB charger. Just make sure you have a Micro-USB cable. Powerbanks are an alternative, especially if you want to carry the device around.
A case – There are many ideas around. From Ikea picture frames, to Bird houses.
A Data ready USB cable– You probably have one at home, but may have to try several USB cables before you find one that can transmit data as well as power. Very often Electronics come with a cheap cable that can only carry power.
Ein weitere Möglichkeit, neben Thingsspeak, Daten zu verschicken und visuell sichtbar zu machen, ist Blynk. Wir brauchen dazu immer die Blynk App für das Smartphone (iOs, Android), dort müßen wir uns anmelden, mit einer E-Mail Adresse.
Danke für den Blogbeitrag. Für mich ist die Anzeige der CO2-Ampel mit Blynk die beste Lösung. Habe mit drei Blynk-LEDs dort eine echte Ampel nachempfunden. . pic.twitter.com/fUhSAeF7uq
Wir gehen in der App auf „new project“, by „choose device“ wählen wir „esp8266“. Wenn wir dann auf „create project“ drücken, bekommen wir den „Auth Token“ per E-Mail zugeschickt. Das ist ganz praktisch, denn so können wir ihn einfach per copy and paste in die Ardublocks Umgebung überführen.
In den Setup Bereich habe ich die WLAN Daten (Name und Passwort) eingetragen und den Auth token von Blynk (den unter API-Key). Beides sollte man im „Setup“ platzieren und nicht in der Schleife, weil der Octopus diese einmal laden sollte und dann ja im WLAN bleibt.
Über den „Pin“ im Blynk Block können wir unterschiedliche Werte in die App übermitteln. Wir setzen als Pin = 1 für den ersten Wert, etwa IAQ und dann Pin = 2, für den nächsten.
Noch ein Hinweis für diesen Sketch. Anstelle jedes mal den Sensorwert neu messen zu lassen, setze ich den Messwert als „Zahl Variable“ und verwende pro Durchgang (Schleife) immer diesen Wert. Dann muss der Sensor nicht immer neu messen und es geht auch schneller, bzw. es würde auch immer der Wert der angezeigt wird, auch seriell ausgegeben und weitergemeldet.
Der Vorteil ist man spart sich Display und kann die Daten dennoch live sehen, so ein WLAN kann ja auch unterwegs das iPhone aufmachen.
„Zahl Variable“ ist übrigens eine coole Sache. Damit kann man einmal eine Variable definieren und an zentraler Stelle ändern. Dazu sollte sie immer weit oben stehen (und als erstes gesetzt werden), das kann man auch etwa bei Wartezeit nutzten, anstelle eine feste Wartezeit einzugeben, die etwa ein Wert angezeigt werden soll, einfach eine „Zahl-Variable“ Wartezeit definieren und dann bei Bedarf zentral ändern.