Heim > Web-Frontend > js-Tutorial > Hauptteil

RTC-Design mit automatischer Cloud-Kalibrierung für einen einfachen programmierbaren Controller auf Basis von ESP6

Patricia Arquette
Freigeben: 2024-10-20 14:35:29
Original
426 Leute haben es durchsucht

Im Automatisierungssteuerungssystem von Industrie und Landwirtschaft ist die Echtzeituhr (RTC) eine sehr wichtige Funktion.

Zum Beispiel die Landwirtschaft des festgelegten Zeitraums der automatischen Bewässerung, jeden Tag zwischen 8:00 und 9:00 Uhr, um das Bewässerungsmagnetventil automatisch zu öffnen;

Für diese Funktion muss der Controller über eine RTC-Uhr und einen Kalender verfügen, um die Ausführung des Ausgangs zur Steuerung des Ein-/Ausschaltens des Magnetventils zu bestimmen;

Eine wichtige Funktion der RTC-Uhr besteht darin, dass der Controller nach einem Stromausfall weiterhin über die Batterie mit Strom versorgt wird, was erfordert, dass die Stromversorgung des RTC-Moduls von der Stromversorgung der anderen Teile des Prozessors getrennt ist. und der Betriebsstrom sollte sehr niedrig sein, um sicherzustellen, dass die Uhr nach einem Stromausfall noch lange genug läuft, um die Zeit aufrechtzuerhalten.
Der STM32F103-Prozessor verfügt beispielsweise über einen separaten VBAT-Pin für die RTC-Modulfunktion. Der Betriebsstrom des RTC-Moduls beträgt etwa 2 uA. Bei Verwendung einer wiederaufladbaren 5-mAh-Knopfzellenbatterie kann die Uhrhaltezeit 208 Tage erreichen .

Darüber hinaus benötigt die RTC-Uhr auch einen Niederfrequenz-32,768-k-Quarz, um eine Uhr bereitzustellen, die den Zweck eines geringen Stromverbrauchs erreicht. Passive Quarze können im Allgemeinen eine Genauigkeit von etwa 30 ppm erreichen, der Zeitfehler eines Jahres beträgt etwa 15 Minuten.
Aktive Quarzoszillatoren können im Allgemeinen eine Genauigkeit von etwa 5 ppm erreichen; Der Zeitfehler beträgt etwa 2 Minuten pro Jahr.

ESP8266 verfügt nicht über ein solches RTC-Modul. Wenn die Schnittstelle über den externen I2C-RTC-Chip erfolgt, erhöhen sich die Produktkosten und können den Verkaufspreis von etwa 30 RMB nicht erreichen.

Aber der Vorteil von ESP8266 ist die einfache Verbindung mit dem Internet, Sie können die Zeit automatisch über das Internet kalibrieren.

Daher habe ich über die Software ein RTC-Uhrmodul entworfen. Die übliche Vorgehensweise besteht darin, den Code des ewigen Kalenders zu schreiben, die Sekunden zu zählen, die Minuten, Stunden, Tage der Rundung sowie das Schaltjahr zu behandeln. der Monat und eine Reihe von Ausgaben;

Der ESP8266 bietet zwei Funktionen, mktime und localtime, die die gegenseitige Konvertierung von Kalender und Zeitstempel realisieren können.
Bei Verwendung dieser beiden Funktionen müssen nur die Sekunden gezählt und dann in den Kalender umgewandelt werden. Der Wochentag kann anhand der Caille-Formel aus Jahr, Monat und Tag des Jahres berechnet werden.

Wenn im TCP-Servercode des Cloud-Servers eine Heartbeat-Nachricht vom Controller empfangen wird, analysiert der Server den aktuellen Zeitwert des Controllers in der Nachricht und vergleicht ihn mit der Zeit des Servers, und wenn die Differenz überschritten wird einen bestimmten Wert, dann sendet der Server den Befehl, die Zeit einzustellen und die Zeit des Controllers zu kalibrieren.

Im Code des Controllers werden zwei Variablen V225 und V226 verwendet, um den Status der Kalibrierungszeit aufzuzeichnen, wobei V225 nach dem Einschalten des Controllers auf Null gelöscht wird und auf 1 gesetzt wird, wenn ein Kalibrierungszeitbefehl vom Server kommt wird empfangen und der Vorgang zum Ändern der Zeit wird ausgeführt;
V226 wird nach dem Einschalten auf Null zurückgesetzt und in 1-Sekunden-Takten auf den Maximalwert akkumuliert. Erst wenn der Controller vom Server kalibriert wird, wird er wieder auf Null zurückgesetzt und akkumuliert weiter.

Benutzer können mithilfe eines Skripts programmieren, um zu beurteilen, ob die Variable V225 1 ist, bevor sie einige Aktionen ausführen, um sicherzustellen, dass die Steuerungsuhr für die Automatisierungssteuerung korrekt ist.

Sie können V226 auch über einen bestimmten Wert, die Implementierung des Ausgangs, die Steuerung von Ton- und Lichtalarmgeräten beurteilen, sodass im Controller nicht die richtige Zeit und die sofortige Alarmerinnerung abgerufen werden können.

Eine andere Idee ist, dass einige Controller nicht vernetzt werden können, um die Zeit automatisch zu korrigieren. Sie können den Zeitstempel im FLASH speichern, den Controller nach einem Stromausfall neu starten, um den gespeicherten Zeitstempel vom FLASH zu lesen, um mit der Zeit fortzufahren, damit der Controller wird die Zeit beim Neustart nicht auf den Standardwert zurücksetzen, ein Stromausfall, der durch den Zeitfehler für das Zeitintervall zwischen den gespeicherten Zeitstempeln plus der Zeit des Stromausfalls verursacht wird.

Das Problem besteht darin, dass die Zeiten, in denen FLASH gelöscht werden kann, begrenzt sind und der integrierte FLASH des Moduls nur etwa 1000 Mal gelöscht werden kann.
Wenn die Zeitstempel in 1-Stunden-Intervallen gespeichert werden, halten 1000 Löschvorgänge für den Controller etwa 41 Tage.
Das ist eindeutig inakzeptabel.

RTC design with automatic cloud calibration for simple programmable controller based on ESP6

RTC design with automatic cloud calibration for simple programmable controller based on ESP6

Das obige ist der detaillierte Inhalt vonRTC-Design mit automatischer Cloud-Kalibrierung für einen einfachen programmierbaren Controller auf Basis von ESP6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!