ماژول ESP8266 یک ماژول عالی برای ایجاد وب سرور و اتصال به اینرنت می باشد در این آموزش ما به وسیله سنسور دمای DS18b20 و ماژول Node-MCU یک وب سرور با قابلیت نمایش آنلاین دما میسازیم.
لوازم مورد نیاز:
- مقاومت 4.6 کیلو اهم
- سیم برد بردی
روش اضافه کردن برد های ESP8266 به آردوینو
برای آن که بتوانید بر روی این ماژول توسط IDE آردوینو برنامه نویسی کنید باید درایورها و بورد آن را بر روی نرم افزار آردوینو نصب کنید.برای این منظور وارد نرم افزار آردوینو شوید. سپس از قسمت File وارد Preferences شوید.
سپس لینک زیر را کپی کنید و در پنجره Preferences در قسمت Additional Boards Manager URLs ، لینک را paste کنید و OK را بزنید.
1 |
http://arduino.esp8266.com/stable/package_esp8266com_index.json |
سپس از قسمت Tools وارد Boards Manager… شوید.
سپس در لیست نمایش داده شده به دنبال esp8266 by ESP8266 Community بگردید و آن را نصب کنید.
منتظر بمانید تا عملیات نصب تکمیل شود.
برای استفاده از ماژول NodeMCU باید در لیست برد ها برد NodeMCU را انتخاب کنید.
نحوه اتصال سنسور DS18B20 به ماژول NodeMCU
برای تغذیه نیاز به کاری نیست و تغذیه NodeMCU از طریق پورت USB تامین می شود. نکته ی دیگر این که باید پین data سنسور دما به وسیله مقاومت DS18b20 پول آپ شود.
VCC -> 3.3 volts
GND -> GND
Data -> D1
و در نهایت برنامه وب سرور نمایش دما با ESP8266
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
#include <OneWire.h> #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS D1 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); const char* ssid = "YOUR SSID HERE"; const char* password = "YOUR PASSWORD HERE"; ESP8266WebServer server(80); char temperatureString[6]; const int led = 13; float getTemperature() { float temp; do { DS18B20.requestTemperatures(); temp = DS18B20.getTempCByIndex(0); delay(100); } while (temp == 85.0 || temp == (-127.0)); return temp; } void setup(void){ Serial.begin(115200); WiFi.begin(ssid, password); Serial.println(""); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); server.on("/", []() { float temperature = getTemperature(); dtostrf(temperature, 2, 2, temperatureString); String title = "Temperature"; String cssClass = "mediumhot"; if (temperature < 0) cssClass = "cold"; else if (temperature > 20) cssClass = "hot"; String message = "<!DOCTYPE html><html><head><title>" + title + "</title><meta charset=\"utf-8\" /><meta name=\"viewport\" content=\"width=device-width\" /><link href='https://fonts.googleapis.com/css?family=Advent+Pro' rel=\"stylesheet\" type=\"text/css\"><style>\n"; message += "html {height: 100%;}"; message += "div {color: #fff;font-family: 'Advent Pro';font-weight: 400;left: 50%;position: absolute;text-align: center;top: 50%;transform: translateX(-50%) translateY(-50%);}"; message += "h2 {font-size: 90px;font-weight: 400; margin: 0}"; message += "body {height: 100%;}"; message += ".cold {background: linear-gradient(to bottom, #7abcff, #0665e0 );}"; message += ".mediumhot {background: linear-gradient(to bottom, #81ef85,#057003);}"; message += ".hot {background: linear-gradient(to bottom, #fcdb88,#d32106);}"; message += "</style></head><body class=\"" + cssClass + "\"><div><h1>" + title + "</h1><h2>" + temperatureString + " <small>°C</small></h2></div></body></html>"; server.send(200, "text/html", message); }); server.begin(); Serial.println("Temperature web server started!"); } void loop(void){ server.handleClient(); } |
قبل از پروگرم کردن توجه داشته باشید که باید در قسمت ssid نام شبکه wifi و در قسمت pass رمز شبکه WiFi رو وارد کنید. بعد از پروگرام شدن NodeMCU قسمت سریال مانیتور برنامه آردوینو را باز کنید تا IP که به برد NodeMCU اختصاص یافته را بدانیم. با وارد کردن IP در مرورگر دما به این شکل نمایش داده می شود.
در صورتی که پیشنهادی در مورد نوشته دارید و یا در راه اندازی پروژه به مشکلی برخوردید در قسمت نظرات مطرح کنید مشتاقانه منتظر نظرات شما هستیم.
با سلام:
بسیار خوب.کاش یه پروژه هم در رابطه با اتصال از طریق اینترنت راه دور با سرور مربوطه بدون دستکاری مودم هم ارائه می کردید.
در آینده همچین پست هایی هم خواهیم داشت
همچین بستیو نزاشتین هنوز؟
ببخشید امکانش هست بگید اگه میخواستیم به جای nodemcu از آردویینو و ماژول وای فای استفاده کنیم تنظیماتش چطور بود؟
سلام
سوالات علمیتون رو داخل انجمن بپرسید http://www.eca.ir/forums
سلام اگه به خوام تو محیط سرور دو تا گزینه اضافه کنم که یکی دما رو زیاد کنه و یکی دما رو کم کنه.باید چیکار کنم
سلام.چجوری میشه دو تا گزینه بهش اضافه کرد که یکی دما رو زیاد کنه و یکی دما رو کم کنه.البته توی وب سرور این دو گزینه باشن
سلام.من وقتی برنامه رو تست میکنم این ارور رو نشون میده.چیکار کنم؟؟
#include
^
compilation terminated.
exit status 1
Error compiling.
سلام بسیار عالی
ممنون
امکانش هست مقدار دما و رطوبت داشته باشه یابهتر دمای خارج و دما و رطوبت داخل
سلام در این برنامه کجا گفته ایم به چه پایه ای سنسور دما وصل میشود