Timer - Start

Alles begann mit ihm. Dies war mein erster Kauf bei Aliexpress für die erste Automatisierung des Landes - ich wollte die automatische Bewässerung im Gewächshaus durchführen. Der Timer kam in einer zerknitterten Schachtel mit einer rissigen Schutzkappe, funktionierte aber. Er hat die ganze Sommersaison über Gurken gegossen. Er wurde entfernt und für den Winter an einem warmen und trockenen Ort versteckt. Aber in der nächsten Saison wartete ich auf eine unangenehme Überraschung - der Timer begann zu hängen, reagierte nicht mehr auf die Steuertasten und öffnete das Wasser. Zuerst habe ich mit billigen Batterien gesündigt und sie durch Duracell ersetzt. Ich dachte, das Problem sei Strom und Einschaltströme. Es hat nicht geholfen. Dann nahm ich einen Lötkolben heraus und löte alles, was ich konnte, hinein und fügte sogar einige fehlende Kondensatoren hinzu. Aber er hing hartnäckig weiter. Leider ist das Produkt nicht sehr wartbar - da ich einen Mikrokreislauf-Tropfen mit offenem Kreislauf verwendet habe und anscheinend etwas genau unter der Verbindung mit dem Mikrokreislauf nicht montiert war. Irgendwie war die Saison mit einem so zappelnden Timer vorbei und ich begann zu überlegen, durch was ich ihn ersetzen sollte.

Meine ersten Gedanken waren, ein Arduino Mini-Modul, ein Uhrmodul, eine Anzeige zu nehmen und alles irgendwie in den Fall eines kaputten Timers zu schieben und seinen nativen Motor und Kugelhahn zu verwenden. Aber irgendwie ging es nicht wirklich dorthin, es würde deutlich mehr verbrauchen als die ursprüngliche Füllung (was bedeutet, dass Sie die Batterien im Gehäuse vergessen können) und es war langweilig und nicht skalierbar - ich wollte nicht nur das Gewächshaus, sondern nur einen kaputten Timer gießen.

Und dann stieß ich bei Ali auf einen normalen motorisierten Kugelhahn. Hier ist so ein gutaussehender Mann:



Ja, es kostete anständiges Geld, aber es war nicht beängstigend, es an eine Sommerwasserversorgung anzuschließen und es eine Woche lang unbeaufsichtigt zu lassen. Es ist im Allgemeinen ziemlich solide, wenn auch mit einem Kunststoffgetriebe - jetzt funktionieren ein paar solcher Wasserhähne an meiner Hauptwasserversorgung, wo der Druck 5 atm beträgt.

Die Idee war einfach. In der Schublade des Tisches wartete ein Taschentuch mit dem WLAN-Modul ESP8266. Es wurde beschlossen, die Energieeinsparung zugunsten einer Gebrauchtwagenbatterie aufzugeben, die nach Berechnungen für mindestens einen Monat Batterielebensdauer ausreichen sollte. Um den Moment der Batterieentladung nicht zu verpassen, stellte die Schaltung einen Teiler bereit, über den der eingebaute ESP8266 ADC kontinuierlich die Versorgungsspannung maß . Das DS3231-Modul mit einer Batterie sollte als Uhr im Stromkreis dienen, und ein Taschentuch pro m / s MP1584EN sollte die Spannung von 12 V auf 3,3 V gesenkt haben.

Hier ist ein Prototyp-Blockdiagramm:


Und hier ist ein Foto von seiner Umsetzung


bereits eine etwas zerlegte Implementierung - das DC-DC-Modul ging in den Kran, das Uhrmodul auf der Rückseite des Steckbretts

