
Einleitung
Ich denke, jedes Haus hat eine Waschmaschine. Normalerweise wird es über einen flexiblen Schlauch an die Wasserversorgung angeschlossen. Mit einem Schlauch kann jedoch ein großes Ärgernis auftreten: Manchmal platzen sie, was zu einer Überschwemmung sowohl in Ihrer Wohnung als auch in Ihren Nachbarn führt. Daher sind Waschmaschinen über einen speziellen Wasserhahn an die Wasserversorgung angeschlossen, der vor dem Waschen geöffnet und danach geschlossen werden muss. Ich weiß nichts über dich, aber ich habe diesen Kran an einem äußerst ungünstigen Ort. Ja, und ich beginne lieber mit dem Waschen, bevor ich zur Arbeit gehe, damit der Schlauch den größten Teil des Tages unter Druck steht und zu einem Zeitpunkt platzen kann, an dem ich nicht zu Hause bin. Es wäre toll, wenn sich der Kran zum richtigen Zeitpunkt öffnet und schließt!
Die Idee schien mir durchaus fähig und ich entschied mich, sie umzusetzen: auf Mikrocontrollern und mit einem motorisierten Ventil.
Zunächst formulierte ich die Anforderungen für das entwickelte System:
- Überwachung des Waschmaschinenzustands: Wasser zu Beginn des Waschvorgangs öffnen und am Ende schließen;
- die Fähigkeit, das Ventil manuell zu steuern;
- Batteriebetrieb und Schließen des Ventils bei Batterieentladung;
- Vorhandensein eines Leckagesensors: Schließen Sie das Ventil, falls eine Leckage festgestellt wird.
Dann fand er heraus, aus welchen Teilen es bestehen wird: einem in der Waschmaschine installierten Monitor und einer Steuerung, die Signale vom Monitor empfängt und ein motorisiertes Ventil steuert. Die Kommunikation zwischen dem Monitor und der Steuerung erfolgt über einen Einwegfunkkanal.
Es scheint, dass dies für die technische Aufgabe ausreicht. Fangen wir an!
MCU-Auswahl
Da das gesamte System aus zwei Geräten besteht, sollten zwei Mikrocontroller vorhanden sein. Ich kratzte durch die Eingeweide und fand zwei Atmega8: einen im DIP-Paket und einen im TQFP. Der in DIP - ging zum Monitor und TQFP - zum Controller. Später stellte sich heraus, dass die überwachsene Controller-Firmware nicht mehr in 8 KB Atmega8 passt, sodass ich auf Atmega328 aktualisieren musste - ein komplettes Analogon, aber jetzt gibt es viermal mehr Speicher für das Programm.
Eines meiner Motive für solche Projekte ist übrigens die Entsorgung von elektronischem Müll, den ich über viele Jahre angesammelt habe. Zwar wird der Papierkorb am Ende des Projekts nicht kleiner. Es wird noch größer!
Teil Eins Überwachen
Interaktion mit einer Waschmaschine
Das erste Problem: Wie kann man feststellen, was die Waschmaschine jetzt tut? Zu Beginn des Projekts erschien mir dieser Teil der Aufgabe sehr einfach. Alles, was getan werden musste, war, die Momente des Beginns und des Endes des Waschens zu bestimmen. Auf der Vorderseite der Maschine befindet sich eine LED, die aufleuchtet und bei Bedarf erlischt. Ich hatte erwartet, einen GPIO mit dem Fuß des Mikrocontrollers anzulöten, also habe ich für die Dauer des Debuggens einfach die erforderlichen Ereignisse auf dem Monitor mit der Taste emuliert. Ich drückte den Knopf - die LED leuchtete auf, das Waschen begann. Lass los - das Gegenteil ist der Fall. Nach dem Parsen der Waschmaschine stellte sich jedoch heraus, dass diese LED Teil der dynamischen Anzeige ist, und leider ist es nicht so einfach festzustellen, ob sie ein- oder ausgeschaltet ist.
Als ich das Bedienfeld in meine Hände drehte (ein paar Tage), stellte ich fest, dass es auf einem PIC-Controller implementiert war. Darüber hinaus ist es mit Beinen verbunden, die auf die Hardware I2C reagieren. Ja, dachte ich, Sie können den I2C-Bus schnüffeln und so bestimmen, was Sie jetzt mit der Waschmaschine machen sollen. Ich habe den I2C-Sniffer-Code für Atmega im Internet gefunden. Natürlich musste ich etwas spielen.
Ehrlich gesagt: Ich konnte das Protokoll nicht vollständig erkennen (und ich habe es nicht zu oft ausprobiert), aber es stellte sich heraus, dass die Muster für den Beginn und das Ende des Waschens (sowie das Ein- und Ausschalten) ziemlich genau bestimmt wurden. Ich habe ungefähr eine Woche gebraucht.
Modell:
Candy GC4 1072 D. Der Computer sendet regelmäßig eine Reihe von Fünf-Byte-Sequenzen an die Anzeigeeinheit. Die ersten vier Sequenzen haben das folgende Format:
12 A7 00 – NN – X0 X1 X2 X3 X4 X5 X6 X7 – CS
Dabei gilt: 12 A7 00 - Header, NN - Sequenznummer, X [0..7] - 8 Datenbytes, CS - Prüfsumme. Die fünfte Sequenz ist ein Müll variabler Größe, dessen Essenz für mich ein Rätsel geblieben ist.
Ich habe folgende Muster gelöst:
Einschalten12 A7 00 – 01 – X0 X1 X2 X3 X4 X5 X6 X7 – CS
12 A7 00 – 02 – X0 X1 X2 X3 X4 X5 X6 X7 – CS
wobei X [0..7] mindestens eins ungleich 0 ist
STARTEN12 A7 00 – 03 – X0 X1 X2 X3 01 01 01 01 – CS
wobei X [0..3] eine beliebige Zahl ist
STOP12 A7 00 – 03 – X0 X1 X2 X3 00 00 00 00 – CS
wobei X [0..3] eine beliebige Zahl ist
Es ist zu sehen, dass dies keine strengen Sequenzen sind, nämlich Vorlagen, also musste ich mit dem Parser basteln.
Die Logik der Arbeit ist ungefähr die folgende: Wenn wir die POWER ON-Sequenz erhalten, aber kein START vorhanden ist, beginnen wir mit dem Senden von Paketen mit dem Status 0. Wenn die START-Sequenz angezeigt wird, ändern Sie den Status auf 1. In anderen Fällen kann der Helm nicht gesendet werden.
Wir werden über Pakete sprechen und welchen Status es als nächstes gibt.
Es ist lustig, aber als ich I2C-Pakete ausspionierte, hatte ich keine Gelegenheit, eine Verbindung zum Sniffer-Computer herzustellen. Ich habe für diese Raspberry Pi c Powerbank'om verwendet, die ein Aluminiumgehäuse hatte. Sobald dieses Gebäude mit dem Körper der Waschmaschine in Kontakt kam, wurde ein FI in den Schild gezogen, das Licht ging in der Wohnung aus und ich fing an, mit dem Matyuki nach der Taschenlampe zu suchen. :) Warum so ein Müll passiert ist - ist mir immer noch ein Rätsel.
Radiokanal
Anfangs wollte ich nicht, dass die zusätzlichen Drähte von der Waschmaschine kommen. Das heißt, die Verbindung sollte drahtlos sein. Von hier aus gab es drei mögliche Lösungen für das Problem: WiFi, Bluetooth und das RF-Modul für Arduino. Ich habe mich für Letzteres entschieden, indem ich das FS1000A-Modul ausgewählt habe.
Natürlich wird es auf Habré viele Leute geben, die mir diese Wahl vorwerfen. Sie werden darauf hinweisen, dass es mit Ali-Express möglich ist, ein ESP-Modul mit vollem WLAN kostengünstig zu erwerben. Aber ich dachte, dass dies das Projekt sehr komplizieren würde und beschloss, einfacher zu handeln.
Wie Sie wissen, kann das RF-Modul FS1000A nicht direkt an die RS232-Schnittstelle angeschlossen werden: Eine lange Folge von Nullen oder Einsen unterbricht die Empfängersynchronisation. Die VirtualWire-Bibliothek wurde erstellt, um dieses Problem zu lösen. Diese Bibliothek ist jedoch für Arduino geschrieben, und ich programmiere ausschließlich nativ unter Atmega in C. Glücklicherweise ist der Code für Arduino reinem C sehr ähnlich, und mit geringfügigen Änderungen wurde die Bibliothek erfolgreich portiert.
Es gab einige Schwierigkeiten: Zuerst wollten die Pakete den Empfänger nicht erreichen. Ich beschuldigte meine krummen Hände für alles, aber durch die direkte Verbindung der Anschlüsse der Empfänger- und Sendersteuerungen war ich überzeugt, dass alles im Softwareteil funktioniert. Der aus China bestellte Sender erwies sich als fehlerhaft. Ich musste ein anderes Kit kaufen. Dann habe ich den alten repariert und jetzt habe ich zwei Sätze Sender-Empfänger. Erinnerst du dich, was ich über das Reduzieren von Müll geschrieben habe?
Die Daten wurden gesendet, aber was genau ist in diesen Daten enthalten? Das übertragene Paket lautet wie folgt:
typedef struct { uint32_t dst; uint32_t src; #define WMP_MSG_STATUS_ALIVE _BV(0) #define WMP_MSG_STATUS_VALVE _BV(1) uint8_t status; } wmp_msg_t; #define WMP_ADDR_MONITOR 0x4d504d57 #define WMP_ADDR_CONTROLLER 0x43504d57
Die ersten beiden Doppelwörter sind die physischen Adressen des Empfängers und des Senders. In meinem Fall sind sie streng festgelegt: 0x43504d57 - Empfänger (Controller) und 0x4d504d57 - Sender (Monitor). Tatsächlich sind die ersten 8 Bytes diese Paketsignatur. Wichtige Informationen werden nur im letzten Byte gefunden - dem Bit-Flag. Das gesetzte Nullbit dieses Flags bedeutet, dass der Monitor eingeschaltet ist und funktioniert - es sollte immer 1 sein. Das erste Bit ist der Status des Ventils: 0 - das Ventil muss geschlossen sein, 1 - offen. Das ist alles.
Es wird angenommen, dass der Monitor regelmäßig Pakete an die Steuerung senden sollte, um seinen Betrieb und die Wartungsfreundlichkeit des Datenkanals zu bestätigen. Bei Verlust des Kommunikationskanals muss die Steuerung das Ventil im Notfall schließen.
Die VirtualWire-Bibliothek überwacht die Integrität der übertragenen Daten mithilfe von CRC32. Ich musste keine zusätzlichen Anstrengungen in diese Richtung unternehmen. Schönheit!
Bau
Strukturell besteht der Monitor aus einer kleinen Platine, die auf den Heißkleber "Onkel Liao Rotz" in der Frontplatte der Waschmaschine geklebt wird. Die Platine verbindet die Anschlüsse mit dem Spalt zwischen Computer und Anzeigetafel. Die Maschine selbst wurde nicht verändert: Sie kann jederzeit in den ursprünglichen Zustand versetzt werden.
Teil Zwei Controller
Radiokanal
Hier ist alles einfach: Der Empfänger des FS1000A-Kits und der Empfänger der VirtualWire-Bibliothek sind installiert. Das Paket wird analysiert und sein Status wird an die Ausgabe übertragen. Der VirtualWire-Empfänger belegt TIMER1 im Mikrocontroller.
Ventilsteuerung
Im chinesischen Online-Shop wurde ein 3/4-Zoll-Motorventil mit 5-Volt-Stromversorgung und an das Kabel angeschlossenen Klemmensensoren ausgewählt. Dieses Ventil wurde zwischen dem Kugelhahn und dem Schlauch der Waschmaschine installiert. Zur Steuerung des Ventils wurde am selben chinesischen Standort ein Schrittmotortreiber mit geringer Leistung für die L9110-Treiber bestellt. Ich habe es wie folgt an die Steuerung angeschlossen:

Aus Sicht der Software gab es keine besonderen Schwierigkeiten: Über die Eingänge VALVE_CLOSE und VALVE_OPEN bestimmen wir den aktuellen Status des Ventils. Wenn dieser Status geändert werden muss, schalten Sie den Motor zum Öffnen oder Schließen ein und warten Sie, bis am entsprechenden Eingang eine logische 0 erreicht ist. Da das Öffnen oder Schließen jedoch einige Zeit in Anspruch nimmt, möchte ich in diesem Moment nicht die Kontrolle über alles verlieren Gerät. Daher wurde auf dem Atmega-Timer ein primitiver Planer erstellt und die Steuerung des Ventils auf eine spezielle Aufgabe übertragen. Gleichzeitig misst das spezielle WatchDog-Softwaremodul die Zeit, die das Ventil zum Schalten benötigt, und wenn es zu lang ist, wird ein Signal über seine Fehlfunktion generiert. Später wurden andere interessante Dinge an diesen Scheduler gehängt, wie z. B. blinkende LEDs und die Abfrage des Lecksensors. Aber dazu später mehr.
Außerdem gehören eine dreifarbige Status-LED und ein manueller Kippschalter mit drei Positionen zum Ventilsteuerkreis. In der mittleren Position des Kippschalters wird die automatische Steuerung gemäß den Signalen von der Waschmaschine und anderen Sensoren aktiviert. Bei einer Fehlfunktion des Ventils leuchten die Farben Rot und Grün abwechselnd auf.
LED- und Tonanzeige
Mit LEDs ist alles einfach: Sie haften über Begrenzungswiderstände direkt an den E / A-Ports. Die Ströme dort sind nicht groß und die Anschlüsse an Atmega sind ziemlich stark.
Aber das Geräusch musste basteln. Erstens habe ich keinen großen und lauten Piezo-Emitter gefunden. Es scheint, dass solche Menschen in der Natur existieren, aber als ich mich um den Kauf kümmerte, stellte sich heraus, dass die Auswahl überhaupt nicht großartig war. Das Coolste, was ich geschafft habe, klang sehr leise. Ich musste im Internet nach Rezepten suchen.
Ich entschied mich für einen Stromkreis mit einem Transistor und einem Spartransformator, der die Schallspannung von 5 V auf 50 V schwingt. Und dann stellte sich heraus, relativ laut. Natürlich nicht bei allen Frequenzen, aber näher an der Resonanz.
Erst während der Erzeugung des Tons nahm die Helligkeit der LEDs (Pfosten mit Strom) leicht ab, aber der Mikrocontroller fror nicht ein und das Steuerprogramm brach nicht. Ich dachte, dass dies eine Funktion des Debug-Layouts ist und auf der endgültigen Karte alles gut funktioniert. Ich habe mich geirrt - es wurde nicht besser. Schlimmer aber auch.

Ein weiteres Problem war, dass mir die Timer ausgegangen waren und ich im Hintergrund keinen Ton erzeugen konnte. Ich musste die Quietschperiode mit Schlaf fragen. Während der Klangerzeugung kann Atmega also nichts anderes tun, als dass auch Unterbrechungen deaktiviert werden mussten, sonst ist der Ton nicht klar. Dies stellte sich jedoch als nicht sehr beängstigend heraus, da sich die Tonausgabe nicht mit anderen kritischen Aufgaben wie der Steuerung eines Ventils oder dem Empfang von Daten über Funk überschnitt.
Als nächstes wählte ich die Schlafkonstanten so aus, dass sie den Noten entsprachen, und fand mehrere mehr oder weniger harmonische Kombinationen: „Das Ventil ist offen“, „Das Ventil ist geschlossen“, „Waschen ist beendet“ und „Leckage“. Ich werde Sie später separat über das Signal "Waschen beendet" informieren.
Lecksucher
Der Lecksucher sollte ursprünglich auf dem eingebauten ADC des Mikrocontrollers ausgeführt werden. Experimente haben gezeigt, dass dies eine perfekt funktionierende Lösung ist. Ich habe jedoch festgestellt, dass dem Sensor manchmal ein Kondensator mit Kontakten hinzugefügt wird, damit er angeschlossen wird und wenn irgendwo kein Drahtbruch auftritt. Sie können das Vorhandensein eines Kondensators überprüfen (und seine Kapazität messen), indem Sie Folgendes verwenden: RC-Kette, Komparator und Takt. Als Komparator wird ein herkömmlicher GPIO-Eingang verwendet (er ist auch ein logischer Eingang und schaltet bei einer bestimmten Spannung von 0 auf 1), und der Mikrocontroller verfügt über genügend Stunden.

Es wurde angenommen, dass ich von Zeit zu Zeit das Vorhandensein eines Kondensators in der Leitung überprüfe und dann mithilfe des ADC feststelle, ob sich die Sensorkontakte im Wasser befinden. Wie sich herausstellte, reicht es aus, nur die Kapazität des Kondensators zu messen: Wenn Sie ihn in Wasser absenken, erhöht sich die Ladezeit und die Entladung nimmt ab. Darüber hinaus ändert sich die Zeit um einen ausreichenden Betrag, so dass sie sicher erkannt werden kann.
Für mein System habe ich die Ladezeit gemessen: Wenn der Kondensator nicht angeschlossen ist, ist er Null, wenn er trocken ist, ist er relativ klein, und wenn er sich in Wasser befindet, ist die Ladezeit viel länger. Die genauen Werte wurden unter Verwendung einer Untertasse mit Wasser und einer Reihe von Experimenten bestimmt.
Der Lecksucher verfügt über eine eigene rote Anzeige-LED. Wird der Sensor nicht erkannt, leuchtet er auf und der Befehl zum Schließen des Ventils wird an die Luft übertragen. Man muss nur die Kommunikation mit dem Sensor wiederherstellen, die LED erlischt und das Ventil kann geöffnet werden (wenn sich natürlich nur die Maschine im Waschzustand befindet). Eine andere Sache ist, wenn der Sensor Wasser erkennt. In diesem Fall beginnt die Anzeige zu blinken, es ist ein unangenehmes intermittierendes Geräusch zu hören und das Ventil wird gewaltsam geschlossen. Vor allem aber verlässt der Controller diesen Zustand nie. Ein Leck wird als schwerer Unfall angesehen, und die Wasserversorgung wird erst wieder aufgenommen, wenn Sie das Gerät zwangsweise neu starten.
Ernährung
Essen ist für mich der unverständlichste Teil in diesem Projekt. Wenn ich mich ein wenig mit digitalen Schaltkreisen auskenne, dann mit analogen, um es milde auszudrücken - nicht wirklich. Aber dank der Chinesen: Ich kann fertige Module für DC-DC-Wandler mit Batterieladecontrollern kaufen und mir basierend darauf etwas Praktikables vorstellen.
Von Anfang an war geplant, das Gerät autark zu machen, damit im Falle eines Stromausfalls sichergestellt ist, dass das Wasser abgestellt wird. Außerdem hatte ich ein 9-V-Netzteil, das irgendwo angeschlossen werden musste. Insgesamt war das Einführungsergebnis wie folgt:
- 9V kommt aus dem Netzwerk;
- 3,4 ~ 3,7 V kommen von der Batterie;
- Zum Laden des Akkus benötigen Sie 5V;
- 5 V werden benötigt, um Logik und Stromkreise mit Strom zu versorgen;
- Wenn die Netzspannung ausfällt, schalten Sie die Batterie ein.
- Es ist erforderlich, das Batterieladesignal, die Spannung an der Batterie und das Betriebssignal vom Netzwerk an die Steuerung zu übertragen.
Das Blockschaltbild stellte sich wie in der Abbildung heraus.

Als Schaltelement werden zwei Schottky-Dioden verwendet. Der Laderegler verfügt über zwei LEDs: CHARGE und STANDBY. Das Signal vom ersten wurde an den GPIO-Port des Controllers angeschlossen, damit der Monitor erkennen konnte, dass der Akku geladen wurde. Außerdem wird ein Signal vom ersten DC-DC-Wandler an den Mikrocontroller-Port angelegt, um festzustellen, ob das Gerät mit einem Netz oder einer Batterie betrieben wird. Zur Steuerung des Ladezustands wird die Spannung von der Batterie dem ADC der Steuerung zugeführt. Wenn die Spannung zu niedrig ist, schließt der Monitor das Ventil und wechselt in den Standby-Modus: Er reagiert erst auf Befehle, wenn die Netzspannung angezeigt wird.
Leider gab es hier einige Pfosten: Aus irgendeinem Grund nimmt der Ventilmotor einen Teil der Energie aus der Batterie auf. Anscheinend habe ich einen Fehler mit der Leistung des Netzwerk-DC / DC-Wandlers oder mit der Dicke der Stromspuren auf der Platine gemacht. Infolgedessen: Nach dem Öffnen oder Schließen des Ventils beginnt die Batterie zu laden.
Zur Überwachung des Stromstatus gibt es eine spezielle zweifarbige LED. Wenn es grün ist, arbeitet das Gerät im Netzwerk. Wenn rot - dann von der Batterie. Wenn es grün ist, aber rot blinkt, wird der Akku aufgeladen.
Arbeitslogik
Nun, wir haben die gesamte Hardware- und Softwareunterstützung, jetzt müssen wir irgendwie dafür sorgen, dass all dies miteinander interagiert. Anfangs sah ich die Implementierung der Arbeitslogik in Form einer großen Schleife (was als Hauptschleife bezeichnet wird) mit einer Reihe von Wenns im Inneren.
Dabei war ein Taskplaner für so einfache Aktionen erforderlich: Blinken einer LED, Abfragen eines Lecksensors, Verfolgen der Ventilschaltzeit und Leistungsregelung, die ich an TIMER0 aufgelegt habe. Der Scheduler selbst hat die der Task zugeordneten Funktionen nicht gestartet, sondern nur das Synchronisationsbit im der Task zugeordneten Deskriptor auf eins gesetzt. Die Aufgabe wurde noch im Hauptzyklus ausgeführt, wir haben es geschafft, Tracking-Zeitintervalle loszuwerden, was es sehr einfach machte.
Aus dem Zoo ifs, die den Status verschiedener Subsysteme der Steuerung überprüfen und eine Entscheidung treffen: Es war notwendig, das Öffnen oder Schließen des Ventils zu verweigern. Es ist sehr schwierig, dies zu debuggen, und es ist sehr leicht, verwirrt zu werden. Stattdessen gefiel mir die Idee aus D. Hazermans altem Buch: "Wie man selbst einen Roboter baut." Das Buch schlug vor, dass jedes Modul seine eigenen Steuersignale erzeugt: Vorwärts, Rückwärts, Drehung usw. Als nächstes wird aus diesen Signalen nur eines ausgewählt, das aus einem Block mit einer höheren Priorität stammt. Ich habe ungefähr das Gleiche getan.
Ich habe die Blöcke wie folgt priorisiert:
- Leckblock
- Batteriesteuergerät
- Manuelle Ventilsteuereinheit
- Steuergerät für Funksteuerventil
- Ventilzeitgeber WatchDog-Block
Jeder Block generiert drei Befehle: UNDEFINED, OPEN und CLOSE.
Der Leckblock hat die höchste Priorität, aber nicht den Befehl OPEN, aber sein Befehl CLOSE schließt das Ventil definitiv, unabhängig davon, was andere Blöcke sagen. Die manuelle Steuereinheit kann jedes Signal der Funkkanaleinheit unterbrechen, wodurch Sie das Ventil unabhängig davon steuern können, was die Waschmaschine uns anzeigt. Gut und so weiter. Das heißt, es ist eine logische hierarchische Struktur entstanden, die leicht zu verstehen und zu debuggen ist.
Kommen wir nun zum Signal zurück: "Waschen ist beendet." Leider hat mein Modell einer Waschmaschine nicht die Möglichkeit, mit Hilfe von Ton über das Ende ihrer Arbeit zu informieren: Candy-Ingenieure boten keine solche Gelegenheit. Andererseits habe ich ein zusätzliches Gerät, das einen Piezo-Emitter hat und zu jedem Zeitpunkt weiß, was die Waschmaschine tut. Warum lässt du ihn nicht das Ende der Wäsche melden? Lassen Sie uns den Regler laut und unangenehm (bei der Resonanzfrequenz) quietschen, wenn das Ventil das Signal schließt. Fügen Sie ein weiteres Schutzintervall von fünf Minuten hinzu, um dieses Quietschen nicht jedes Mal zu hören, wenn Sie die Maschine ein- und ausschalten. Das Ventil ist fünf Minuten lang geöffnet - das Waschen hat definitiv begonnen.
Ergebnisse
Die Entwicklung dauerte ungefähr ein Jahr ohne Eile (sehr ohne Eile). Das Gerät arbeitet seit zwei Jahren. Im Betrieb erwies es sich als recht zufriedenstellend. Aber nicht ohne Mängel. Lassen Sie uns sie ehrlich auflisten:
- Ich habe etwas mit der Leistung durcheinander gebracht: Der Ventilmotor nimmt einen Teil der Energie aus der Batterie auf.
- Die Klangerzeugungsschaltung zieht die Versorgungsspannung. Sie können deutlich sehen, wie sich die Helligkeit der LEDs ändert, wenn Ton abgespielt wird.
- Der Funkkanal ist nicht sehr stabil. Erstens verschwindet das Signal, wenn eine Person in der Nähe der Waschmaschine steht. Und zweitens verschlechtert sich das Signal manchmal von selbst. In diesem Fall müssen Sie den manuellen Kippschalter verwenden, dies geschieht jedoch äußerst selten.
- Die Monitoreinheit in der Waschmaschine hing ein paar Mal. Der Controller-Block hing nicht einmal.
- Der Ton vom Piezo-Emitter war im Inneren des Gehäuses sehr übertönt. Ich habe ein Loch in das Koprus gebohrt: es wurde besser, aber nicht wirklich. Ich musste den Emitter von der Platine löten und ihn direkt gegenüber dem Loch auf das Gehäuse kleben.
Generell halte ich die Entwicklung für erfolgreich und sehr nützlich. Ich starte die Maschine am Morgen und gehe ruhig zur Arbeit: Ich weiß, dass zum richtigen Zeitpunkt der Wasserhahn abgestellt wird.
Archiv mit Projektdateien kann hier heruntergeladen
werden .
Ein paar Bilder.
Draufsicht mit entfernter Deckel Rückansicht von der Seite der Anschlüsse Im natürlichen Lebensraum
- «»