Интернет-приборная панель для измерителя уровня воды включает в себя веб-интерфейс, который служит основой для визуализации измерений. Веб-приложение позволяет регистрировать данные о высоте уровня воды в скважине с использованием сенсорного узла - микроконтроллера. Измерение уровня воды производится с использованием ультразвуковых датчиков, таких как HC-SR04 или его водонепроницаемая версия JSN-SR04T. В текущей реализации программы также могут использоваться другие датчики с сигналами триггера/эха серий RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™. Сенсорный узел регулярно выполняет 10 усредненных измерений ультразвуковым датчиком каждые 5 минут. Полученное значение передается на сервер через выбранный интерфейс (WiFi/Ethernet/IoT-сеть LoRaWAN/NB-IoT/Sigfox). Текущие данные о высоте уровня воды отображаются пользователю на приборной панели вместе с преобразованием в объем скважины и тенденцией уровня по сравнению с предыдущим измерением. Исторические данные о высоте уровня воды также доступны пользователю в табличной или графической визуализации с линейными графиками. Веб-интерфейс отзывчив и может адаптироваться к экранам смартфонов, компьютеров, планшетов и Smart TV. При получении данных бэкенд корректирует измеренный уровень воды на фактический на основе известной глубины скважины, поскольку датчик отправляет только дифференциальный уровень воды. С учетом реальной высоты уровня воды и известного диаметра скважины веб-интерфейс также может определить объем скважины в литрах.
Принцип работы ультразвуковых датчиков заключается в отправке триггерного сигнала длиной 10 мкс (микросекунд), который отражается от поверхности воды и возвращается в приемник - эхо. Метод "Time-of-Flight" используется для расчета времени между отправкой и получением сигнала с целью определения расстояния уровня воды от датчика, размещенного сверху колодца. Формула преобразования учитывает скорость звука, которая составляет 343 м/с при температуре 20 °C. Важным параметром ультразвуковых датчиков является ширина луча, или характеристика обнаружения. Например, датчик HC-SR04 обладает характеристикой обнаружения в 15°. Этот датчик имеет узкий луч, что делает его подходящим для более узких колодцев и резервуаров. Однако, он не является водонепроницаемым и имеет высокий риск коррозии в условиях влажных колодцев. По этой причине рекомендуется размещать данный ультразвуковой датчик над колодцем, чтобы уменьшить влияние влажности. Водонепроницаемый датчик JSN-SR04T, с другой стороны, обладает характеристикой обнаружения в 60°. Это существенно ограничивает его использование в узких колодцах, поскольку с увеличением расстояния луч расширяется, и необходима скважина с большим диаметром (например, диаметр скважины 6 метров, глубина 4,5 метра для гарантированного измерения без отражений). Ультразвуковые датчики не требуют регулярного обслуживания. Датчик JSN-SR04T оборудован электронной платой управления, которая защищена от воздействия влаги и воды. Максимальная измеряемая высота поверхности (уровня) варьируется от 400 до 450 см в соответствии с каталожными данными.
Название прошивки | Функция прошивки | ESP8266 | ESP32 |
---|---|---|---|
Ultra Low Power |
Прошивка для приложений ULP с низким потреблением тока (см. Схему подключения). Прошивка загружается автоматически с помощью прилагаемого инструмента ESPTOOL, который запускается со скриптом .bat (в скрипте необходимо изменить COM-порт вашей платы ESP). После загрузки прошивки и предположения, что ESP не хранит SSID и пароль из предыдущего проекта, запустится WiFiManager, который используется для настройки существующей сети Wi-Fi. ESP начнет транслировать открытую сеть Wi-Fi с SSID в режиме AP --> Hladinomer_AP. После подключения клиента (Windows / Android / iOS) Captive-портал запустится на 192.168.4.1 (клиент должен быть перенаправлен автоматически). WiFiManager позволяет выбрать сеть Wi-Fi в радиусе действия в веб-интерфейсе, установить пароль. После успешного подключения ESP к указанной сети Wi-Fi и назначения IPv4 из указанного диапазона Captive Portal будет отключен, ESP останется в режиме STA-Station. Впоследствии сенсорный узел начнет передавать данные в веб-интерфейс измеритель уровня . В следующий раз, когда вы запустите сенсорный узел, Captive Portal и WiFiManager больше не запустятся, поскольку конфигурация сети Wi-Fi постоянно сохраняется. После отправки данных микроконтроллер переходит в режим глубокого сна. Главный процессор Xtens выключен в спящем режиме. ESP8266 активируется с помощью таймера WAKE (требуется перемычка между GPIO16 и RST), ESP32 с помощью таймера RTC. |
ESP8266 прошивка | ESP32 прошивка |
StandBy |
Прошивка для режима ожидания микроконтроллера, который отправляет через регулярные интервалы (5 мин) измерения уровня воды на веб-сервер и в то же время поддерживает соединение с точкой доступа в сети LAN. Прошивка загружается автоматически с помощью прилагаемого инструмента ESPTOOL, который запускается со скриптом .bat (в скрипте необходимо изменить COM-порт вашей платы ESP). После загрузки прошивки и предположения, что ESP не хранит SSID и пароль из предыдущего проекта, запустится WiFiManager, который используется для настройки существующей сети Wi-Fi. ESP начнет транслировать открытую сеть Wi-Fi с SSID в режиме AP --> Hladinomer_AP. После подключения клиента (Windows / Android / iOS) Captive-портал запустится на 192.168.4.1 (клиент должен быть перенаправлен автоматически). WiFiManager позволяет выбрать сеть Wi-Fi в радиусе действия в веб-интерфейсе, установить пароль. После успешного подключения ESP к указанной сети Wi-Fi и назначения IPv4 из указанного диапазона Captive Portal будет отключен, ESP останется в режиме STA-Station. Впоследствии сенсорный узел начнет передавать данные в веб-интерфейс измеритель уровня . При следующем запуске сенсорного узла Captive Portal и WiFiManager больше не запустятся, поскольку конфигурация сети Wi-Fi постоянно сохраняется. |
ESP8266 прошивка | ESP32 прошивка |
Веб-интерфейс (панель IoT) использует тригонометрию для оценки максимальной измеряемой глубины скважины при известном диаметре скважины, что является дополнительным параметром для расчета объема скважины. Это позволяет веб-интерфейсу вычислять максимальную глубину скважины для каждого из датчиков на основе их характеристик. Проект разработан с учетом простоты использования даже для непрофессионалов, которые не знают, какой датчик лучше всего подходит для их конкретной скважины. Микроконтроллер, используемый в проекте, играет также важную роль. Для этого проекта можно использовать платформу Arduino (Uno/Mega) ревизии R3 с идентичной распиновкой, которую можно подключить к Ethernet-шилду для связи через интерфейс ICSP. Можно также использовать модули Ethernet, подключая их напрямую к аппаратным контактам SPI микроконтроллера. Поддерживаются Ethernet-модули производителя Wiznet W5100, W5500, USR-ES1, а также модуль Ethernet ENC28J60 от MicroChip. Все эти модули обеспечивают соединение HTTP с веб-сервером. Также поддерживаются микроконтроллеры WiFi от Espressif Systems - ESP8266 и ESP32. У них есть несколько режимов работы, такие как StandBy, StandBy + OTA с возможностью удаленной загрузки прошивки по локальной сети, и режим глубокого сна для приложений ULP - Deep Sleep. В спящем режиме для микроконтроллера ESP8266 необходимо добавить физическую перемычку между GPIO16 (WAKE) и RST. Микроконтроллеры ESP также позволяют осуществлять зашифрованную связь с веб-сервером по протоколу HTTPS. ESP32 можно использовать с модулем PHY Ethernet LAN8720, который поддерживает соединения HTTP и HTTPS. Платформы ESP8266 и ESP32 используют сертификат корневого центра сертификации (CA), встроенный в исходный код микроконтроллеров в формате .pem и сохраненный во флэш-памяти. Сертификат удостоверяющего центра действителен от 10 до 20 лет, что устраняет необходимость частого продления сертификата. Данные о текущей высоте уровня воды и объеме воды в скважине доступны из веб-интерфейса в формате JSON. Проект уровнемера может быть интегрирован через MQTT в систему домашней автоматизации (Hassio, Domoticz, Loxone) для отображения уровня воды на приборной панели, например, Grafana. В будущем также возможно управление периферией в подсистеме (орошение, полив, включение ГВС) на основе данных об уровне воды в скважине из веб-интерфейса.
Название библиотеки | Библиотечная функция | Скачать |
---|---|---|
NewPing |
Библиотека для микроконтроллеров AVR (ATmega) Arduino Uno / Nano / Mega. Он позволяет проводить измерения с помощью ультразвуковых датчиков расстояния US-02X, IOE-SR0X, HC-SR0X, HY-SRF0X, JSN-SR0XT, DYP-ME007. |
Скачать |
NewPingESP8266 |
Библиотека для микроконтроллеров ESP8266 и ESP32. Он позволяет проводить измерения с помощью ультразвуковых датчиков расстояния US-02X, IOE-SR0X, HC-SR0X, HY-SRF0X, JSN-SR0XT, DYP-ME007. |
Скачать |
Ethernet2 |
Библиотека для микроконтроллеров AVR (ATmega) Arduino Uno / Nano / Mega. Он обеспечивает связь с модулем Ethernet от Wiznet W5200 до W5500 через интерфейс SPI. |
Скачать |
Ethernet3 |
Библиотека для микроконтроллеров AVR (ATmega) Arduino Uno / Nano / Mega. Он обеспечивает связь с Ethernet-модулем Wiznet W5500 V2 - USR-ES1 через интерфейс SPI. |
Скачать |