Die Zisterne lernt MQTT

Die Zisterne lernt MQTT

Mit der Version 1.017 bekommt der NodeMCU mit dem Sensor für die Füllstandsmessung der Zisterne (siehe auch die beiden anderen Artikel hier und hier) das MQTT-Protokoll beigebracht. Was MQTT ist, erfahrt ihr ausführlich hier in der Wikipedia oder hier mit weiterführenden Erklärungen wie das ganze z.B. in FHEM genutzt werden kann. Im Heise-Artikel wird MQTT auch sehr anschaulich erklärt.

Benötigt wird ein MQTT-Server (z.B. Mosquitto) dessen IP in die Konfiguration eingetragen werden muss. Optional kann ein Benutzername und ein Passwort genutzt werden. Dann noch das Topic unter dem der Sensor seinen Wert (Füllstand in %) an den MQTT-Broker veröffentlichen soll. Unter “Intervall” dann noch die Zeit in Sekunden zwischen den Veröffentlichungen angeben.

http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin

Gruß Chris

Füllstandsmessung der Zisterne mittels ESP8266 (NodeMCU) und Ultraschallsensor

Heute nochmal ein Update bzw. eine vollständige Zusammenfassung zur Messung des Füllstands der Zisterne mittels Ultraschall. Ich habe den Sketch für den ESP8266 (den ich immer noch in Form eines NodeMCU betreibe) mal etwas aufgebohrt.

Zu den alten Artikeln geht es hier und hier.

Im folgenden werden alle notwendigen Schritte beschrieben um die Firmware auf den ESP8266 zu flashen und den Sensor in Betrieb zu nehmen.

Benötigte Hardware

Die benötigte Hardware besteht aus einem NodeMCU mit ESP8266 und einem HC-SR04 Ultraschallsensor. Die Beschaltung folgt weiter unten.

NodeMCU
HC-SR04 Ultraschallsensor

Dann noch ein mindestens vieradriges Kabel und ein Gehäuse zur Unterbringung des Ultraschallsensors in der Zisterne z.B. eine kleine Aufputzdose aus dem Baumarkt.

Mehr lesen
Feinstaub messen – NodeMCU und SDS011

Feinstaub messen – NodeMCU und SDS011

Ein Artikel aus der Make: IoT Special 1/2017 erregte mein Interesse. Es ging um die Feinstaubmessung mittels Raspberry Pi und einem entsprechenden Sensor. Der dort genutzte Sensor ist ein Nova PM SDS011 den man für ~23 € in China bekommt. Recht teuer im Vergleich zu den sonstigen Artikel aus China. Der Sensor saugt mit der Hilfe eines Lüfters Luft in eine Kammer welche dann mittels Laser “beschossen” wird. Durch die Streuung des zurückgeworfenen Laserlichtes werden die Luftpartikel (Größe und Menge) gemessen.

Der Sensor kann zwei Partikelgrößen parallel messen:
– PM10, inhalierbarer Feinstaub mit 10µm Durchmesser
– PM2,5, lungengängiger (alveolengängiger) Feinstaub mit im Mittel 2,5 µm Durchmesser

Mehr zu diesem Thema gibt’s im Wikipedia-Artikel.

Also, Sensor bestellt und drei Wochen später ohne Zollprobleme frei Haus geliefert bekommen.

Der Sensor kommt mit USB-Adapter für den einfachen Anschluss am Odroid (oder auch am Raspberry Pi wie im Artikel beschrieben). Im Make-Artikel wird ein Shellscript vorgestellt, mit dem die Sensordaten gelesen und verarbeitet werden. Ich habe am Ende des Scriptes nur noch eine Zeile zum Speichern der Daten in meine MySQL-Datenbank eingefügt. D.h. nach 10 Minuten Bastelei lief schon alles…das war fast zu einfach. Das Script wurde dann alle 10 Minuten per Cron aufgerufen um die gemessenen Daten in meine MySQL-Tabelle zu schreiben. Der Lüfter des Sensors läuft bei dieser Lösung durchgehend (dazu unten mehr).

Mehr lesen

Jack O’Lantern mit LED-Augen

