ارسال اطلاعات سنسور به سرور با ESP8266 در آردوینو

محتوا

ارسال اطلاعات سنسور به سرور با ESP8266

در این پروژه یاد می گیرید چطور اطلاعات یک یا چند سنسور را به یک سرور با ESP8266 ارسال کنید و آخرین اطلاعات ذخیره شده رو به صورت گرافیکی همانند شکل زیر نمایش دهید سخت افزار مورد نیاز برای اینکار ماژول ESP8266 سری 7 است که قالبلیت اتصال 1 عدد سنسور آنالوگ و سنسور های I2C و SPI و 1Wire را دارد یا در نهایت اگر همه ی سنسور های شما خروجی آنالوگ دارد می توانید سنسور ها را به یک برد آردوینو متصل و اطلاعات رو به صورت JSON از طریق سریال به ESP-01 ارسال و بعد از تجزیه و تحلیل اطلاعات به سرور ارسال کنید که سعی می کنم در این مورد هم ادامه ی همین آموزش قرار بدهم.

سرور با ESP8266آماده سازی سرور برای دریافت اطلاعات سنسور

برای این کار به حداقل 20 مگابایت فضای هاست نیاز است ، سپس فایل های مورد نیاز رو برای سمت سرور از اینجا دانلود کنید و در روت هاست کپی کنید که من برای مثال از ساب دامین استفاده می کنم. در فایل فشرده شده به نام sensor.zip دو پوشه به نام های orginal و sensor وجود دارد که محتوای پوشه orginal سورسی است که دانلود کردم و خیلی تغییری ایجاد نشده که شما می تونید بر اساس همین فایل ها می تونید توسعه بدید ، ولی در پوشه sensor کدها خیلی تغییر کرده و نمودار رو حذف کردم و همچنین در آموزش هم از این فایل ها استفاده می شود خوب حالا اگر همه فایل ها رو در هاست کپی کردید بریم مرحله بعد.

آماده سازی و نحوه ساختن دیتا بیس

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

آماده سازی کدهای آردوینو جهت آپلود در ESP8266

#include <Arduino.h> 
#include <ESP8266WiFi.h> 
#include <ESP8266HTTPClient.h> 
#include "DHT.h" 

#define DHTPIN 14 
#define DHTTYPE DHT21 DHT dht(DHTPIN, DHTTYPE); 

char ssid[30] = "ssid"; 
char key[30] = "key" ; 

float h; float t; 

void setup(){
    Serial.begin(9600); 
    WiFi.mode(WIFI_STA); 
    WiFi.setAutoReconnect(true); 
    WiFi.begin(ssid, key); 
    while (WiFi.status() != WL_CONNECTED) { 
        delay(500);
    } 
} 

void loop(){
    h = dht.readHumidity();
    t = dht.readTemperature();
    if (isnan(t) || isnan(h)){ 
        Serial.println("Failed to read from DHT");
    }else{
        send_data(t,h,25);
    } 
   delay(10000);
} 

void send_data(float Var1, float Var2, float Var3){ 
   String url = "/data.php?Var1=";
   url += Var1;
   url += "&Var2=";
   url += Var2; 
   url += "&Var3="; 
   url += Var3; 
   HTTPClient http;
   Serial.print("[HTTP] begin...>> ");
   http.begin("example.ir" , 80, url);
   //HTTP int httpCode = http.GET();
   if(httpCode) { 
      Serial.printf("GET... code: %d\r\n", httpCode); 
      Serial.println(); 
      if(httpCode == 200) { 
          String payload = http.getString();
          Serial.println(payload);
          Serial.println();
      }
   } 
}

 

قبل از آپلود کردن کد فقط سه پارامتر رو باید تغییر بدید اول در خط 10 که اسم وای فای خودتون رو جایی ssid قرار می دید و دومی خط 11 که پسورد وای فای رو جایگزین key می کنید در آخر هم به جای example.ir در خط 47 آدرس هاست خود رو وارد می کنید سپس کدها رو کامپایل و آپلود می کنید بر روی ESP-07 ، سنسور رو هم باید به پایه 14 که در خط 6 مشخص شده وصل کنید حالا شما می تونید اطلاعات را به سرور با ESP8266 بدون نیاز میکروکنترلر ارسال کنید ، در ادامه همین آموزش سعی می کنم یک فریم ور برای دوستان آماده کنم تا بدون نیاز به برنامه نویسی ESP و با اتصال یک آردوینو به ماژول ESP اطلاعات سنسور های بیشتری به سرور ارسا کنید.

نمونه ی استفاده شده از این پروژه در خانه هشمند یا BMS

در تصویر پایین نمونه ایی از پروژه رو قبلا PCB زدم و در پروژه ی هوشمند سازی استفاده می کنم در صورتی که دوستان تمایل داشتن می تونم با قیمت پایین براتون ارسال کنم بعلاوه فایل PCB بر روی برد امکان اتصال سنورهایی نظیر MQ7 , MQ2 ، سنسور جریان همانطور که در تصویر می بینید وجود دارد و همچنین سه پایه 12 ، 14 ، 16 و پایه 13 رو بر روی مدار تعبیه کردم که بتونید از دیگر امکانات ماژول هم استفاده کنید و لازم به ذکر است که پایه 13 به یک بازر متصل بوده که مثلا در صورت تشخیص گاز هشدار دهد و برای پروگرام کردن هم همانطور که در شکل سمت چپ می بینید با دو عدد میکروسوئیچ ، دو عدد پین هدر نر و ماده و یک مبدل USB to Serial به راحتی انجام می شود.

5 3 votes
امتیازدهی به مقاله
بخش نظرات
مشترک شوید
Notify of
guest
7 نظرات
قدیمی ترین
جدیدترین بیشترین آرای
Inline Feedbacks
View all comments
حسین
حسین
4 years ago

سلام
چگونه میشه یه مقدار را از سرور خواند؟
ممنون از مطالب مفیدتان…

حسین
حسین
4 years ago

مهندس جان اگه میشه در مورد این موضوع هم یک مثال بزنید.

محمد
محمد
4 years ago

من این ماژول را به یک میکرو Arm متصل کرده ام . من ماژول را تنظیم کرده ام و در Arm یک برنامه ای را نوشته ام که وقتی برد روشن میشود یک عبارتی را مثلا “salam” را بهمراه نام دامین سرور ، روی uart میگذارد . در سمت سرور هم شمارنده ای گذاشته ام که هر گاه این عبارت را گرفت یکی اضافه میشود و به این ترتیب متوجه میشوم که دیتا به سرور رسیده است . مشکلی که دارم اینه که همیشه دیتا به سرور نمیرسه بلکه برخی اوقات دیتا میرسه . آنچه مشاهده میکنم اینه که وقتی… بیشتر بخوانید »

سعید
سعید
2 years ago

سلام من نیاز دارم یه برنامه ای برایesp Vemosداشته باشم که هزینشم پرداخت میکنمآیا شما اینکارو انجام میدید؟

7
0
Would love your thoughts, please comment.x
×
×

سبد خرید