فهرست مطالب:
- مرحله 1: بلوک نمودار سیستم
- مرحله 2: جزئیات جزء
- مرحله 3: نمودار مدار
- مرحله 4: کار ویدیو و فایل کد
- مرحله 5: کد برنامه
تصویری: نظارت بر کارخانه با هشدار پیامکی: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
در اینجا من 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) ؛ }}
توصیه شده:
نحوه نصب ساب ووفر پس از فروش در خودرو با استریو کارخانه: 8 مرحله
نحوه نصب ساب ووفر پس از فروش در خودرو با استفاده از استریو کارخانه: با این دستورالعمل ها ، تقریباً در هر خودرویی با استریو کارخانه قادر خواهید بود ساب ووفر پس از فروش را نصب کنید
UWaiPi - سیستم آبیاری اتوماتیک کارخانه بر اساس زمان: 11 مرحله (همراه با تصاویر)
UWaiPi - سیستم آبیاری اتوماتیک گیاهان بر اساس زمان: سلام! آیا امروز صبح آبیاری گیاهان خود را فراموش کرده اید؟ آیا برای تعطیلات برنامه ریزی می کنید اما فکر می کنید چه کسی به گیاهان آب می دهد؟ خوب ، اگر پاسخ های شما بله است ، من یک راه حل برای مشکل شما دارم. من واقعاً خوشحالم که uWaiPi را معرفی می کنم
نظارت بر کارخانه و هشدارها با ESP8266 و AskSensors Io Cloud: 6 مرحله
نظارت بر گیاهان و هشدارها با ESP8266 و AskSensors IoT Cloud: این پروژه با هدف ایجاد یک سیستم نظارت بر گیاهان هوشمند با استفاده از ESP8266 و بستر اینترنت اشیا AskSensors انجام می شود. این سیستم می تواند برای ردیابی سطح رطوبت خاک برای ارائه معیارهای عینی برای تصمیمات آبیاری مورد استفاده قرار گیرد. که به اطمینان از آبیاری کمک می کند
هشدار خشک کن ماشین لباسشویی آردوینو - هشدار به تلفن با بلینک: 5 مرحله (همراه با تصاویر)
هشدار خشک کن ماشین لباسشویی آردوینو - هشدار به تلفن با بلینک: ماشین لباسشویی ما در گاراژ است و نمی توان صدای بوق را شنید که نشان می دهد شستشو کامل است. من می خواستم راهی پیدا کنم که در هر کجا که در خانه هستیم ، وقتی چرخه به پایان رسید ، مطلع شوم. من مشغول کار با آردوینو ، ESP8266 WiFi هستم
نظارت بر دمای اتاق رزبری پای با خروجی تصویر Gnuplot و قابلیت هشدار ایمیل: 7 مرحله
نظارت بر دمای اتاق رزبری پای با خروجی تصویر Gnuplot و قابلیت هشدار ایمیل: جایی که من کار می کنم ، یک اتاق بسیار مهم وجود دارد که تعداد زیادی کامپیوتر در آن قرار دارد. برای بهینه سازی عملکرد این سیستم ها ، دمای محیط این اتاق باید بسیار سرد باشد. از من خواسته شد که یک سیستم نظارتی ارائه دهم که قابلیت