Nebenschauplatz:
Temperatur- und Luftfeuchtigkeitsmessung
Vielleicht
ist ja jemanden aufgefallen, dass ich im Kabelkanal-Plan zwei Kanäle
für „Sensoren“ aufgeführt hatte, aber von diesen Sensoren
bisher nichts berichtet habe:
Da
sich mein Kino im Keller befindet und die Wände aufgrund Baujahr
„50er Jahre“ nicht hundertprozentig trocken sind, möchte ich
gerne eine Feuchtigkeitsüberwachung hinter dem Ständerwerk haben:
sollte es dort wider Erwarten doch zu feucht werden, wäre ich
zumindest vorgewarnt und könnte reagieren (wie auch immer das dann
aussehen würde).
Anstelle
teure fertige Lösungen zu kaufen, wollte ich lieber eine
Eigenbau-Lösung via Rasperry, zumal ich vielleicht später auch die
Leinwand-Maskierung mit ähnlicher Technik steuern möchte. Daher ist
dies auch ein kleines Testprojekt. Zumal ich mich eh immer mal gerne mit so einem Mikrokontroller beschäftigen wollte.
Nach
etwas Recherche bin ich allerdings vom Raspi abgekommen, da er für
diese Aufgabe verhältnismäßig viel Strom verbraucht. Statt dessen
bin ich schlussendlich beim ESP32 gelandet (andere Mikrokontroller
würden sicher ebenfalls funktionieren). Der Vorteil zum Vorgänger
ESP8266 ist, dass der ESP32 über 2 statt 1 SPI-Bus verfügt und ich
so 6 Sensoren an einen einzigen Kontroller anschließen können sollte. Diese
6 Sensoren sollen DBA-like hinter dem Ständerwerk angeordnet werden
(also 2 Zeilen und pro Zeile jeweils links/mittig/rechts ein Sensor).
Da
ich von Mikrokontrollern null Ahnung habe (in Zahlen: „0“), habe
ich mir nach etwas Lesen ein Päckchen NodeMCU-Entwicklerboards
gekauft, ein paar Breadboards und Jumper-Kabel. Das Entwicklerboard
hat den großen Vorteil, dass man es ohne irgendwelche Löterei
direkt mit dem PC verbinden kann, sowohl für die Stromversorgung als
auch zur Programmierung.
Als
Sensor habe ich mich für den Bosch BME280 entschieden (auch im
Grunde ein Zufallstreffer, der Sensor scheint recht beliebt zu sein).
Ich
war gespannt, ob ich davon irgendetwas ans Laufen bekommen würde…
die
nachfolgende Beschreibung ist für Diejenigen, die sich schon mit
Mikrokontrollern beschäftigt haben total Peanuts, aber vielleicht
interessiert sich ja das eine oder andere „Greenhorn“ dafür
Nach
so viel Text vielleicht erst mal ein Foto. Der erste Testaufbau
sah so aus:
Also
nichts sonderlich wildes, Hauptsache erst mal korrekt verdrahtet.
Der
BME280-Sensor unterstützt zur Anbindung zwei Bus-Varianten: I2C und
SPI. Ich habe mich für SPI entschieden, da ich gelesen habe dass der
I2C-Bus anscheinend nur sehr kurz sein darf (also wenige Zentimeter),
ansonsten funktioniert er nicht mehr. Zumindest nicht passiv und da
ich hinter dem Ständerwerk keine aktiven Verstärker o.ä. setzen
möchte, schied dieser Bus für mich aus. Der SPI-Bus kann dagegen
angeblich problemlos länger sein, was aber noch zu testen war!
Der
erste Test war leider negativ, der Sensor wurde vom ESP nicht
gefunden! Hat sich dann aber recht schnell als schlechte Lötstelle
auf dem BME280-Board herausgestellt, bei dem ich die 6-polige
Stiftleiste anlöten musste. Ich muss mir für solche Lötarbeiten eh noch eine feinere Spitze zulegen... Aber ok, ersten Test also doch bestanden.
Danach
habe getestet, ob ich den Sensor mit einem längeren Kabel anbinden
kann. Laut Recherche sollte normales Ethernet-Kabel ausreichen,
vorsichtshalber habe ich statt einfachem UTP- aber SSTP-Cat6-Kabel
genommen. Der Aufbau sieht etwas wild aus, da ich die filigranen
Adern des Cat6-Kabels nicht direkt in das Breadboard stecken wollte
und daher an die Adern Jumperkabel angelötet habe, behelfsmäßig
isoliert mit Malerkrepp:
Zunächst
getestet mit 1 m Cat6-Kabel, und da dies funktionierte danach mit 7 m
Kabel. Funktioniert ebenfalls.
Theoretisch
sollte man noch viel mehr verlängern können, aber 7 m reichen bei
mir aus, um den Mikrokontroller bequem an einer Seitenwand zu
platzieren.
Eigentlich
wollte ich danach mit 4 Sensoren testen, aber da mir A…. bei meiner
letzten Bestellung leider den falsche Sensor-Typ geliefert hat (statt
der 6-poligen SPI-Version nur die 4-polige I2C-Version) muss ich mich
zunächst mit 2 Sensoren begnügen:
Das
sind 2 Sensoren am selben SPI-Bus, analog habe ich getestet die
beiden Sensoren an getrennte SPI-Busse zu hängen. Funktioniert
„natürlich“ ebenfalls. Daher bin ich optimistisch dass auch die
Version mit 6 Sensoren funktionieren wird.
Außerdem
ist zu testen, wie ich die vom ESP32 aufgenommenen Messdaten
verwerte: auch dazu gibt es fertige Kochrezepte, aber ausprobieren
möchte ich es trotzdem.
Im
Grunde sind es zwei Schritte:
-
ESP32 per WLAN mit dem Netzwerk verbinden
-
die gemessenen Werte versenden, z.B. an einen Webserver
Mein
Test des WLAN-Moduls wäre eben fast gescheitert, da der ESP32 meinen
per Notebook emulierten Access Point nicht erkannt hat (ich momentan
dienstlich unterwegs, daher diese Krücke). Ich bin aber gerade noch
rechtzeitig darauf gestoßen, dass der ESP32 (zumindest meine
Version) noch kein 5 GHz-Band unterstützt und musste daher meinen
Notebook-WLAN-Adapter fest auf 2,4 GHz konfigurieren. Danach wurde
mein Test-WLAN vom ESP32 erkannt und konnte auch verwendet werden.
Jetzt
muss ich nur noch das Versenden der Meßdaten testen...
Wenn
alle nötigen Basics funktionieren, kann ich ruhigen Gewissens die
Sensoren (mit passendem Gehäuse natürlich) hinter das Ständerwerk montieren und mich irgendwann später
mit der richtigen Programmierung beschäftigen. Apropos
Programmierung: verwendet habe ich bisher die Arduino-IDE.
Wie gesagt: im Grunde alles Peanuts, aber ich bin trotzdem froh dass ich diese Basics mit verhältnismäßig wenig Aufwand hinbekommen habe!