Mundarija:
- 1 -qadam: tizimning blok diagrammasi
- 2 -qadam: Komponent detallari
- 3 -qadam: O'chirish diagrammasi
- 4 -qadam: ishchi video va kodli fayl
- 5 -qadam: Dastur kodeksi
Video: SMS -ogohlantirish yordamida o'simliklarni kuzatish: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Bu erda men SMS -ogohlantirish yordamida o'simlik monitorini yarataman. Ushbu ogohlantirish tizimi uchun server talab qilinmaydi. Bu juda arzon va ishonchli loyiha.
1 -qadam: tizimning blok diagrammasi
Hozirgi issiqxonalarda ko'plab parametr o'lchovlari talab qilinadi
o'simliklarning yaxshi sifati va hosildorligini nazorat qilish va nazorat qilish. Ammo kerakli natijaga erishish uchun harorat, namlik, yorug'lik va yaxshi tuproq kabi muhim omillar mavjud bo'lib, ular o'simliklarning yaxshi o'sishi uchun zarurdir. Ushbu parametrlarni yodda tutib, Arduino yordamida GSM moduli orqali o'simliklarni avtomatik nazorat qilish tizimini qurdim. Bu tizim sifatli o'simliklarni etishtirishda juda samarali. Loyihaning yana bir muhim qismi shundaki, u to'liq avtomatik va past kuchlanishli; 5-12V doimiy quvvat manbai.
Hozirgi kunda GSM moduli har qanday ma'lumotni SMS holatini yuborish uchun keng qo'llaniladi. Bu erda SIM900A GSM moduli yordamida iqlimning o'simliklarga ta'siri haqidagi ma'lumotlarni saqlashimiz mumkin. Tizim shuningdek, o'simlikning hosildorligi va sifatiga ta'sir ko'rsatadigan iqlim o'zgarishlarini ko'rsatishi kerak. Loyihaning asosiy maqsadi - GSM moduli harorat, namlik, yorug'lik intensivligi, tuproq haqida ma'lumot yuboradigan avtomatik o'simlik monitoringi. namlik.
Men Hindiston fuqarosi bo'lganim uchun SIM900A (A - Osiyo tarmog'ining ma'nosi) moduli ishlatilgan, lekin siz o'z mamlakatingizga ko'ra har xil turdagi SIM -moduldan foydalanishingiz mumkin. AT kodlari boshqacha bo'lishi mumkin.
2 -qadam: Komponent detallari
------------------ Men ketayotgan parametrlarning to'rt turini o'lchayman
Quyida muhokama qilish uchun: ------------------
Harorat va namlik
DHT11 sensori harorat va namlikni sezish uchun ishlatiladi. Harorat va namlik yuqori bo'lsa, o'simlikning ildizi shikastlanadi va o'sishi yaxshi bo'lmaydi.
Yorug'lik intensivligi
Yorug'lik intensivligi o'simlik o'sishi uchun muhim omil hisoblanadi. Yorug'lik intensivligini aniqlash uchun LDR (nurga bog'liq qarshilik) ishlatiladi. Yorug'lik intensivligi LUX -da o'lchanadi, shuning uchun namoyish qilish uchun 100 LUX yorug'lik belgilangan yoki chegara darajasi sifatida ishlatiladi.
Tuproq namligi
Tuproq namligi o'simliklarning yaxshi o'sishi uchun juda muhimdir. Bu erda tuproq sensori tuproqdagi namlikni o'lchash uchun ishlatiladi. Ushbu sensordan foydalanib, biz tuproq ma'lumotlarini ham analog, ham raqamli o'lchashimiz mumkin.
SMS xabarnomasi:
Agar yuqoridagi parametrlardan birining qiymati belgilangan darajadan yoki kritik darajadan oshib ketsa, tizim avtomatik ravishda egasiga yoki operatorga tegishli parametrlar to'g'risida ma'lumot yuboradi va qiymat normal diapazonda yoki belgilangan darajadan past bo'lganda tizim avtomatik ravishda avtomatik ravishda yuboriladi. egasi yoki operatorga tegishli ma'lumotlar to'g'risida SMS yuboring.
Bildirishnoma sharti o'zgarmaguncha faqat bir marta yuboriladi, shuning uchun egasi yoki operatoriga tez -tez SMS kelmaydi. Shuning uchun pastroq SMS to'plami kerak.
3 -qadam: O'chirish diagrammasi
Bu qismlarni har qanday onlayn xarid qilish saytida osongina topish mumkin
yoki taniqli elektronika ehtiyot qismlari sotuvchisi bilan. Komponentlarning barcha ma'lumotlar jadvallari Internetda mavjud. Agar biron bir qiyinchilik bo'lsa, mening pochta orqali bog'laning.
4 -qadam: ishchi video va kodli fayl
Loyihaning yakuniy ishchi videosi
5 -qadam: Dastur kodeksi
#qo'shing
#qo'shing
LiquidCrystal LCD (2, 3, 4, 5, 6, 7);
DHT bilan; #dht_dpin A1 ni belgilang #LUX A0ni aniqlang #tuproqni aniqlang A3
float volt, lyuks, qiymat; int chiqish_ qiymati; harorat, namlik; int lightflag = 0; int humflag = 0; int tuproq bayrog'i = 0; int tempflag = 0; int tekshirish; int test, test1; bayt darajasi [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};
bo'sh o'rnatish ()
{Serial.begin (9600); // GSM Modem lcd.begin bilan bog'lanish uchun ketma -ketlikni boshlash (16, 2); pinMode (tuproq, Kirish); lcd.createChar (1 daraja); lcd.setCursor (0, 0); lcd.print ("O'simliklar salomatligi"); lcd.setCursor (0, 1); lcd.print ("Tekshirish"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI LOYIHA"); lcd.setCursor (0, 1); lcd.print ("By S K CHHAYA"); kechikish (1000); lcd.clear (); } void loop () {output_value = analogRead (tuproq); output_value = map (chiqish_qiymati, 550, 0, 0, 100); qiymat = analogRead (LUX); volt = (qiymat / 1023,0) * 5; lyuks = ((2500 / volt) - 500) / 3,3; kechikish (10000); // GSM tarmoq DHT.read11 (dht_dpin) da ro'yxatdan o'tishi uchun etarli vaqt bering; lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Harorat"); lcd.setCursor (0, 1); lcd.print (harorat = DHT harorati); // LCD lcd.write -dagi harorat ma'lumotlari (1); lcd.print ("C"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (namlik = DHT. namlik); // LCD lcd.print namlik ma'lumotlari (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nur"); lcd.setCursor (0, 1); lcd.print (lyuks); // LCD lcd.print ("LUM") dagi engil ma'lumotlar; kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (chiqish_ qiymati); // LCD lcd.printdagi tuproq ma'lumotlari (" %"); kechikish (1000); lcd.clear ();
if (harorat 40) {SendSMS (); // yuqori harorat uchun SMS} if (namlik 40) {SendSMS2 (); // Yuqori namlik uchun SMS} if (lux 100) {SendSMS4 (); // Light for SMS high} if (output_value == 950) {SendSMS7 (); // Quruq tuproq uchun SMS} else if if (output_value! = 950) {SendSMS6 (); // Nam tuproq uchun SMS}} bekor SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Harorat yuqori"); Serial.print ("Harorat"); Seriyali bosma (harorat); Serial.println ("C" darajasi); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Harorat yuqori"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Harorat"); lcd.setCursor (0, 1); lcd.print (harorat); lcd.write (1); lcd.print ("C"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); tempflag = 1; tekshirish = 0; test = 0; kechikish (10); }} bekor SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Harorat past"); Serial.print ("Harorat"); Seriyali bosma (harorat); Serial.println ("C" darajasi); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Harorat past"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Harorat"); lcd.setCursor (0, 1); lcd.print (harorat); lcd.write (1); lcd.print ("C"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); tempflag = 0; tekshirish = 0; test = 0; kechikish (10); }} bekor SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Yuqori namlik"); Seriyali bosma (namlik); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Yuqori namlik"); kechikish (1000); lcd.setCursor (0, 1); lcd.print ("Namlik"); lcd.print (namlik); lcd.print (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); gumbaz = 1; tekshirish = 0; test = 0; kechikish (10); }}
void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Kam namlik"); Serial.print ("Namlik"); Ketma -ket bosma (namlik); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Kam namlik"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (namlik); lcd.print (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); humflag = 0; tekshirish = 0; test = 0; kechikish (10); }} bekor bo'lgan SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Matn rejimida SMS yuborish uchun kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Belgilangan telefon raqamini kechiktirishga o'zgartirish (500); Serial.print ("Yaxshi yorug'lik"); Serial.print ("intensivlik"); Ketma -ket chop etish (lyuks); Serial.println ("LUX"); Serial.println ((char) 26); // to'xtatuvchi belgi Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Yaxshi yorug'lik"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("intensivlik"); lcd.setCursor (0, 1); lcd.print (lyuks); lcd.print ("LUX"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); yorug'lik bayrog'i = 1; tekshirish = 0; test = 0; kechikish (10); }} bekor qilingan SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("LOW LIGHT"); Serial.print ("intensivlik"); Ketma -ket chop etish (lyuks); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Kam yorug'lik"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("intensivlik"); lcd.setCursor (0, 1); lcd.print (lyuks); lcd.print ("LUX"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); yorug'lik bayrog'i = 0; tekshirish = 0; test = 0; kechikish (10); }} bekor SendSMS6 () {if (tuproq bayrog'i == 0) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Quruq tuproq"); Serial.print ("Namlik"); Serial.print (chiqish_ qiymati); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Quruq tuproq"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (chiqish_ qiymati); lcd.print (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); tuproq bayrog'i = 1; tekshirish = 0; test = 0; kechikish (10); }} bekor SendSMS7 () {if (tuproq bayrog'i == 1) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Nam tuproq"); Serial.print ("Namlik"); Serial.print (chiqish_ qiymati); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nam tuproq"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (chiqish_ qiymati); lcd.print (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); tuproq bayrog'i = 0; tekshirish = 0; test = 0; kechikish (10); }}
Tavsiya:
Arduino yordamida o'simliklarni sug'orish tizimini qanday qurish kerak: 7 qadam
Arduino -dan foydalanib o'simliklarni sug'orish tizimini qanday qurish mumkin: Ushbu qo'llanmada biz namlik sensori, suv nasosi yordamida o'simlik sug'orish tizimini qanday yasashni bilib olamiz, agar hamma narsa yaxshi bo'lsa, OLED -displey va Visuino. Videoni tomosha qiling
Wi -Fi signallari yordamida DIY avtomatik o'simliklarni sug'orish tizimini qanday qurish kerak: 15 qadam
Wi -Fi signallari yordamida DIY avtomatik o'simliklarni sug'orish tizimini qanday qurish mumkin: bu #WiFi orqali boshqariladigan DIY avtomatik o'simliklarni sug'orish tizimi. Ushbu loyiha uchun biz Adosia kompaniyasining o'z -o'zini sug'oradigan avtomatik bog 'tizimi yig'ish to'plamidan foydalandik. Ushbu sozlash uchun solenoidli suv klapanlari va shunga o'xshash tuproqli mois ishlatiladi
Python yordamida Raspberry Pi va AIS328DQTR yordamida tezlashtirishni kuzatish: 6 qadam
Python yordamida Raspberry Pi va AIS328DQTR yordamida tezlashtirishni kuzatish: Menimcha, tezlanish- bu fizikaning ba'zi qonunlariga muvofiq.- Terri Rayli Gepard quvishda tezlikni tez o'zgarishini va tez o'zgarishini qo'llaydi. Eng tez qirg'oqqa chiqadigan jonivor, o'ljani tutish uchun tezligidan foydalanadi.
Python yordamida Raspberry Pi va MMA7455 yordamida tezlashuv turlarini kuzatish: 6 qadam
Python yordamida Raspberry Pi va MMA7455 yordamida tezlashuv turlarini kuzatish: men qoqilmadim, tortish kuchini sinab ko'rdim. Bu hali ham ishlaydi … Tezlashib borayotgan kosmik kemaning tasviri shuni ko'rsatdiki, tortishish vaqtining kengayishi tufayli, sayyoraning eng yuqori nuqtasida joylashgan soat bazadagi tezlikdan ko'ra tezroq bo'ladi. Biroz
ESP32 yordamida quyosh og'irligiga asoslangan o'simliklarni boshqarish: 7 qadam (rasmlar bilan)
ESP32 yordamida quyosh energiyasiga asoslangan o'simliklarni boshqarish: O'simliklarni etishtirish qiziqarli va ularni sug'orish va ularga g'amxo'rlik qilish juda qiyin emas. Ularning sog'lig'ini kuzatish uchun mikrokontroller ilovalari butun Internetda mavjud va ularning dizayniga ilhom o'simlikning statik tabiati va qulaylikdan kelib chiqadi