فهرست مطالب:

نظارت بر کارخانه با هشدار پیامکی: 5 مرحله
نظارت بر کارخانه با هشدار پیامکی: 5 مرحله

تصویری: نظارت بر کارخانه با هشدار پیامکی: 5 مرحله

تصویری: نظارت بر کارخانه با هشدار پیامکی: 5 مرحله
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
نظارت بر کارخانه با هشدار پیامکی
نظارت بر کارخانه با هشدار پیامکی

در اینجا من Plant Monitoring with SMS alert ایجاد می کنم. برای این سیستم هشدار به سرور نیاز نیست. این پروژه بسیار ارزان و قابل اعتماد است.

مرحله 1: بلوک نمودار سیستم

بلوک نمودار سیستم
بلوک نمودار سیستم

در گلخانه های امروزی ، اندازه گیری پارامترهای زیادی مورد نیاز است

برای نظارت و کنترل کیفیت و بهره وری خوب گیاهان. اما برای به دست آوردن نتایج مطلوب ، عوامل بسیار مهمی مانند دما ، رطوبت ، نور و خاک خوب وجود دارد که برای رشد بهتر گیاه ضروری است. با در نظر گرفتن این پارامترها ، من یک سیستم مانیتورینگ خودکار کارخانه را بر روی ماژول GSM با استفاده از آردوینو ساخته ام. این سیستم برای پرورش گیاهان با کیفیت خوب بسیار کارآمد است. بخش مهم دیگر این پروژه این است که کاملاً اتوماتیک است و بر روی ولتاژ پایین کار می کند. منبع تغذیه 5-12 ولت DC

امروزه ماژول GSM به طور گسترده ای برای ارسال وضعیت پیامک از هر نوع داده استفاده می شود. در اینجا در این پروژه با استفاده از ماژول SIM900A GSM می توانیم اطلاعاتی در مورد تأثیرات آب و هوا بر گیاهان حفظ کنیم. سیستم همچنین باید تغییرات آب و هوایی را نشان دهد که بر بهره وری و کیفیت گیاه تأثیر می گذارد و غیره. هدف اصلی ایجاد این پروژه ایجاد یک مانیتورینگ خودکار کارخانه است که در آن ماژول GSM اطلاعات مربوط به دما ، رطوبت ، شدت نور ، خاک را ارسال می کند. مرطوب.

از آنجا که من شهروند هندی هستم ، از ماژول SIM900A (A مخفف شبکه آسیایی است) استفاده می کنید ، اما می توانید از انواع مختلف ماژول سیم کارت بر اساس کشور خود استفاده کنید. کدهای AT ممکن است متفاوت باشد.

مرحله 2: جزئیات جزء

جزئیات جزء
جزئیات جزء
جزئیات جزء
جزئیات جزء
جزئیات جزء
جزئیات جزء

------------------ من چهار نوع پارامتر را اندازه گیری می کنم

در زیر بحث کنید: ------------------

دما و رطوبت

سنسور DHT11 برای تشخیص دما و رطوبت استفاده می شود. وقتی درجه حرارت و رطوبت زیاد است ریشه گیاهان آسیب می بیند و رشد گیاه خوب نیست.

شدت نور

شدت نور عامل مهمی در رشد گیاه است. برای تشخیص شدت نور از LDR (مقاومت وابسته به نور) استفاده می شود. شدت نور با LUX اندازه گیری می شود و بنابراین برای نشان دادن 100 LUX از نور به صورت تعریف شده یا سطح آستانه استفاده می شود.

رطوبت خاک

رطوبت خاک برای رشد خوب گیاهان بسیار مهم است. در اینجا از سنسور خاک برای اندازه گیری میزان رطوبت در خاک استفاده می شود. با استفاده از این سنسور می توانیم داده های خاک را به دو صورت آنالوگ و دیجیتال نیز اندازه گیری کنیم.

اعلان پیامک:

هنگامی که مقدار هر یک از پارامترهای فوق از یک سطح تعریف شده یا سطح بحرانی فراتر رود ، سیستم به طور خودکار پیامهای مربوط به پارامترهای مربوطه را به مالک یا اپراتور ارسال می کند و هنگامی که مقدار در محدوده نرمال یا زیر سطح تعریف شده قرار گیرد دوباره سیستم به طور خودکار ارسال پیامک به مالک یا اپراتور با اطلاعات مربوط به آن.

اعلان فقط یک بار ارسال می شود تا شرایط تغییر نکند تا مالک یا اپراتور پیامک مکرری دریافت نکنند. بنابراین ، بسته SMS کمتری مورد نیاز است.

