جدول المحتويات:
- الخطوة 1: رسم تخطيطي للنظام
- الخطوة 2: تفاصيل المكون
- الخطوة 3: مخطط الدائرة
- الخطوة 4: فيديو العمل وملف الكود
- الخطوة 5: كود البرنامج
فيديو: مراقبة المصنع مع التنبيه عبر الرسائل القصيرة: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
هنا أقوم بإنشاء مراقبة المصنع مع تنبيه عبر الرسائل القصيرة. الخادم غير مطلوب لنظام التنبيه هذا. إنه مشروع رخيص للغاية وموثوق.
الخطوة 1: رسم تخطيطي للنظام
في الدفيئات الزراعية اليوم ، هناك حاجة إلى العديد من قياسات المعلمات
لرصد ومراقبة الجودة والإنتاجية الجيدة للنباتات. ولكن للحصول على النتائج المرجوة ، هناك بعض العوامل المهمة جدًا التي تلعب دورًا مثل درجة الحرارة والرطوبة والضوء والتربة الجيدة ، والتي تعد ضرورية لنمو النبات بشكل أفضل. مع وضع هذه المعلمات في الاعتبار ، لقد قمت ببناء نظام أوتوماتيكي لمراقبة المصنع عبر وحدة GSM باستخدام Arduino. هذا النظام فعال للغاية في زراعة نباتات ذات نوعية جيدة. الجزء المهم الآخر من هذا المشروع هو أنه آلي بالكامل ويعمل بجهد منخفض مثل ؛ 5-12 فولت تيار مستمر العرض.
الآن يستخدم GSM Module على نطاق واسع لإرسال حالة الرسائل القصيرة لأي نوع من البيانات. هنا في هذا المشروع باستخدام وحدة SIM900A GSM يمكننا الاحتفاظ بالمعلومات حول تأثيرات المناخ على النباتات. يجب أن يُظهر النظام أيضًا التغيرات المناخية التي تؤثر على المصنع في إنتاجيته وجودته وما إلى ذلك. والغرض الرئيسي من الخروج بهذا المشروع هو إنشاء مراقبة تلقائية للمحطة ترسل فيها وحدة GSM معلومات حول درجة الحرارة والرطوبة وشدة الضوء والتربة. رطوبة.
نظرًا لأنني مواطن هندي ، استخدم وحدة SIM900A (A تعني الشبكة الآسيوية) ولكن يمكنك استخدام نوع مختلف من وحدات SIM وفقًا لبلدك. قد تختلف أكواد AT.
الخطوة 2: تفاصيل المكون
------------------ أقوم بقياس أربعة أنواع من المعلمات ، وهي قيد التنفيذ
للمناقشة أدناه: ------------------
درجة الحرارة والرطوبة
يستخدم مستشعر DHT11 لاستشعار درجة الحرارة والرطوبة. عندما تكون درجة الحرارة والرطوبة عالية ، فإن جذر النباتات يتضرر ونمو النبات ليس جيدًا.
شدة الضوء
شدة الضوء عامل مهم لنمو النبات. للكشف عن شدة الضوء ، يتم استخدام LDR (المقاوم المعتمد على الضوء). تُقاس شدة الضوء بوحدة LUX ، وبالتالي من أجل العرض التوضيحي ، يتم استخدام 100 ضوء LUX كمستوى محدد أو عتبة.
رطوبة التربة
احتواء رطوبة التربة مهم جدًا للنمو الجيد للنباتات. هنا يتم استخدام مستشعر التربة لقياس محتوى الرطوبة في التربة. باستخدام هذا المستشعر يمكننا قياس بيانات التربة في كلا الاتجاهين ، التناظرية والرقمية أيضًا.
إخطار الرسائل القصيرة:
عندما تتجاوز قيمة أي من المعلمات أعلاه من مستوى محدد أو مستوى حرج ، يرسل النظام تلقائيًا رسالة نصية قصيرة إلى المالك أو المشغل بمعلومات عن المعلمات ذات الصلة وعندما تأتي القيمة في النطاق الطبيعي أو أقل من المستوى المحدد مرة أخرى النظام تلقائيًا إرسال الرسائل القصيرة إلى المالك أو المشغل بمعلومات البيانات ذات الصلة.
يتم إرسال الإشعار مرة واحدة فقط حتى لا تتغير الحالة بحيث لا يتلقى المالك أو المشغل رسائل SMS متكررة. لذلك ، تتطلب حزمة SMS أقل.
الخطوة 3: مخطط الدائرة
جميع هذه الأجزاء متاحة بسهولة في أي موقع تسوق عبر الإنترنت
أو مع تاجر قطع غيار إلكترونيات معروف. تتوفر جميع أوراق بيانات المكونات على الويب. إذا كانت هناك أي صعوبة فلا تتردد في الاتصال على بريدي.
الخطوة 4: فيديو العمل وملف الكود
فيديو العمل النهائي للمشروع
الخطوة 5: كود البرنامج
#يشمل
#يشمل
LiquidCrystal LCD (2 ، 3 ، 4 ، 5 ، 6 ، 7) ؛
dht DHT ؛ #define dht_dpin A1 #define LUX A0 # تعريف التربة A3
تعويم فولت ، لوكس ، قيمة ؛ int output_value ؛ درجة الحرارة والرطوبة. int lightflag = 0 ؛ int humflag = 0 ؛ كثافة التربة التربة = 0 ؛ int tempflag = 0 ؛ فحص int اختبار int ، test1 ؛ درجة البايت [8] = {0b00011 ، 0b00011 ، 0b00000 ، 0b00000 ، 0b00000 ، 0b00000 ، 0b00000 ، 0b00000} ؛
الإعداد باطل()
{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 ("بواسطة S K CHHAYA") ؛ تأخير (1000) ؛ lcd.clear () ؛ } حلقة فارغة () {output_value = analogRead (تربة) ؛ output_value = map (output_value، 550، 0، 0، 100) ؛ القيمة = analogRead (LUX) ؛ فولت = (القيمة / 1023.0) * 5 ؛ لوكس = ((2500 / فولت) - 500) / 3.3 ؛ تأخير (10000) ؛ // امنح وقتًا كافيًا لـ GSM للتسجيل في شبكة DHT.read11 (dht_dpin) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("درجة الحرارة") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (درجة الحرارة = DHT. درجة الحرارة) ؛ // بيانات درجة الحرارة على شاشة LCD lcd.write (1) ؛ lcd.print ("C") ؛ تأخير (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 ("ضوء") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (لوكس) ؛ // بيانات الضوء على شاشة LCD.print ("LUM") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("الرطوبة") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (output_value) ؛ // بيانات التربة على شاشة LCD.print ("٪") ؛ تأخير (1000) ؛ lcd.clear () ؛
إذا (درجة الحرارة 40) {SendSMS () ؛ // SMS لدرجة الحرارة العالية} إذا (الرطوبة 40) {SendSMS2 () ؛ // الرسائل القصيرة للرطوبة عالية} إذا (لوكس 100) {SendSMS4 () ؛ // SMS for Light high} if (output_value == 950) {SendSMS7 () ؛ // SMS for Dry Soil} else if (output_value! = 950) {SendSMS6 () ؛ // SMS for Wet Soil}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT + CMGF = 1")؛ تأخير (500) ؛ Serial.println ("AT + CMGS = \" + 919979897404 / "\ r") ؛ تأخير (500) ؛ Serial.print ("درجة حرارة عالية") ؛ Serial.print ("Temp") ؛ Serial.print (درجة الحرارة) ؛ Serial.println ("درجة C") ؛ Serial.println ((شار) 26) ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("درجة حرارة عالية") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("درجة الحرارة") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (درجة الحرارة) ؛ lcd.write (1) ؛ lcd.print ("C") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("إرسال الرسائل القصيرة") ؛ تأخير (1000) ؛ lcd.clear () ؛ تمبفلاغ = 1 ؛ تحقق = 0 ؛ اختبار = 0 ؛ تأخير (10) ؛ }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT + CMGF = 1")؛ تأخير (500) ؛ Serial.println ("AT + CMGS = \" + 919979897404 / "\ r") ؛ تأخير (500) ؛ Serial.print ("درجة الحرارة منخفضة ،") ؛ Serial.print ("Temp") ؛ Serial.print (درجة الحرارة) ؛ Serial.println ("درجة C") ؛ Serial.println ((شار) 26) ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("درجة الحرارة منخفضة") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("درجة الحرارة") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (درجة الحرارة) ؛ lcd.write (1) ؛ lcd.print ("C") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("إرسال الرسائل القصيرة") ؛ تأخير (1000) ؛ lcd.clear () ؛ tempflag = 0 ؛ تحقق = 0 ؛ اختبار = 0 ؛ تأخير (10) ؛ }} باطل 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 ((شار) 26) ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("الرطوبة عالية") ؛ تأخير (1000) ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("الرطوبة") ؛ lcd.print (الرطوبة) ؛ lcd.print ("٪") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("إرسال الرسائل القصيرة") ؛ تأخير (1000) ؛ lcd.clear () ؛ humflag = 1 ؛ تحقق = 0 ؛ اختبار = 0 ؛ تأخير (10) ؛ }}
باطل 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 (الرطوبة) ؛ 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 ("Good LIGHT") ؛ Serial.print ("كثافة") ؛ المسلسل. print (لوكس) ؛ 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 (لوكس) ؛ 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 ("كثافة") ؛ المسلسل. print (لوكس) ؛ 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 (لوكس) ؛ lcd.print ("LUX") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("إرسال الرسائل القصيرة") ؛ تأخير (1000) ؛ lcd.clear () ؛ lightflag = 0 ؛ تحقق = 0 ؛ اختبار = 0 ؛ تأخير (10) ؛ }} void SendSMS6 () {if (التربةflag == 0) {Serial.println ("AT + CMGF = 1") ؛ تأخير (500) ؛ Serial.println ("AT + CMGS = \" + 919979897404 / "\ r") ؛ تأخير (500) ؛ Serial.print ("التربة الجافة") ؛ Serial.print ("الرطوبة") ؛ Serial.print (output_value) ؛ Serial.println ("٪") ؛ Serial.println ((شار) 26) ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("التربة الجافة") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("الرطوبة") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (output_value) ؛ lcd.print ("٪") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("إرسال الرسائل القصيرة") ؛ تأخير (1000) ؛ lcd.clear () ؛ التربة = 1 ؛ تحقق = 0 ؛ اختبار = 0 ؛ تأخير (10) ؛ }} void SendSMS7 () {if (التربةflag == 1) {Serial.println ("AT + CMGF = 1") ؛ تأخير (500) ؛ Serial.println ("AT + CMGS = \" + 919979897404 / "\ r") ؛ تأخير (500) ؛ Serial.print ("التربة الرطبة") ؛ Serial.print ("الرطوبة") ؛ Serial.print (output_value) ؛ Serial.println ("٪") ؛ Serial.println ((شار) 26) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("التربة الرطبة") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("الرطوبة") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (output_value) ؛ lcd.print ("٪") ؛ تأخير (1000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("إرسال الرسائل القصيرة") ؛ تأخير (1000) ؛ lcd.clear () ؛ التربة = 0 ؛ تحقق = 0 ؛ اختبار = 0 ؛ تأخير (10) ؛ }}
موصى به:
إرسال الرسائل القصيرة إذا تم اكتشاف دخان (Arduino + GSM SIM900A: 5 خطوات
إرسال الرسائل القصيرة إذا تم اكتشاف دخان (Arduino + GSM SIM900A: مرحبًا بالجميع! في أول توجيه لي ، سأقوم بإصدار إنذار بالغاز يرسل رسالة إلى المستخدم في حالة اكتشاف التلوث. سيكون هذا نموذجًا أوليًا بسيطًا باستخدام Arduino و GSM و Electrochemical. جهاز استشعار الدخان. يمكن أن يمتد هذا في المستقبل إلى
إرسال الرسائل القصيرة مع اردوينو -- وحدة TC35 GSM: 5 خطوات
إرسال الرسائل القصيرة مع اردوينو || وحدة TC35 GSM: في هذا المشروع الصغير ، سأوضح لك كيفية استخدام وحدة TC35 GSM بشكل صحيح وكيفية استخدامها مع Arduino Uno لإرسال رسالة نصية قصيرة معها
إنذار الحريق مع التنبيه عبر الرسائل القصيرة: 3 خطوات
إنذار الحريق بإخطار الرسائل القصيرة: GSM 800H ، مستشعر الحريق القائم على Arduino ونظام الإخطار بالرسائل القصيرة ، يستخدم مستشعر الأشعة تحت الحمراء للكشف عن الحريق في الغرفة المظلمة. يقوم بإرسال الرسائل القصيرة عبر مودم GSM 800H المتصل بـ Serial Rx و Tx Pins من Arduino قم بتعيين رقم هاتفك المحمول داخل الكود
اصنع نظام تتبع أمن الرسائل القصيرة GPS الخاص بك: 5 خطوات (بالصور)
اصنع نظام تتبع أمان الرسائل القصيرة عبر نظام تحديد المواقع العالمي (GPS) الخاص بك: في هذا المشروع سأوضح لك كيفية دمج وحدة SIM5320 3G مع Arduino ومحول طاقة كهرضغطية كجهاز استشعار للصدمات من أجل إنشاء نظام تتبع أمني سيرسل لك موقع سيارة ثمينة عبر الرسائل القصيرة عندما
كيفية استخدام SIM800L لإرسال الرسائل القصيرة والتحكم في الترحيل عن طريق الرسائل القصيرة: 3 خطوات
كيفية استخدام SIM800L لإرسال الرسائل القصيرة والتحكم في الترحيل عن طريق الرسائل القصيرة: الوصف: يوضح هذا البرنامج التعليمي كيفية استخدام SIM800L لإرسال الرسائل القصيرة واستقبال الرسائل القصيرة للتحكم في الترحيل. وحدة SIM800L صغيرة الحجم ويمكن استخدامها للتفاعل مع Arduino لإرسال الرسائل القصيرة واستقبال الرسائل القصيرة والمكالمات واستقبال المكالمات وغير ذلك. في هذا البرنامج التعليمي ،