Удаленный мониторинг влажности почвы, воздуха и температуры



В этой статье мастер расскажет нам, как можно измерить влажность почвы, используя всего несколько электронных компонентов. Самое интересное в этом устройстве — это удаленный мониторинг. Т.е. датчик можно расположит в цветочном горшке на шкафу или на уличной грядке, а считывать значение в удобном для пользователя месте.

Для этой сборки нужны следующие комплектующие:
-Датчик влажности почвы;
-ESP32 + плата расширения;
Датчик влажности почвы LoRa работает на Atmel Atmega328P. Он собирает локальную температуру / влажность воздуха с помощью датчика AHT10 и определяет влажность почвы. Датчик передает показания на шлюз ESP32. И его очень удобно использовать для напоминания о том, что растениям нужен полив в саду.

Встроенный модуль *LoRa подключается к Atmega328P с помощью SPI и GPIO, распиновка подключения ниже:
Atmega328P ——> LoRa module
D12 —-> MISO
D11 ——> MISO
D13 ——> SCK
D10 ——> NSS
D4 ——> RESET
D2 ——> DIO0
D6 —-> DIO1
*LoRa — технология беспроводной связи с высокой емкостью сети и малым энергопотреблением конечных устройств.


Для успешного подключения датчика влажности к шлюзу необходимо использовать библиотеку RadioLib.h.
Когда LoRa передал данные, нужно добавить знак к передаваемой информации, чтобы ESP32 распознал его.
String message = "#"+(String)packetnum+" Humidity:"+(String)humidity+"% Temperature:"+(String)temperature+"C"+" ADC:"+(String)sensorValue+" SOIL2"; Serial.println(message); packetnum++; Serial.println("Transmit: Sending to rf95_server"); int state = radio.transmit(message);
Весь код для датчика можно скачать здесь.
Шлюз Lora представляет собой комбинацию модуля ESP32 и MakePython LoRa. ESP32 — очень популярный микроконтроллер для Arduino или MicroPython. MakePython ESP32 имеет ESP32 и дисплей.

MakePython LoRa — это двухканальное расширение LoRa для MakePython ESP32. Это расширение необходимо для WIFI.
У платы есть два модуля LoRa, в этом проекте для приема данных использовался один модуль с именем U2. Когда две платы собраны, ESP32 подключается к модулю LoRa с помощью SPI. Модуль LoRa подключен к ESP32 с помощью SPI и GPIO.

Подробное подключение модуля ESP32 и U2 LoRa:
ESP32 ——-> U2 LoRa module
IO12 ——> MISO
IO13 ——> MOSI
IO14 ——> SCK
IO32 ——> NSS
IO33 ——> RESET
IO36 ——> DIO0
IO27 ——> DIO1


Теперь нужно запрограммировать ESP32.
Настраивает интерфейс модуля LoRa
#define DIO0 36 #define DIO1 27 #define LORA_RST 33 #define LORA_CS 32 #define SPI_MOSI 13 #define SPI_MISO 12 #define SPI_SCK 14
Устанавливает библиотеку LoRa — RadioLib.h для поддержки работы модуля LoRa и получения данных передаваемых датчиком влажности почвы.
String str; int state = radio.receive(str);
Для распознавания данных, с какого датчика передаются данные, для каждой информации должен быть определен специальный ярлык, например «SOIL1».
if(str.indexOf("SOIL1")>-1) { sensorADC = str.substring(str.indexOf("ADC:")+4,str.indexOf("ADC:")+7); ADCvalue[0] = sensorADC; Serial.println("1: "+ADCvalue[0]); } if(str.indexOf("SOIL2")>-1) { sensorADC = str.substring(str.indexOf("ADC:")+4,str.indexOf("ADC:")+7); ADCvalue[1] = sensorADC; Serial.println("2: "+ADCvalue[1]); }
Для отображения данных на экране прописывает следующие данные:
display.clearDisplay(); display.setTextSize(2); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.print(F("SOIL1: ")); display.println(ADCvalue[0]); display.print(F("SOIL2: ")); display.println(ADCvalue[1]); display.display();
Весь код можно скачать здесь.
Теперь нужно подключить питание и протестировать работу устройства.
Мастер установил два датчика с питанием от аккумулятора. Поместил один датчик в горшок, а другой — в сад. После включения ESP32 на ЖК-дисплее должны отображаться показания датчиков.

Кроме того, ESP32 может передавать данные, полученные модулем LoRa, на веб-сайт через WIFI, например, передавать на Thingspeak. Он также может передавать данные или команды другим модулям LoRa.


Источник (Source)

Источник: usamodelkina.ru

Добавить комментарий