#####รายละเอียดรายต่อวงจรและใช้งานเบื้องต้น#####
ทำการต่อ NodeMCU เข้ากับ DHT22 แบบ โดย
1.ขา1-VCC => ขา Vin(3.3v) ของ NodeMCU
2.ขา2-DIGTAL => ขา D3 ของ NodeMCU
3.ขา3-NULL => NULL ของ NodeMCU
4.ขา4-GND => ขา ของ NodeMCU
ทำการต่อ NodeMCU เข้ากับ Sensor LCD แบบ I2C โดย
1.ขา1-GND => ขา GND ของ NodeMCU
2.ขา2-VCC => ขา Vin(5.5v) ของ NodeMCU
3.ขา3-SDA => ขา D2 ของ NodeMCU
4.ขา4-SCL => ขา D1 ของ NodeMCU
ทำการสมัคร Domain name โดยสมัครที่เว็ป Namecheap จำกนั้นก็ทำการตั้งค่าใน Domain name ที่เราสมัคร โดยเข้าไปที่ Advance DNS ทำการเพิ่ม HOST Record
Type HOST Value TTL
1. A Record / @ / IP address / Auto
2. URL Redirect Record / @ / Domain name / Unmasked
เมื่อทำการสมัคร Domain name ได้แล้วทำการเข้ารหัสเขียว SHA (https://) โดยทำการเข้าไปที่ Server ของเรา และทำการลง SHA โดยใช้ Certbot
INSTALL
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache
Get Started
$ sudo certbot –apache
$ sudo certbot --apache certonly
เมื่อทำการลง Certbot จะให้ใส่ E-mail และ Domain name ของเรา ถ้ายังไม่ได้สมัคร Domain จะไม่สารมารถทำการเข้ารหัส SHA ได้
1.สมัคร Firebase และทำการ เพิ่มโครงการ ตั้งชื่อโครงการของเรา
2.หลังจากตั้งชื่อโครงการของเราแล้ว จะได้หน้า Console ของ โครงการที่เราสร้างไป
3.ให้เลือกเมนู Database จากนั้นไปที่ Tab RULES เพื่อเข้าจัดการ Users authorized ของการเข้าถึงข้อมูล เบื้องต้นเราจะอนุญาตให้คนที่เรียกเข้าถึงข้อมูลได้หมดทั้ง Read และ Write ข้อมูลได้ โดยแก้ไข Code แล้ว กดปุ่ม PUBLIC เพื่อบันทึกกำรเปลี่ยนแปลง
4.กลับมาที่ Tab Data เพื่อลองสร้างข้อมูล โดยคลิกที่เครื่องหมาย +
5.กดไปที่เมนู Home Overview ของ Project ที่เราสร้าง และ คลิกเลือกที่ Add Firebase To Your web app
6.ในที่นี้ NodeMCU จะทำส่งข้อมูลเข้าไปที่ WebServer ก่อนและ Server ทำการส่งค่าไปยัง Firebase ด้วย RESTFUL API (Method PUT)
1.ทำการลง ติดตั้ง Apache2 / PHP7.0 / MySQL / phpMyadmin
2.เข้าที่ phpMyadmin และทำการสร้างฐานข้อมูลแบบ utf8_unicode_ci โดยจะมีฐานข้อมูลชื่อ temp / humid / record
Temp = อุณหภูมิ / varchar(5)
humid = ควำมชื้น / varchar(5)
record = เวลำที่ทำการบันทึกข้อมูล / timestamp(Primary)
3.NodeMCU ส่งข้อมูลเข้าไปยัง WebServer
#define web_server "http://104.199.xx.xx/" // IP web server
Voidloop
HTTPClient http;
http.begin(web_server);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
http.POST("id="+String(id)+","+String(tem)+","+String(hu)); //Sent Data to Database
String res = http.getString();
Serial.println(res);
4.ทำ function บันทึกผลลงบนฐานข้อมูล
1.การส่งข้อมูลแบบ https:// ต้องมี fingerprint หาได้โดยการนำ เว็ปของเราไปวางที่เว็ป https://www.grc.com/fingerprints.htm แล้วจะได้ fingerprint มา เช่น DA:F3:84:CC:D9:9A:1C:22:79:EF:C2:B5:88:7F:8A:49:F5:56:0B:3D
2.เขียนโค้ดบน Arduino
#define web_server " domain name " //IP web server
#define figger_p " figgerprint " // Figger print grc.com/fingerprints.htm
ส่วนของ void loop
http.begin(web_server,figger_p);
#define SECONDS_DS(seconds) ((seconds)*1000000UL)
void setup() {
Serial.begin(115200);
Serial.println("Setup...");
}
void loop() {
delay(1000);
Serial.println("Sleeping");
ESP.deepSleep(SECONDS_DS(5));
} เมื่ออัพโหลดโคดแล้ว ให้ต่อขำ D0 กับ RST เพื่อให้ทำงำนในโหมด sleep
1.นำพัดมาประยุกต์ใช้กับวงจร โดยการใช้พัดลมควบคุมความชื้นของวงจร
2.หลักการทำงาน เมื่อความชื้นสูงกว่าที่กำลัง พัดลมจะระบายอากาศออกไปเพื่อให้ความชื้นลดลง และเมื่อลดลงถึงที่กำหนดไว้พัดลมจะปิด
โดยใช้รีเลย์เป็นตัวควบคุมพัดลมอีกทีโดยรีเลย์ทำหน้าที่คล้ายสวิตซ์ไฟ
3.ตัวอยากของโค้ด ที่นำมาใช้งาน
#define relay D5
void loop() {
if(hu >= 80){
digitalWrite(relay,HIGH);
Serial.print("Fan ON\n");}
else{
digitalWrite(relay,LOW);
Serial.print("Fan OFF\n");}
}
MQTT คือ Broker ซึ่งเป็นส่วนกลางที่จะนำพาข้อมูลจำกอุปกรณ์ต่างๆ มากองกันไว้ที่ Broker ซึ่งเป็นไปได้ว่าจะมีหลายๆ อุปกรณ์อาจจะเป็น 10 20 ตัว หรืออาจจะ 100 ตัว เชื่อมต่อมาที่ Broker เดียวกัน โดยใช้ Netpie สร้าง Device Key, Session Key โดยตัว
Device Key จะเป็นฝั่งของทำง Arduino ส่งเข้าไปยัง NETPIE
Session Key จะเป็นข้อมูลส่งแบบ Java โดย NETPIE ทำการส่งข้อมูลไปยัง Web
ใช้หลักการ Firebase แต่เพียง Netpie เป็น MQTT และสามารถส่งไปหลายๆที่พร้อมกันได้
เรียกใช้ Library Netpie microgear
ข้อมูลที่ส่งออกไปเป็นแบบ .json
ส่ง http request ผ่าน ajax จาก Server ซึ่ง Server ดึงข้อมูลจากฐานข้อมูล SQL โดยใช้ภาษา PHP แล้วแปลงจากอาร์เรย์เป็น json แล้ว respon กลับมาที่ ajax
ดึงข้อมูล firebase database ผ่านทาง Libary ของ Firebase ที่เป็นภาษา Javascript จะได้ผลลัพธ์ผ่านทาง Callback function ในรูปของ json
1.Teerawut Jinatong 57543206014-4
2.Sattaya Thadphae 57543206068-0
3.Pisit Lerditthivej 57543206058-1
4.
5.
6.