Die Steuerung des Kranmotors erfolgte hier einfach - welche Transistoren in der Schublade des Tisches gefunden wurden, wurden installiert. In der Realität kann ein Motor beispielsweise über m / s ULN2003 gesteuert werden, indem mehrere Kanäle parallel entweder mit Feldeffekttransistoren mit logischer Steuerung oder allgemein über ein Relaismodul mit Optoisolation eingeschaltet werden. Es muss nur berücksichtigt werden, dass der Motor mit einem Betriebsstrom von etwa 70 mA einen Einschaltstrom (und einen Strom zum Zeitpunkt der Rotationsblockierung) in der Größenordnung von 300 bis 350 mA aufweist.

Eine kurze Skizze würde in Arduino mit einer einfachen Weboberfläche geschrieben:



Und der Prototyp stand im Testdienst. Ich habe die Weboberfläche des Krans über den Router weitergeleitet und das Gerät war ständig online verfügbar.

Und die Gedanken liefen weiter. Ein Prototyp ist gut, aber ich möchte mehrere dieser Wasserhähne, und alles auf Steckbrett zu machen, ist keine Option. Der Kran wurde geöffnet. Und es wurde klar, dass unter einer versiegelten Abdeckung viel Platz ist und es sogar Befestigungsstellen gibt:



In diesem Wasserhahn, der im Prototyp verwendet wurde, befand sich unter der Abdeckung eine kleine Leiterplatte mit einem Relais, die die Steuerlogik bereitstellte. Und auf dem Foto ist ein Kran mit dem Index CR05 zu sehen. In diesen Abgriffen befindet sich keine Logik oder Leiterplatte. Die Motorsteuerkabel und die Endschalterkabel werden einfach zurückgezogen. Und Sie müssen solche Krane steuern, indem Sie die Polarität der Spannung am Motor ändern. Gleichzeitig ist es sehr ratsam, die Schließ- / Öffnungsendmomente an den Endpunkten des TC zu steuern. Wir erinnern uns, dass der Strom zu diesen Zeitpunkten bereits 300-350 mA beträgt.

Das Blockdiagramm begann sich wie folgt abzuzeichnen:



Jetzt nehmen wir den Bremssattel, ein Blatt Papier in den Händen, und beginnen mit den Messungen, zeichnen den Umriss der Leiterplatte und versuchen, die Komponenten darauf zu platzieren. Eine große CR2032-Batterie wurde aufgegeben und eine kleine CR1220 (oder 1225) wurde verwendet. Für eine sehr lange Zeit wurde ein H-Brücken-Chip ausgewählt, um den Motor zu steuern. Die Auswahl scheint groß zu sein, aber viele dieser Mikroschaltungen können entweder nicht mit einer Versorgungsspannung von 12 V arbeiten, oder sie verwenden Bipolartransistoren mit einem sehr großen Spannungsabfall, oder der Fall ist nicht erfolgreich. Der TB6612-Chip fiel mir zunächst lange nicht auf, und dann schien er für das Löten sehr redundant und unpraktisch zu sein. Aber am Ende habe ich mich auf sie konzentriert - es ist erschwinglich und günstig für Ali. Die dortige H-Brücke ist auf Feldeffekttransistoren aufgebaut und kann bei Spannungen bis 15 Volt betrieben werden. Das DC-DC-Wandlermodul (MP1584DE) wurde vom Modul verlassen - es stellte sich heraus, dass es im Detail einfach billiger war und leicht zu löten war. Aus Gründen der Zuverlässigkeit besteht die Hauptsache darin, den darin enthaltenen Abstimmwiderstand durch einen konstanten zu ersetzen (27 kOhm - dies ergibt eine Ausgangsspannung von 3,4 V). Die Mikroschaltung der Uhr könnte in einem kompakteren Gehäuse verwendet werden, aber es gab eine Einschränkung: Ich wollte alle Komponenten für Ali bestellen, und es bestand die Gefahr, dass ich sie bekam gefälschte oder defekte Schaltkreise. Daher war in der Anfangsphase geplant, alle Mikroschaltungen als Teil der fertigen Module zu kaufen und auf die entwickelte Platine zu löten. Und in den Modulen war die Uhr nur im SO16-Fall. Tatsächlich stellte sich heraus, dass nur eine Uhren-Mikroschaltung defekt oder eine falsche Fälschung war - ihre Quarzfrequenz betrug 32727 bei 32768 kHz.

Nach all den Vorbereitungsarbeiten nehmen wir KiKad, googeln ein bisschen auf der Suche nach fehlenden Sitzen, zeichnen einige Komponenten selbst und beginnen, das Board zu züchten:



Wir überprüfen dies, indem wir im Maßstab 1: 1 drucken. Wir bringen Teile und Module an und bereiten, wenn alle übereinstimmen, Gerber-Dateien für die Produktion vor und senden sie an EasyEda. Nach 3 Wochen bekommen wir 10 süße Taschentücher und sammeln sie.


Es sind noch 5 auf dem Foto, der Rest funktioniert


Modulbaugruppe

Die Löcher für die Befestigungselemente stimmten natürlich nicht ein wenig überein, einige der Sitze fielen nicht so aus, wie sie wollten, aber im Allgemeinen funktionierte das Produkt nach Montage und Firmware sofort. Hermetische Kraftschwänze wurden bei Ali gekauft, durch eine Standard-Druckdichtung im Gebäude geführt, und der WiFi-Kran-Timer erhielt sein Werks-Look:



Hier sind ein paar Kräne im Kampfeinsatz im Land:

an der Post


Aber dann ging der Gedanke wieder weiter. Ich wollte mehr Automatisierung im Land, und das Modul erwies sich als recht kompakt und universell. Über die H-Brücke können Sie ganz einfach ein herkömmliches Relais steuern. Für die DIY-Automatisierung nehmen viele Sonoff, aber es stellt sich heraus, dass ich es selbst nicht schlechter machen kann.

Und hier beginnt die Umwandlung eines einfachen Wi-Fi- Abgriffs in den Codenamen SHAPEsp - kurz für Esp 8266-basierte S mart Home A utomation P latform. Wie geplant sollte dies ein kostengünstiges Universalmodul für die Hausautomation werden. Und all dies sollte zuverlässig sein und nach der Montage in einem erschwinglichen Koffer wie ein fertiges Produkt aussehen.

Überraschenderweise stellte sich heraus, dass im chinesischen Fall mit Aliexpress auf 2DIN das Gerät in Ordnung ist, der Körper im Körper, der beliebte AC / DC 220V / 12V HiLink-Wandler (naja oder sein Klon), das Relais und der Stromanschluss und natürlich mein leicht umgebautes Modul mit ESP8266, Uhr und H-Brücke.

Mach es einmal


Mach zwei


Mach drei

Das Modul kann sowohl im Krankörper als auch im DIN-Rackgehäuse eingebaut werden

Und wir bekommen:



Die Form des Moduls wurde leicht geändert. Ich habe Randverbinder hinzugefügt, damit es im 2DIN-Paket aufrecht stehen kann. Ich habe am oberen Ende der Platine Anzeige-LEDs angebracht, die im Licht eines Kunststoffgehäuses sichtbar sind. Nun, ich habe die Medienplatine für das Relais und die Stromquelle ausgebreitet. Um es billiger zu machen, wurde dies alles mit einem Board in die Produktion geschickt:



Ich habe zwei solcher Prototypen zusammengebaut und sie in die Hütte gestellt, um die Aufnahme von Konvektoren für Winterankünfte zu kontrollieren:

In einem anderen Beitrag

Eines der Module in der Schalttafel neben zwei Schützen, die Konvektoren enthalten

Aber dann beschloss er, es noch weiter zu verbessern und universeller zu machen. Für eine zuverlässigere und bequemere Firmware habe ich das Firmware-Schema von NodeMcu auf dem Modul platziert. Er leitete alle möglichen Stifte ab und fügte Kontaktflächen hinzu, um verschiedene Sensoren bequem anschließen zu können. Alle Randstifte werden in Schritten von 2,54 mm platziert, damit das Modul in das Steckbrett eingesetzt werden kann. Natürlich habe ich den Anschluss des Thermometers ds1820, des kombinierten BME280-Sensors und des Feuchtigkeitssensors am Komparator getestet. Es stellte sich heraus, dass Sie neben einem einfachen Timer mit Relais oder Kran problemlos eine Wetterstation oder beispielsweise ein Aquastop-System bauen können. Nun, alle möglichen anderen Benachrichtigungs- und Kontrollsysteme ...

Mitgenommen, zeichnete ein Modell seines Moduls für Fritzing. So können Sie die verschiedenen Anwendungsoptionen virtuell bewerten und drehen:



Ein Link zum GitHub-Modell befindet sich am Ende des Artikels.

Nun beginnt der schwierigste Teil - die Softwareunterstützung für das Modul. Anfangs habe ich alles mit meiner ziemlich einfachen Arduino-Skizze getestet und getestet. Einfaches HTML, ein bisschen Java-Skript, verschiedene einfache Möglichkeiten zur Datenübertragung, nur die Funktionalität eines Timers und einige Sensoren, die ich brauche. Aber ziemlich schnell wurde klar, dass es nicht so einfach sein würde, alles und jedes in der modernen Welt des IoT und des intelligenten Hausbaus zu beherrschen. Und auch nur Faulheit (hier ist ein lächelnder Smiley). Und manchmal möchte ich das Rad nicht neu erfinden.

Aus diesem Grund wurde entschieden, zu prüfen, welche vorgefertigten Firmware-Programme Sie zur Unterstützung Ihres Moduls hinzufügen können. Als Ausgangspunkt wurden alternative Firmwares für Sonoff-Produkte verwendet: Sonoff-Tasmota, ESPurna, ESPEasy. Die Suche kann vergleichende Bewertungen dieser Firmware finden.

Zum Beispiel:

https://lobradov.imtqy.com/FOSS-Firmware-comparison-overview/

https://lobradov.imtqy.com/FOSS-Firmware-comparison-developers/

In Wirklichkeit habe ich den Quellcode in den Repositories dieser Firmware irgendwie mit meinem Auge durchgearbeitet. Mir wurde klar, dass der einfachste Weg für mich darin besteht, mein Modul zur ESPurna-Firmware hinzuzufügen. Der Firmware-Code war recht vernünftig strukturiert und übernahm zunächst das Hinzufügen neuer Module und Funktionen. In der Firmware befand sich die Timer-Funktionalität, die ich brauchte, der eigenständige Sheduler. Darüber hinaus kann sofort gesagt werden, indem ich einfach meine Konfiguration mit einem einfachen Relais in der Datei hardware.h beschreibe. Ich habe eine funktionierende Version der Firmware des WiFi-Relais erhalten.

Mein Modul hatte jedoch eine umfangreichere und komplexere Funktionalität. Und es wurde beschlossen, zur Firmware beizutragen. Einerseits ist es ganz einfach - wir schreiben Funktionen und führen eine Pull-Anfrage durch, aber in Wirklichkeit ist es ein langweiliger und langer Prozess mit nicht immer einem positiven oder schnellen Ergebnis. Dies sind die Kosten dafür, dass die vorgeschlagene Funktionalität im Großen und Ganzen nur von mir und meinem unbekannten Board benötigt wird.

Ich begann mit der Unterstützung der Uhr. In der ESPurna-Firmware funktionierte alles über NTP und die Zeitbibliothek für Arduino. Historisch gesehen müssen Sie die Uhrzeit kennen, aber Sonoff-Produkte verfügen nicht über eine autonome Uhr und es wird davon ausgegangen, dass sie immer über einen Internetzugang verfügen. Um die RTC-Uhr zu unterstützen, habe ich ein einfaches Modul geschrieben, das auf Wunsch die Zeitanbieterfunktion von reinem NTP auf NTP + RTC ersetzte. Das Prinzip war einfach: Wenn keine NTP-Synchronisation verfügbar ist, versuchen wir, die Zeit von der lokalen RTC-Uhr abzulesen. Wenn der Zugriff auf NTP-Server angezeigt wird, stellen wir die Synchronisierung wieder her und synchronisieren bei Bedarf die lokale Uhr. Also ging die Uhr auf meinem Modul in Arbeit. Die Pull-Anfrage wurde ziemlich schnell angenommen, ging aber an eine separate espurna-rtc-Filiale.

