Innehållsförteckning:
- Steg 1: Blockdiagram över systemet
- Steg 2: Komponentdetaljer
- Steg 3: Kretsdiagram
- Steg 4: Arbetsvideo och kodfil
- Steg 5: Programkod
Video: Växtövervakning med SMS -varning: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Här skapar jag växtövervakning med SMS -varning. Server krävs inte för detta varningssystem. Det är ett mycket billigt och pålitligt projekt.
Steg 1: Blockdiagram över systemet
I dagens växthus krävs många parametermätningar
att övervaka och kontrollera för växternas goda kvalitet och produktivitet. Men för att få önskat resultat finns det några mycket viktiga faktorer som spelar in, som temperatur, luftfuktighet, ljus och god jord, som är nödvändiga för en bättre växttillväxt. Med tanke på dessa parametrar har jag byggt ett automatiskt växtövervakningssystem över GSM -modul med Arduino. Detta system är mycket effektivt för odling av växter av god kvalitet. Den andra viktiga delen av detta projekt är att det är helautomatiskt och fungerar på lågspänning som; 5-12V likström.
Nu för tiden används GSM -modul i stor utsträckning för att skicka SMS -status för alla typer av data. Här i detta projekt kan vi med SIM900A GSM -modul behålla information om klimatets effekter på växter. Systemet ska också visa klimatförändringar som påverkar anläggningens produktivitet och kvalitet etc. Huvudsyftet med detta projekt är att bygga en automatisk växtövervakning där GSM -modul skickar information om temperatur, luftfuktighet, ljusintensitet, jord. fukt.
Eftersom jag är indisk medborgare använde jag SIM900A (A står för asiatiskt nätverk) men du kan använda olika typer av SIM -moduler enligt ditt land. AT -koder kan skilja sig åt.
Steg 2: Komponentdetaljer
------------------ Jag mäter fyra typer av parametrar, som går
att diskutera nedan: ------------------
Temperatur och luftfuktighet
DHT11 -sensorn används för att avkänna temperatur och luftfuktighet. När temperaturen och luftfuktigheten är hög roten av växter skadade och tillväxten av växten inte bra.
Ljusintensitet
Ljusintensitet är en viktig faktor för växttillväxten. För att detektera ljusintensitet används LDR (ljusberoende motstånd). Ljusintensitet mäts i LUX och därför används för demonstration 100 LUX -ljus som definierat eller tröskelnivå.
Markfuktighet
Jordfuktighetsinnehållet är mycket viktigt för en god tillväxt av växter. Här används jordgivare för att mäta fuktinnehåll i mark. Med denna sensor kan vi mäta jorddata på båda sätten, både analoga och digitala.
SMS -meddelande:
När värdet för någon av ovanstående parametrar överskrider från en definierad nivå eller kritisk nivå, skickar systemet automatiskt SMS till ägaren eller operatören med information om relaterade parametrar och när värdet kommer i normalt område eller under den definierade nivån igen systemet automatiskt skicka SMS till ägaren eller operatören med information om relaterad data.
Meddelandet skickas bara en gång tills villkoret inte ändras så att ägaren eller operatören inte får ofta sms. Därför krävs lägre SMS -paket.
Steg 3: Kretsdiagram
Alla dessa delar är lätt tillgängliga på alla onlineshopsidor
eller hos en välkänd elektronikreservhandlare. Alla komponenter datablad finns tillgängliga på webben. Om du har problem kan du kontakta mig på min mail.
Steg 4: Arbetsvideo och kodfil
Slutlig arbetsvideo av projektet
Steg 5: Programkod
#omfatta
#omfatta
LiquidCrystal lcd (2, 3, 4, 5, 6, 7);
dht DHT; #define dht_dpin A1 #define LUX A0 #definiera jord A3
float volt, lux, värde; int output_value; int temperatur, luftfuktighet; int lightflag = 0; int humflag = 0; int jordflagg = 0; int tempflag = 0; int check; int test, test1; bytegrad [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};
void setup ()
{Serial.begin (9600); // Initiera serien för att kommunicera med GSM -modem lcd.begin (16, 2); pinMode (jord, INGÅNG); lcd.createChar (1, grad); lcd.setCursor (0, 0); lcd.print ("Växthälsa"); lcd.setCursor (0, 1); lcd.print ("Monitering"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJECT"); lcd.setCursor (0, 1); lcd.print ("Av S K CHHAYA"); fördröjning (1000); lcd.clear (); } void loop () {output_value = analogRead (jord); output_value = map (output_value, 550, 0, 0, 100); värde = analogRead (LUX); volt = (värde / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; fördröjning (10000); // Ge tillräckligt med tid för GSM att registrera sig på nätverket DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatur = DHT. temperatur); // Temp data på LCD lcd.write (1); lcd.print ("C"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fuktighet"); lcd.setCursor (0, 1); lcd.print (fuktighet = DHT.fuktighet); // Luftfuktighetsdata på LCD lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Light"); lcd.setCursor (0, 1); lcd.print (lux); // Ljusdata på LCD lcd.print ("LUM"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fukt"); lcd.setCursor (0, 1); lcd.print (output_value); // Jorddata på LCD lcd.print (" %"); fördröjning (1000); lcd.clear ();
if (temperatur 40) {SendSMS (); // SMS för Temp hög} if (fuktighet 40) {SendSMS2 (); // SMS för fuktighet hög} if (lux 100) {SendSMS4 (); // SMS för Light high} if (output_value == 950) {SendSMS7 (); // SMS för torr jord} annars if (output_value! = 950) {SendSMS6 (); // SMS för Wet Soil}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Temp High"); Serial.print ("Temp"); Seriellt tryck (temperatur); Serial.println ("grad C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp High"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatur"); lcd.setCursor (0, 1); lcd.print (temperatur); lcd.write (1); lcd.print ("C"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); tempflag = 1; check = 0; test = 0; fördröjning (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Temp Low"); Serial.print ("Temp"); Seriellt tryck (temperatur); Serial.println ("grad C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp Low"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatur"); lcd.setCursor (0, 1); lcd.print (temperatur); lcd.write (1); lcd.print ("C"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); tempflag = 0; check = 0; test = 0; fördröjning (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Luftfuktighet hög"); Seriellt tryck (luftfuktighet); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Luftfuktighet hög"); fördröjning (1000); lcd.setCursor (0, 1); lcd.print ("Fuktighet"); lcd.print (fuktighet); lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); humflag = 1; check = 0; test = 0; fördröjning (10); }}
void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Låg luftfuktighet"); Serial.print ("Luftfuktighet"); Seriellt tryck (luftfuktighet); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Låg luftfuktighet"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fuktighet"); lcd.setCursor (0, 1); lcd.print (fuktighet); lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); humflag = 0; check = 0; test = 0; fördröjning (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // För att skicka SMS i textlägesfördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Ändra till destination telefonnummer fördröjning (500); Serial.print ("Bra LJUS"); Serial.print ("Intensitet"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // stopptecknet Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Bra ljus"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensitet"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); lightflag = 1; check = 0; test = 0; fördröjning (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("LÅGT LJUS"); Serial.print ("Intensitet"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Svagt ljus"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensitet"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); lightflag = 0; check = 0; test = 0; fördröjning (10); }} void SendSMS6 () {if (soilflag == 0) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("torr jord"); Serial.print ("Fukt"); Serial.print (output_value); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("torr jord"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fukt"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); jordflagg = 1; check = 0; test = 0; fördröjning (10); }} void SendSMS7 () {if (soilflag == 1) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Wet Soil"); Serial.print ("Fukt"); Serial.print (output_value); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("våt jord"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fukt"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); jordflagg = 0; check = 0; test = 0; fördröjning (10); }}
Rekommenderad:
Skicka ett SMS med hjälp av en ESP8266: 5 steg
Skicka ett sms med hjälp av en ESP8266: Denna instruktion tar dig igenom stegen för att skicka ett SMS via internet från ett ESP8266 NodeMCU -modulkort till en mobiltelefon. För att kunna skicka meddelandet måste du gå igenom stegen för att få ett virtuellt telefonnummer från
GPS -biltracker med SMS -avisering och dataöverföring av Thingspeak, Arduino -baserad, Hemautomation: 5 steg (med bilder)
GPS -biltracker med SMS -meddelande och Thingspeak -dataöverföring, Arduino -baserad, Hemautomation: Jag gjorde den här GPS -spåraren förra året och eftersom den fungerar bra publicerar jag den nu på Instructable. Den är ansluten till tillbehörskontakten i min bagagerum. GPS -spåraren laddar upp bilens position, hastighet, riktning och uppmätt temperatur via en mobildata
Så här använder du SIM800L för att skicka SMS och styra relä via SMS: 3 steg
Så här använder du SIM800L för att skicka SMS och styra relä via SMS: Beskrivning: Denna handledning visar hur du använder SIM800L för att skicka sms och ta emot sms för att styra relä. SIM800L -modulen är liten i storlek och kan användas för att ansluta till Arduino för att skicka sms, ta emot sms, ringa, ta emot samtal och annat. I den här självstudien
Växtövervakning och varningar med ESP8266 och AskSensors IoT Cloud: 6 steg
Växtövervakning och varningar med ESP8266 och AskSensors IoT Cloud: Detta projekt syftar till att bygga ett smart anläggningsövervakningssystem med hjälp av ESP8266 och AskSensors IoT -plattform. Detta system kan användas för att hålla koll på markens fuktnivå för att ge objektiva kriterier för bevattningsbeslut. som hjälper till att säkerställa bevattning
Skickar ett SMS med temperatur i tid: 5 steg (med bilder)
Skickar ett SMS med temperatur i tid: Tanken är att få ett temperatur -sms från mina faders hus. Inget fancy bara att snabbt sätta ihop delar. Delarna är: Geekcreit ® ATmega328P Nano V3 Controller Board Compatible ArduinoDIY NANO IO Shield V1.O Expansionskort för ArduinoDS130