Агуулгын хүснэгт:
Видео: ESP32 Thing and Blynk ашиглан ургамлын монитор: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Тойм
Энэхүү төслийн зорилго нь гэрийн ургамлын нөхцөл байдлыг хянах чадвартай авсаархан төхөөрөмж бүтээх явдал юм. Энэхүү төхөөрөмж нь Blynk App ашиглан ухаалаг гар утаснаас хөрсний чийгийн түвшин, чийгшлийн түвшин, температур, "мэдрэх мэт" температурыг шалгах боломжийг хэрэглэгчдэд олгодог. Нэмж дурдахад, үйлдвэрт тохиромжгүй нөхцөл байдал үүссэн тохиолдолд хэрэглэгч имэйлээр анхааруулга хүлээн авах болно. Жишээлбэл, хөрсний чийгийн түвшин зохих түвшингээс доош унах үед хэрэглэгч ургамлыг услах сануулга авах болно.
Алхам 1: Шаардлага
Энэхүү төсөл нь Sparkfun ESP32 зүйл, DHT22 мэдрэгч, тоосгоны электрон хөрсний чийгшил мэдрэгчийг ашигладаг. Нэмж дурдахад wifi сүлжээ болон Blynk програм шаардлагатай. ESP32 -ийг агуулсан ус үл нэвтрэх хашлага хийх нь зүйтэй. Энэ жишээ нь тэжээлийн эх үүсвэрийн стандарт залгуурыг ашигладаг боловч цэнэглэдэг батерей, нарны зай, цэнэг хянагч зэргийг нэмж оруулснаар төхөөрөмжийг сэргээгдэх эрчим хүчээр тэжээх боломжтой болно.
Алхам 2: Блинк
Блинк програмыг татаж аваад шинэ төсөл үүсгээрэй. Баталгаажуулах тэмдгийг анхаарч үзээрэй-үүнийг кодонд ашиглах болно. Blynk програм дээр шинэ дэлгэцийн виджет үүсгэж, кодонд тодорхойлсон харгалзах виртуал тээглүүрүүдийг сонгоно уу. Товчлохын тулд шинэчлэх интервалыг тохируулна уу. Виджет бүр өөрийн гэсэн виртуал зүү оноосон байх ёстой.
Алхам 3: Arduino IDE
Arduino IDE татаж авах. Wifi холболтыг хангахын тулд ESP32 зүйл драйвер болон демо татаж авах зааврыг дагана уу. Кодод багтсан Blynk болон DHT номын санг татаж авах. Баталгаажуулах жетон, wifi нууц үг, wifi хэрэглэгчийн нэр, имэйлийг эцсийн код дээр бөглөнө үү. Хөрсний чийгийн мэдрэгчийн демо кодыг ашиглан хөрсний төрөлд хамгийн бага ба хамгийн их утгыг олох боломжтой. Эдгээр утгыг эцсийн код дээр бичээд солино уу. Эцсийн кодонд ургамлын температур, хөрсний чийг, чийгшлийн хамгийн бага утгыг солино. Кодыг байршуулна уу.
Алхам 4: Үүнийг бүтээх
Нэгдүгээрт, хөрсний чийг мэдрэгчийг 3.3В, газардуулга, оролтын зүү 34 -т холбоно уу. Энэ мэдрэгчийн аналог тохиргоог ашиглах тул унтраалга нь А -д тохируулагдсан болно. Дараа нь DHT мэдрэгчийг 3.3V, газардуулга, оролтын зүү 27 -д холбоно уу. DHT22 мэдрэгч нь VCC ба өгөгдөл дамжуулах зүү хооронд 10K Ом эсэргүүцэл шаарддаг. DHT диаграмыг зөв утастай эсэхийг шалгах хэрэгтэй. ESP32 -ийг ус үл нэвтрэх хашлага дотор хөрсний чийг мэдрэгч, DHT мэдрэгч бүхий гадаргуугаас дээш тохируулна уу. Цахилгаан тэжээлийн эх үүсвэрт холбогдож, үйлдвэрийнхээ хүрээлэн буй орчны талаархи мэдээллийг үзээрэй.
Алхам 5: Код
// Номын сан багтсан болно
BLYNK_PRINT цувралыг #тодорхойлох
#include #include #include #include "DHT.h"
// DHT мэдрэгчийн мэдээлэл
#тодорхойлох DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #тодорхойлох DHTPIN 27 // DHT мэдрэгч DHT dht (DHTPIN, DHTTYPE) -д холбогдсон дижитал зүү; // DHT мэдрэгчийг эхлүүлэх.
// оролтын зүү ба гаралтыг тодорхойлох
int earth_sensor = 34; // чийг мэдрэгчтэй холбогдсон аналог оролтын зүү дугаарыг тодорхойлох
int output_value; // гаралт гэж тодорхойлох
int moistlevel; // гаралт гэж тодорхойлох
int notified = 0; // notifed -ийг 0 гэж тодорхойлох
int timedelay = 60000L; // таймерыг минут тутамд нэг удаа эсвэл 60,000 милисекунд авахын тулд тохируулна уу
// ургамлын хамгийн бага утгыг тохируулах
int min_moisture = 20; int min_temperature = 75; int min_humidity = 60;
// Та Blynk App -д Auth Token -ийг авах ёстой.
char auth = "Auth_Token_Here";
// Таны WiFi итгэмжлэлүүд.
char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
BlynkTimer таймер;
// Энэ функц нь Arduino -ийн ажиллах хугацааг секунд тутамд Virtual Pin (5) руу илгээдэг.
// Аппликешнд Виджетийн унших давтамжийг PUSH гэж тохируулах ёстой. Энэ нь Blynk App руу өгөгдлийг хэр олон удаа илгээхийг тодорхойлдог гэсэн үг юм.
void Sensors () // мэдрэгчийг унших, blynk руу түлхэх үндсэн үүрэг
{output_value = analogRead (earth_sensor); // ground_sensor -аас аналог дохиог уншиж, output_value гэж тодорхойлно // output_vlaue -ийг min, max утгаас 100, 0 болгож, 0, 100 хооронд хязгаарлах // Жишээ код болон цуваа мониторыг ашиглан min ба чийгшилийн түвшинг илүү сайн тохируулахын тулд мэдрэгч ба хөрсний төрлүүдийн хамгийн их утга = хязгаарлалт (газрын зураг (гаралтын_үнэлгээ, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Чийглэгийг уншина уу float t = dht.readTemperature (); // Температурыг Цельсийн (анхдагч) float гэж уншина уу f = dht.readTemperature (үнэн); // Температурыг Фаренгейтээр унших (isFahrenheit = true) // Fahrenheit дахь дулааны индексийг тооцоолох (анхдагч) hif = dht.computeHeatIndex (f, h); // Уншиж чадаагүй эсэхийг шалгаад эрт гараарай (дахин оролдоно уу). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("DHT мэдрэгчээс уншиж чадсангүй!")); буцах; } // Энэ нь утгыг Blynk програм Blynk.virtualWrite (V5, чийгийн түвшин) виджетүүдэд тодорхойлогдсон виртуал тээглүүрүүдтэй холбодог; // Чийгийн түвшинг 5 виртуал зүү рүү илгээх Blynk.virtualWrite (V6, f); // Температурыг виртуал руу илгээх зүү 6 Blynk.virtualWrite (V7, h); // чийгшлийг 7 виртуал зүү рүү илгээх Blynk.virtualWrite (V8, hif); // Дулааны индексийг виртуал зүү 8 руу илгээх
хэрэв (мэдэгдсэн == 0)
{if (moistlevel <= min_moisture) // Хэрэв чийгшлийн түвшин нь хамгийн бага утгатай тэнцүү эсвэл доогуур байвал {Blynk.email ("Email_Here", "Ургамлын хяналт", "Усны ургамал!"); // Усны үйлдвэр рүү имэйл илгээх} саатал (15000); // Blynk имэйлүүд 15 секундын зайтай байх ёстой. 15000 миллисекныг хойшлуулбал if (f <= min_temperature) // Хэрэв температур нь мин утгатай тэнцүү буюу түүнээс доогуур байвал {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Температур бага байгаа тухай имэйл илгээх
}
саатал (15000); // Blynk имэйлүүд 15 секундын зайтай байх ёстой. 15000 миллисекнийг хойшлуулбал if (h <= min_humidity) // Хэрэв чийгшил нь мин утгатай тэнцүү буюу түүнээс бага байвал {Blynk.email ("Emial_Here", "Ургамлын хяналт", "Чийглэг багатай!"); // Чийглэг багатай имэйл илгээх} мэдэгдсэн = 1; timer.setTimeout (timedelay *5, resetNotified); // давтан анхааруулах имэйлүүдийн хооронд хүссэн цагийн тоогоор цагийг нь үржүүлэх}}
void resetNotified () // функцийг имэйлийн давтамжийг дахин тохируулах гэж нэрлэдэг
{мэдэгдсэн = 0; }
хүчингүй тохиргоо ()
{Serial.begin (9600); // Дебаг хийх консол Blynk.begin (auth, ssid, pass); // blynk timer.setInterval руу холбогдох (timedelay, Sensors); // Минут тутамд дуудагдах функцийг тохируулах эсвэл dht.begin () цаг хугацааны хуваарийг тохируулах; // DHT мэдрэгч ажиллуулах}
// Void loop нь зөвхөн blynk.run болон таймер агуулсан байх ёстой
void loop () {Blynk.run (); // blynk timer.run () ажиллуулна уу; // BlynkTimer -ийг эхлүүлнэ}
Зөвлөмж болгож буй:
Arduino ашиглан ургамлын мониторыг хэрхэн бүтээх вэ: 7 алхам
Arduino ашиглан ургамлын мониторыг хэрхэн яаж бүтээх вэ: Энэ хичээлээр бид чийг мэдрэгч ашиглан хөрсний чийгийг хэрхэн яаж илрүүлж, бүх зүйл хэвийн байгаа бол ногоон LED гэрэл, OLED дэлгэц, Visuino -г хэрхэн яаж асаахыг сурах болно
Хөрсний багтаамж мэдрэгч бүхий Arduino ургамлын монитор - Хичээл: 6 алхам
Хөрсний багтаамж мэдрэгч бүхий Arduino ургамлын монитор - Хичээл: Энэхүү гарын авлагад бид OLED дэлгэц, Visuino бүхий багтаамжийн чийг мэдрэгч ашиглан хөрсний чийгийг хэрхэн илрүүлэх талаар сурах болно
Ухаалаг доторх ургамлын монитор - Ургамал хэзээ услах шаардлагатайг мэдэх: 8 алхам (зурагтай)
Ухаалаг доторх ургамлын монитор - Танай ургамлыг хэзээ услах шаардлагатайг мэдээрэй: Хэдэн сарын өмнө би батерейгаар ажилладаг хөрсний чийгийг хэмжих саваа хийж, хөрсний талаар хэрэгтэй мэдээллээр хангах үүднээс гэрийнхээ ургамлын саванд хөрсөнд наалдуулж болно. Чийгийн түвшин ба LED гэрэл
Машины сургалтыг ашиглан ургамлын өвчнийг хэрхэн илрүүлэх вэ: 6 алхам
Машины сургалтыг ашиглан ургамлын өвчнийг хэрхэн яаж илрүүлэх вэ: Өвчилсөн ургамлыг илрүүлэх, таних үйл явц нь гар аргаар явуулдаг, ядаргаатай үйл явц байсаар ирсэн бөгөөд хүнээс ургамлын биеийг нүдээр үзэхийг шаарддаг бөгөөд энэ нь буруу оношлоход хүргэдэг. Түүнчлэн дэлхийн хэмжээнд дэлхийн хэмжээнд
Blynk програм ашиглан USB ашиглан ухаалаг гар утсыг ашиглан Arduino -г удирдах: 7 алхам (зурагтай)
Blynk програм ашиглан USB ашиглан ухаалаг гар утсыг ашиглан Arduino -ийг удирдах Arduino эсвэл c-ээ алсаас удирдах хамгийн энгийн шийдэл