Агуулгын хүснэгт:

ESP32 Thing and Blynk ашиглан ургамлын монитор: 5 алхам
ESP32 Thing and Blynk ашиглан ургамлын монитор: 5 алхам

Видео: ESP32 Thing and Blynk ашиглан ургамлын монитор: 5 алхам

Видео: ESP32 Thing and Blynk ашиглан ургамлын монитор: 5 алхам
Видео: Apa itu? Stepper Motor - Blynk Nodemcu Etching Bucket (Subtittled) 2024, Оны зургадугаар сарын
Anonim
ESP32 Thing and Blynk ашиглан ургамлын монитор
ESP32 Thing and Blynk ашиглан ургамлын монитор
ESP32 Thing and Blynk ашиглан ургамлын монитор
ESP32 Thing and Blynk ашиглан ургамлын монитор

Тойм

Энэхүү төслийн зорилго нь гэрийн ургамлын нөхцөл байдлыг хянах чадвартай авсаархан төхөөрөмж бүтээх явдал юм. Энэхүү төхөөрөмж нь Blynk App ашиглан ухаалаг гар утаснаас хөрсний чийгийн түвшин, чийгшлийн түвшин, температур, "мэдрэх мэт" температурыг шалгах боломжийг хэрэглэгчдэд олгодог. Нэмж дурдахад, үйлдвэрт тохиромжгүй нөхцөл байдал үүссэн тохиолдолд хэрэглэгч имэйлээр анхааруулга хүлээн авах болно. Жишээлбэл, хөрсний чийгийн түвшин зохих түвшингээс доош унах үед хэрэглэгч ургамлыг услах сануулга авах болно.

Алхам 1: Шаардлага

Шаардлага
Шаардлага
Шаардлага
Шаардлага
Шаардлага
Шаардлага

Энэхүү төсөл нь Sparkfun ESP32 зүйл, DHT22 мэдрэгч, тоосгоны электрон хөрсний чийгшил мэдрэгчийг ашигладаг. Нэмж дурдахад wifi сүлжээ болон Blynk програм шаардлагатай. ESP32 -ийг агуулсан ус үл нэвтрэх хашлага хийх нь зүйтэй. Энэ жишээ нь тэжээлийн эх үүсвэрийн стандарт залгуурыг ашигладаг боловч цэнэглэдэг батерей, нарны зай, цэнэг хянагч зэргийг нэмж оруулснаар төхөөрөмжийг сэргээгдэх эрчим хүчээр тэжээх боломжтой болно.

Алхам 2: Блинк

Блинк
Блинк
Блинк
Блинк
Блинк
Блинк

Блинк програмыг татаж аваад шинэ төсөл үүсгээрэй. Баталгаажуулах тэмдгийг анхаарч үзээрэй-үүнийг кодонд ашиглах болно. Blynk програм дээр шинэ дэлгэцийн виджет үүсгэж, кодонд тодорхойлсон харгалзах виртуал тээглүүрүүдийг сонгоно уу. Товчлохын тулд шинэчлэх интервалыг тохируулна уу. Виджет бүр өөрийн гэсэн виртуал зүү оноосон байх ёстой.

Алхам 3: Arduino IDE

Arduino IDE
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 -ийг эхлүүлнэ}

Зөвлөмж болгож буй: