Waterius: Übertragen Sie die Wasserwerte über WLAN auf ein Telefon (4 Jahre im Akkubetrieb).



Einmal war ich es leid, Wasserzähler abzulesen. Es war möglich, einen Magneten in der Nähe der Theke zu platzieren und sich darauf zu beruhigen, aber ich fand diesen Weg unsportlich.

Mein Weg war schwierig und reich verziert. Das Ergebnis war jedoch ein Gerät, das Wasserwerte über WLAN an das Telefon überträgt. Einfach und intuitiv zu bedienen und zu konfigurieren für mindestens einen Schüler, zumindest für einen Senioren. Und vertraut mit dem Wort "Arduino" - auch einfach herzustellen. Das Gerät kann vier Jahre lang mit Batterien betrieben werden (länger als die Beziehung zu Ihrem Ex). Dies ist auch das erste offene Projekt mit solchen Merkmalen. Ich habe Fabrikanaloga geschrieben, es gibt nur wenige und sie sind damit einverstanden.

Wir haben also etwas Geld und einen großen, aber ehrlichen Wunsch, unser Leben zu vereinfachen, ohne das Strafgesetzbuch zu verletzen. Und damit keiner Ihrer 220V, Server und ein paar Tasten! Wir sehen uns die Messwerte auf dem Smartphone in der Blynk-Anwendung oder einem ähnlichen Dienst an.

Lehnen Sie sich jetzt auf einem Stuhl zurück, essen Sie mehr von diesen weichen französischen Brötchen und trinken Sie Tee. Sehen Sie sich wunderschöne Fotos an und hören Sie sich meine Geschichte an, was bei der Erstellung eigenständiger Geräte zu beachten ist. Aber zuerst eine kurze Beschreibung von Waterius.

Anforderungen


  • Zähler mit Draht (UPD2: Beliebiger Ausgang „Trockenkontakt“ )
  • WLAN-Router mit Internet

Eigenschaften


  • Leistung: 3 AA-Batterien
  • Arbeitszeit 4 Jahre oder länger
  • 2 Wasserzähler
  • eine einzige Schaltfläche zum Konfigurieren
  • Nichtflüchtiger Speicher für Anzeigen und Netzwerkeinstellungen

Wi-Fi Täglicher Transfer


  • aktuelle Messwerte
  • Wasserverbrauch pro Tag
  • Versorgungsspannung
  • E-Mail Buchstaben (Text und Titel können geändert werden)


Unterstützung für TCP-Server und Blynk-Anwendung implementiert. Fügen Sie HTTP , MQTT , Modbus TCP, Cayenne, IFTTT usw. hinzu. (Hier wird ein Platz für die Manifestation Ihres kreativen Genies gegeben).

UPD2: Kreative Genies enthüllten noch HTTPS, MQTT

Anpassung


Wenn Sie auf die Waterius-Schaltfläche klicken, wird der Wi-Fi-Zugangspunkt aktiviert. Verbinden Sie sich, füllen Sie das Formular aus, verneigen Sie sich dreimal nach Osten und bedanken Sie sich bei den WiFiManager- Entwicklern. Sie können mental.

Einrichten von Waterius mit Wifimanager

Unterhaltsame Elektronik


Eine Streuung von Funkelementen für die Montage von Waterius



Die einzige Möglichkeit, beim Zählen von Impulsen Mikroampere-Verbrauchseinheiten zu erzielen, ist die Verwendung eines wirtschaftlichen Mikrocontrollers, nicht das, was Sie gedacht haben. Waterius-Herz - Attiny85-Mikrocontroller (Analoga - MSP430, STM8L). Es wird problemlos mit jedem Arduino-Board genäht, wobei alle Hände über der Taille wachsen. Attiny85 arbeitet mit einer Frequenz von 1 MHz vom internen Generator und zählt Impulse, wobei regelmäßig 2 Eingänge auf Kurzschluss und Taste überprüft werden. Schlafstrom 4 μA bei 3V . Ein Märchen.

Als Wi-Fi benutze ich ESP8266-01. Verbrauch während des Betriebs 75mA, Impulse bis zu 250mA. Zwei Mikrocontroller kommunizieren auf dem i2c-Bus. Die Richtigkeit der Wahl wurde durch das Projekt der Wetterstation bestätigt. ESP8266 ist ständig in einem Traum: Der EN-Pin wird über einen Widerstand zu GND gezogen. Der Verbrauchsstrom beträgt weniger als 10 μA (ich bin auf Instanzen mit 0 μA gestoßen). Einmal am Tag liefert Attiny85 HIGH, ESP8266 wacht auf, empfängt Messwerte von Attiny85, stellt eine Verbindung zu WLAN zu Hause her und sendet Daten in ca. 4 Sekunden - was laut Untersuchungen britischer Wissenschaftler viel schneller ist, als Sie normalerweise manuell an diese Zähler gelangen.

Das Foto zeigt ein gutes ESP, der Verbrauch springt um 7-11μA. Normalerweise sind die Zahlen 19-23μA.

Andere Schlafarten funktionieren bei Waterius nicht, zumindest mit Melatonin zu den Klängen eines Schlaflieds bestreuen: Ein unendlicher Tiefschlaf mit sofortigem Aufwachen bei einem externen Reset verbraucht 20 μA und eignet sich für häufiges Senden von Daten. Die wirtschaftlichste Option: Schalten Sie den ESP8266 vollständig aus, aber Sie benötigen Feldeffekttransistoren, die Angst vor statischer Elektrizität haben.

Die Setup-Schaltfläche befindet sich in der SCL-Leitung. Alle Attiny85 Pins sind beschäftigt! Aus diesem Grund unterstützt Waterius die Ausgänge der Namur-Messgeräte nicht und verfügt nicht über einen Lecksensor.
Die LED ist mit dem TX-Pin des ESP verbunden und leuchtet bei laufendem ESP. Stecken Sie den TTL-USB-Adapter ein, um das Protokoll anzuzeigen (allerdings interessant!). Zu Beginn der Entwicklung dachte ich, dass Sie, um einen Fehler anzuzeigen, die LED blinken müssen, aber Sie werden es schaffen - dies wird den Code nur komplizieren.
Wenn Sie nach 3-10 Sekunden erfolgreich eine Verbindung zu einem WLAN-Router herstellen, erlischt die LED. Wenn die LED weiterhin leuchtet, schließen Sie das Telefon erneut an Waterius an. Anspruchsvolle Technologie, Nanotechnologie, die Errungenschaften der NASA, die Lehren des alten China.

Jeder von uns weiß: Ein Merkmal von Geräten mit geringem Stromverbrauch ist ihre Anfälligkeit für elektromagnetische Störungen. Deshalb habe ich mich an einen vertrauten Elektronikingenieur gewandt und Literatur studiert (+ der schönste Murata- Kurs). Alle Pins von ESP und Attiny werden auf Power oder GND gezogen. Leistungskondensatoren installiert. Die „schmutzige“ Masse der Messgeräte ist über einen 300-Ohm-Widerstand mit der „sauberen“ Masse verbunden, und die Ausgänge selbst sind über einen 3k3-Widerstand. Jeder wäre so!

Gehäuse


Wir nehmen eine Plastikflasche ... ein Witz. Ich habe ein Fach für 4 AA-Batterien verwendet. In der Abdeckung für den Stecker ist seitlich ein Loch für die LED und die Taste ausgeschnitten.



Sie können die Anschlussdose verwenden (experimentieren Sie mit einem 3D-Drucker und anderem Schamanismus selbst, wenn dies nicht der Fall ist).

In Github befindet sich eine einschichtige Platte für LUT und eine zweilagige Platte für die Fabrikproduktion. Waterius kann sogar von einem Schüler gemacht werden! Stimmt, wenn er kein Hoverboard hat und den Spinner niemals dreht.

Das ideale Board funktioniert nicht sofort. Der erste Prototyp sah folgendermaßen aus:



Aber die vierte Version, die gebaut wurde, ist fast „perfekt“:



Ich konnte nicht widerstehen und bestellte eine Packung Bretter in Resonite. Das ist hoch!



Ernährung


In Waterius gibt es einen 3V MCP1700 Stabilisator mit einem sehr geringen Mindestverbrauch (einige μA). Drei AA 1,5 V-Alkalibatterien können sich fast vollständig auf 3,2 V entladen . Außerdem hat der Attiny85 eine stabile Spannung (und die Frequenz ist weniger schwebend , was summt, obwohl dies in diesem Projekt nicht wichtig ist).

Die Schaltung funktioniert ohne Stabilisator aus zwei AA-Batterien. Attiny85 sollte Version V kaufen (Leistung bis 1,8 V). ESP arbeitete "im Internet" bis zu 2,5V. Wir werden 40% der Batteriekapazität nutzen können (glauben Sie es nicht - siehe A. Nadezhins Tests). Wenn Sie zwei Lithium-AA-1,5-V-3-Ah-Batterien kaufen, arbeitet Waterius bis zu 10 Jahre bei niedriger Temperatur, und dort - sehen Sie - werden wir den Kommunismus aufbauen.

Der Mangel an Werkzeugen erlaubt es mir nicht, den Verbrauch von Waterius genau zu messen. Er arbeitet seit 45 Tagen zu Hause und sendet alle 30 Minuten Messwerte (um die Entlassung zu beschleunigen). Die Versorgungsspannung fiel um 0,17 V von 4,68 V auf 4,51 V (UPD: 100 Tage 4,38 V, UPD2: 313 Tage 3,9 V). In diesem Fall halten die Batterien 1,5 Jahre. Das Senden von Lesungen einmal am Tag ist dreimal wirtschaftlicher, also 4 Jahre Arbeit. Ja, ich kenne mich mit Selbstentladungsbatterien aus. Energizer-Datenblatt und Haltbarkeit auf Verpackungen sagen, dass es nicht stark ist.

Hier finden Sie eine Berechnung des Batterieverbrauchs und der Kosten für Komponenten für die Neugierigsten ( Google-Tabelle ).

Programmierdetails (für diejenigen, die nicht müde sind)


Die Implementierung der Impulszählung bei Interrupts ist nicht geeignet, weil Wasser kann in dem Moment abgeschaltet werden, in dem der Reed-Schalter geschlossen ist (Zone ~ 3L), und Strom fließt durch die Pull-up-Widerstände. Schutz vor Kontaktsprung ist erforderlich: Mikroschaltung oder Codeverzögerung. Ich habe alle 250 ms eine regelmäßige Abfrage durchgeführt und den Wert (ein schönes Wort, richtig?) Nur bei wiederholtem Schließen erhöht. Es muss nichts gelötet werden, obwohl Sie es können, wenn Sie es wirklich wollen.

Zum Schutz vor dem erneuten Laden von Attiny speichere ich alle Werte in seinem EEPROM-Speicher. Um das Limit von 100.000 Einträgen zu überschreiten, habe ich einen Ringpuffer mit einer Ringmarkierung für die aktuelle Zelle geschrieben. Jetzt schlafe ich friedlich, was ich dir wünsche. Der Code sieht die Einbeziehung der Protokollierung zum Debuggen vor. Schließen Sie den TTL-USB an den zweiten Messgeräteanschluss an.

Datenexport


Zuerst habe ich den Telegramm-Bot geschrieben, aber Roskomnadzor hat das Telegramm blockiert. Ich musste diese Entscheidung aufgeben, um den Proxy-Server nicht zu starten und das Boot nicht zu rocken. Die Verwendung von Blynk erwies sich als optimal (furchtlose Entwickler haben Probleme mit Sperren). Hier ist der QR-Code des Projekts . Neben ihm hat das Cayenne-Projekt eine Telefonanwendung.

Das automatische Senden an Mosvodokanal ist nicht implementiert, da gemeinnütziges Projekt, aber was sind unsere Jahre. Oder deins. Ich habe nicht die Mittel, um meinen Server zu warten und den Sendevorgang zu "legitimieren", aber Sie fragen plötzlich bei Freunden nach ... Ich freue mich über Ihre Hilfe und Ihre freien Gedanken.

Moskauer senden Zeugnis per SMS, was bedeutet, dass ein Webserver ausreicht, um Waterius-Daten und eine Seite mit SMS ( Github ) zu empfangen. Moskauer Experten des Fiddler-Programms, die die Anwendung des Moskauer Staatsdienstes nutzen, sollten sich für mein Python-Skript zum Senden von Wasserlesungen interessieren.

Entwicklung


Wie Sie wissen, ist Perfektionismus eine der Hauptbremsen bei der Entwicklung eines neuen Produkts. Es ist nicht erforderlich, eine neue Funktion zu erstellen, ohne zu prüfen, ob die Verbraucher sie benötigen. Einfacher Code ist einfacher zu entwickeln.

Der Weg zum Perfektionismus führt durch

  • Aktualisieren der ESP- und Attiny-Firmware über das Internet
  • UPD2: Unterstützung für HTTPS oder Verschlüsselung
  • Ein Server, auf dem der Benutzer sein Skript herunterladen kann, um Wasserwerte zu senden.
  • mit STM8L / MSP430 (sie sind wirtschaftlicher und mehr Stifte)
  • UPD2: Sichtprüfung des Kontakts mit den Messgeräten beim Anschließen
  • Angabe des Zeitraums für das Versenden von E-Mails Briefe
  • UPD2: Zählerunterstützung für Namur- Ausgänge
  • Lecksensor (UPD2: erfolgt beim Zurücksetzen)
  • Kransteuerung
  • Unterstützung von Stromzählern

Danksagung


Vielen Dank an Ivan Kovalenko und Ivan Ganzha für die Beratung in der Elektrotechnik, Aigul, E. Lapin für die richtige Einstellung zum Leben und Papa für die Tatsache, dass ich nicht nur programmieren, sondern auch löten kann, und für Sie - für Ihre Aufmerksamkeit!



Ich freue mich über Anregungen, Anfragen und Kritik!

Lötkolben aufwärmen! Github-Projekt

UPD2 05/07/2019: Vielen Dank an alle, die bei dem Projekt helfen!

Source: https://habr.com/ru/post/de418573/


All Articles