Den Rest der Schaltung benötigen wir, um den ESP8266 zu programmieren. Wenn man die etwas teureren Komponenten mit Pfostenleisten verbaut, lassen sie sich später auch in anderen Projekten wiederverwenden. Den kompletten Aufbau zeigt Abbildung 4.
Abbildung 4: Der Sensor (Bildmitte) auf einer Punktrasterplatine. Die LED links dient zur Funktionskontrolle.
Arduino IDE
Um das Programm für den Luftdrucksensor zu erstellen, brauchen wir eine IDE, die es erlaubt, Programme in den ESP8266 zu laden. Dafür eignet sich die Arduino IDE bestens. Sie steht auf der Homepage des Projekts zum Herunterladen bereit [3]. Wählen Sie dort die für das verwendete Betriebssystem passende Version aus und installieren Sie diese. Um die IDE zu starten, wechseln Sie in das Installationsverzeichnis und geben auf der Kommandozeile ./arduino ein.
Danach passen Sie die Entwicklungsumgebung für den ESP8266-Mikrocontroller an. Dazu tragen Sie als Erstes unter Datei | Voreinstellungen | Zusätzliche Boardverwalter-URLs die URL http://arduino.esp8266.com/stable/package_esp8266com_index.json ein. Damit veranlassen Sie die Arduino IDE, die für den ESP8266 nötigen Informationen in die Liste der Boardmanager aufzunehmen.
Danach starten wir die Installation des Boardmanagers für den ESP8266 über den Menüpunkt Werkzeuge | Board | Boardverwalter, in dem Sie nach ESP8266 suchen. Nach erfolgreicher Installation steht jetzt das Generic ESP8266 Modul unter Werkzeuge | Board zum Einsatz bereit.
Um Ihre selbst geschriebenen Programme in den ESP8266 hochzuladen, schließen Sie ihn mit einem USB-nach-seriell-Adapter an eine freie USB-Buchse des Rechners an.
Erstes kleines Testprogramm
Das Testprogramm aus Listing 1 dient dazu, prinzipiell festzustellen, ob sich Programme in den ESP8266 laden lassen. Es bringt lediglich die an GPIO14 angeschlossene LED zum Blinken.
Um das Programm hochzuladen und zu starten, versetzen Sie den ESP8266 in den Flash-Modus. Schließen Sie dazu JP1 und JP2 und betätigen Sie den Reset-Taster. Danach drücken Sie in der IDE den Button zum Hochladen oben links – er trägt als Icon einen nach rechts weisenden Pfeil.
Um das kleine Programm zu starten, öffnen Sie nun JP1 sowie JP2 und drücken den Reset-Knopf auf der Platine. Klappt das Hochladen nicht auf Anhieb, kommen dafür mehrere Ursachen infrage. Überprüfen Sie zuerst die Hardware: Stimmt der Aufbau, passen alle Lötstellen? Steht in der Auswahl der richtige Boardmanager (Generic ESP8266 Modul)? Steht die Übertragungsgeschwindigkeit auf 115200? Oft verursacht auch ein falsch eingestellter Port den Fehler (Abbildung 5).

Abbildung 5: Hier sehen Sie die korrekten Kommunikationseinstellungen der Arduino IDE, um ein Programm in das ESP8266-Modul hochzuladen.
Listing 1
void setup() {
pinMode(14, OUTPUT);
}
void loop() {
digitalWrite(14, HIGH);
delay(1000);
digitalWrite(14, LOW);
delay(1000);
}
Um den BMP180 auszulesen, verwenden wir eine Bibliothek. Um sie in die Arduino IDE einzubinden, klicken Sie auf Sketch | Bibliothek einbinden | Bibliothek verwalten; danach suchen Sie nach BMP180. Der genaue Name der Bibliothek lautet Adafruit BMP085 Library. Nach Anwahl der Bibliothek klicken Sie auf den Installieren-Button.
Mit der Bibliothek wird ein Beispielprogramm installiert, das auch dazu dient, den Sensor zu testen. Sie finden es unter Datei | Beispiele | Adafruit BMP085 Library | BMP085test. Es gibt die Messwerte des Sensors auf der seriellen Konsole aus. Mehr Informationen darüber erhalten Sie auf der Github-Seite von Adafruit [4].
Programm für den Sensor
Der Sensor zeigt uns die Höhe über dem Meeresspiegel an. Das Messergebnis stellen wir mithilfe eines kleinen Webservers auf einer HTML-Seite dar. Dabei gibt es allerdings eine kleine Schwierigkeit: Die WLAN-Verbindung zum ESP8266 funktioniert in Brunnenrohren mit 10 Zentimeter Durchmesser nicht, schon nach zwei Metern bricht der Empfang ab.
Daher ist das Programm so geschrieben, dass es den kleinsten Messwert bis zu einem Reset speichert. Da sich unsere Platine in einem schwimmfähigen Behälter befindet, bildet dieser Wert ziemlich genau die Höhe des Wasserspiegels im Brunnen ab. Sobald Sie den Sensor wieder an die Oberfläche holen, lässt sich der Wert über das WLAN des Sensors auslesen. Um zu sehen, wie tief der Sensor bereits im Brunnen steckt, lassen Sie die LED blinken.





