Für die Übertragung von Sensordaten und der Steuerung der Aktoren bietet sich MQTT an. Es ist ein sehr schnelles und Ressourcen schonendes Nachrichtenprotokoll.

Darum wird MQTT auch sehr gerne im DIY Bereich bei der Erstellung von ESP-basierten Systemen eingesetzt. Wie zum Beispiel der Smart Swimmingpool Controller gibt es viele weitere Beispiele von Sensoren und Aktoren, die via MQTT die Daten empfangen oder senden.

MQTT bietet jedoch nur das reine Protokoll. Es wird nicht vorgeschrieben, wie die Dten im Detail übertragen werden.

Homie

Hier kommt Homie zum Tragen. Homie definiert auf Basis von MQTT einen Standard für die Übertragung der Daten –…


Eigentlich nutze ich PlatformIO in Microsoft Visual Code zum Programmieren meiner ESPs. PlatformIO ist wesentlich komfortabler als die Arduino IDE.

PlatformIO: Exceptions dekodieren

Eines hat jedoch die Arduno IDE PlatformIO voraus: Es gibt einen Exception Decoder:

Leider lässt sich dieser wohl nicht so einfach in PlatformIO integrieren.

Wie kann man nun Exceptions dekodieren?

Ich habe dafür folgenden — okay nicht sehr eleganten — Workflow :

  • Arduino IDE mit installiertem ESP Exception Decoder starten
  • Jetzt direkt den Dekoder im Menü “Werkzeuge” auswählen
  • Es wird nun ein Dataiauswahl-Dialog angezeigt. Hier wählt man die *.elf-Datei aus dem PlatformIO-Projekt unter .pioenvs/aus.

Der Einstieg in die Programmierung ist nicht einfach, vor allem für Schüler, die noch nicht so gut Englisch können. Viele Tools und Tutorials werden natürlich in Englisch angeboten, da dies weltweit verstanden wird.

Will man jedoch Kinder und Jugendliche an die Programmierung heranführen, ist es sinnvoll sie nicht gleich mit Englisch und Programmiersprache zu konfrontieren.

Einstieg mit Microsoft MakeCode

Microsoft bietet mit MakeCode eine Entwicklungsumgebung an, die grafisch per Drag&Drop genutzt werden kann. So passen die Programmelemente auch nur in bestimmten Kombinationen — wie Puzzle-Teile — zusammen.

Microsoft MakeCode für den BBC micro:bit

Die Entwicklungsumgebung bietet zusammen mit dem BBC micro:bit einen super Einstieg in die Programmierung.

Übersetzung

Die Entwicklungsoberfläche und…


Die wasserdichten Temperatur-Sensoren DS18B20 sind im Bereich IoT sehr beliebt. Allerdings ist man sich nie sicher, ob der Sensor vielleicht defekt ist oder das Problem im eigenen Hardware/Software-Aufbau des Projektes liegt.

Wenn man im Bereich Smarthome seine eigenen Schaltungen zusammenbaut, wird man recht bald vom einfachen Temperatur-Sensor DHT11 bzw. DHT22 auf die wasserdichten DS18B20 umsteigen. Diese werden über OneWire adressiert. So können auch mehrere Sensoren an einem Daten-PIN hängen.

Dabei gibt es aber einige Fallstricke. …


Es bietet sich an openHAB als Home Automation Server auf einem Raspberry PI zu installieren.

Raspberry PI (Foto: Pixabay)

Ich habe openHAB seit über einem Jahr auf einem Raspberry Pi 2b erfolgreich am Laufen.

Will man nu vom Windows PC die Konfigurationen des Servers bearbeiten, ist es relativ lästig, diese immer via scp zu kopieren. Mittels Samba lassen sich Verzeichnisse relativ einfach als Netzlaufwerke einbinden.

Samba für openHAB einrichten

Da nicht jeder auf die Verzeichnisse von openHAB zugreifen soll, muss Samba installiert und ein wenig an der Samba Konfiguration für openHAB angepasst werden.

Samba Installation

sudo apt-get install samba samba-common-bin

Konfiguration

Die Konfiguration `/etc/samba/smb.conf` muss angepasst werden:

[global]
security = user


Bild-Quelle: https://pixabay.com/de/k%C3%BCnstliche-intelligenz-roboter-ai-2167835/

Um sich im Quellcode sicherer bewegen zu können und sich besser wieder zu finden, ist es sinnvoll den Code einheitlich zu formatieren. Ich denke, es gibt in jeder Spare entsprechende Werkzeuge, um diese Formatierung zu automatisieren und zu vereinheitlichen.

Ich programmiere meine ESPs mit C++ und nutze aus diesem Grund clang-format. Für meine Entwicklungsumgebung Visual Code bietet dazu die C/C++-Erweiterung automatisch Unterstützung. Wenn man die PlatformIO IDE als Erweiterung nutzt wird die C/C++-Erweiterung ebenfalls benötigt. Somit hat man dann automatisch die Unterstützung von clang-format.

Konfiguration

Nun muss man nur noch das eigene Projekt konfigurieren, indem man eine Datei .clang-format


ABSTRACT

In the following blog post I will describe step by step how to control a swimming pool with self-built IoT modules. The cost of the required electronic components are less than 100 euros.

Smart Pool Controller
  • Introduction: Smart swimming pool with the problem and the requirements, necessary hardware as well as the target of the series
  • Pool Controller: The controller, which measures temperatures and periodically sent via MQTT and can switch over MQTT sockets (433MHz), set up MQTT server on Raspberry
  • openHAB: Connection of the controller, display of the measured data, control of the sockets
  • The Smart Pool: the smart control by openHAB…


Viele Projekte entstehen ja zunächst auf einem Breadboard, einem Steckboard mit Verbindungen durch Steckdrähten.

Will man nun aus dem Prototypen etwas dauerhaftes machen, kann man individuelle Platinen layouten und ätzen oder aber man verwendet vorgefertigte Lochraster-Platinen, welche das selbe Layout haben, wie die Breadboards:

Das hat den Vorteil, dass man beim Übertragen kaum umdenken muss :)

Ein Beispiel dafür auf ebay:


Bild: Pixabay

Der ESP32 hat einen Temperatur-Sensor mit auf dem Controller.

Diesen Sensor kann man über eine noch nicht offizielle API (Stand: September 2018) auslesen:

Stephan Strittmatter

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store