ホームページ >ウェブフロントエンド >jsチュートリアル >ESP6 ベースのシンプルなプログラマブル コントローラー用の自動クラウド キャリブレーションを備えた RTC 設計
産業や農業の自動化制御システムにおいて、リアルタイム クロック (RTC) は非常に重要な機能です。
例えば、自動水やりの指定時間帯の農業では、毎日8:00〜9:00の間に電磁弁が自動的に開き、水やりが行われます。
この機能では、コントローラーに RTC クロックと、ソレノイド バルブのオン/オフを制御する出力の実行を決定するカレンダーが必要です。
RTC クロックの重要な機能は、停電後もコントローラーがバッテリーから電力を供給され続けることです。そのためには、RTC モジュールの電源をプロセッサーの他の部分の電源から分離する必要があります。また、停電後のクロックが時間を維持するのに十分な長さを保証するために、動作電流は非常に低くなければなりません。
たとえば、STM32F103 プロセッサには、RTC モジュール機能用に別の VBAT ピンがあり、RTC モジュールの動作電流は約 2uA 程度です。5mAh の充電式コイン電池電源を使用した場合、クロック保持時間は 208 日に達します。 .
さらに、RTC クロックには、低消費電力の目的を達成するためのクロックを提供するために、低周波数 32.768k クリスタルも必要です。パッシブクリスタルは一般に約 30ppm の精度に達し、年間の時間誤差は約 15ppm です。分。
アクティブ水晶発振器は通常、約 5ppm の精度を達成できます。時間の誤差は年間約 2 分です。
ESP8266 にはそのような RTC モジュールがありません。I2C 外部 RTC チップを介したインターフェイスの場合、製品のコストが増加し、約 30 RMB の販売価格に達することができません。
しかし、ESP8266 の利点は、インターネットへの接続が簡単で、インターネットを通じて時刻を自動的に校正できることです。
そこで、ソフトウェアを介して RTC クロック モジュールを設計しました。通常は、秒を数え、分、時間、四捨五入の分、時、日、閏年を処理する永久カレンダーのコードを作成します。その月と一連の問題;
ESP8266 は、カレンダーとタイムスタンプの相互変換を実現できる mktime と localtime の 2 つの関数を提供します。
これら 2 つの関数を使用すると、秒を数えるだけでカレンダーに変換でき、カイユの公式によって年、月、日から曜日を計算できます。
クラウド サーバーの TCP サーバー コードでは、コントローラーからハートビート メッセージを受信すると、サーバーはメッセージ内のコントローラーの現在の時刻値を解析してサーバーの時刻と比較し、その差が を超えると、特定の値を指定すると、サーバーは時間を設定し、コントローラーの時間を調整するコマンドを送信します。
コントローラーのコードでは、2 つの変数 V225 と V226 を使用して校正時間の状態を記録します。V225 はコントローラーの電源投入後にゼロにクリアされ、サーバーからの校正時間コマンドが送信されると 1 に設定されます。受信され、時刻を変更する操作が実行されます。
V226 は電源投入後にゼロにクリアされ、1 秒以内に最大値まで累積されます。コントローラーがサーバーによって校正された場合にのみ、再度ゼロにクリアされて累積を続けます。
ユーザーは、いくつかのアクションを実行する前に、スクリプトをプログラムして変数 V225 が 1 であると判断し、コントローラーのクロックが自動化制御に対して正確であることを確認できます。
また、V226 が特定の値を超えているかどうかを判断し、出力を実装し、音と光の警報装置を制御して、コントローラーで正確な時刻を取得できないようにし、即時にアラームを通知することもできます。
もう 1 つのアイデアは、一部のコントローラーは時刻を自動的に修正するためにネットワークに接続できないため、タイムスタンプをフラッシュに保存でき、停電後にコントローラーが再起動してフラッシュから保存されたタイムスタンプを読み取って時間を計測し続けることができるため、コントローラーは再起動が発生しても、時刻はデフォルト値にリセットされません。電源障害は、保存されたタイムスタンプ間の時間間隔に電源障害の時間を加えた時間エラーによって引き起こされます。
問題は、FLASH の消去回数に制限があり、モジュール内蔵の FLASH は 1000 回程度しか消去できないことです。
タイムスタンプが 1 時間間隔で保存される場合、1000 回の消去がコントローラーで約 41 日間持続します。
これは明らかに容認できません。
以上がESP6 ベースのシンプルなプログラマブル コントローラー用の自動クラウド キャリブレーションを備えた RTC 設計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。