
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51


Обзор
Бул долбоордун максаты - үй өсүмдүгүнүн шарттарын көзөмөлдөөгө жөндөмдүү компакт түзүлүштү түзүү. Бул түзмөк колдонуучуга Blynk тиркемеси аркылуу смартфондон топурактын нымдуулугун, нымдуулукту, температураны жана "сезүү" температурасын текшерүүгө мүмкүндүк берет. Мындан тышкары, шарттар өсүмдүк үчүн жараксыз болуп калганда, колдонуучу электрондук почта эскертүүсүн алат. Мисалы, колдонуучу топурактын нымдуулугу ылайыктуу деңгээлден төмөн түшүп кеткенде өсүмдүктү сугаруу үчүн эскертүү алат.
1 -кадам: талаптар



Бул долбоор Sparkfun ESP32 нерсесин, DHT22 сенсорун жана Электрдик кирпич топурактын ным сенсорун колдонот. Андан тышкары, wifi тармагы жана Blynk колдонмосу талап кылынат. Эң жакшысы, суу өткөрбөй турган корпус ESP32 нерсесин камтыганча түзүлүшү керек. Бул мисал кубат булагы үчүн стандарттык розетканы колдонот, бирок кайра заряддалуучу батареяны, күн панелин жана заряд контроллерин кошуу түзмөктү кайра жаралуучу энергия аркылуу иштетүүгө мүмкүндүк берет.
2 -кадам: Блинк



Болуу үчүн, Blynk тиркемесин жүктөп алып, жаңы долбоор түзүңүз. Аутентификация жетонуна көңүл буруңуз-ал коддо колдонулат. Blynk колдонмосунда жаңы дисплей виджеттерин түзүңүз жана коддо аныкталган виртуалдык төөнөгүчтөрдү тандаңыз. Түртүү үчүн жаңыртуу аралыгын коюңуз. Ар бир виджетке өзүнүн виртуалдык пин бекитилиши керек.
3 -кадам: Arduino IDE

Arduino IDE жүктөп алыңыз. Wifi байланышын камсыз кылуу үчүн ESP32 нерсе драйвери жана демо үчүн жүктөө нускамаларын аткарыңыз. Кодго киргизилген Blynk жана DHT китепканаларын жүктөп алыңыз. Аутентификация токенин, wifi сырсөзүн, wifi колдонуучу атын жана электрондук почтаны акыркы кодго толтуруңуз. Топурактын ным сенсорунун демо кодун колдонуп, топурактын түрү үчүн минималдуу жана максималдуу маанилерди табыңыз. Жазыңыз жана бул коддорду акыркы кодго алмаштырыңыз. Акыркы коддогу өсүмдүк үчүн температуранын, топурактын нымдуулугунун жана нымдуулугунун минималдуу маанилерин алмаштырыңыз. Кодду жүктөңүз.
4 -кадам: Аны куруңуз



