ESP32数据记录器是一种具有经济高效的数据采集系统,该系统支持使用RS-485,TTL协议来支持振动线传感器和其他传感器。要设置数据记录器作为最终用户,您可以将其插入计算机,并使用浏览器在网站中配置记录器。对于高级配置,您可以使用Platformio或Arduino IDE在PC上编程并在PC上刷新记录器。
使用本指南:https://community.platformio.org/t/redirect-esp32-log-messages-to-sd-card/33734 TAG更新esp32-hal-log.h
#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-now-to-install-ftdi-serial-drivers-drivers-on-mac
在
#define ELEGANTOTA_USE_ASYNC_WEBSERVER 1
为了通过USB为ESP32开发套件供电,使用了18650电池。但是,出于生产目的,将设计自定义的PCB,并且该模块应通过3V3或VIN引脚供电,以最大程度地减少功率损耗。为了利用太阳能,采用了18650的盾牌,为ESP32提供了供电。此Aliexpress链接提供了有关盾牌的详细信息。输入电压范围指定为5V至8V,尽管初步测试表明5V太阳能电池板是功能性的。将进一步验证。 SD似乎仅与Vin Pin中的Power一起使用,并在中间有一个雄鹿转换器。
下表概述了各种操作模式下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 |
目前,该设置包括两个0.3W 5V太阳能电池板,能够向盾牌提供最多120mA的120mA。
Logger应使用time.h library的configTime在加速时与NTP服务器同步。使用getLocalTime(&timeinfo)获得当前时间。该功能应在记录函数中调用以获取确切的时间。但是,如果损失电力,就不会保留时间。需要一个RTC模块以在PowerLoss之后提供没有WiFi的时间。注意:不确定当前实现(RTCLIB)是否会定期对NTP服务器进行轮询。但是,Espressif的官方实施会定期进行民意调查。 https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/system/system_time.html
请注意,DS1307和OLED屏幕都连接到I2C总线,但相同的总线但地址不同。库的设计使其可以扫描I2C总线以获取共同地址。使用本指南:https://esp32io.com/tutorials/esp32-ds1307-rtc-module注意,小型RTC模块不适用于3V3,而应提供VIN。
在分区表上的ESPRESSIF文档:https://docs.espressif.com/projects/esp-idf/en/latest/ep32/api-guides/partition-tables.htables.html如果使用平台, .platformio/packages/framework-arduinoespressif32/tools/partitions可以在此目录中找到默认分区
https://components101.com/modules/micro-sd-card-module-pinout-pinout-features-datasheet-alternatives https://www.electronicwings.com/esp32/microsd-card-card-interter-interfacing-ingerfacing-with-with-with-esp32
不确定,按日期存储文件可能就足够了。
WiFi.onEvent()函数用于注册回调函数WiFiEvent ,当WiFi事件发生时将调用。在WiFiveent函数中,我们检查SYSTEM_EVENT_STA_DISCONNECTED事件,表明WiFi断开连接。当此事件发生时,我们将reconnectToWiFi()拨打重新连接。这样,重新连接逻辑被封装在Wifivent回调中,使loop()函数无重新连接相关的代码。
托多。当单击物理按钮开关时,触发此功能,ESP32将以WiFi访问点开始,以允许用户通过WiFi连接到它。设备配置网站将通过WiFi提供。 https://dronebotworkshop.com/wifimanager/阅读此问题,以了解如何从ESP32,link删除WiFi设置。否则,ESP32将启动并自动使用先前的设置,真的会弄乱。
ESP32应从接入点请求静态IP(例如WiFi路由器,LTE路由器);另一种方法是在Router Admin页面中为ESP32设置静态IP。路由器可能具有动态的IP地址,除非从ISP购买静态IP,否则该路由器可能每隔几天过期。 TODO:ESP32 API将IP更新为管理服务器。
对于大多数民用基础设施应用程序,低延迟监控并不关键并且数据速率并不高,劳拉万(Lorawan)作为行业标准出现。但是,在要求更高数据速率的情况下,现在可以利用ESP用于较短的距离项目。对于更长的距离项目,替代方法可能涉及将其他单元调制解调器集成到每个站点,并放弃站点之间的互连。 ESP现在 - 同行ESP32通信
参考:Andreas Spiess的Lorawan简介。
| 方面 | 尤其是现在 | 洛万 |
|---|---|---|
| 范围 | 短距离,本地 | 远距离区域 |
| 功耗 | 低功率 | 超低功率 |
| 数据速率 | 高数据速率,实时 | 低数据速率,针对范围进行了优化 |
| 拓扑 | 点对点(P2P) | 明星 |
| 可伸缩性 | 中小网 | 大规模网络 |
| 监管 | 2.4 GHz ISM频段 | 亚吉格赫兹ISM乐队 |
| 基础设施 | 包含在Bare ESP32模块中 | 需要网关设备 |
进行研究后,似乎实施Lorawan需要门户设备。但是,选择ESP-NOW提供了一种替代解决方案,并可以探索范围扩展的可能性。预算可用时,可以添加Lorawan。
如果不需要Lora网关,则所有ESP32设备的固件都可以保持相似。只有“网关设备”或主站需要调整才能处理来自远程客户端的HTTP请求的数据通信和数据表组合。变电站仍应支持本地WiFi通信,并在没有单元格服务的地区为用户提供网页。
该设备将通过WiFi Manager接口进行配置,该接口实质上是为用户设置模式的网站提供服务。
ESP-32 DEV板带有外部天线连接可用:ESP32-Woom-U。应在城市和农村地区进行尤其远程模式。
数据记录功能应支持不同的日志记录模式。可以根据所使用的协议进行概括:I2C,SPI,RS485等。在发送ESP-NOW之前,应首先将读数保存在设备上。在删除文件之前需要确认。
与新外围设备接口时,此GPIO PIN监视器可以为原型设计提供远程监视的用户接口。
待有测试尚未振动电线传感器,模拟传感器,SaaS。我想拥有相同的功能:https://www.geo-instruments.com/technology/wireless-logger-networks/
使用ESP32 VIN进行电源,万用表显示约4.5V的电压。将ESP32 VIN连接到VM501上的V33,GND与GND。将UART端口1用GPIO16初始化为RX,而GPIO17则将UART端口17初始化为TX。运行HardwareSerial VM(1);在ESP32上配置UART端口。运行VM.begin(9600, SERIAL_8N1, 16, 17);将UART端口1用GPIO16初始化为RX和GPIO17为TX。 vm.本项目中实现的serial UART协议函数基于Modbus协议:
目前,未经许可用于商业应用程序,使用了Elegant Free版本。文档:https://docs.elegantota.pro/对于商业应用,可以开发一个简单的Arduino Ota包装库,以避免Elegantota。 Todo Develope自己的OTA版本以避免限制。重要的是,请记住要在./pio/libdeps/esp32dev/ElegantOTA中启用ElegantOTA.h中的异步WebServer opetion。
在端口80上创建了异步工具的实例。设置了回调函数,以通过响应Spiffs文件系统中存储的文件的内容来处理root(“/”)的传入HTTP获取请求。调整文件名变量以匹配所需的文件。配置服务器后,它以server.begin()启动。
使用prexprence.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"
},
]
记录仪应在路由/api/readings上列出时间,以获取时间播放的请求。客户端可以指定sensorId , start和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/ dashboard:https://github.com/ayushsharma82/esp-dash github参考