ارسال اطلاعات سنسور به سرور با ESP8266
در این پروژه یاد می گیرید چطور اطلاعات یک یا چند سنسور را به یک سرور با ESP8266 ارسال کنید و آخرین اطلاعات ذخیره شده رو به صورت گرافیکی همانند شکل زیر نمایش دهید سخت افزار مورد نیاز برای اینکار ماژول ESP8266 سری 7 است که قالبلیت اتصال 1 عدد سنسور آنالوگ و سنسور های I2C و SPI و 1Wire را دارد یا در نهایت اگر همه ی سنسور های شما خروجی آنالوگ دارد می توانید سنسور ها را به یک برد آردوینو متصل و اطلاعات رو به صورت JSON از طریق سریال به ESP-01 ارسال و بعد از تجزیه و تحلیل اطلاعات به سرور ارسال کنید که سعی می کنم در این مورد هم ادامه ی همین آموزش قرار بدهم.
آماده سازی سرور برای دریافت اطلاعات سنسور
برای این کار به حداقل 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 به راحتی انجام می شود.
سلام
چگونه میشه یه مقدار را از سرور خواند؟
ممنون از مطالب مفیدتان…
سلام
ببینید شما الان در واقع مقادیر رو به فایل php می فرستین که میشه بعد از ارسال درخواست تو همون فایل یه کم کدنویسی کنید و مقداری رو برگردونید
مهندس جان اگه میشه در مورد این موضوع هم یک مثال بزنید.
من این ماژول را به یک میکرو Arm متصل کرده ام . من ماژول را تنظیم کرده ام و در Arm یک برنامه ای را نوشته ام که وقتی برد روشن میشود یک عبارتی را مثلا “salam” را بهمراه نام دامین سرور ، روی uart میگذارد . در سمت سرور هم شمارنده ای گذاشته ام که هر گاه این عبارت را گرفت یکی اضافه میشود و به این ترتیب متوجه میشوم که دیتا به سرور رسیده است . مشکلی که دارم اینه که همیشه دیتا به سرور نمیرسه بلکه برخی اوقات دیتا میرسه . آنچه مشاهده میکنم اینه که وقتی… بیشتر بخوانید »
شما ماژول وای فای رو به میکرو آرم وصل کردید؟
من از دستورات AT-Command ماژول وای فای برای ارسال به صورت ارستفاده می کنید؟
سلام من نیاز دارم یه برنامه ای برایesp Vemosداشته باشم که هزینشم پرداخت میکنمآیا شما اینکارو انجام میدید؟
سلام
بستگی داره پروژه تون چیه؟
چقدر زمان دارین؟
با شماره 09395367005 از طریق واتساپ در خدمتم