در این اموزش قصد داریم نحوه راه اندازی سنسورDHT11 به وسیله دnode mcu را بصورت کامل اموزش دهیم و میزان دما و رطوبت را اندازه گیری کنیم و اطلاعات را برای سرور بفرستیم تا نمایش دهد
# | نوع | تعداد | خرید |
---|---|---|---|
1 | esp8266/ nodemcu | 1 | |
2 | سیم جامپر | 2 | |
3 | برد بورد | 1 | |
4 | ماژول dht11 | 1 |
برای برنامه نویسی این پروژه از نرم افزار اردوینو استفاده میکنیم.
http://arduino.esp HYPERLINK "http://arduino.esp8266.com/stable/package_esp8266com_index.json"8266 HYPERLINK "http://arduino.esp8266.com/stable/package_esp8266com_index.json".com/stable/package_esp HYPERLINK "http://arduino.esp8266.com/stable/package_esp8266com_index.json"8266 HYPERLINK "http://arduino.esp8266.com/stable/package_esp8266com_index.json"com_index.json
tools-> manager Library
معرفی پایه ها در اموزش بخش قبل انجام شده است
اولین قدم افزودن کتابخانه iotkaran می باشد که با استفاده از دستور include انجام می دهیم
ابتدا کتابخانه DHT را به منظور استفاده از توابع مرتبط با این سنسور معرفی میکنیم
در این بخش باید نوع سنسور دمارا مشخص کنیم که در این مثالdht11 است و همچنین پایه متصل به میکرو که D2 است
توکن که از سرور گرفتید را وارد کنید داشبرد
نام wifi و پسورد wifi را وارد کنید تا میکرو بتواند به مودم متصل شود و به اینترنت دسترسی داشته باشد
یک شی از کتابخانه می سازیم
سریال میکرو را راه اندازی می کنیم
کتابخانه سنسور دمارا صدا می زنیم و مقدار دهی می کنیم
مشخص کردن مود دستگاه که حالت sta باشد تا esp بتواند به مودم متصل شود
چک کردن وضعیت مودم در این بخش از کد تا زمانی که ماژول به وای فای مورد نظر متصل نشده،هر 500میلی ثانیه ،در سریال مانیتور نقطه چاپ میکند.و زمانی که متصل شد از این حلقه خارج میشود
نمایش ip دستگاه
اتصال به سرور iotkaran
احراز هویت توسط سرور iotkaran
این قسمت جهت خواندن اطلاعات از سنسور و تبدیل اطلاعا به درجه می باشد
اطلاعات به صورت عدد هستند برای ارسال به سرور باید تبدیل به رشته شوند
در این قسمت با استفاده از کتابخانه جیسون اردوینو یک کلید به نام temperature وhumidity تعریف می کنیم و مقدار سنسور را در ان می ریزیم و مقدار دما در ان قرار می دهیم
در این بخش با تعریف یم کتغیر string و سریالایز کردن مقادیر جیسون این مقادیر در متغیر output ریخته می شود
در این بخش که بخش نهایی می باشد بااستفاده از تابع ()IK.status وضعیت سرور را چک کرده و در صورت متصل بودن دستگاه به سرور اقدام به ارسال اطلاعات به سرور م کنیم با استفاده از تابع ()IK.send
اگر اتصال با سرور قطع شده باشد این بخش صدا زده می شود و پیامی بر روی سریال نمایش داده می شود که سرور قطه است و میکرو سعی می کند دوباره به سرور متصل شود و احراز هویت کند
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
#include <Iotkaran.h>
#include "DHT.h"
#define DHTPIN D2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 // DHT 22 (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
#define Token "your token"
const char* ssid = "ssid modem";
const char* password = "password modem";
Iotkaran IK;
void setup() {
Serial.begin(115200);
Serial.println(F("DHTxx test!"));
dht.begin();
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
IK.connect("server.Iotkaran.ir" , 2323); //Enter a host address and port
IK.authentication(Token);
}
void loop() {
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
String Humidity = String(h);
String Temperature = String(t);
DynamicJsonDocument doc(1536);
doc["action"] = "status";
doc["data"]["datas"]["humidity"] = Humidity;
doc["data"]["datas"]["temperature"] = Temperature;
doc["method"] = "request_set";
String Output;
serializeJson(doc, Output);
if (IK.status())
{
Serial.print("Send to server: ");
Serial.println(Output);
IK.send(Output);
}
else {
Serial.println("The client disconnected");
IK.reconnect("server.Iotkaran.ir" , 2323);
IK.authentication(Token);
}
}
جهت اتصال مثال به داشبرد اول به لینک داشبرد می رویم
داشبردبرای دسترسی به امکانات داشبرد می بایست ثبت نام انجام دهید
جهت نمایش اطلاعات دستگاه می توانید از ویجت استفاده کنید ویجت ها انواع نمودار و وسایل کنترلی هستند که می توانید به واسطه ان ها به سخت افزار خود فرمان دهید و یا اطلاعات سخت افزار را نمایش دهید
هر ویجت دارای امکانات مختلفی هستند که بسته به سخت افزار تهیه شده اند و شما می بایست ویحت مربوطه را انتخاب کنید
پروژه مشابه
کامنت ها
هر هفته یک اموزش
هر هفته یک پروژه
هر هفته یک ویجت