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

مشاهده وضعیت منبع و انبار در اینترنت با آردوینو

سلام. پروژه مشاهده وضعیت سطل / منبع در اینترنت با آردوینو را آماده کردیم.

مانیتورینگ وضعیت منبع مبتنی بر اینترنت اشیا و آردوینو

در این پروژه آردوینو ما میخواهیم یک سیستم نظارت بر سطل زباله / منبع بسازیم که مبتنی بر اینترنت اشیا IOT است. ما میتوانیم در محیط اینترنت مشاهده کنیم آیا سطل آشغال خالی است یا پر است. شما میتوانید از هر نقطه جهان از طریق اینترنت بر منبع خود نظارت کنید. این پروژه برای نصب در سطل های عمومی موجود در شهر بسیار مفید است. در این پروژه اینترنت اشیا، ما از یک سنسور التراسونیک برای تشخیص میزان پر بودن سطل و منبع خود استفاده میکنیم.

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

Basket is Empty = سبد خالی است

Basket is Full = سبد پر است

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

همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.

پیشنهاد میکنم آموزش برنامه نویسی ESP8266 را مشاهده کنید.

توضیحات سنسور التراسونیک HC-SR04

ما باید یه اطلاعات کلی نسبت به سنسور التراسونیک داشته باشیم. ما میدانیم که ارتعاش صدا نمیتواند از طریق جامدات نفوذ کند. بنابراین وقتی یک منبع صدا باعث ایجاد ارتعاش شود ، آن ارتعاش از طریق هوا با سرعت 220 متر در هر ثانیه حرکت میکند. همانطور که گفتیم این ارتعاش ها نمیتوانند از طریق جامدات نفوذ کنند ، یعنی وقتی به یک سطح مثل دیوار برخورد کنند ، با همان سرعت برمیگردند به سمت سنسور ، این تکنیک اکو (ECHO) نامگذاری شده است.

پروژه التراسونیک آردوینو
پروژه التراسونیک آردوینو

سنسور التراسونیک HC-SR04 یک سیگنال خروجی متناسب با فاصله بر اساس اکو فراهم می کند. سنسور در اینجا یک لرزش صدا را در محدوده سنسور ایجاد می کند، و بعد از فرستادن یک ارتعاش ، برای بازگشت صدا منتظر می ماند.

نحوه کار سنسور التراسونیک HC-SR04

فرستنده یک موج التراسونیک را در فرکانس 40 هرتز ساطع می کند ، این موج از طریق هوا عبور می کند و هنگامی که یک جسم را حس می کند باز میگردد. امواج برگشتی توسط گیرنده مشاهده می شود. اکنون می دانیم زمان لازم برای بازتاب و بازگشت این موج گرفته شده است و سرعت موج التراسونیک 3400 سانتی متر در ثانیه است. با استفاده از این اطلاعات و فرمول زیر میتوان فاصله را حساب کرد [ فاصله = سرعت موج * زمان ]

مطلب پیشنهادی:  برد آردوینو Uno چیست؟ بررسی کامل آردوینو (اونو یونو Uno)

ماژول وای فای ESP8266

ESP8266 یک ماژول Wi-Fi است که به پروژه های شما دسترسی به Wi-Fi یا اینترنت می دهد. این دستگاه بسیار ارزان است اما پروژه های شما را بسیار قدرتمند می کند. این ماژول وای فای می تواند با هر میکروکنترلری ارتباط برقرار کند و پروژه ها را بی سیم کند. جالب است بدانید این قطعه در لیست مهمترین دستگاه های موجود در سیستم عامل IOT قرار دارد. روی 3.3 ولت کار میکند و اگر به آن 5 ولت دهید ، آسیب می بیند.

ماژول وایفای ESP8266

ESP8266 دارای 8 پین است؛ VCC و CH-PD برای فعال کردن wifi به 3.3V وصل خواهند شد. پین های TX و RX مسئولیت ارتباط ESP8266 با آردوینو را بر عهده خواهند گرفت. پین RX بر روی 3.3 ولت کار می کند، بنابراین ما باید یک مدار تقسیم ولتاژ ایجاد کنیم.

مدار پروژه مشاهده وضعیت منبع در اینترنت با آردوینو

اول از همه ESP8266 را به Arduino متصل خواهیم کرد. ESP8266 روی 3.3 ولت اجرا می شود و اگر 5 ولت را از آردوینو به آن بدهید، به درستی کار نخواهد کرد و ممکن است آسیب ببیند. VCC و CH_PD را به پین ​​3.3V آردوینو وصل کنید. پین RX ESP8266 روی 3.3V کار می کند و هنگامی که مستقیماً به آردوینو وصل شود با Arduino ارتباط برقرار نخواهد کرد. بنابراین ، ما مجبور به ایجاد تقسیم ولتاژ برای آن هستیم. سه مقاومت 1 کیلو اهم  کارها را برای ما انجام می دهند. RX را به پین ​​11 آردوینو از طریق مقاومتها مطابق شکل زیر و همچنین TX به پین ​​10 آردوینو وصل کنید.

مانیتورینگ وضعیت منبع مبتنی بر اینترنت اشیا و Arduino

سپس زمان آن رسیده که سنسور التراسونیک HC-SR04 را به آردوینو متصل کنیم. اتصالات حسگر اولتراسونیک با Arduino بسیار ساده است. VCC و GND سنسور اولتراسونیک را به 5 ولت و GND آردوینو وصل کنید. سپس پین TRIG و ECHO سنسور اولتراسونیک را به ترتیب به پین ​​8 و 9 آردوینو وصل کنید.

قطعات مورد نیاز

  1. برد آردوینو Uno (یا هر برد آردوینوی دیگری)
  2. ماژول وای فای ESP8266
  3. سنسور التراسونیک HC-SR04
  4. مقاومت 1 کیلو اهم

همچنین پروژه مشاهده ظرفیت باقی مانده منبع با ESP8266 را مشاهده کنید.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

کد پروژه مشاهده وضعیت انبار در اینترنت با آردوینو

قبل از آپلود کد ، اطمینان حاصل کنید که به Wi-Fi دستگاه ESP8266 خود وصل شده اید. کد کامل در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا بعضی از قسمت های کد را توضیح میدهیم.

آردوینو ابتدا اطلاعات سنسور التراسونیک را دریافت میکند. هنگامی که ما پین TRIG را برای 10us فعال کنیم، یک سیگنال اولتراسونیک با سرعت صدا ارسال می شود. سیگنال پس از برخورد با اجسام، بر میگردد مدت زمان رفت و برگشت در یک متغیر ذخیره میشود. سپس فاصله را با استفاده از فرمول داده شده محاسبه میکنیم. و فاصله را در متغیر فاصله ذخیره میکنیم.

digitalWrite(trigPin, LOW); // غیرفعال شدن پین تریگر
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // فعال شدن پین تریگر
delayMicroseconds(10);
digitalWrite(trigPin, LOW);   
duration = pulseIn(echoPin, HIGH); // دریافت پین اکو
distance= duration*0.034/2; // فرمول محاسبه فاصله و ذخیره در یک متغیر

برای اینکه بتوانیم وضعیت سبد و منبع خود را در مرورگر وب مشاهده کنیم، ما باید از برنامه نویسی HTML استفاده کنیم. بنابراین ما یک رشته به نام صفحه وب ایجاد میکنیم. ما اینجا یک شرط تعریف میکنیم که بر اساس آن هرگاه محتویات سطل در فاصله کمتر از 5 سانتی متر باشند، پیام پر بودن سبد نمایش داده میشود و اگر فاصله بیشتر از 5 سانتی متر باشد پیام سبد خالی است نمایش داده میشود. این صفحه HTML به صورت کامل قابل شخصی سازی است که میتوانید ظاهری حرفه ای برای آن تعیین کنید. همچنین میزان فاصله محتویات، پیام ها، سطح ها و … قابل شخصی سازی در اساس نیاز شما هستند.

  if(esp8266.available())
  {    
    if(esp8266.find("+IPD,"))
    {
     delay(1000);
     int connectionId = esp8266.read()-48; 
     String webpage = "<h1>IOT Garbage Monitoring System</h1>";
       webpage += "<p><h2>";   
       if (distance<5)
       {
        webpage+= " Trash can is Full";
        }
        else{
          webpage+= " Trash can is Empty";
          }
       webpage += "</h2></p></body>";

کد زیر داده ها را به صفحه وب ارسال و نشان می دهد. ESP8266 سپس کاراکتر را یک به یک از Command می خواند و آن را در صفحه وب چاپ می کند.

String sendData(String command, const int timeout, boolean debug)
{
    String response = "";   
    esp8266.print(command); 
    long int time = millis();
    while( (time+timeout) > millis())
    {
      while(esp8266.available())
      {
        char c = esp8266.read(); 
        response+=c;
      }  
    }
    if(debug)
    {
      Serial.print(response);
    }
    return response;
}

فیلم عملکرد پروژه و تست

آردوینو و ماژول ESP8266 با ارتباط سریال UART به هم متصل میشوند. بنابراین پس از بارگذاری کد ، سریال مانیتور را باز کنید و آن مطابق شکل زیر یک آدرس IP به شما نشان می دهد.

مطلب پیشنهادی:  برد آردوینو نانو چیست؟ مشخصات و راه اندازی Arduino Nano

پروژه IoT مشاهده وضعیت سطل در اینترنت با آردوینو

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

پروژه اینترنت اشیا نمایش وضعیت منبع

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

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

محمد رحیمی

محمد رحیمی

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

12 نظر

  1. سلام ممنون از مطالب مفیدتون .
    اگر بخوایم این پروژه رو برای جن تا سطل زباله در نظر بگیریم . مثلا ده تا سطل زباله . و بعد بگیم اگه مثلا پنج تاش یا بیشتر پر شد به ما اطلاع بده چیکار باید کرد .

    1. سلام جناب. مشکلی نداره و با برد های آردوینو میتونیم این کار رو انجام بدیم. شما فقط باید 10 تا سطل رو تعریف کنید و یک شرط بذارید. اگر نیاز به اطلاعات بیشتر دارید، دوره آردوینو رو مشاهده کنید.

  2. سلام ،چجوری باید به وای فای این ماژول وصل بشیم ‌ . کدهارو پروگرم کردم .

    1. سلام جناب. ماژول رو باید به وای فای (مودم یا هات اسپات گوشی) متصل کنید. نام و رمز وای فای خودتون رو در برنامه تعریف کنید تا با راه اندازی مدار به صورت خودکار به وای فای شما متصل بشه.

    2. ببخشید ولی همینکه کجا اسم وای فای خودمو وارد کنمو دقیقا نمیدونم . کدوم خط باید اونو وارد کنم و مثلا اسم وای فای من (shah)باشه با رمز (۱۲۳۴۵۶۷۸۹)اینو کجای برنامه باید وارد کنم .

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

    1. سلام جناب. در انتهای مطلب در بالای قسمت ستاره های امتیاز دهی قرار گرفته است.

    2. ممنونم ،انجام دادم ،ولی نمیدونم چجوری باید به ماژول وای فای وصل بشم .

    3. منظورتون رو توضیح بدید، از چی به ماژول وایفای وصل بشید؟

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

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

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

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