Kazalo:
- 1. korak: Blokovni diagram sistema
- 2. korak: Podrobnosti o komponentah
- 3. korak: Shema vezja
- 4. korak: Delajte video in kodno datoteko
- 5. korak: Koda programa
Video: Nadzor rastlin s sporočilom SMS: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Tukaj ustvarim nadzor rastlin s sporočilom SMS. Strežnik za ta sistem opozarjanja ni potreben. To je zelo poceni in zanesljiv projekt.
1. korak: Blokovni diagram sistema
V današnjih rastlinjakih so potrebne številne meritve parametrov
za spremljanje in nadzor dobre kakovosti in produktivnosti rastlin. Toda za doseganje želenih rezultatov obstajajo nekateri zelo pomembni dejavniki, kot so temperatura, vlažnost, svetloba in dobra tla, ki so potrebni za boljšo rast rastlin. Ob upoštevanju teh parametrov sem z uporabo Arduina zgradil avtomatski sistem za spremljanje obratov prek GSM modula. Ta sistem je zelo učinkovit za gojenje kakovostnih rastlin. Drugi pomemben del tega projekta je, da je popolnoma avtomatiziran in deluje na nizko napetosti; 5-12V DC napajanje.
Danes se GSM modul pogosto uporablja za pošiljanje SMS -statusov vseh vrst podatkov. Tukaj v tem projektu z uporabo modula SIM900A GSM lahko hranimo informacije o vplivih podnebja na rastline. Sistem mora prikazati tudi podnebne spremembe, ki vplivajo na rastlino v njeni produktivnosti in kakovosti itd. Glavni namen priprave tega projekta je izgradnja avtomatskega nadzora obrata, v katerem modul GSM pošilja podatke o temperaturi, vlažnosti, intenzivnosti svetlobe, tleh vlage.
Ker sem indijski državljan, sem uporabljal modul SIM900A (A pomeni azijsko omrežje), lahko pa uporabljate različne vrste modulov SIM glede na vašo državo. Kode AT se lahko razlikujejo.
2. korak: Podrobnosti o komponentah
------------------ Merim štiri vrste parametrov, ki se dogajajo
za razpravo spodaj: ------------------
Temperatura in vlažnost
Senzor DHT11 se uporablja za zaznavanje temperature in vlažnosti. Ko sta temperatura in vlaga visoka, se poškoduje korenina rastlin in rast ne uspeva dobro.
Intenzivnost svetlobe
Intenzivnost svetlobe je pomemben dejavnik za rast rastlin. Za zaznavanje svetlobne jakosti se uporablja LDR (od svetlobe odvisen upor). Intenzivnost svetlobe se meri v LUX -u, zato se za demonstracijo uporablja 100 luči LUX kot definirana ali pražna raven.
Vlažnost tal
Vlažnost tal je zelo pomembna za dobro rast rastlin. Tu se senzor tal uporablja za merjenje vsebnosti vlage v tleh. S tem senzorjem lahko podatke o tleh merimo na oba načina, analogni in tudi digitalni.
Obvestilo SMS:
Ko vrednost katerega koli od zgornjih parametrov preseže določeno raven ali kritično raven, sistem samodejno pošlje SMS lastniku ali operaterju z informacijami o sorodnih parametrih in ko je vrednost v normalnem območju ali pod določeno raven, sistem samodejno pošljite SMS lastniku ali operaterju s podatki o sorodnih podatkih.
Obvestilo pošljite samo enkrat, dokler se pogoj ne spremeni, zato lastnik ali operater ne dobiva pogostih SMS. Zato je potreben nižji paket SMS.
3. korak: Shema vezja
Vsi ti deli so zlahka na voljo na katerem koli spletnem mestu za nakupovanje
ali pri znanem prodajalcu rezervnih delov za elektroniko. Tehnični listi vseh komponent so na voljo na spletu. Če imate težave, se obrnite na mojo pošto.
4. korak: Delajte video in kodno datoteko
Zadnji delovni videoposnetek projekta
5. korak: Koda programa
#vključi
#vključi
LCD tekoči kristal (2, 3, 4, 5, 6, 7);
dht DHT; #define dht_dpin A1 #define LUX A0 #define tla A3
plavajoči volt, lux, vrednost; int output_value; int temperatura, vlažnost; int lightflag = 0; int humflag = 0; int talna zastava = 0; int tempflag = 0; int preverjanje; int test, test1; stopnja bajtov [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};
void setup ()
{Serial.begin (9600); // Začetek serijske komunikacije za komunikacijo z modemom GSM lcd.begin (16, 2); pinMode (tla, VHOD); lcd.createChar (1, stopnja); lcd.setCursor (0, 0); lcd.print ("Zdravje rastlin"); lcd.setCursor (0, 1); lcd.print ("Spremljanje"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJECT"); lcd.setCursor (0, 1); lcd.print ("Avtor S K CHHAYA"); zamuda (1000); lcd.clear (); } void loop () {output_value = analogRead (zemlja); output_value = zemljevid (output_value, 550, 0, 0, 100); vrednost = analogno branje (LUX); volt = (vrednost / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; zamuda (10000); // GSM -ju damo dovolj časa za registracijo v omrežju DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.tisk (temperatura = temperatura DHT); // Temp podatki na LCD lcd.write (1); lcd.print ("C"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlažnost"); lcd.setCursor (0, 1); lcd.print (vlažnost = DHT.vlažnost); // Podatki o vlažnosti na LCD lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Light"); lcd.setCursor (0, 1); lcd.tisk (lux); // Podatki o svetlobi na LCD lcd.print ("LUM"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (vrednost_izhoda); // podatki o tleh na LCD lcd.print (" %"); zamuda (1000); lcd.clear ();
if (temperatura 40) {SendSMS (); // SMS za visoko temperaturo} if (vlažnost 40) {SendSMS2 (); // SMS za visoko vlažnost} if (lux 100) {SendSMS4 (); // SMS za Light high} if (output_value == 950) {SendSMS7 (); // SMS za suho zemljo} else if (output_value! = 950) {SendSMS6 (); // SMS za mokro zemljo}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Visoka temperatura"); Serial.print ("Temp"); Serijski.tisk (temperatura); Serial.println ("stopnja C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Visoka temperatura"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.tisk (temperatura); lcd.write (1); lcd.print ("C"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); tempflag = 1; ček = 0; test = 0; zamuda (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Nizka temperatura"); Serial.print ("Temp"); Serijski.tisk (temperatura); Serial.println ("stopnja C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temperatura nizka"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.tisk (temperatura); lcd.write (1); lcd.print ("C"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); tempflag = 0; ček = 0; test = 0; zamuda (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Visoka vlažnost"); Serijski.tisk (vlažnost); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Visoka vlažnost"); zamuda (1000); lcd.setCursor (0, 1); lcd.print ("Vlažnost"); lcd.tisk (vlažnost); lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); humflag = 1; ček = 0; test = 0; zamuda (10); }}
void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Nizka vlažnost"); Serial.print ("Vlažnost"); Serijski.tisk (vlažnost); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Nizka vlažnost"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlažnost"); lcd.setCursor (0, 1); lcd.tisk (vlažnost); lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); humflag = 0; ček = 0; test = 0; zamuda (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Za pošiljanje SMS v besedilnem načinu zakasnitev (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Sprememba na zamudo telefonske številke cilja (500); Serial.print ("Good LIGHT,"); Serial.print ("Intenzivnost"); Serijski.tisk (lux); Serial.println ("LUX"); Serial.println ((char) 26); // zaustavitveni znak Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Dobra svetloba"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intenzivnost"); lcd.setCursor (0, 1); lcd.tisk (lux); lcd.print ("LUX"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); svetlobna zastava = 1; ček = 0; test = 0; zamuda (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("LOW LIGHT",)); Serial.print ("Intenzivnost"); Serijski.tisk (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Slaba svetloba"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intenzivnost"); lcd.setCursor (0, 1); lcd.tisk (lux); lcd.print ("LUX"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); svetlobna zastava = 0; ček = 0; test = 0; zamuda (10); }} void SendSMS6 () {if (groundflag == 0) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Suha tla"); Serial.print ("Vlaga"); Serial.print (vrednost_izhoda); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Suha tla"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (vrednost_izhoda); lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); talna zastava = 1; ček = 0; test = 0; zamuda (10); }} void SendSMS7 () {if (groundflag == 1) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Mokra tla",); Serial.print ("Vlaga"); Serial.print (vrednost_izhoda); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Mokra tla"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (vrednost_izhoda); lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); talna zastava = 0; ček = 0; test = 0; zamuda (10); }}
Priporočena:
Pametni notranji nadzor rastlin - veste, kdaj vaša rastlina potrebuje zalivanje: 8 korakov (s slikami)
Pametni nadzornik rastlin v zaprtih prostorih - Vedite, kdaj potrebuje zalivanje vaše rastline: Pred nekaj meseci sem naredil palico za spremljanje vlage v tleh, ki se napaja iz baterij in jo lahko vtaknemo v zemljo v loncu vaše sobne rastline, da vam dam nekaj koristnih informacij o tleh nivo vlage in utripajoče LED -diode, ki vam povedo, kdaj naj
Dot Matrix; 8x8 s sporočilom ali slikami: 4 koraki
Dot Matrix; 8x8 s sporočilom ali slikami: Ta navodila vam bodo pokazala matrične slike, ki sem jih naredil z Dot Matrix 8x8 .. Oglejte si vključene videoposnetke in programe. Matrična pika je dvodimenzionalni zaslon, sestavljen iz 8 stolpcev in 8 vrstic. Če natančno pogledate
PInt@t10n: Pametni sistem za nadzor rastlin: 9 korakov
PInt@t10n: Pametni sistem za nadzor rastlin: PI@nt@t10nTa projekt je nastal kot test za oblak ibm iot. Za pošiljanje in sprejemanje podatkov v oblak ibm in iz njega uporabljamo esp-8266. Komunikacija med esp in oblakom ibm poteka prek MQTT. Za obdelavo vseh podatkov in predstavitev
Nadzor rastlin in opozorila z oblakom stvari ESP8266 in AskSensors IoT: 6 korakov
Spremljanje rastlin in opozorila z ESP8266 in oblakom AskSensors IoT: Ta projekt je namenjen izgradnji pametnega sistema za spremljanje rastlin z uporabo ESP8266 in platforme IoT AskSensors. Ta sistem se lahko uporablja za sledenje ravni vlažnosti tal za zagotavljanje objektivnih meril za namakalne odločitve. ki pomagajo zagotoviti namakanje
Osvetljen okvir plakata na zaslonu na dotik s podzavestnim sporočilom!: 16 korakov (s slikami)
Osvetljen okvir plakata na zaslonu na dotik s podzavestnim sporočilom!: Odkar je Think Geek prvič objavil komplet petih "potovanj", navdihnjenih s Serenity/Firefly plakate, vedel sem, da moram imeti svoj komplet. Pred nekaj tedni sem jih končno dobil, vendar sem se srečal z dilemo: kako jih namestiti na steno? Kako to storiti