تا ابد دانشجو، داده دوست، کار دوست، کامپیوتر دوست، الکترونیک دوست، هم بنیان گذار ویراساد، داداش حاجی خودمون :)
با مانیتور دما و رطوبت، یک بابای ریموت برای کولر بسازیم!
توی خونه ما کولر زیاده، و قاعدتا وقتی کولر زیاده، حساسیت روی روشن و خاموش بودنشون توسط بابا هم زیاده، چجوری میشه به بابا کمک کرد که بتونه همه کولر هارو چک کنه؟ :))
خیلی راحت، کافیه دما و رطوبت یک جارو مانیتور کنیم تا ببینیم کی روشن میشه، خوب چجوری میشه مانیتور کرد؟
1- ی واچر سخت افزاری میخوایم که با سنسور دما و رطوبت مقادیر بگیره
2- ی پنل نرم افزاری میخوایم که داده هارو آنلاین نشون بده
برای سخت افزار که چهار تا چیز لازم داریم:
ی دونه NodeMCU، ی دونه DHT11، ی دونه منبع تغذیه 5 ولت، ی مقدار سیم برای اتصال این ها به هم
اول سنسور رطوبت و دمای DHT11:
کلا کاری که این سنسور می کنه اینکه از طریق ی پرتکل ساده سریال دما و رطوبت رو ارسال می کنه و خروجیشو به پایه GPIO2 نود وصل می کنیم:
کار سمت سخت افزارمون تمومه تقریبا، و اگر ی شارژر میکرویو اس بی (اندرویدی :)) ) به نود وصل کنیم تمام
سمت نرم افزار: ی اینترنت میخوایم
چون تا اخر گرما خیلی نمونده ی ایمیل میزنیم به gartex.ir.ad@gmail.com و میگیم با ما ی واچر سخت افزاری داریم و لازمه مانیتورش کنیم، ی ساب دامنه برای ما بسازن و ی پنل و ی ای دی و ی سکرت کی بهمون اختصاص بدن، ی دونش برای 2 ماه رایگانه :)
اونا هم به ما در جواب ی ای دی و ی سکرت کی و ی پنل بر روی وب میدن
حالا برای اینکه بتونیم داده بدیم باید با اردینو ی کد بنویسیم که داده هارو از طریق اینترنت به سرور های گارتکس بفرسته:
#include <DHT.h>
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#include <Wire.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
ESP8266WiFiMulti WiFiMulti;
//WiFi.hostname("esp_moisture_watcher_v1");
void setup() {
dht.begin();
Serial.begin(115200);
for (uint8_t t = 4; t > 0; t--) {
Serial.printf("[SETUP] WAIT %d...\n", t);
Serial.flush();
delay(1000);
}
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("ssid", "pass"); // یوزر و پسورد وای فای محلتون بزنید
}
void loop() {
// wait for WiFi connection
if ((WiFiMulti.run() == WL_CONNECTED)) {
WiFiClient client;
HTTPClient http;
float h = dht.readHumidity();
String y = String(h);
float t = dht.readTemperature();
String x = String(t);
String z = String("-");
Serial.print("\n" + x + "\n" + y + "\n" + z + "\n");
String url = String("http://api0.gartex.ir/id=W*******_key=************_v0=" + x + "_v1=" + y + "_v2=" + z + "_v3=esp_hum"); // ای دی و سکرت کی که از گارتکس گرفتید رو اینجا بزنید
Serial.print("[HTTP] begin...\n");
if (http.begin(client, url)) { // HTTP
Serial.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
String payload = http.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
} else {
Serial.printf("[HTTP} Unable to connect\n");
}
}
delay(5000);
}
این کد از طریق ی سیم میکرو یو اس بی روی نود ام سی یو اپلود کنید، بزاریدش جلوی کانال کولر و بعد به پنل نرم افزاری که گارتکس داده برید:
خوب همونطور که می بینید هر 5 ثانیه ی داده جدید برای سرور ارسال میشه و از طریق پنل می تونیم ببینیم دما و رطوبت آنلاین در چه وضعی هستش
حالا به نظرتون بابا از کجا بفهمه کی کولر روشن شده؟ :)) توی این پنل مشخصه البته :)))
برای اینکه بهتر باشه و سیم کشی ها بیرون نباشه من ی جعبه خالی اداپتور پیدا کردم و ی شارژر و بقیه چیزارو گذاشتم توش که راحت داخل پریز برقم بره :)) شمام میتونید هرجور دوس داری بسازینش :)
توی قسمت های بعد سراغ دغدغه های مامانا هم میریم، گلدون ها ;)
مطلبی دیگر از این انتشارات
جمع اوری داده صنعتی چیست و چند گونه دارد؟؟؟
مطلبی دیگر از این انتشارات
OPC :
بر اساس علایق شما
این پست تماشایی است!