Dies ist eine Anleitung zum Bau eines Temperatur-/Druck-Sensors mit dem ESP8266-Microcontroller.
1 Microcontroller NodeMCU, ESP8266
1 Temperatur- & Drucksensor BMP280
1 OLED-Display (128 x 64 Pixel) SSD1306 (white + IIC)
1 Batterie-Gehäuse mit MicroUSB-Stecker oder MicroUSB-Ladegerät
12 Verbindungskabel (6 male-male, 6 female-male)
Totale Kosten: 10-15 $
Bei der Verkabelung muss darauf geachtet werden, dass gleich markierte Pins miteinander verbunden werden:
- VCC/3V3 --> VCC/3V3
- GND --> GND
- SCL --> SCL
- SDA --> SDA
Zudem gehören folgende Pins zu den jeweiligen Bezeichnungen:
- Pin 2 [D2] = SDA
- Pin 3 [D2] = SCL
- CSB = VCC/3V3
- SD0 = GND
- Lade die nötigen Dateien an deinem Computer herunter. Entweder von github oder von diesem Link. Die heruntergeladene Zip-Datei muss nun entpackt/extrahiert werden. Nun sollte ein extrahierter Ordner "Sensor" auf dem Computer vorhanden sein.
- Verbinde deinen Computer mit dem WLAN des ESP8266. Der WLAN-Name lautet "Sensor_xx", wobei
xxder grünen Zahl auf dem ESP8266-Microcontroller entspricht. Das Passwort ist:iotsensxx. Hier istxxebenfalls die grüne Nummer auf dem Chip. - Öffne die Datei
webrepl.htmlaus dem OrdnerWebREPL(WebREPLbefindet sich im OrdnerSensor). - Falls du dich nicht mit dem WLAN des ESP8266 verbinden kannst, überprüfe die Verkabelung oder betätige den on/off-Schalter am Batteriengehäuse. Beim Einschalten sollte die blaue LED auf dem Microcontroller kurz aufleuchten.
- Bist du mit dem WLAN des ESP8266 verbunden, klicke im geöffneten Browser (WebREPL.html) auf den Button
Connect. Nun wirst du aufgefordert ein Passwort einzugeben. Dieses lautet:iot1. - Sende nun die Dateien
ssd1306.pyundbme280.pyan den Microcontroller. Dazu klickst du auf den ButtonDurchsuchenund wählst zuerst die Dateissd1306.pyaus. Nun auf den ButtonSend to deviceklicken. Wiederhole den Vorgang für die Dateibme280.py. - Nun kannst du den ESP8266-Chip mit MicroPython programmieren.
Im Browser kannst du im schwarzen Feld (mit den >>>) Befehle eingeben, die dann vom Microcontroller ausgeführt werden.
Klicke ins schwarze Feld und gebe die folgenden Befehle ein. Hast du eine Befehlszeile eingegeben, musst du zum Ausführen des Befehls die Enter-Taste drücken.
1+112**343/4
>>> import machine
>>> pin = machine.Pin(2, machine.Pin.OUT)
>>> pin.on()
>>> pin.off()
>>> import machine
>>> import ssd1306
>>> i2c = machine.I2C(scl = machine.Pin(4), sda = machine.Pin(5))
>>> oled = ssd1306.SSD1306_I2C(128, 64, i2c)
>>> oled.fill(0)
>>> oled.text('Hallo', 0, 0)
>>> oled.show()
>>> import machine
>>> import ssd1306
>>> import bme280
>>> i2c = machine.I2C(scl = machine.Pin(4), sda = machine.Pin(5))
>>> oled = ssd1306.SSD1306_I2C(128, 64, i2c)
>>> bme = bme280.BME280(i2c = i2c)
>>> bme.values
>>> oled.fill(0)
>>> oled.text(bme.values[0], 0, 0)
>>> oled.show()
(Eckige Klammern können aus einem Dokument/Google-Suche kopiert (mit CTRL-C) und mit Drücken von CTRL-A gefolgt von CTRL-V im WebREPL eingefügt werden.)
- Öffne auf dem Computer die Datei
main.pyaus dem OrdnerSensormit dem Texteditor oder Notepad++ (Rechtsklick auf die Datei --> "Öffnen mit..."). - Im Texteditor/Notepad++ kannst du nun die
main.py-Datei bearbeiten. Beispielsweise kannst du überallFelixmit deinem Namen ersetzen (oder auch den TitelESP8266 Temperatur-/Drucksensorändern). - Speichere das geänderte
main.pyab ("Datei speichern"). - Wechsle wieder in den Browser zum WebREPL und verbinde dich mit dem Sensor. Klicke dazu auf
Connectund gib das Passwortiot1ein. (Vergewissere dich, dass dein Computer mit dem WLAN des ESP8266 verbunden ist.) - Sende die Datei
main.pyan den ESP8266 (mit dem ButtonDurchsuchen-->main.pyauswählen --> ButtonSend to device). - Die Datei
main.pywird beim Neustart des ESP8266 ausgeführt. Zum Neustarten klickst du auf den kleinen KnopfRSTauf dem Microcontroller oder betätige den on/off-Schalter am Batteriengehäuse. - Der IoT-Sensor ist fertig! Mit dem Smartphone kannst du dich jetzt mit dem WLAN des ESP8266 verbinden und im Browser unter der Adresse
192.168.4.1die aktuellen Temperatur- und Druckwerte ablesen.