Das nächste war eine triviale Pull-Anfrage. Da ich die Versorgungsspannung zum DC-DC-Wandler messe, um die Batterieentladung zu verfolgen, musste ich nicht die Versorgungsspannung des ESP8266-Moduls überwachen, sondern einige benutzerdefinierte. Was ich als Pull-Anfrage "Unterstützung für benutzerdefinierte VCC-Überwachung hinzufügen" entworfen habe. Aber diese Bitte hing irgendwie in der Luft ... und der Wunsch, etwas beizutragen, ließ irgendwie nach.

Darüber hinaus wurde deutlich, dass das Hinzufügen Ihres Moduls zur Liste der unterstützten fertigen Geräte nicht so einfach ist - es sind viele verschiedene Konfigurationen möglich. Daher wurde beschlossen, einfach die Firmware-Gabel zu entwickeln. Und wenn möglich und um die Synchronisation aufrechtzuerhalten, stellen Sie Pull-Anfragen oder bieten Sie Cherry-Pick im Haupt-Firmware-Repository an.

Nach einer solchen Entscheidung wurde alles einfacher. In der Firmware wurde das Relaissteuerungssystem teilweise neu geschrieben. Der H-Brücken-Steuermodus wurde hinzugefügt und es wurde bequemer, benutzerdefinierte Relais-Betriebsmodi hinzuzufügen.

Weitere Untersuchungen des Firmware-Codes haben gezeigt, dass es nicht möglich ist, ihn umzugestalten. Die Art des Schreibens und Verwendens von Ressourcen an einigen Stellen ist für einen Mikrocontroller sehr grausam (obwohl es sich um ein ziemlich intelligentes 32-Bit-System handelt). Zum Beispiel hat das System zum Ausgeben von Debugging-Nachrichten den Stapel mit großer Geschwindigkeit verschlungen, aber gleichzeitig wurde das Blockieren blockiert, um nicht das gesamte System zu löschen, als die Stapelgröße weniger als 10 KB betrug. Ich habe den Code in meinem Thread ein wenig umgeschrieben, sodass jetzt alle Debugging-Meldungen und Eingabeaufforderungen in der Konsole vollständig angezeigt werden.

Nun, im Moment wurde der Firmware ein Berechnungssubsystem hinzugefügt
Sonnenaufgänge / Sonnenuntergänge und ein virtueller SunriseSensor, sodass Sie aus dem SHAPEsp-Modul ein einfaches astronomisches Relais erstellen können. Es wird notwendig sein, Mut zu fassen und sich für das Hauptlager zu engagieren. Ich denke, dass dies eine nützliche Funktionalität ist.

Hier ist eine Geschichte über die Umwandlung von DIY-Ideen von einem Prototyp zu einem fast fertigen Produkt. Vielleicht ein gefragtes Produkt. Das Erstaunlichste ist, dass ich noch keine Smart-Home-Systeme ausprobiert habe - alle Module arbeiten für mich völlig autonom voneinander und sind einfach über Webschnittstellen im Internet zugänglich. Und einmal gekauft, liegt die OrangePi-PC-Karte in einer Schublade und wartet in den Startlöchern darauf, ein Smart-Home-Controller zu werden.

Liste der Links:

  1. Fritzing Modell und wie ich zusammenkomme Ich denke, dass es in Kikad ein Schaltungs- und Modullayout geben wird
  2. Einfache Test-Firmware für das Modul
  3. ESPurna-Firmware-Gabel mit Modulunterstützung
  4. Das Haupt-Firmware-Repository von ESPurna

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


All Articles