Halloween steht vor der Tür! Eine schöne Idee zum Thema Halloween hatte ich letztes Jahr schon auf HACKADAY gesehen. Es war ein Jack O’Lantern mit LED-Augen. Letztes Jahr ist meine Bestellung für die LED-Augen allerdings zu spät angekommen um noch einen Halloween-Kürbis vor die Tür zu stellen. Aber dieses Jahr paßt es.

Die ursprüngliche Idee ist von Michal. Er nutzt allerdings einen Kürbis aus Keramik. Ich hab den Arduino in einen echten Kürbis verfrachtet. In dem Kürbis gibt es nichts, was Isopropanol an der Elektronik nicht wieder sauber bekommt.

jack1

Also Kürbis schnell ausgehöhlt, Mund, Nase und Augen reingeschnitten und an der Innenseite der Augen etwas Platz für die beiden “MAX7219 LED 8×8” geschnitzt. Diese habe ich mit Zahnstochern von innen fixiert. Der Arduino liegt frei verkabelt im Kürbis.

jack2

So schaut es dann aus: ein freundlich schauender Halloween-Kürbis!

 

Gruß

Chris

Arduino als AVR ISP zum Brennen des Bootloader

Arduino als AVR ISP zum Brennen des Bootloader

Erstmal noch ein frohes neues Jahr 2016! Es ist lange nichts mehr passiert hier in diesem Blog. Gründe, oder besser Ausreden dafür fallen mir genug ein. Ein Grund ist der Selbstbau einer Garage im letzten Sommer bzw. Herbst. Das hat mich einiges an Zeit und Nerven gekostet. Jetzt steht aber alles und das Auto im trockenen und somit ist wieder Zeit für andere Dinge. Daher heute etwas zum Thema Arduino und des darin benötigte Bootloader und wie man einen Arduino als AVR ISP zum Brennen des Bootloader nutzt. (ISP: In-System-Programmer).

An einem der letzten Wochenenden habe ich mit zwei Bekannten ein Wortuhr-Bau-Wochenende gemacht. Dabei sind an zwei Tagen 3 Wortuhren entstanden. Nach dem Bestücken der Platinen, dem Erstellen der LED-Matrix und der Verkabelung sollte der Sketch auf den Mikrocontroller geladen werden.

Bei dem Versuch wehrte sich die Arduino IDE allerdings den Sketch auf den Mikrocontroller zu spielen. Grund dafür war ein fehlender Bootloader. Da hatte ich bei der Bestellung der Platinen und der Bauteile wohl das entsprechende Häkchen für einen bereits vorprogrammierten Atmel vergessen.

Warum ein Bootloader?

Der Bootloader auf dem Atmel AVR wird benötigt um den Arduino mittels serieller Schnittstelle einfach mit Programmen (Sketch) z.B. mit der Arduino IDE programmieren zu können. Hierbei übernimmt der Bootloader zwei Dinge:

  1. Der Bootloader versucht beim Start festzustellen, ob ein neuer Sketch vom PC auf den Mikrocontroller geladen werden soll. Ist das der Fall, wird das Programm vom PC auf den Mikrocontroller geladen. Daher wird der Mikrocontroller beim Versuch neuen Code hoch zu laden, vorher immer durch die Arduino IDE resetet.
  2. Wenn nicht mittels PC versucht wird ein Sketch auf den Mikrocontroller zu laden, wird der der bereits installierte Code ausgeführt.

Eine Möglichkeit um den Bootloader auf den Atmel zu laden, ist einen anderen Arduino als Programmer zu nutzen. Da ich noch einen Arduino Nano hier rumliegen hatte, musste der dafür herhalten.

Einen Arduino Nano als AVR ISP (In-System Programmer)

Folgende Schritte sind zu befolgen um den Bootloader auf einen Atmel AVR zu spielen:

1. ArduinoISP-Sketch auf Arduino laden

In der Arduino IDE das Beispiel “ArduinoISP” öffnen. Eine aktuelle Version ist auch auf GitHub zu finden.

isp1

Den Arduino Nano mittels USB an den Rechner anschliessen und ggf. unter “Werkzeuge->Port” den entsprechenden Port einstellen. Den geladenen Sketch anschließend mit der “Pfeiltaste” auf den Arduino Nano laden.

Mehr lesen