Logger Data Logger ESP32-это экономическая система сбора данных, которая поддерживает вибрирующие проволочные датчики и другие датчики с протоколом TTL RS-485. Чтобы настроить регистратор данных в качестве конечного пользователя, вы можете подключить его к компьютеру и настроить журнал на веб -сайте с помощью браузера. Для расширенных конфигураций вы можете запрограммировать свой собственный код и вспыхивать журнал на ПК, используя Platformio или Arduino IDE.
Используйте это руководство: https://community.platformio.org/t/redirect-esp32-log-messages-to-sd-card/33734, обновите 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-crivers-on-mac
Включить Async Webserver в
#define ELEGANTOTA_USE_ASYNC_WEBSERVER 1
Для питания комплекта разработки ESP32 через USB используется батарея 18650 года. Тем не менее, для производственных целей будет разработана пользовательская печатная плата, и модуль должен работать с помощью 3V3 или VIN PIN, чтобы минимизировать потерю мощности. Чтобы использовать солнечную энергию, используется щит 18650 года, способствуя источнику питания для ESP32. Эта ссылка Aliexpress содержит подробную информацию о щите. Диапазон входного напряжения указан как от 5 В до 8 В, хотя предварительные тесты предполагают, что солнечная панель 5 В является функциональной. Дополнительная проверка будет проведена. SD, кажется, работает только с мощностью от Vin Pin с конвертером Buck.
В следующей таблице рассказывается о текущем потреблении ESP32 в различных режимах эксплуатации:
| Режим | Текущее потребление |
|---|---|
| Wi -Fi TX, DSSS 1 Мбит / с, Pout = +19.5 дБм | 240 мА |
| Wi -Fi TX, OFDM 54 Мбит / с, Pout = +16 дБм | 190 мА |
| Wi -Fi TX, OFDM MCS7, POUT = +14 дБм | 180 мА |
| Wi -Fi RX (прослушивание) | (95 ~ 100) MA |
| Bt/ble TX, Pout = 0 дБм | 130 мА |
| Bt/ble rx (слушание) | (95 ~ 100) MA |
В настоящее время настройка включает в себя две солнечные панели 0,3 Вт 5 В, способные поставлять максимум 120 мА на щит.
Регистратор должен синхронизироваться с NTP-сервером после питания с помощью configTime из библиотеки time.h Используйте getLocalTime(&timeinfo) , чтобы получить текущее время. Эта функция должна вызывать в функции журнала, чтобы получить точное время. Однако время не будет сохранено, если власть будет потеряна. Модуль RTC необходим для обеспечения времени без Wi -Fi после PowerLoss. Примечание. Не уверен, будет ли текущая реализация (RTCLIB) периодически опросить сервер NTP. Тем не менее, официальные реализации эспрессора периодически проводят опрос. https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/system_time.html
Обратите внимание, что как DS1307, так и OLED -экран подключены к шине I2C, на том же шине, но другой адрес. Библиотеки разработаны таким образом, чтобы они могли сканировать автобус I2C на предмет общих адресов. Используйте это руководство: https://esp32io.com/tutorials/esp32-ds1307-rtc-module.
Эспресс-документация в таблицах раздела: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-table.html Если использование платформы, разделение по умолчанию .platformio/packages/framework-arduinoespressif32/tools/partitions
https://components101.com/modules/micro-sd-card-module-b
Не уверен, что хранить файлы по дате может быть достаточным.
Функция WiFi.onEvent() используется для регистрации функции обратного вызова, WiFiEvent , которая будет вызвана при возникновении событий Wi -Fi. В функции Wifievent мы проверяем событие SYSTEM_EVENT_STA_DISCONNECTED , указывающее отключение Wi -Fi. Когда это событие происходит, мы называем reconnectToWiFi() чтобы попытаться повторно соединение. Таким образом, логика повторного подключения инкапсулируется в обратном вызове Wifievent, сохраняя функцию Loop () свободной от кода, связанного с переподключением.
Тодо. Эта функция запускается при нажатии на переключатель Physical Pown, ESP32 запустится как точка доступа WiFi, чтобы позволить пользователю подключаться к нему через WiFi. Веб -сайт конфигурации устройства будет обслуживаться через Wi -Fi. https://dronebotworkshop.com/wifimanager/ Прочитайте эту проблему, чтобы узнать, как стереть настройки WiFi из ESP32, ссылка. В противном случае ESP32 будет загружаться и автоматически использовать предыдущие настройки, действительно может испортить.
ESP32 должен запросить статический IP с точки доступа (например, маршрутизатор WiFi, маршрутизатор LTE); Другой подход - установить статический IP на странице администратора маршрутизатора для ESP32. Маршрутизатор может иметь динамический IP -адрес, который может истекать каждые несколько дней, если только статический IP не будет приобретен у ISP. TODO: ESP32 API для обновления IP -сервера управления.
Для большинства приложений для гражданской инфраструктуры, где мониторинг с низкой задержкой не критичен, а показатели передачи данных не слишком высоки, Лораван появляется в качестве отраслевого стандарта. Тем не менее, в сценариях, требующих более высоких показателей передачи данных, ESP теперь может быть использован для более коротких дистанционных проектов. Для более длительных дистанционных проектов альтернативный подход может включать интеграцию дополнительных клеточных модемов в каждую станцию и отказ от взаимодействия между станциями. ESP Now - Peer to Peer ESP32 Communications
Ссылка: вступление в Лораван от Андреаса Списса.
| Аспект | Esp-now | Лораван |
|---|---|---|
| Диапазон | Краткий расстояние, местная область | Большой, широкая площадь |
| Энергопотребление | Низкая мощность | Ультра-низкая сила |
| Скорость передачи данных | Высокие показатели передачи данных, в режиме реального времени | Низкие показатели передачи данных, оптимизированные для диапазона |
| Топология | Одноранговая (P2P) | Звезды-звезд |
| Масштабируемость | Небольшие и средние сети | Крупномасштабные сети |
| Регулирующий | 2,4 ГГц ISM Band | Sub-Gigahertz ISM Bands |
| Инфраструктура | Включен в модуль голой ESP32 | Требуются устройства шлюза |
После проведения исследований представляется, что внедрение Lorawan требуют устройств Gateway. Тем не менее, выбор ESP-NOW обеспечивает альтернативное решение и позволяет исследовать возможности расширения диапазона. Лораван может быть добавлен, когда бюджет доступен.
Если шлюз Lora не нужен, прошивка для всех устройств ESP32 может оставаться одинаковой. Только «устройство шлюза» или основная станция нуждается в корректировке для обработки передачи данных и комбинации таблиц данных для HTTP -запросов от удаленных клиентов. Подстанции по -прежнему должны поддерживать локальную связь Wi -Fi и обслуживать веб -страницы для пользователей в областях без сотовой службы.
Устройство будет настроено через интерфейс Wi -Fi Manager, который по сути обслуживает веб -сайт для пользователей для установки режимов.
ESP-32 DEV Платы с доступными внешними антенными соединениями рекомендуется: ESP32-Wroom-U. Режим долгосрочной перспективы ESP должен быть исследован как в городских, так и в сельских районах.
Функция журнала данных должна поддерживать различные режимы журнала. Может быть обобщен на основе используемого протокола: i2c, spi, rs485 и т. Д. Показания должны быть сначала сохранены на устройстве, прежде чем отправлять esp-now. Подтверждение необходимо перед удалением файла.
При взаимодействии с новыми периферийными устройствами этот монитор GPIO может обеспечить удаленный мониторинг пользовательского пользователя для прототипирования.
Тодо еще не протестировал датчики вибрирующих проводов, аналоговые датчики, SaaS. Я хочу иметь такие же возможности: https://www.geo-instruments.com/technology/wireless-logger-networks/
Используйте ESP32 VIN для источника питания, Multimeter показывает напряжение приблизительно 4,5 В. Подключите ESP32 VIN к V33 на VM501, GND к GND. Инициализируйте порт 1 UART с GPIO16 как RX и GPIO17 как TX. Запустить HardwareSerial VM(1); Чтобы настроить порт UART на ESP32. Запустить VM.begin(9600, SERIAL_8N1, 16, 17); Для инициализации порта 1 UART с GPIO16 как RX и GPIO17 как TX. Функции протокола VM.Serial UART, реализованные в этом проекте, основаны на протоколе Modbus:
В настоящее время бесплатная версия Elegantota используется без лицензирования для коммерческих приложений. DocumentAion: https://docs.elegantota.pro/ Для коммерческих приложений может быть разработана простая библиотека обертки Arduino OTA, чтобы избежать Elegantota. Todo Develope Собственная версия OTA, чтобы избежать ограничений. ./pio/libdeps/esp32dev/ElegantOTA отметить, что не забудьте включить асинхронное веб -сервер в ElegantOTA.h .
Экземпляр Asyncwebserver создается в порту 80. Функция обратного вызова настраивается для обработки входящих запросов http get в корне ("/"), отвечая содержимым файлом, хранящимся в файловой системе Spiffs. Настройте переменную имя файла, чтобы соответствовать желаемому файлу. После настройки сервера он начинается с 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"
},
]
Регистратор должен быть нанесен по маршруту /api/readings для запросов Timessheries. Клиент может указать sensorId , start и end и readingsOptions . Пример запроса должен выглядеть следующим образом:
/api/readings?sensorId=238&start=2024-02-06T13:40:00&end=2024-02-13T13:40:00&readingsOptions=0
Создан Qiwei Mao
Случайные учебники NERD: https://randomnerdtutorials.com/projects-esp32/ Dashboard: https://github.com/ayushsharma82/esp-dash github Ссылка на https://github.com/topics/sensors-data-collection https://github.com/topics/sensors-data-collection