اینترنت اشیا IOT برد ESP8266 برد ویموس Wemos

پروژه مانیتورینگ فشار و دما با کتابخانه ESP-DASH و ماژول BMP180

نوشته شده توسط CiferTech

تا به حال پروژه های زیادی با عنوان مانیتورینگ دیتای سنسور های مختلف با وب‌سرور منتشر کرده‌ایم. اما در اجرای و انتقال دیتا به این وب سرورها هیچوقت قانون یا بهتر است بگوییم استاندار خاصی وجود نداشت و از خود قابلیت های تراشه‌های ESP برای راه‌اندازی این پروزه ها استفاده می‌کردیم. اما در آموزش فشار و دما با ESP-DASH قصد داریم با استفاده از کتابخانه ESP-DASH مقادیر فشار و دما را از bmp180 دریافت به شکل استاندارد در یک وب‌سرور با ظاهر مناسب نمایش دهیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

ارسال اطلاعات سنسور BMP180 به ESP-Dash - دیجی اسپارک

 


سنسور دما و فشار BMP180


سنسور فشار سنج BMP180 برای مواردی که نیاز به دقت بالایی در اندازه گیری دارند استفاده می‌شود، این سنسور با دقت ۰٫۰۳ هکتوپاسکال قابلیت اندازه‌گیری فشار هوا و همچنین دما را دارد که این پروسه ابتدا با اندازه گیری دما محیط و سپس فشار صورت میگیرد، در واقع BMP180 فشار و دما را اندازه گیری می کند زیرا دما، چگالی گازها مانند هوا را تغییر می دهد. در دمای بالاتر هوا متراکم و سنگین نیست، بنابراین فشار کمتری به سنسور وارد می کند. در دمای پایین هوا چگال تر و وزن بیشتری دارد، بنابراین فشار بیشتری به سنسور وارد می کند. این سنسور از اندازه گیری دما در زمان واقعی برای جبران قرائت فشار برای تغییر در چگالی هوا استفاده می کند.

برد ویموس Wemos و ماژول BMP180 - دیجی اسپارک

 


ESP.DASH چیه ؟!


ESP-DASH یک کتابخانه بر پایه زبانه ++C است که برای ایجاد دشبورد های کاربردی و realTime برای میکروکنترلرهای ESP8266 و ESP32 است. استفاده از توابع استفاده از این کتابخانه را برای شما آسان می کند و به شما امکان می دهد دشبوردی را که از طریق آدرس IP ماژول قابل دسترسی است ایجاد کنید.

 برد Wemos


برد Wemos یکی از پرطرافدار ترین برد هایی است که در زمینه iot مورد استفاده قرار میگیرد، یکی از مزیت های این برد نسبت به برد هایی مانند Node MCU اندازه کوچک آن می باشد تراشه وای فای مورد استفاده در این برد ESP8266 می باشد. از دیگر مزیت های این برد وجود شیلد های مختلفی برای این برد می باشد، که انجام هر پروژه ای را برای کاربر بسیار آسان و لذت بخش می کند، شیلد هایی از جمله شیلد باتری، multi sensor ، DHT22 ، رله ، oled تعداد بسیار زیادی شیلد برای این برد توسعه داده شده که در نتیجه تجربه خوبی از iot برای شما به جا خواهد گذاشت.

 


روش کار این پروژه


در این پروژه ابتدا مقادیر مورد نیاز را از bmp180 دریافت می‌کنیم که شامل مقادیر دمای محیط و فشار است، در ادامه با راه‌اندازی ESP.DASH یک دشیورد با امکان نمایش مقادیر عددی خواهیم کرد سپس دیتای بدست آمده از محیط را با معرفی مقادیر، در دشبورد نمایش خواهیم داد. لازم به ذکر است ESP.DASH قابلیت اجرا بر روی هردو تراشه ESP یعنی ESP8266 و ESP32 را دارد پس بدون نگرانی می‌توانید از این کتابخانه پرکاربرد و بهینه استفاده کنید.

مانیتورینگ فشار و دما با ESP-DASH - دیجی اسپارک

 


وسایل مورد نیاز


برد wemos

سنسور bmp180

کابل جامپر مخصوص اتصالات سنسور و بردها

وسایل لازم پروژه فشار و دما با ESP-DASH - دیجی اسپارک

 


نحوه نصب ESP.DASH


برای دسترسی به کتابخانه ESP.DASH دو روش وجود؛ اول اینکه با مراجعه به سایت رسمی اقدام به فایل zip. کنید بصورت دستی آن را به نرم‌افزار Arduino IDE اضافه کنید. و روش دوم که به شخصه پیشنهاد میکنم استفاده از نسخه ای است که در هنگام نصب افزونه ESPبه آردوینو بصورت پیشفرض اضافه خواهد، پس برای استفاده از امکانات این کتابخانه با استفاده از مراحل زیر اقدام نصب افزونه مرجع برد ESP کنید.

  • ابتدا در نرم افزار Arduino IDE به مسیر FilePreferences بروید.
  • لینک زیر را در بخش مشخص شده قرار دهید.

وب سرور ESP32 با Arduino IDE کنترل نور LED

  • سپس به مسیر Tools > Board > Boards Manager بروید.

تنظیمات Arduino IDE برای راه اندازی وب سرور ESP32

  • در بخش board manager  کلمه ESP32 و ESP8266 را سرچ کنید و بر روی install  کلیک کنید.

نصب کتابخانه ESP32 در نرم افزار آردوینو ساخت وب سرور

 


شماتیک و اتصالات


سنسور bmp180 با استفاده از پروتکل ارتباطی i2c دیتا مدنظر را انتقال میدهد پس تنها با اتصال ۴سیم، ۲ سیم دیتا یعنی SCL, SDA و ۲سیم پاور می‌توانیم از این ماژول استفاده کنیم. اتصالات را مطابق جدول و شماتیک زیر برقرار کنید.

پروژه مانیتورینگ فشار و دما با ESP-DASH - دیجی اسپارک

 

  • شماتیک اتصالات پروژه مانیتورینگ فشار و دما با ESP-DASH

شماتیک اتصالات فشار و دما با ESP-DASH - دیجی اسپارک

 


کد و راه‌اندازی


کد این پروژه از دو بخش تشکیل شده، راه‌اندازی سنسور bmp180 و دریافت مقادیر مربوط به فشار و دمای محیط و در بخش دوم و نهایی راه‌اندازی دشبورد iot و دریافت گرافیکی مقادیر از صفحه وب. در این بخش از آموزش به بررسی کد این پروژه خواهیم پرداخت. ابتدا کتابخانه های مورد نیاز را اضافه کرده‌ایم.

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <Wire.h>

#include <BMP180I2C.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <ESPDash.h>

 

در ادامه باید در این قسمت مشخصات مربوط به شبکه WiFi که ESP به آن متصل خواهد شد را وارد کنید.

const char* ssid = "C1F3R"; // نام شبکه وای فاای
const char* password = "314159265"; // پسوورد سبکه

 

در این قسمت علاوه اجرای وب سرور، اقدام به افزودن المان های مربوط به نمایش مقادیر برای نمایش خواهیم کرد.

    ESPDash.init(server);   // اجرا کردن سرور
    
    ESPDash.addTemperatureCard("temp1", "Temperature Card", 0, 20);  // اضافه کردن المان های مورد نیاز
    ESPDash.addNumberCard("num1", "Pressure Card", 98);

 

در این بخش با فراخوانی موارد محاسبه دما و فشار در بستر ESP.DASH اقدام به نمایش این مقادیر در وب سرور خواهیم کرد.

    ESPDash.updateTemperatureCard("temp1", float(bmp180.getTemperature()));
    ESPDash.updateNumberCard("num1", float(bmp180.getPressure()));
    delay(3000);

 

کد کامل پروژه مانیتورینگ فشار و دما با ESP-DASH

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <Wire.h>

#include <BMP180I2C.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <ESPDash.h>

#define I2C_ADDRESS 0x77
BMP180I2C bmp180(I2C_ADDRESS);

AsyncWebServer server(80);

const char* ssid = "C1F3R"; // نام شبکه وای فاای
const char* password = "314159265"; // پسوورد سبکه

void setup() {
    Serial.begin(9600);

    while (!Serial);

  Wire.begin();

  if (!bmp180.begin())
  {
    Serial.println("begin() failed. check your BMP180 Interface and I2C Address.");
    while (1);
  }
    
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, password);
    if (WiFi.waitForConnectResult() != WL_CONNECTED) {
        Serial.printf("WiFi Failed!\n");
        return;
    }
    Serial.print("IP Address: ");
    Serial.println(WiFi.localIP());
    
    ESPDash.init(server);   // اجرا کردن سرور
    
    ESPDash.addTemperatureCard("temp1", "Temperature Card", 0, 20);  // اضافه کردن المان های مورد نیاز
    ESPDash.addNumberCard("num1", "Pressure Card", 98);
    
    server.begin();

    bmp180.resetToDefaults();
    bmp180.setSamplingMode(BMP180MI::MODE_UHR);

      Serial.print("IP address: ");
      Serial.println(WiFi.localIP());
}

void loop() {

    if (!bmp180.measureTemperature())
  {
    Serial.println("could not start temperature measurement, is a measurement already running?");
    return;
  }

  do
  {
    delay(100);
  } while (!bmp180.hasValue());

  Serial.print("Temperature: "); 
  Serial.print(bmp180.getTemperature()); 
  Serial.println(" degC");

  if (!bmp180.measurePressure())
  {
    Serial.println("could not start perssure measurement, is a measurement already running?");
    return;
  }

  do
  {
    delay(100);
  } while (!bmp180.hasValue());

  Serial.print("Pressure: "); 
  Serial.print(bmp180.getPressure());
  Serial.println(" Pa");


    ESPDash.updateTemperatureCard("temp1", float(bmp180.getTemperature()));
    ESPDash.updateNumberCard("num1", float(bmp180.getPressure()));
    delay(3000);
}

 

 


جمع بندی


در این پروژه با راه‌اندازی یک سرویس وب‌سرور بهینه مقادیر سنسور bmp180 را در برد ESP8266 تحلیل و در دشبورد گرافیکی و تحت وب ESP.DASH نمایش دادیم. با استفاده از این دشبور قادر خواهیم بود مقادیر نمایشی را علاوه داده های عددی بصورت گراف های گرافیکی نیز نمایش دهیم که در اپیزود های بعدی نیز به آن اشاره خواهیم کرد.

پروژه فشار و دما با ESP-DASH با برد ویموس - دیجی اسپارک

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

CiferTech

تبادل نظر و رفع عیب با ثبت دیدگاه

۳ دیدگاه