Taula de continguts:

Monitorització de plantes amb alerta per SMS: 5 passos
Monitorització de plantes amb alerta per SMS: 5 passos

Vídeo: Monitorització de plantes amb alerta per SMS: 5 passos

Vídeo: Monitorització de plantes amb alerta per SMS: 5 passos
Vídeo: Праздник. Новогодняя комедия 2024, De novembre
Anonim
Monitorització de plantes amb alerta per SMS
Monitorització de plantes amb alerta per SMS

Aquí creo el control de plantes amb alerta per SMS. El servidor no és necessari per a aquest sistema d'alerta. És un projecte molt barat i fiable.

Pas 1: diagrama de blocs del sistema

Diagrama de blocs del sistema
Diagrama de blocs del sistema

Als hivernacles actuals, es necessiten moltes mesures de paràmetres

supervisar i controlar la bona qualitat i productivitat de les plantes. Però per obtenir els resultats desitjats hi ha alguns factors molt importants que entren en joc com la temperatura, la humitat, la llum i el bon sòl, que són necessaris per a un millor creixement de les plantes. Tenint en compte aquests paràmetres, he construït un sistema automàtic de control de plantes sobre mòdul GSM mitjançant Arduino. Aquest sistema és molt eficient per cultivar plantes de bona qualitat. L’altra part important d’aquest projecte és que és totalment automàtic i funciona com a baixa tensió; Alimentació de 5-12V CC.

Ara el mòdul GSM fa uns dies s’utilitza àmpliament per enviar l’estat dels SMS de qualsevol tipus de dades. Aquí en aquest projecte mitjançant el mòdul GSM SIM900A podem mantenir informació sobre els efectes del clima sobre les plantes. El sistema també demostrarà els canvis climàtics que afecten la planta en la seva productivitat i qualitat, etc. humitat.

Com que sóc ciutadà de l'Índia, he utilitzat el mòdul SIM900A (A significa "xarxa asiàtica"), però podeu utilitzar diferents tipus de mòduls SIM segons el vostre país. Els codis AT poden diferir.

Pas 2: detall del component

Detall del component
Detall del component
Detall del component
Detall del component
Detall del component
Detall del component

------------------ Mesuro quatre tipus de paràmetres, que funcionen

per discutir a continuació: ------------------

Temperatura i humitat

El sensor DHT11 s’utilitza per detectar la temperatura i la humitat. Quan la temperatura i la humitat són elevades, l’arrel de les plantes es fa malbé i el creixement de la planta no està bé.

Intensitat de llum

La intensitat de la llum és un factor important per al creixement de les plantes. Per detectar la intensitat de la llum s’utilitza LDR (resistència dependent de la llum). La intensitat de la llum es mesura en LUX i, per tant, per demostrar-la s’utilitza 100 LUX segons el nivell definit o llindar.

Humitat del sòl

La humitat del sòl és molt important per a un bon creixement de les plantes. Aquí el sensor de sòl s’utilitza per mesurar el contingut d’humitat del sòl. Mitjançant aquest sensor podem mesurar les dades del sòl de totes dues maneres, tant analògiques com digitals.

Notificació per SMS:

Quan el valor d'algun dels paràmetres anteriors és superior a un nivell o nivell crític definit, el sistema envia automàticament SMS al propietari o a l'operador amb informació dels paràmetres relacionats i quan el valor es troba dins de l'interval normal o per sota del nivell definit, el sistema torna automàticament enviar SMS al propietari o a l’operador amb informació de dades relacionades.

La notificació només s’envia una vegada fins que la condició no canvia, de manera que el propietari o l’operador no reben SMS freqüents. Per tant, cal un paquet de SMS més baix.

Pas 3: diagrama del circuit

Esquema de connexions
Esquema de connexions

Totes aquestes peces estan fàcilment disponibles a qualsevol lloc de compres en línia

o amb un conegut distribuïdor de recanvis d’electrònica. Tots els fulls de dades de components estan disponibles al web. Si teniu cap dificultat, no dubteu a posar-vos en contacte amb el meu correu electrònic.

Pas 4: Treball de fitxers de codi i vídeo

Vídeo de treball final del projecte

Pas 5: Codi de programa

#incloure

#incloure

LiquidCrystal lcd (2, 3, 4, 5, 6, 7);

dht DHT; #define dht_dpin A1 #define LUX A0 #define soil A3

voltatge flotant, lux, valor; int output_value; temperatura int, humitat; int lightflag = 0; int humflag = 0; int soilflag = 0; int tempflag = 0; int check; int test, test1; grau de bytes [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

configuració nul·la ()

{Serial.begin (9600); // Inicialitzar la sèrie per comunicar-se amb el mòdem GSM lcd.begin (16, 2); pinMode (terra, INPUT); lcd.createChar (1, grau); lcd.setCursor (0, 0); lcd.print ("Sanitat vegetal"); lcd.setCursor (0, 1); lcd.print ("Monitorització"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("PROJECTE AGRI"); lcd.setCursor (0, 1); lcd.print ("Per S K CHHAYA"); retard (1000); lcd.clear (); } void loop () {output_value = analogRead (terra); output_value = mapa (output_value, 550, 0, 0, 100); valor = analogRead (LUX); volt = (valor / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; retard (10000); // Doneu prou temps perquè GSM es registri a la xarxa DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatura = temperatura DHT); // Dades temporals a LCD lcd.write (1); lcd.print ("C"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humitat"); lcd.setCursor (0, 1); impressió lcd (humitat = humitat DHT); // Dades d’humitat a lcd.print LCD ("%"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Llum"); lcd.setCursor (0, 1); lcd.print (lux); // Dades de llum a LCD lcd.print ("LUM"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humitat"); lcd.setCursor (0, 1); lcd.print (output_value); // Dades del sòl a LCD lcd.print ("%"); retard (1000); lcd.clear ();

if (temperatura 40) {SendSMS (); // SMS per a Temp alt} if (humitat 40) {SendSMS2 (); // SMS per humitat alta} if (lux 100) {SendSMS4 (); // SMS per a la llum alta} if (output_value == 950) {SendSMS7 (); // SMS per a sòls secs} else if (output_value! = 950) {SendSMS6 (); // SMS per a sòls humits}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT + CMGF = 1"); retard (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retard (500); Serial.print ("Temp alt"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println ("grau C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp alt"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); impressió lcd (temperatura); lcd.write (1); lcd.print ("C"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Sending SMS"); retard (1000); lcd.clear (); tempflag = 1; comprovar = 0; prova = 0; retard (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT + CMGF = 1"); retard (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retard (500); Serial.print ("Temp baix"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println ("grau C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp baix"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); impressió lcd (temperatura); lcd.write (1); lcd.print ("C"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Sending SMS"); retard (1000); lcd.clear (); tempflag = 0; comprovar = 0; prova = 0; retard (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT + CMGF = 1"); retard (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retard (500); Serial.print ("Humitat alta"); Serial.print (humitat); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Humitat alta"); retard (1000); lcd.setCursor (0, 1); lcd.print ("Humitat"); impressió lcd (humitat); lcd.print ("%"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Sending SMS"); retard (1000); lcd.clear (); humflag = 1; comprovar = 0; prova = 0; retard (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT + CMGF = 1"); retard (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retard (500); Serial.print ("Humitat baixa"); Serial.print ("Humitat"); Serial.print (humitat); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Humitat baixa"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humitat"); lcd.setCursor (0, 1); impressió lcd (humitat); lcd.print ("%"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Sending SMS"); retard (1000); lcd.clear (); humflag = 0; comprovar = 0; prova = 0; retard (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT + CMGF = 1"); // Per enviar SMS en mode Text de retard (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); // Canvia a la demora del número de telèfon de destinació (500); Serial.print ("Bona LLUM"); Serial.print ("Intensitat"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // el caràcter de parada Ctrl + Z lcd.setCursor (0, 0); lcd.print ("Bona llum"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensitat"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Sending SMS"); retard (1000); lcd.clear (); bandera lleugera = 1; comprovar = 0; prova = 0; retard (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT + CMGF = 1"); retard (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retard (500); Serial.print ("LOW LIGHT"); Serial.print ("Intensitat"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Poca llum"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensitat"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Sending SMS"); retard (1000); lcd.clear (); lightflag = 0; comprovar = 0; prova = 0; retard (10); }} void SendSMS6 () {if (soilflag == 0) {Serial.println ("AT + CMGF = 1"); retard (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retard (500); Serial.print ("Sòl sec"); Serial.print ("Humitat"); Serial.print (output_value); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Sòl sec"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humitat"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print ("%"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Sending SMS"); retard (1000); lcd.clear (); soilflag = 1; comprovar = 0; prova = 0; retard (10); }} void SendSMS7 () {if (soilflag == 1) {Serial.println ("AT + CMGF = 1"); retard (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); retard (500); Serial.print ("sòl humit"); Serial.print ("Humitat"); Serial.print (output_value); Serial.println ("%"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("sòl humit"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humitat"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print ("%"); retard (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Sending SMS"); retard (1000); lcd.clear (); soilflag = 0; comprovar = 0; prova = 0; retard (10); }}

Recomanat: