Energie-
Verbrauch
Bewegungs-
melder
ioBroker-DHT22
ioBroker-
Laufschrift
ioBroker LED-
Thermometer
ioBroker-OLED
ioBroker
Multi-OLEDs
ioBroker
Mini-Mülltonne
Ball on Plate
Sonstige
Basteleien
Laundrino V2 = an alternative to Laundrino V1 | ||
Hier handelt es sich um eine Abwandlung des in Laundrino V1 beschriebenen "Waschmaschine-ist-fertig"-Melders. Die Version 1 funktioniert zwar prinzipiell, jedoch kam es mit der dort verwendeten 433 MHz-Türklingel sporadisch zu ungewollten Auslösungen. Vermutlich waren irgendwelche Störimpulse im 433 MHZ-Funknetz dafür verantwortlich. Jedenfalls sah ich mich gezwungen, diesbezüglich Abhilfe zu schaffen. Achtung: Voraussetzung für die nachfolgende Schaltung ist, daß an beiden Standorten, also Standort-Sender und Standort-Empfänger, WLAN-Empfang vorhanden ist ! Der Laundrino V2 arbeitet zwar nach dem gleichen Prinzip wie der Laundrino V1 - nämlich Erschütterungen der Waschmaschine erfassen, funkt aber im 2,4 GHz WLAN. Das Funktionsprinzip ist anhand der folgenden Skizze ersichtlich: | ||
![]() |
||
| ||
Es kommt wieder ein Gyroskop-Sensor MPU6050 GY-521 zum Einsatz, allerdings ist er dieses Mal an eine NodeMCU V3 angeschlossen, die als Sender fungiert. Als Empfänger wird ebenfalls eine NodeMCU V3 verwendet, welche die Fertigmeldung über einen Buzzer (= kleiner "Piepser") und eine LED ausgibt. Technisch gesehen, werden sog. UDP-Pakete via WLAN vom Sender zum Empfänger geschickt. Software allgemein: In der Arduino-IDE müssen - falls noch nicht erfolgt - die Teiber für die NodeMCU, bzw. den ESP8266, eingerichtet werden. Anleitungen dazu findet man im Internet, z.B. unter dem Stichwort "arduino ide nodemcu". War das Einrichten erfolgreich, kann man mit der übertragung der Sender-/Empfänger-Sketche fortfahren: In der Arduino-IDE muss unter "Werkzeuge" -> "Board" das "NodeMCU 1.0(ESP12-E Module)" gewählt werden. Nicht vergessen, auch den entspr. Port auszuwählen, an dem die NodeMCU per USB-Kabel hängt. Eine Besonderheit ist bei beiden Sketchen noch eingebaut, nämlich das Programmieren der NodeMCU's über WLAN ( OTA = over the air ). Dadurch kann man nach der Ersteinrichtung, wo beide NodeMCU's zwingend via USB-Kabel geflashed werden müssen, anschließend die NodeMCU's bequem über das WLAN neu flashen, bzw. geänderte Parameter übertragen. Somit muss man die NodeMCU's, hier hauptsächlich den Sender, der ja via MPU6050 fest mit der Waschmaschine verdrahtet ist, nicht umständlich zum Programmier-PC/-Laptop bringen. Nach der Ersteinrichtung via USB tauchen nach einer Weile in der Arduino-IDE unter Ports außer den lokalen Ports, zwei weitere Ports mit Bezeichnungen wie z.B. "Washer-Receiver at 192.168.192.15" und "Washer-Sender at 192.168.192.14" auf (die Namen kann man frei in den Sketchen unter --> const char* OTA_host = "xyz" vergeben ). Diese Ports wählt man dann einfach zum Neuflashen via WLAN aus. Software Sender: Nach dem Starten der Waschmaschine, muss der Sender entweder per Schalter manuell eingeschaltet werden, oder sein USB-Steckernetzteil in eine Steckdose gesteckt werden. Der Einschaltzeitpunkt ist nicht kritisch, es könnte auch z.B. nach 10 Min. Waschmaschinenlaufzeit noch eingeschaltet werden. Der Sender, bzw. die NodeMCU wählt sich nach Anlegen der Betriebsspannung mit einer festen IP-Adresse in's heimische WLAN ein, d.h. es wird keine! automatische Adressvergabe (DHCP) genutzt. Es ist deshalb zwingend notwendig, im Sender-/Empfänger-Sketch die Parameter für das lokale WLAN manuell einzutragen. Evtl. muss dafür im heimische Router ein IP-Adress-Bereich von DHCP ausgenommen werden. Eine allgemeine Anleitung dazu kann ich nicht geben, Hilfe findet man im Internet, Stichwort z.B "konfigurieren von statischen IP-Adressbereichen auf Router", oder "configure static ip-range on router". Wurde die WLAN-Verbindung erfolgreich hergestellt, blinkt die blaue Power-LED ein paar Mal und bleibt dann konstant an. Durch die Erschütterungen der laufenden Waschmaschine, bzw. der Trommel, blitzen die 3 LED' (x,y,z) sowie die "Summen"-LED 5 sporadisch auf ( s. Schaltplan Bild 0 ). Dadurch kann man sehen, ob die Erschütterungen erfolgreich registriert werden. Sollten die LED's kontinuierlich leuchten, ist die Empfindlichkeit des MPU6050 zu hoch eingestellt. Man kann die Empfindlichkeit für alle 3 Richtungen (x,y,z) im Sender-Sketch mit den variablen int gx_thres, int gy_thres, int gz_thres anpassen. Es muss allerdings für die Anpassung ein Kompromiss gefunden werden:
Tipp: Ich habe aus Unkenntniss ;-) die Waschmaschine zuerst ohne Befüllung im Kurzprogramm laufen lassen und den Sender justiert, war dann natürlich erstaunt, daß - als die besser Hälfte, dann einen kpl. Wäschekorb in der Trommel versenkt hatte - die Parameter nicht mehr passten. Ist aber logisch, da die Erschütterungen, bzw. die Unwucht, mit leerer Trommel anders sind, als mit voller Trommel. Deshalb immer mit voller Trommel testen! ... und nein, ich will mich nicht in die Geheimnisse der Waschmaschinen-Befüllung einweihen lassen ;-)) Wenn die Waschmaschine dann schließlich fertig ist, wird zyklisch ca. alle 5 Sekunden ein UDP-Paket mit dem Inhalt "1" (command[0] = 1;) vom Sender an den Empfänger geschickt. Als Zusatzkontrolle erlischt die blaue Power-LED am Sender für ca. 0,2 Sekunden und leuchtet dann wieder für 5 Sekunden. In diesem Zustand werden keine weiteren Erschütterungen der Waschmaschine mehr registriert und der Sender schickt kontinuierlich die Fertigmeldung zum Empfänger. Zurückgesetzt wird er erst wieder nach einem erneuten, manuellen Aus-/Einschalten. Software Empfänger: Zur Empfänger-Sketch gibt es nicht viel zu sagen, es müssen dort ebenfalls nur die heimischen WLAN-Parameter eingetragen werden. Nach dem Einschalten und erfolgreicher WLAN-Verbindung piepst der Buzzer 5 Mal und die Power-LED blinkt ebenfalls 5 Mal. Dann lauscht der Empfänger permanent nach eingehenden UDP-Paketen vom Sender. Kommt ein Datenpaket mit Inhalt "1", piepst der Buzzer 3 Mal und die LED blitzt ebenfalls 3 Mal. Das wiederholt sich im 5 Sekunden-Rhythmus, da der Sender die "1" ja alle 5 Sekunden sendet. Falls der (geringe) Stromverbrauch des Empängers kein Problem darstellt, kann er auch ständig eingeschaltet bleiben. Wenn man ihn aber ausschaltet, kann es leicht vergessen werden, ihn beim Waschen zusätzlich zum Sender einzuschalten. Hardware: Hier gibt es ebenfalls nicht viel zu sagen, die benötigten Komponenten sind aus dem Schaltplan ( s. Bild 0) ersichtlich:
Eine Möglichkeit der Platzierung der Bauelemente auf Lochrasterplatinen habe ich in Bild 1 dargestellt. Das Layout ist ziemlich gedrungen, da die Platinen in bereits vorgegebene Gehäuse eingepasst werden mussten. |
Downloads | |
Sketches: | Waschmaschine-NodeMCU-Sender.ino |
Waschmaschine-NodeMCU-Receiver.ino | |
Libraries: | ArduinoOTA.zip |
ESP8266WiFi.zip | |
I2cdev.zip | |
MPU6050.zip | |
Wifi.zip | |
Wire.zip | |