مرحله 3: نمودار مدار

مدار
مدار

همه این قطعات به راحتی در هر سایت خرید آنلاین در دسترس هستند

یا با نمایندگی فروش قطعات الکترونیکی مشهور. تمام برگه های داده اجزا در وب موجود است. در صورت بروز هرگونه مشکل با ایمیل من تماس بگیرید.

مرحله 4: کار ویدیو و فایل کد

فیلم نهایی کار پروژه

مرحله 5: کد برنامه

#عبارتند از

#عبارتند از

LCD مایع LiquidCrystal (2 ، 3 ، 4 ، 5 ، 6 ، 7) ؛

dht DHT ؛ #تعریف dht_dpin A1 #تعریف LUX A0 #تعریف خاک A3

شناور ولت ، لوکس ، ارزش ؛ int output_value؛ دمای داخل ، رطوبت ؛ int lightflag = 0؛ int humflag = 0؛ int axaflag = 0؛ int tempflag = 0؛ بررسی int ؛ آزمون int ، test1 ؛ درجه بایت [8] = {0b00011، 0b00011، 0b00000، 0b00000، 0b00000، 0b00000، 0b00000، 0b00000}؛

void setup ()

{Serial.begin (9600) ؛ // شروع سریال برای ارتباط با مودم GSM lcd.begin (16 ، 2) ؛ pinMode (خاک ، ورودی) ؛ lcd.createChar (1 ، درجه) ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("بهداشت گیاهان") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("نظارت") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("پروژه AGRI") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("By S K CHHAYA")؛ تاخیر (1000) ؛ lcd.clear ()؛ } void loop () {output_value = analogRead (خاک) ؛ خروجی_ارزش = نقشه (خروجی_ارزش ، 550 ، 0 ، 0 ، 100) ؛ value = analogRead (LUX) ؛ ولت = (مقدار / 1023.0) * 5 ؛ lux = ((2500 / ولت) - 500) / 3.3 ؛ تاخیر (10000) ؛ // زمان کافی برای ثبت نام GSM در شبکه DHT.read11 (dht_dpin) بگذارید ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("Temp") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (دما = DHT.temperature) ؛ // داده های Temp در LCD lcd.write (1)؛ lcd.print ("C") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("رطوبت") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (رطوبت = DHT. رطوبت) ؛ // داده های رطوبت در LCD lcd.print ("٪") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("نور") ؛ lcd.setCursor (0 ، 1) ؛ ال سی دی چاپ (لوکس) ؛ // داده های نوری در LCD lcd.print ("LUM") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("رطوبت") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (خروجی_ارزش) ؛ // داده های خاک روی LCD lcd.print ("٪") ؛ تاخیر (1000) ؛ lcd.clear ()؛

if (دما 40) {SendSMS ()؛ // SMS برای Temp high} if (رطوبت 40) {SendSMS2 ()؛ // SMS برای رطوبت بالا} if (lux 100) {SendSMS4 ()؛ // SMS for Light high} if (output_value == 950) {SendSMS7 ()؛ // پیامک برای خاک خشک} در غیر این صورت (ارزش_خروجی! = 950) {SendSMS6 ()؛ // SMS برای خاک مرطوب}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1") ؛ تأخیر (500) ؛ Serial.println ("AT+CMGS = \"+919979897404 / "\ r")؛ تأخیر (500) ؛ Serial.print ("Temp High" ،) ؛ Serial.print ("Temp") ؛ Serial.print (دما) ؛ Serial.println ("درجه C") ؛ Serial.println ((char) 26)؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("Temp High") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("دما") ؛ lcd.setCursor (0 ، 1) ؛ ال سی دی چاپ (دما) ؛ lcd.write (1)؛ lcd.print ("C") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ارسال پیامک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ tempflag = 1؛ چک = 0 ؛ تست = 0 ؛ تأخیر (10) ؛ }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1")؛ تأخیر (500) ؛ Serial.println ("AT+CMGS = \"+919979897404 / "\ r") ؛ تأخیر (500) ؛ Serial.print ("Temp Low" ،) ؛ Serial.print ("Temp") ؛ Serial.print (دما) ؛ Serial.println ("درجه C") ؛ Serial.println ((char) 26)؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("Temp Low") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("دما") ؛ lcd.setCursor (0 ، 1) ؛ ال سی دی چاپ (دما) ؛ lcd.write (1)؛ lcd.print ("C") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ارسال پیامک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ tempflag = 0؛ چک = 0 ؛ تست = 0 ؛ تأخیر (10) ؛ }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1")؛ تأخیر (500) ؛ Serial.println ("AT+CMGS = \"+919979897404 / "\ r") ؛ تأخیر (500) ؛ Serial.print ("رطوبت بالا") ؛ Serial.print (رطوبت) ؛ Serial.println ("٪")؛ Serial.println ((char) 26)؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("رطوبت زیاد") ؛ تاخیر (1000) ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("رطوبت") ؛ ال سی دی چاپ (رطوبت) ؛ lcd.print ("٪") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ارسال پیامک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ humflag = 1 ؛ چک = 0 ؛ تست = 0 ؛ تأخیر (10) ؛ }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1")؛ تأخیر (500) ؛ Serial.println ("AT+CMGS = \"+919979897404 / "\ r") ؛ تأخیر (500) ؛ Serial.print ("رطوبت کم") ؛ Serial.print ("رطوبت") ؛ Serial.print (رطوبت) ؛ Serial.println ("٪")؛ Serial.println ((char) 26)؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("رطوبت کم") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("رطوبت") ؛ lcd.setCursor (0 ، 1) ؛ ال سی دی چاپ (رطوبت) ؛ lcd.print ("٪") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ارسال پیامک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ humflag = 0؛ چک = 0 ؛ تست = 0 ؛ تأخیر (10) ؛ }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1")؛ // ارسال پیامک در حالت تأخیر حالت متن (500) ؛ Serial.println ("AT+CMGS = \"+919979897404 / "\ r") ؛ // تغییر تاخیر شماره تلفن مقصد (500) ؛ Serial.print ("نور خوب ،") ؛ Serial.print ("شدت") ؛ Serial.print (lux) ؛ Serial.println ("LUX") ؛ Serial.println ((char) 26)؛ // کاراکتر متوقف کننده Ctrl+Z lcd.setCursor (0 ، 0) ؛ lcd.print ("نور خوب") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("شدت") ؛ lcd.setCursor (0 ، 1) ؛ ال سی دی چاپ (لوکس) ؛ lcd.print ("LUX") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ارسال پیامک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lightflag = 1؛ چک = 0 ؛ تست = 0 ؛ تأخیر (10) ؛ }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1")؛ تأخیر (500) ؛ Serial.println ("AT+CMGS = \"+919979897404 / "\ r") ؛ تأخیر (500) ؛ Serial.print ("LOW LIGHT" ،) ؛ Serial.print ("شدت") ؛ Serial.print (lux) ؛ Serial.println ("LUX") ؛ Serial.println ((char) 26)؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("نور کم") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("شدت") ؛ lcd.setCursor (0 ، 1) ؛ ال سی دی چاپ (لوکس) ؛ lcd.print ("LUX") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ارسال پیامک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lightflag = 0؛ چک = 0 ؛ تست = 0 ؛ تأخیر (10) ؛ }} void SendSMS6 () {if (groundflag == 0) {Serial.println ("AT+CMGF = 1")؛ تأخیر (500) ؛ Serial.println ("AT+CMGS = \"+919979897404 / "\ r") ؛ تأخیر (500) ؛ Serial.print ("خاک خشک") ؛ Serial.print ("رطوبت") ؛ Serial.print (خروجی_ارزش) ؛ Serial.println ("٪")؛ Serial.println ((char) 26)؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("خاک خشک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("رطوبت") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (خروجی_ارزش) ؛ lcd.print ("٪") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ارسال پیامک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ خاک خاک = 1؛ چک = 0 ؛ تست = 0 ؛ تأخیر (10) ؛ }} void SendSMS7 () {if (groundflag == 1) {Serial.println ("AT+CMGF = 1")؛ تأخیر (500) ؛ Serial.println ("AT+CMGS = \"+919979897404 / "\ r") ؛ تأخیر (500) ؛ Serial.print ("خاک مرطوب") ؛ Serial.print ("رطوبت") ؛ Serial.print (خروجی_ارزش) ؛ Serial.println ("٪")؛ Serial.println ((char) 26)؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("خاک مرطوب") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("رطوبت") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (خروجی_ارزش) ؛ lcd.print ("٪") ؛ تاخیر (1000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ارسال پیامک") ؛ تاخیر (1000) ؛ lcd.clear ()؛ خاک خاک = 0؛ چک = 0 ؛ تست = 0 ؛ تأخیر (10) ؛ }}

توصیه شده: