Inhoudsopgave:
- Stap 1: Blokschema van systeem
- Stap 2: Componentdetail
- Stap 3: Schakelschema
- Stap 4: Werken met video- en codebestand
- Stap 5: Programmacode
Video: Plantbewaking met sms-waarschuwing: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Hier creëer ik Plant monitoring met SMS alert. Server is niet vereist voor dit waarschuwingssysteem. Het is een zeer goedkoop en betrouwbaar project.
Stap 1: Blokschema van systeem
In de kassen van tegenwoordig zijn veel parametermetingen nodig
bewaken en controleren op de goede kwaliteit en productiviteit van planten. Maar om de gewenste resultaten te krijgen, zijn er enkele zeer belangrijke factoren die een rol spelen, zoals temperatuur, vochtigheid, licht en goede grond, die nodig zijn voor een betere plantengroei. Met deze parameters in gedachten heb ik een automatisch plantbewakingssysteem over een GSM-module gebouwd met behulp van Arduino. Dit systeem is zeer efficiënt voor het kweken van planten van goede kwaliteit. Het andere belangrijke onderdeel van dit project is dat het volledig automatisch is en werkt op laagspanning zoals; 5-12V DC-voeding.
Tegenwoordig wordt de GSM-module veel gebruikt voor het verzenden van de sms-status van alle soorten gegevens. Hier in dit project kunnen we met behulp van SIM900A GSM-module informatie bijhouden over de effecten van klimaat op planten. Het systeem zal ook klimaatveranderingen aantonen die de plant beïnvloeden in zijn productiviteit en kwaliteit enz. Het belangrijkste doel van het bedenken van dit project is het bouwen van een automatische plantbewaking waarin de GSM-module de informatie verzendt over temperatuur, vochtigheid, lichtintensiteit, bodem vochtigheid.
Omdat ik de Indiase burger ben, gebruikte ik de SIM900A-module (A staat voor Aziatisch netwerk), maar u kunt verschillende soorten SIM-modules gebruiken, afhankelijk van uw land. De AT-codes kunnen verschillen.
Stap 2: Componentdetail
------------------ Ik meet vier soorten parameters, die gaan
om hieronder te bespreken: ------------------
Temperatuur en vochtigheid
De DHT11-sensor wordt gebruikt voor het meten van temperatuur en vochtigheid. Wanneer de temperatuur en vochtigheid hoog zijn, wordt de wortel van planten beschadigd en groeit de plant niet goed.
Lichtsterkte
Lichtintensiteit is een belangrijke factor voor de plantengroei. Voor het detecteren van de lichtintensiteit wordt LDR (Light Afhankelijke Weerstand) gebruikt. Lichtintensiteit wordt gemeten in LUX en daarom wordt voor demonstratie 100 LUX licht gebruikt als gedefinieerd of drempelniveau.
Bodemvocht
Bodemvocht bevatten is erg belangrijk voor een goede groei van planten. Hier wordt Bodemsensor gebruikt om het vochtgehalte in de bodem te meten. Met behulp van deze sensor kunnen we bodemgegevens op beide manieren meten, zowel analoog als digitaal.
SMS-melding:
Wanneer de waarde van een van de bovenstaande parameters wordt overschreden vanaf een bepaald niveau of kritisch niveau, stuurt het systeem automatisch een sms naar de eigenaar of de operator met informatie over gerelateerde parameters en wanneer de waarde binnen het normale bereik of onder het gedefinieerde niveau komt, wordt het systeem automatisch stuur een sms naar de eigenaar of de operator met informatie over gerelateerde gegevens.
De melding wordt slechts één keer verzonden totdat de toestand niet verandert, zodat de eigenaar of operator geen frequente sms ontvangt. Daarom is een lager sms-pakket vereist.
Stap 3: Schakelschema
Al deze onderdelen zijn gemakkelijk verkrijgbaar bij elke online winkelsite
of bij een bekende dealer van elektronica-onderdelen. Alle componenten datasheets zijn beschikbaar op het web. Als er problemen zijn, neem dan gerust contact op via mijn e-mail.
Stap 4: Werken met video- en codebestand
Laatste werkvideo van project
Stap 5: Programmacode
#erbij betrekken
#erbij betrekken
LiquidCrystal-lcd (2, 3, 4, 5, 6, 7);
dht-DHT; #define dht_dpin A1 #define LUX A0 #define grond A3
vlotter volt, lux, waarde; int uitvoerwaarde; int temperatuur, vochtigheid; int lichtvlag = 0; int humflag = 0; int grondvlag = 0; int tempflag = 0; int check; int-test, test1; bytegraad [8] = { 0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};
ongeldige setup()
{ Serieel.begin(9600); // Initialiseer serieel om te communiceren met GSM Modem lcd.begin (16, 2); pinMode (bodem, INPUT); lcd.createChar (1, graad); lcd.setCursor(0, 0); lcd.print("Plantgezondheid"); lcd.setCursor(0, 1); lcd.print("Bewaking"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("AGRI-PROJECT"); lcd.setCursor(0, 1); lcd.print("Door SK CHHAYA"); vertraging (1000); lcd.wissen(); } void loop () { output_value = analogRead (bodem); output_value = kaart (output_value, 550, 0, 0, 100); waarde = analoog lezen (LUX); volt = (waarde / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; vertraging (10000); // Geef GSM voldoende tijd om zich te registreren op netwerk DHT.read11 (dht_dpin); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Temp"); lcd.setCursor(0, 1); lcd.print(temperatuur = DHT.temperatuur); // Temp-gegevens op LCD lcd.write (1); lcd.print(" C"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Vochtigheid"); lcd.setCursor(0, 1); lcd.print(vochtigheid = DHT.vochtigheid); // Vochtigheidsgegevens op LCD lcd.print ("%"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Licht"); lcd.setCursor(0, 1); lcd.print(lux); // Lichtgegevens op LCD lcd.print ("LUM"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Vocht"); lcd.setCursor(0, 1); lcd.print(output_value); // Bodemgegevens op LCD lcd.print ("%"); vertraging (1000); lcd.wissen();
if (temperatuur 40) { SendSMS(); // SMS voor Temp hoog } if (vochtigheid 40) { SendSMS2(); // SMS voor vochtigheid hoog } if (lux 100) { SendSMS4(); // SMS voor licht hoog } if (output_value == 950) { SendSMS7 (); // SMS voor droge grond } else if (output_value! = 950) { SendSMS6 (); // SMS voor natte grond } } void SendSMS() {if (tempflag == 0) { Serial.println("AT+CMGF=1"); vertraging (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); vertraging (500); Serial.print("Temp Hoog, "); Serial.print(" Temp "); Seriële.afdruk (temperatuur); Serial.println ("graad C"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Temp Hoog "); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Temperatuur"); lcd.setCursor(0, 1); lcd.afdruk(temperatuur); lcd.schrijven(1); lcd.print("C"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("SMS verzenden"); vertraging (1000); lcd.wissen(); tempvlag = 1; controleren = 0; testen = 0; vertraging(10); } } void SendSMS1() { if (tempflag == 1) { Serial.println("AT+CMGF=1"); vertraging (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); vertraging (500); Serial.print("Temp laag, "); Serial.print(" Temp "); Seriële.afdruk (temperatuur); Serial.println ("graad C"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Temp Laag "); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Temperatuur"); lcd.setCursor(0, 1); lcd.afdruk(temperatuur); lcd.schrijven(1); lcd.print("C"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("SMS verzenden"); vertraging (1000); lcd.wissen(); tempvlag = 0; controleren = 0; testen = 0; vertraging(10); } } void SendSMS2() { if (humflag == 0) { Serial.println("AT+CMGF=1"); vertraging (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); vertraging (500); Serial.print("Vochtigheid hoog"); Seriële.afdruk (vochtigheid); Serieel.println(" %"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Vochtigheid Hoog"); vertraging (1000); lcd.setCursor(0, 1); lcd.print("Vochtigheid "); lcd.print(vochtigheid); lcd.print(" %"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("SMS verzenden"); vertraging (1000); lcd.wissen(); humvlag = 1; controleren = 0; testen = 0; vertraging(10); } }
void SendSMS3() { if (humflag == 1) { Serial.println("AT+CMGF=1"); vertraging (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); vertraging (500); Serial.print("Lage vochtigheid, "); Serial.print(" Vochtigheid "); Seriële.afdruk (vochtigheid); Serieel.println(" %"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Lage vochtigheid"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Vochtigheid"); lcd.setCursor(0, 1); lcd.print(vochtigheid); lcd.print(" %"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("SMS verzenden"); vertraging (1000); lcd.wissen(); humflag = 0; controleren = 0; testen = 0; vertraging(10); } } void SendSMS4() { if (lightflag == 0) { Serial.println("AT+CMGF=1"); // Om sms te verzenden in tekstmodus vertraging (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); // Wijzigen in bestemming telefoonnummer vertraging (500); Serial.print("Goed LICHT, "); Serial.print(" Intensiteit "); Serial.print(lux); Serial.println ("LUX"); Serial.println((char)26); //het stopteken Ctrl+Z lcd.setCursor (0, 0); lcd.print("Goed licht "); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Intensiteit"); lcd.setCursor(0, 1); lcd.print(lux); lcd.print("LUX"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("SMS verzenden"); vertraging (1000); lcd.wissen(); lichtvlag = 1; controleren = 0; testen = 0; vertraging(10); } } void SendSMS5() { if (lightflag == 1) { Serial.println("AT+CMGF=1"); vertraging (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); vertraging (500); Serial.print("LAAG LICHT, "); Serial.print(" Intensiteit "); Serial.print(lux); Serial.println ("LUX"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Weinig licht"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Intensiteit"); lcd.setCursor(0, 1); lcd.print(lux); lcd.print("LUX"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("SMS verzenden"); vertraging (1000); lcd.wissen(); lichtvlag = 0; controleren = 0; testen = 0; vertraging(10); } } void SendSMS6() { if (soilflag == 0) { Serial.println("AT+CMGF=1"); vertraging (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); vertraging (500); Serial.print("Droge grond, "); Serial.print(" Vocht "); Serial.print(output_value); Serieel.println(" %"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Droge grond"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Vocht"); lcd.setCursor(0, 1); lcd.print(output_value); lcd.print(" %"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("SMS verzenden"); vertraging (1000); lcd.wissen(); grondvlag = 1; controleren = 0; testen = 0; vertraging(10); } } void SendSMS7() { if (soilflag == 1) { Serial.println("AT+CMGF=1"); vertraging (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); vertraging (500); Serial.print("Natte grond, "); Serial.print(" Vocht "); Serial.print(output_value); Serieel.println(" %"); Serial.println((char)26); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Natte grond"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Vocht"); lcd.setCursor(0, 1); lcd.print(output_value); lcd.print(" %"); vertraging (1000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("SMS verzenden"); vertraging (1000); lcd.wissen(); grondvlag = 0; controleren = 0; testen = 0; vertraging(10); } }
Aanbevolen:
Een sms verzenden met een ESP8266: 5 stappen
Een sms verzenden met een ESP8266: deze instructie leidt u door de stappen om sms-berichten via internet te verzenden vanaf een ESP8266 NodeMCU-modulekaart naar een mobiele telefoon. Om het bericht te kunnen verzenden, moet u de stappen doorlopen om een virtueel telefoonnummer te krijgen van
SMS versturen met Arduino -- TC35 GSM-module: 5 stappen
SMS versturen met Arduino || TC35 GSM-module: In dit kleine project laat ik je zien hoe je een TC35 GSM-module correct gebruikt en hoe je deze gebruikt met een Arduino Uno om er een sms mee te verzenden
Brandalarm met sms-melding: 3 stappen
Brandalarm met sms-melding: GSM 800H, op Arduino gebaseerde brandsensor en sms-meldingssysteem, het gebruikt een IR-sensor om het vuur in de donkere kamer te detecteren. Het verzendt sms via GSM 800H-modem die is aangesloten op Serial Rx- en Tx-pinnen van Arduino. Stel uw mobiele nummer in de code in
Hoe SIM800L te gebruiken om sms en stuurrelais per sms te verzenden: 3 stappen:
Hoe SIM800L te gebruiken om sms en besturingsrelais per sms te verzenden: Beschrijving: Deze tutorial laat zien hoe u SIM800L kunt gebruiken om sms te verzenden en sms te ontvangen om relais te besturen. SIM800L-module is klein van formaat en kan worden gebruikt om te communiceren met Arduino om sms te verzenden, sms te ontvangen, te bellen, oproepen te ontvangen en meer. In deze zelfstudie
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze