ESP32データロガーは、RS-485、TTLプロトコルを備えた振動ワイヤーセンサーおよびその他のセンサーをサポートするコスト効率の良いデータ収集システムです。データロガーをエンドユーザーとして設定するには、コンピューターに接続し、ブラウザを使用してWebサイトでロガーを構成できます。高度な構成については、PlatformIoまたはArduino IDEを使用して、独自のコードをプログラムしてPCでロガーをフラッシュできます。
このガイドを使用してください:https://community.platformio.org/t/redirect-esp32-log-messages-to-sd-card/33734、ESP32-hal-log.h esp32-hal-log.h更新してTAGを定義します
#ifdef USE_ESP_IDF_LOG
#ifndef TAG
#define TAG "myAPP"
#endif
platformio.iniを含めるように更新します。
build_flags= -DUSE_ESP_IDF_LOG -DCORE_DEBUG_LEVEL=5
次のライブラリと定義を含めます。
#include "esp_log.h"
#include "esp32-hal-log.h"
#define LOG_LEVEL ESP_LOG_WARN
#define MY_ESP_LOG_LEVEL ESP_LOG_INFO
Mac OSドライバーの問題:https://arduino.stackexchange.com/questions/91111/how-to-install-ftdi-serial-drivers on-mac
Async Webサーバーを有効にします
#define ELEGANTOTA_USE_ASYNC_WEBSERVER 1
USBを介してESP32開発キットに電力を供給するために、18650のバッテリーが利用されています。ただし、生産目的のために、カスタムPCBが設計され、モジュールは3V3またはVINピンを介して電力を供給して電力損失を最小限に抑える必要があります。太陽光発電を活用するために、18650シールドが採用され、ESP32への電源が促進されます。このAliexpressリンクは、シールドの詳細を提供します。入力電圧範囲は5V〜8Vとして指定されていますが、予備テストでは5Vソーラーパネルが機能していることが示唆されています。さらなる検証が実施されます。 SDは、Vin Pinの電力でのみ動作し、その間にバックコンバーターがあります。
次の表は、さまざまな動作モードでのESP32の現在の消費の概要を示しています。
| モード | 現在の消費 |
|---|---|
| wifi tx、dsss 1 mbps、pout = +19.5 dbm | 240 Ma |
| wifi tx、ofdm 54 mbps、pout = +16 dbm | 190 Ma |
| wifi tx、ofdm mcs7、pout = +14 dbm | 180 Ma |
| wifi rx(リスニング) | (95〜100)MA |
| BT/BLE TX、POUT = 0 dBM | 130 Ma |
| BT/BLE RX(リスニング) | (95〜100)MA |
現在、セットアップには2つの0.3W 5Vソーラーパネルが含まれており、最大120MAをシールドに供給できます。
Loggerは、 time.hライブラリのconfigTimeを使用して、電源アップ時にNTPサーバーと同期する必要があります。 getLocalTime(&timeinfo)を使用して、現在の時間を取得します。この関数は、正確な時間を取得するためにロギング関数内で呼び出される必要があります。ただし、電力が失われた場合、時間は維持されません。 PowerLossの後にWiFiなしで時間を提供するには、RTCモジュールが必要です。注:現在の実装(RTCLIB)が定期的にNTPサーバーを投票するかどうかはわかりません。ただし、Espressifによる官能的な実装は定期的に投票します。 https://docs.espressif.com/projects/esp-idf/en/esp32/api-reference/system/system_time.html
DS1307とOLEDスクリーンの両方が、同じバスであるが異なる住所にI2Cバスに接続されていることに注意してください。ライブラリは、I2Cバスをスキャンして一般的なアドレスをスキャンできるように設計されています。このガイドを使用してください:https://esp32io.com/tutorials/esp32-ds1307-rtc-module小さなRTCモジュールは3v3で動作しないことに注意してください。代わりにVINを提供する必要があります。
Espressif documentation on partition tables: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-tables.html If using PlatformIO, the default partition can be found in this directory: .platformio/packages/framework-arduinoespressif32/tools/partitions
https://components101.com/modules/micro-sd-card-module-card-module-pinout-features-datasheet-alternative https://www.electronicwings.com/esp32/microsd-card-interfacing-with-asp32
確かではありませんが、日付でファイルを保存するだけで十分かもしれません。
WiFi.onEvent()関数は、wifiイベントが発生したときに呼び出されるコールバック関数であるWiFiEventを登録するために使用されます。 wifievent関数では、 SYSTEM_EVENT_STA_DISCONNECTEDイベントを確認し、wifiの切断を示します。このイベントが発生したら、 reconnectToWiFi()を呼び出して再接続を試みます。このようにして、再接続ロジックはWifieventコールバックにカプセル化され、ループ()関数が再接続に関連するコードのない状態に保たれます。
トト。この関数は、物理的なプッシュボタンスイッチがクリックされるとトリガーされ、ESP32はWiFiアクセスポイントとして起動して、ユーザーがWiFiを介して接続できるようにします。 WiFiを介してデバイス構成Webサイトが提供されます。 https://dronebotworkshop.com/wifimanager/この問題を読んで、ESP32、リンクからWiFi設定を消去する方法を学びます。それ以外の場合、ESP32は起動して以前の設定を自動的に使用しますが、本当に台無しになります。
ESP32は、アクセスポイント(WiFiルーター、LTEルーターなど)から静的IPを要求する必要があります。別のアプローチは、ESP32のルーター管理ページに静的IPを設定することです。ルーターには、ISPから静的IPが購入されない限り、数日ごとに期限切れになる可能性のある動的なIPアドレスがある場合があります。 TODO:ESP32 APIは、IPを管理サーバーに更新します。
低遅延の監視が重要ではなく、データレートが過度に高くないほとんどの民間インフラアプリケーションでは、ロラワンは業界標準として登場します。ただし、より高いデータレートを要求するシナリオでは、ESPをより短い距離プロジェクトに活用できるようになりました。長い距離プロジェクトの場合、代替アプローチには、追加のセルモデムを各ステーションに統合し、ステーション間の相互接続を放棄することが含まれます。 ESP Now - ピアツーピアESP32通信
リファレンス:アンドレアススパイスによるロラワンへのイントロ。
| 側面 | ESP-NOW | ロラワン |
|---|---|---|
| 範囲 | 短距離、地元のエリア | 長距離、広い領域 |
| 消費電力 | 低電力 | 超低力 |
| データレート | 高いデータレート、リアルタイム | 範囲向けに最適化された低データレート |
| トポロジー | ピアツーピア(P2P) | スターオブスター |
| スケーラビリティ | 小規模から中程度のネットワーク | 大規模なネットワーク |
| 規制 | 2.4 GHz ISMバンド | サブギガヘルツISMバンド |
| インフラストラクチャー | Bare ESP32モジュールに含まれています | ゲートウェイデバイスが必要です |
研究を行った後、Lorawanを実装するにはゲートウェイデバイスが必要であるように見えます。ただし、ESP-nowを選択すると、代替ソリューションが提供され、範囲拡張の可能性を調査できます。ロラワンは、予算が利用可能になったときに追加できます。
LORAゲートウェイが不要な場合、すべてのESP32デバイスのファームウェアが同様のままになる可能性があります。 「ゲートウェイデバイス」またはメインステーションのみが、リモートクライアントからのHTTP要求のデータ通信とデータテーブルの組み合わせを処理するための調整が必要です。変電所は、ローカルWiFi通信をサポートし、セルサービスのないエリアのユーザー向けのWebページを提供する必要があります。
このデバイスは、WiFi Managerインターフェイスを介して構成されます。これは、ユーザーがモードを設定するためにWebサイトを提供していることです。
ESP-32外部アンテナ接続を備えたDEVボードが利用可能です:ESP32-WROOM-U。 ESP-NOWの長距離モードは、都市部と農村部の両方で調査する必要があります。
データロギング関数は、さまざまなロギングモードをサポートする必要があります。 I2C、SPI、RS485などのプロトコルに基づいて一般化できます。ESPノーを送信する前に、最初にデバイスに測定値を保存する必要があります。ファイルを削除する前に確認が必要です。
新しい周辺機器とインターフェースするとき、このGPIO PINモニターは、プロトタイピング用のリモート監視ユーザーインターフェイスを提供できます。
TODOはまだ振動するワイヤーセンサー、アナログセンサー、SAASをテストしていません。同じ機能が必要です:https://www.geo-instruments.com/technology/wireless-logger-networks/
ESP32 VINを使用して電源を供給し、マルチメーターは約4.5Vの電圧を示します。 ESP32 VINをVM501でV33に接続し、GNDにGNDに接続します。 gpio16をrxとして、gpio17をtxとしてuartポート1を初期化します。 HardwareSerial VM(1); ESP32でUARTポートを構成するには。 VM.begin(9600, SERIAL_8N1, 16, 17); gpio16をrxとして、gpio17をtxとしてuartポート1を初期化します。このプロジェクトで実装されているVM.Serial UARTプロトコル関数は、ModBusプロトコルに基づいています。
現在、Elegantota無料版は、商用アプリケーションのライセンスなしで使用されています。 documentaion:https://docs.elegantota.pro/商用アプリケーションについては、Elegantotaを避けるために簡単なArduino OTAラッパーライブラリを開発できます。制限を避けるために、TODO Develope独自のOTAのバージョン。 ./pio/libdeps/esp32dev/ElegantOTAなことに、 ElegantOTA.hのasync webサーバーオペティションを有効にすることを忘れないでください。
Asyncwebserverのインスタンスはポート80に作成されます。コールバック関数は、Spiffsファイルシステムに保存されているファイルのコンテンツで応答することにより、ルート( "/")で着信HTTP Get Requestsを処理するように設定されています。目的のファイルに一致するように、ファイル名変数を調整します。サーバーを構成した後、 server.begin()で開始されます。
Preference.hライブラリを使用してインポレット化されています。
credentials
{
"WIFI_SSID": "*********",
"WIFI_PASSWORD": "**********",
"gmtOffset_sec": "************"
}
マスターロガーには、すべての変電所システム情報のマスターリストが必要です。
[
{
"macAddress": "30:83:98:00:52:8C",
"batteryVoltage": "3.7V"
},
{
"macAddress": "30:83:98:00:52:8C",
"batteryVoltage": "3.7V"
},
]
ロガーは、Timeseriesリクエストのルート/api/readingsでlitenする必要があります。クライアントは、 sensorId 、 start and end 、およびreadingsOptions指定できます。サンプルリクエストは次のように見える必要があります。
/api/readings?sensorId=238&start=2024-02-06T13:40:00&end=2024-02-13T13:40:00&readingsOptions=0
Qiwei Maoによって作成されました
ランダムオタクチュートリアル:https://randomnerdtutorials.com/projects-esp32/ダッシュボード:https://github.com/ayushsharma82/esp-dash githubリファレンスhttps://github.com/topics/sensors-data-celectrection