Мазмұны:

ESP32 Thing and Blynk қолданатын өсімдік мониторы: 5 қадам
ESP32 Thing and Blynk қолданатын өсімдік мониторы: 5 қадам

Бейне: ESP32 Thing and Blynk қолданатын өсімдік мониторы: 5 қадам

Бейне: ESP32 Thing and Blynk қолданатын өсімдік мониторы: 5 қадам
Бейне: How to blink an LED with ESP32 board 2024, Қараша
Anonim
ESP32 Thing and Blynk қолданатын өсімдік мониторы
ESP32 Thing and Blynk қолданатын өсімдік мониторы
ESP32 Thing and Blynk қолданатын өсімдік мониторы
ESP32 Thing and Blynk қолданатын өсімдік мониторы

Шолу

Бұл жобаның мақсаты - үй өсімдіктерінің жағдайын бақылай алатын ықшам құрылғыны құру. Құрылғы пайдаланушыға Blynk қосымшасы арқылы смартфоннан топырақтың ылғалдылық деңгейін, ылғалдылық деңгейін, температураны және «сезімтал» температураны тексеруге мүмкіндік береді. Сонымен қатар, қондырғы қондырғыға жарамсыз болған кезде пайдаланушыға электронды түрде хабарлама жібереді. Мысалы, топырақ ылғалдылығы қолайлы деңгейден төмендеген кезде пайдаланушыға зауытты суару туралы ескертпе келеді.

1 -қадам: талаптар

Талаптар
Талаптар
Талаптар
Талаптар
Талаптар
Талаптар

Бұл жобада Sparkfun ESP32 заты, DHT22 сенсоры және кірпіштің электронды ылғал сенсоры қолданылады. Сонымен қатар, Wi -Fi желісі мен Blynk қосымшасы қажет. Ең дұрысы, су өткізбейтін қоршау ESP32 заттан тұратын етіп жасалуы керек. Бұл мысалда қуат көзі үшін стандартты розетка қолданылғанымен, қайта зарядталатын батареяны, күн панелін және заряд реттегішін қосу құрылғыны жаңартылатын энергиямен қуаттауға мүмкіндік береді.

2 -қадам: Блинк

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

Blynk қосымшасын жүктеп алып, жаңа жоба жасаңыз. Аутентификация таңбалауышына назар аударыңыз-ол кодта қолданылады. Blynk қосымшасында жаңа дисплей виджеттерін жасаңыз және кодта анықталған сәйкес виртуалды түйреуіштерді таңдаңыз. Басу үшін жаңарту аралығын орнатыңыз. Әр виджетке жеке виртуалды түйреуіш тағайындау керек.

3 -қадам: Arduino IDE

Arduino IDE
Arduino IDE

Arduino IDE жүктеп алыңыз. Wi -Fi қосылымын қамтамасыз ету үшін ESP32 зат драйвері мен демонстрациясын жүктеу нұсқауларын орындаңыз. Кодқа енгізілген Blynk және DHT кітапханаларын жүктеңіз. Түпнұсқалық растау белгісін, wifi құпия сөзін, wifi пайдаланушы атын және электрондық поштаны соңғы кодқа енгізіңіз. Топырақ типінің минималды және максималды мәндерін табу үшін топырақ ылғалдылығы сенсорының демо -кодын пайдаланыңыз. Бұл мәндерді соңғы кодқа жазыңыз және ауыстырыңыз. Соңғы кодтағы өсімдік үшін температура, топырақ ылғалдылығы мен ылғалдылықтың минималды мәндерін ауыстырыңыз. Кодты жүктеңіз.

4 -қадам: Оны құрастырыңыз

Оны құрастырыңыз
Оны құрастырыңыз
Оны құрастырыңыз
Оны құрастырыңыз
Оны құрастырыңыз
Оны құрастырыңыз

Алдымен топырақтың ылғалдылық датчигін 3.3В, жерге және кіріс штыры 34 -ке жалғаңыз. Ескеріңіз, бұл ажыратқыш А -ға орнатылған, себебі бұл сенсордың аналогтық параметрі қолданылады. Содан кейін, DHT сенсоры 3.3В, жерге тұйықтау және кіріс штыры 27 -ге жалғаңыз. DHT22 сенсоры VCC мен деректерді шығаратын түйреуіш арасындағы 10K Ом резисторды қажет етеді. DHT диаграммасының дұрыс сымдалғанына көз жеткізіңіз. ESP32 қондырғысын су өткізбейтін корпустың ішіндегі ылғал сенсоры мен DHT сенсоры беттің үстінде орнатыңыз. Қуат көзіне қосылыңыз және зауыттың қоршаған ортасы туралы деректерді тыңдаңыз.

5 -қадам: код

// Қосылған кітапханалар

#BLYNK_PRINT сериясын анықтаңыз

#қосу #қосу #қосу #қосу «DHT.h»

// DHT сенсоры туралы ақпарат

#DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 анықтаңыз #DHTPIN 27 анықтаңыз // DHT DHT DHT сенсорына қосылған сандық түйреуіш (DHTPIN, DHTTYPE); // DHT сенсорын іске қосыңыз.

// кіріс түйреуіштері мен шығыстарды анықтау

int tuproq_сенсоры = 34; // ылғалдылық датчигіне қосылған аналогтық кіріс пин нөмірін анықтау

int output_value; // шығыс ретінде анықтаңыз

int moistlevel; // шығыс ретінде анықтаңыз

int notified = 0; // хабарламаны 0 ретінде анықтаңыз

int timedelay = 60000L; // таймерді минутына бір рет немесе 60 000 милисекундта алуды орнатыңыз

// өсімдіктер үшін минималды мәндерді орнатыңыз

int min_moisture = 20; int min_temperature = 75; int min_humidity = 60;

// Сіз Blynk қосымшасында 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 қосымшасына деректерді жіберу жиілігін анықтайтынын білдіреді.

void Sensors () // сенсорларды оқу мен blynk -ке итерудің негізгі функциясы

{output_value = analogRead (tuproq_сенсоры); // tuproq_сенсорынан аналогтық сигналды оқыңыз және output_value ретінде анықтаңыз // output_vlaue минималды мәнінен 100, 0 -ге дейін шектеңіз және 0 -ден 100 -ге дейін шектеңіз // Мин және ылғалдылық деңгейін жақсырақ калибрлеу үшін жеке датчик пен топырақтың максималды мәндері = шектеу (карта (шығыс_мәні, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // ылғалдылықтың өзгеруін оқу t = dht.readTemperature (); // Оқу температурасы Цельсий ретінде (әдепкі) өзгермелі f = dht.readTemperature (true); // Температураны Фаренгейт ретінде оқу (isFahrenheit = true) // Фаренгейт бойынша жылу индексін есептеу (әдепкі) 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 пинге жіберу

егер (хабарланған == 0)

{if (moistlevel <= min_moisture) // Егер ылғалдылық деңгейі минималды мәнге тең немесе төмен болса {Blynk.email («Email_Here», «Өсімдік мониторы», «Су зауыты!»); // Су қондырғысына электрондық поштаны жіберу} delay (15000); // Blynk хаттары 15 секунд аралықта болуы керек. 15000 миллисекунды кешіктіру if (f <= min_temperature) // Егер температура мин мәніне тең немесе одан төмен болса {Blynk.email («Email_Here», «Өсімдік мониторы», «Температура төмен!»); // Температура төмен екендігі туралы электрондық хат жіберіңіз

}

кешіктіру (15000); // Blynk хаттары 15 секунд аралықта болуы керек. 15000 миллисекунды кешіктіру if (h <= min_humidity) // Егер ылғалдылық минималды мәнге тең немесе одан төмен болса {Blynk.email («Emial_Here», «Өсімдік мониторы», «Ылғалдылық төмен!»); // Ылғалдылық төмен екендігі туралы электрондық хабар жіберу} notified = 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 циклында тек blynk.run мен таймер болуы керек

void loop () {Blynk.run (); // blynk timer.run () іске қосыңыз; // BlynkTimer іске қосады}

Ұсынылған: