آموزش آردوینوپروژه های آردوینو

سیستم تشخیص آتش سوزی جنگل مبتنی بر IoT و آردوینو

آتش گرفتن درخت ها از جمله خطرات رایج در جنگل ها هستند که آسیب های زیادی به حیات وحش و همچنین محیط زیست وارد می کنند. اگر یک سیستم قوی در مناطق جنگلی برای تشخیص آتش سوزی مستقر شود و به مسئول حریق هشدار داده شود تا اقدامات فوری را انجام دهد ، می توان اثرات و پیامد های منفی آن را کاهش داد. در این پروژه هدف ما ایجاد یک سیستم تشخیص آتش سوزی در جنگل با استفاده از اینترنت اشیا است که می تواند آتش را تشخیص داده و از طریق اینترنت اشیاء هشدار اضطراری را به مقامات ارسال کند. در اینجا ماژول GSM/GPRS برای برقراری ارتباط با اینترنت اشیا استفاده می شود ، زیرا معمولاً در مناطق جنگلی پهنای باند شبکه بسیار کم است یا در دسترس نیست. بنابراین یک شبکه 2G برای ارتباط با سرور ترجیح داده میشود.

شماتیک سیستم تشخیص آتش سوزی مبتنی بر اینترنت اشیا

همانطور که در نمودار بلوک شماتیک زیر نشان داده شده است ، پروژه شامل سنسور شعله ، آردوینو نانو و ماژول SIM800L GSM/GPRS به عنوان اجزای اصلی آن است. آتش را می توان با حسگر شعله تشخیص داد که خروجی دیجیتالی متناسب با وضعیت آتش را نشان می دهد و توسط Arduino Nano دریافت می شود.

شماتیک سیستم تشخیص آتش سوزی مبتنی بر اینترنت اشیا

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

همانطور که در شماتیک مدار نشان داده شده است ، سنسور شعله به پین ​​ورودی دیجیتال آردوینو نانو متصل است. در صورت علاقه می توانید سایر مدارهای اعلام حریق را که قبلاً ساخته ایم ، بررسی کنید.

شماتیک مدار اعلام حریق IoT آردوینو

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” کلیک کنید.

حساب Thingspeak را راه اندازی کنید

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

مرحله 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 مشاهده کنیم.

آزمایش سیستم آتش سوزی جنگل با آردوینو

4.3 (6 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

6 نظر

  1. سلام این دستگاه میتونه به موبایل زنگ بزنه

    یا پیامک به موبایل ارسال کنه

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

  2. سلام . اگر از آردوینو UNOاستفاده کنم .بازر به کدام پین های اون میخوره

    1. سلام عزیز
      تفاوتی ندارد باز هم باید به همان پایه 9 متصل کنید

  3. یه سوال فنی
    تو جنگل صدای این باز شنیده میشه؟
    اصلا باکس این وسیله تاب حرارت آتش رو داره که بتونه یه پیام بفرسته به سرور LoL

    1. سلام عزیز
      در جنگل که آتش هست و دیده میشه نیاز به صدای بازر نیست، هدف ارسال هشدار سریع هست.
      همچنین باکس و کل پروژه ایده است و نمونه نهایی نیست
      موفق باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *