سیستم تشخیص آتش سوزی جنگل مبتنی بر IoT و آردوینو
محتویات
آتش گرفتن درخت ها از جمله خطرات رایج در جنگل ها هستند که آسیب های زیادی به حیات وحش و همچنین محیط زیست وارد می کنند. اگر یک سیستم قوی در مناطق جنگلی برای تشخیص آتش سوزی مستقر شود و به مسئول حریق هشدار داده شود تا اقدامات فوری را انجام دهد ، می توان اثرات و پیامد های منفی آن را کاهش داد. در این پروژه هدف ما ایجاد یک سیستم تشخیص آتش سوزی در جنگل با استفاده از اینترنت اشیا است که می تواند آتش را تشخیص داده و از طریق اینترنت اشیاء هشدار اضطراری را به مقامات ارسال کند. در اینجا ماژول GSM/GPRS برای برقراری ارتباط با اینترنت اشیا استفاده می شود ، زیرا معمولاً در مناطق جنگلی پهنای باند شبکه بسیار کم است یا در دسترس نیست. بنابراین یک شبکه 2G برای ارتباط با سرور ترجیح داده میشود.
شماتیک سیستم تشخیص آتش سوزی مبتنی بر اینترنت اشیا
همانطور که در نمودار بلوک شماتیک زیر نشان داده شده است ، پروژه شامل سنسور شعله ، آردوینو نانو و ماژول SIM800L GSM/GPRS به عنوان اجزای اصلی آن است. آتش را می توان با حسگر شعله تشخیص داد که خروجی دیجیتالی متناسب با وضعیت آتش را نشان می دهد و توسط Arduino Nano دریافت می شود.
آردوینو سیگنال خروجی سنسور شعله را مقایسه کرده و SIM800L را در صورت وقوع آتش سوزی فعال می کند. SIM800L از طریق دستورات AT با سرور thingspeak ارتباط برقرار می کند.
همانطور که در شماتیک مدار نشان داده شده است ، سنسور شعله به پین ورودی دیجیتال آردوینو نانو متصل است. در صورت علاقه می توانید سایر مدارهای اعلام حریق را که قبلاً ساخته ایم ، بررسی کنید.
SIM800L از طریق مقاومت ها به آردوینو نانو متصل می شود زیرا SIM800L بر روی منطق 3.3v کار می کند. منبع تغذیه جداگانه به ماژول SIM800L داده می شود زیرا در جریان 3.4-4.2V کار می کند و منبع تغذیه 5V DC به آردوینو نانو داده می شود. برای جلوگیری از استفاده از دو منبع تغذیه ، می توانید از مبدل 3.7-5 V Boost استفاده کنید.
قطعات مورد نیاز
- آردوینو نانو
- SIM800L ماژول GPS/GPRS
- باتری لیتیوم یون 3.7 ولت
- سنسور شعله
- برد سوراخ دار
نحوه کار Sim800l
SIM800L یک ماژول جمع و جور است که امکان انتقال GPRS ، ارسال/دریافت پیامک و برقراری تماس صوتی را فراهم می کند. ماژول SIM800L دارای دو آنتن می باشد. اولین مورد برای آنتن حلقه ای است که می تواند مستقیماً روی برد لحیم شود و دیگری برای آنتن خارجی است.
مشخصات:
- ولتاژ ورودی: 3.4V – 4.2V
- رابط: دستورات UART و AT
- فرکانس های پشتیبانی شده: چهار باند (850 /950 /1800 /1900 مگاهرتز)
- سوکت سیم کارت: شکاف سیم کارت میکرو
- اتصال آنتن: IPX
- محدوده دمای کار: -40 تا + 85 درجه سانتی گراد
حساب Thingspeak را راه اندازی کنید
پس از تکمیل موفقیت آمیز سخت افزار مطابق نمودار مدار بالا ، بستر اینترنت اشیا باید راه اندازی شود ، جایی که داده ها دریافت می شود. در اینجا Thingspeak برای ذخیره پارامترها و نمایش آنها در GUI استفاده می شود. برای ایجاد حساب کاربری در Thingspeak مراحل زیر را دنبال کنید:
مرحله 1: در Thingspeak ثبت نام کنید
ابتدا ، به thingspeak.com بروید و اگر قبلاً حساب Mathworks ندارید ، یک حساب جدید رایگان Mathworks ایجاد کنید.
مرحله 2: وارد Thingspeak شوید
با استفاده از اطلاعات کاربری خود وارد Thingspeak شده و روی “New Channel” کلیک کنید. اکنون جزئیات پروژه مانند نام ، نام فیلدها و … را پر کنید سپس روی “Save Channel” کلیک کنید.
مرحله 3: اعتبارنامه ها را ثبت کنید
کانال ایجاد شده را انتخاب کرده و اطلاعات زیر را یادداشت کنید.
شناسه کانال ، که در بالای نمای کانال قرار دارد.
کلید API ، که در برگه کلیدهای API نمای کانال شما یافت می شود.
مرحله 4: ابزارک را به GUI خود اضافه کنید
روی “Add Widgets” کلیک کنید و چهار ابزارک مناسب مانند اندازه گیرها ، نمایشگرهای عددی و نشانگرها را اضافه کنید. من شاخص هشدار آتش را گرفته ام. نام فیلدهای مناسب برای هر ویجت را انتخاب کنید.
کد آردوینو برای تشخیص آتش سوزی IoT
پس از اتمام اتصال سخت افزار ها مطابق شماتیک مدار ، اکنون وقت آن است که کد را در Arduino آپلود کنید. بنابراین اولین قدم این است که همه کتابخانه های مورد نیاز را “SoftwareSerial.h” و “String.h” فراخوانی کنید.
#include <SoftwareSerial.h> #include <String.h>
مرحله بعدی تعریف RX ، TX Pin آردوینو است که SIM800L به آن متصل است.
SoftwareSerial gprsSerial(10, 11);
در setup() ، همه مقداردهی اولیه مانند راه اندازی اولیه ارتباط سریال ، راه اندازی ماژول SIM800L و حالت پین GPIO انجام می شود.
void setup() { pinMode(12, OUTPUT); pinMode(9, INPUT); gprsSerial.begin(9600); // GPRS baud rate Serial.begin(9600); // GPRS baud rate Module_Init(); }
در عملکرد راه اندازی ماژول SIM800L ، چندین فرمان AT برای راه اندازی اولیه ماژول و اطلاع از وضعیت ماژول فراخوانی می شوند. عملکردهای جداگانه دستورات AT را می توان در برگه فرمان AT SIM800L یافت. عبارت “gprsSerial.println (” AT+CSTT = \ “www \” “) نقطه دسترسی اپراتور (APN) را تعریف میکند. مطمئن شوید که نام نقطه دسترسی صحیح با “www” جایگزین شده است.
void Module_Init() { gprsSerial.println("AT"); delay(1000); gprsSerial.println("AT+CPIN?"); delay(1000); gprsSerial.println("AT+CREG?"); delay(1000); gprsSerial.println("AT+CGATT?"); delay(1000); gprsSerial.println("AT+CIPSHUT"); delay(1000); gprsSerial.println("AT+CIPSTATUS"); delay(2000); gprsSerial.println("AT+CIPMUX=0"); delay(2000); ShowSerialData(); gprsSerial.println("AT+CSTT=\"www\""); delay(1000); ShowSerialData(); gprsSerial.println("AT+CIICR"); delay(3000); ShowSerialData(); gprsSerial.println("AT+CIFSR"); delay(2000); ShowSerialData(); gprsSerial.println("AT+CIPSPRT=0"); delay(3000); ShowSerialData(); }
در داخل loop() ، مقادیر دیجیتال از پایه 12 خوانده شده و در یک متغیر ذخیره می شوند.
int fire = digitalRead(12);
بعد از تشخیص آتش از یک حلقه else-if برای راه اندازی اقدامات مورد نیاز Sim800l استفاده میشود. همانطور که در زیر نشان داده شده است ، AT+CIPSTART برای اتصال با سرور Thingspeak و شروع اتصال استفاده می شود. AT+CIPSEND برای ارسال داده به سرور استفاده می شود. در اینجا یک نکته مهم این است که “Thingspeak write API Key” را با کلید اصلی خود در رشته ای که قبلاً یادداشت کردید جایگزین کنید.
gprsSerial.println("AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",\"80\"");//start up the connection delay(6000); ShowSerialData(); gprsSerial.println("AT+CIPSEND");//شروع ارسال داده به سرور delay(4000); ShowSerialData(); String str = "GET https://api.thingspeak.com/update?api_key=ER43PWXXXXXQF0I&field1=" + String(1); Serial.println(str); gprsSerial.println(str);//شروع ارسال داده به سرور
آزمایش سیستم آتش سوزی جنگل با آردوینو
برای آزمایش نمونه اولیه ، ابتدا باید Microsim را در شکاف SIM800L وارد کنید ، همانطور که در شکل نشان داده شده است. سپس ماژول را روشن کنید و سپس می بینیم که LED در ماژول چشمک می زند. اگر چشمک زدن LED نسبت به شروع اولیه فاصله بیشتری داشته باشد ، به این معنی است که شبکه را دریافت کرده و آماده اتصال به سرور است. اکنون می توانیم وضعیت را در سرور Thingspeak مشاهده کنیم.
سلام این دستگاه میتونه به موبایل زنگ بزنه
یا پیامک به موبایل ارسال کنه
سلام عزیز
نیاز به تغییرات در کد هست. میتوانید از آموزش های دوره آردوینو استفاده کنید نحوه ارسال پیامک یا تماس از طریق آردوینو آموزش داده شده
سلام . اگر از آردوینو UNOاستفاده کنم .بازر به کدام پین های اون میخوره
سلام عزیز
تفاوتی ندارد باز هم باید به همان پایه 9 متصل کنید
یه سوال فنی
تو جنگل صدای این باز شنیده میشه؟
اصلا باکس این وسیله تاب حرارت آتش رو داره که بتونه یه پیام بفرسته به سرور LoL
سلام عزیز
در جنگل که آتش هست و دیده میشه نیاز به صدای بازر نیست، هدف ارسال هشدار سریع هست.
همچنین باکس و کل پروژه ایده است و نمونه نهایی نیست
موفق باشید