Биринчиден, топурактын ным сенсорун 3.3V, жерге жана кирүүчү пинге 34 туташтырыңыз. Эскертүү, бул ажыраткыч Ага коюлган, анткени бул сенсорго аналогдук жөндөө колдонулат. Андан кийин, DHT сенсорун 3.3V, жерге жана киргизүү пинине 27 туташтырыңыз. DHT22 сенсору VCC менен берилүүчү пиндин ортосунда 10K Ohm каршылыгын талап кылат. DHT диаграммасын текшерүүнү унутпаңыз, ал туура зымдалган. ESP32 суу өткөрбөй турган корпустун ичиндеги нымдуулук сенсорун жана DHT сенсорун жердин үстүнөн конфигурациялаңыз. Кубат булагына туташыңыз жана өсүмдүгүңүздүн айлана -чөйрөсү тууралуу маалыматтан ырахат алыңыз.
5 -кадам: Код
// Камтылган китепканалар
#аныктоо BLYNK_PRINT Сериал
#кошуу #кошуу #кошуу #кошуу "DHT.h"
// DHT сенсорунун маалыматы
#Define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #Define DHTPIN 27 // DHT сенсоруна DHT dht (DHTPIN, DHTTYPE) туташкан санариптик пин; // DHT сенсорун баштоо.
// киргизүү казыктарын жана жыйынтыктарын аныктоо
int tuproq_sensor = 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;
// Сиз Alyt Токенин Blynk колдонмосунан алышыңыз керек.
char auth = "Auth_Token_Here";
// Сиздин WiFi грамоталары.
char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
BlynkTimer таймери;
// Бул функция Ардуинонун иштөө убактысын секунда сайын Virtual Pinге (5) жөнөтөт.
// Колдонмодо Виджеттин окуу жыштыгы PUSH деп коюлушу керек. Бул // Blynk колдонмосуна маалыматтарды канчалык тез -тез жөнөтүү керек экенин аныктайт дегенди билдирет.
void Sensors () // сенсорлорду окуу жана blynkке түрткү берүүчү негизги функция
{output_value = analogRead (tuproq_sensor); // tuproq_sensordan аналогдук сигналды окуп, output_value катары аныктаңыз // output_vlaue картасын мин, максималдуу баалуулуктарды 100, 0го чейин чектеп, 0 менен 100дүн ортосуна чектөө коюңуз. жекече сенсор жана топурактын түрү үчүн максималдуу баалуулуктар нымдуулуктун деңгээли = чектөө (карта (output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Окуу нымдуулук float t = dht.readTemperature (); // Окуу температурасы Цельсий (демейки) float f = dht.readTemperature (true); // Температураны Фаренгейт катары окуу (isFahrenheit = true) // Фаренгейт боюнча жылуулук индексин эсептөө (демейки) hif = dht.computeHeatIndex (f, h); // Окуулар ишке ашпай калганын текшериңиз жана эрте чыгып кетиңиз (кайра аракет кылуу үчүн). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("DHT сенсорунан окулбай калды!")); кайтуу; } // Бул Vlynk Blynk тиркемесиндеги виджеттерде аныкталган виртуалдык казыктарга туташтырат Blynk.virtualWrite (V5, moistlevel); // 5 нымдуулукту виртуалдык пинге Blynk.virtualWrite (V6, f) жөнөтүү; // температураны виртуалдыкка жөнөтүү pin 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", "Өсүмдүк Монитору", "Температура Төмөн!"); // Температура төмөн экенин электрондук кат аркылуу жөнөтүңүз
}
кечигүү (15000); // Blynk каттары 15 секунд аралыкта болушу керек. 15000 миллисеконду кечиктирүү эгерде (h <= min_humidity) // Эгерде нымдуулук мин мааниге барабар же төмөн болсо {Blynk.email ("Emial_Here", "Өсүмдүктөрдүн монитору", "Нымдуулугу төмөн!"); // Электрондук почтага нымдуулугу төмөн экенин билдириңиз} notified = 1; timer.setTimeout (timedelay *5, resetNotified); // кайталануучу эскертүү каттарынын ортосунда каалаган убакыттын санын көбөйтүү}}
void resetNotified () // электрондук почта жыштыгын баштапкы абалга келтирүү функциясы
{notified = 0; }
жараксыз орнотуу ()
{Serial.begin (9600); // Мүчүлүштүктөрдү оңдоо Blynk.begin (auth, ssid, pass); // blynk timer.setIntervalга туташуу (timedelay, Sensors); // Ар бир мүнөт сайын чакырыла турган функцияны орнотуңуз же dht.begin () убактысы боюнча эмне коюлганын; // DHT сенсорун иштетүү}
// Void циклинде blynk.run жана таймер гана болушу керек
void loop () {Blynk.run (); // Run blynk timer.run (); // BlynkTimer баштайт}
Сунушталууда:
Arduino менен өсүмдүк мониторун кантип куруу керек: 7 кадам

Arduino менен өсүмдүктөрдүн мониторун кантип куруу керек: Бул үйрөткүчтө биз ным сенсорунун жардамы менен топурактын нымдуулугун кантип аныктоону жана эгерде баары жакшы болсо жана OLED Display жана Visuino менен жашыл LEDди жаркыроону үйрөнөбүз
Акылдуу жабык өсүмдүк монитору - Өсүмдүгүңүз качан сугарууга муктаж экенин билиңиз: 8 кадам (сүрөттөр менен)

Акылдуу жабык өсүмдүктөрдүн монитору - Сиздин өсүмдүгүңүз качан сугарууга муктаж экенин билиңиз: Бир нече ай мурун мен батарейка менен иштеген топурактын нымдуулугун көзөмөлдөөчү таякчаны жасадым жана сизге жабык өсүмдүктүн казанындагы топуракка тыгылып, сизге топурак жөнүндө пайдалуу маалымат бериш үчүн. нымдуулуктун деңгээли жана жаркыраган LEDлар сизге качан керектигин айтышат
Raspberry Pi менен Oled дисплейин колдонуп суу деңгээлинин монитору: 4 кадам

Raspberry Pi менен Oled дисплейин колдонгон суу деңгээлинин монитору: Саламатсыздарбы, мен Шафинмин, Aiversityдин мүчөсү. Мен Raspberry pi менен суу танктары үчүн Oled дисплейи менен суунун деңгээлинин сенсорун кантип куруу керектиги менен бөлүшөм. Олед дисплейи суу толтурулган чаканын пайызын көрсөтөт
Ардуинону колдонуп өзүн өзү сугаруучу өсүмдүк: 3 кадам

Arduino аркылуу өзүн өзү сугаруучу өсүмдүк: Менин долбоорума кош келиңиз! Бул өзүнө керектүү нерсени сезген сайын өзүнө кам көрүү жана өзүн сугаруу жөндөмүнө ээ болгон өсүмдүк. Бул сүрөт менин акыркы долбоорумдун алдыңкы көрүнүшү. Чыныда сиздин өсүмдүгүңүз бар, ал сиздин топурагыңызды нымдап жабат
Өсүмдүк монитору: 12 кадам (Сүрөттөр менен)

Өсүмдүктөрдүн монитору: Өсүмдүктүн мониторунун максаты - бул аналогдук топурак сенсорун туташтырган өсүмдүккө керек болсо сууну сканерлөө жана башкаруу. Бул долбоорго керектүү бөлүктөр: 1x Arduino Uno1x LCD Screen1x Servo Motor1x Topor Sensor Unit1x Potentiometer1x Medical 30c