Bei der Softwareentwicklung gibt es grundlegende Dinge zu beachten. Ist ein Sensor/Aktor erst einmal verbaut, ist es schwierig, bei Softwareaktualisierungen den ESP8266 zu erreichen. Deshalb sollte die Software entwickelt und ausgetestet werden, bevor man den Sensor/Aktor damit bestückt.

Die Konfiguration sollte aber nicht per Programm erfolgen, weil man dann bei jeder Änderung der Parameter die Software neu hochladen muß. Hier bietet sich an, dass der Sensor seine Parameter per HTTP-GET bei einem zentralen Server abruft und in seinem internen EEPROM-Speicher ablegt. Bei jedem Boot des Sensor/Aktor und mindestens 1mal am Tag frägt er nach, ob sich seine Parameter geändert haben. Wenn ja, werden sie gespeichert, wenn nein, einfach aus dem EEPROM übernommen.

Eine Programmierung per OTA (Over the Air), also per Funk funktioniert noch nicht, ist aber bei einigen Entwicklern in Arbeit.

Die Ergebnisse der Sensoren/Aktoren können an eine zentrale Stelle übertragen werden:

  • per HTTP an einen OpenHAB-Server
  • per HTTP auf einen eigenen Server
  • per API an cosm.com oder andere IoT-Dienste in der Cloud

 

Womit entwickeln?

Es gibt mehrere Möglichkeiten die Software für den ESP8266 zu entwickeln:

  1. Eingebaute AT-Kommandos der ESP8266-Firmware
  2. LUA-Skript, einer eigenen Interpretersprache für den ESP8266
  3. Arduino-Entwicklungsumgebung mit ESP8266-Board-Modul

Ich bin eher ein fauler Typ, der nicht mit neuen Sprachen herumspielen will und habe mich deshalb für die dritte Methode entschieden. Das funktioniert fantastisch, wer den Arduino programmieren kann, der kann auch sofort den EPS8266 programmieren!

Bei Methode 3 sind lediglich neue Libraries, z.B. für OneWire oder den DHT22 zu laden.