จุดประสงค์การเรียนรู้
- เพื่อให้สามารถเข้าใจระบบ micro usb และ ควบคุม ใช้งานควบคุมหลอดไฟได้ ด้วยการสร้างเงื่อนไขในโปรแกรม Arduino
อุปกรณ์ในการใช้งานเบื้องต้น
1. บอร์ด Lotus Nano Bot
2. หลอด Lotus LED
3. สายโหลดโค้ด micro usb
ความสามารถของ Line Notify
LINE Notify เป็นบริการของ LINE ที่ทำให้เราสามารถส่งข้อความหาผู้ที่ขอใช้ หรือกลุ่มที่ผู้ขอใช้เป็นสมาชิก ซึ่งเราสามารถส่งข้อความ สติกเกอร์ หรือรูปภาพ เข้าไปที่โทรศัพท์ผ่านโปรแกรม Line ได้ โดยใช้ฟังก์ชั่น Line Notify ของ Line ที่ให้บริการเราติดต่อส่งข้อความผ่านทาง API HTTP POST นั่นเอง ประกอบกันกับโปรแกรม arduino ที่จะได้ต้องสร้างการเชื่อมต่อ ผ่านบอร์ด esp32 wifi ควบคุมและสั่งงานแจ้งเตือนได้ตามเงื่อนไข
นี้ก็เป็นตัวอย่างการทำงาน ของ LINE Notify
https://www.youtube.com/watch?v=ZdfAqEL5pHk
DIY กดกริ่ง ถ่ายรูปแจ้งเตือนไป Line Notify
https://www.youtube.com/watch?v=I-HbdRWwMVY
แจ้งเตือนด้วย LINE Notify เมื่อมีผู้บุกรุก esp32 camera line notify
https://www.youtube.com/watch?v=1692OOFRBGs
(วิชา-IOT) กลุ่ม siloให้อาหารสัตว์
ขั้นแรกก่อนอันดับถัดไป ศึกษากาติดตั้ง ระบบ LINE Notify
การเขียนโปรแกรมทำ ไฟกระพริบ และ sensorวัดค่าแสง เบื้องต้น โดยใช้ Arduino IDE โดยใช้งานผ่านพอร์ต GPIO 32 ,GPIO 25 ต่อวงจรดังภาพ
หลอดLED ไว้ใช้แสดงค่าสถานะ GPIO25 sensor ไว้วัดค่าแสงจะได้ค่า analog GPIO32
Code สำหรับ Arduino IDE สำหรับการใช้งาน Line Notify
Arudino IDE Code
/*
ไลบรารี่ TridentTD_LineNotify version 2.1
ใช้สำหรับ ส่ง แจ้งเตือนไปยัง LINE สำหรับ ESP32
สามารถส่งได้ทั้ง ข้อความ , สติกเกอร์ และรูปภาพ(ด้วย url)
*/
#include <Arduino.h>
#include <TridentTD_LineNotify.h>
#define SSID "xxxxxxxxxxx" // บรรทัดที่ 11 ให้ใส่ ชื่อ Wifi ที่จะเชื่อมต่อ
#define PASSWORD "xxxxxxxx" // บรรทัดที่ 12 ใส่ รหัส Wifi
#define LINE_TOKEN "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" // บรรทัดที่ 13 ใส่ รหัส TOKEN ที่ได้มาจากข้างบน
int LED_Red = 25; // กำหนดหมายเลขของพินที่ใช้สำหรับ LED RED
int snd = 18; // ลำโพง GPIO 18
void setup() {
pinMode(LED_Red,OUTPUT); //กำหนดGPIO 25 เป็น Output
Serial.begin(115200); Serial.println();
readLight_red_Printmessage(); delay(400);
readLight_red_Printmessage(); delay(400);
readLight_red_Printmessage(); delay(400);
Serial.println(LINE.getVersion());
WiFi.begin(SSID, PASSWORD);
Serial.printf("WiFi connecting to %s\n", SSID);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(400);
}
Serial.printf("\nWiFi connected\nIP : ");
Serial.println(WiFi.localIP());
tone(snd, 800, 50); tone(snd, 900, 50); tone(snd, 800, 50); //เสียงลำโพง GPIO 18
LINE.setToken(LINE_TOKEN); // กำหนด Line Token
LINE.notify("Kamalasai online"); // ตัวอย่างส่งข้อความ
}
void loop() {
int light_red_SensorValue = analogRead(32); //// อ่านค่าของปุ่ม GPIO 32 เก็บไว้ใน lightSensorValue
Serial.print("Light: = ");
Serial.print(light_red_SensorValue); // แสดงค่า sensorValue(ค่าแสง) ผ่าน Serial Monitor
if (light_red_SensorValue < 2000) {
digitalWrite(LED_Red, HIGH); ////สั่ง LED_Red ให้ หลอดไฟทำงาน
LINE.notify("LED RED on"); //แสดงข้อความ แจ้งเตือนไปที่ไลน์
Serial.println(" LED RED on"); //แสดงข้อความผ่าน Serial Monitor
} else { ///ถ้าไม่เข้าเงื่อนไขการกดปุ่ม else ต้องหยุดทำงาน
digitalWrite(LED_Red, LOW); ////สั่ง LED_Red ให้ หลอดไฟหยุดทำงาน
LINE.notify("LED RED off"); //แสดงข้อความ แจ้งเตือนไปที่ไลน์
Serial.println(" LED RED off"); //แสดงข้อความผ่าน Serial Monitor
}
delay(500); ///เงื่อนไขนับเวลา 0.5 วินาที
}
void readLight_red_Printmessage() {
int sensorValue = analogRead(32); // อ่านค่าจากเซ็นเซอร์แสง
LINE.notify("Light: " + String(sensorValue)); //แสดงค่าแสง แจ้งเตือนไปที่ไลน์
delay(300); // หน่วงเวลาเพื่อไม่ให้ข้อความปรากฏบน Serial Monitor
}
ขั้นตอนการโหลดโค้ด สำหรับระบบ ubuntu
ขั้นแรกนำโค้ดเข้าโปรแกรม arduino IDE
ขั้นตอนที่สอง นำโค้ดที่ ก็อปจากบทความเข้าโปรแกรม
ขั้นตอนต่อไป นำสายโหลด micro usb พร้อมเสียบที่บอร์ดเตรียมโหลดโค้ด
sudo chmod 666 /dev/ttyUSB0 หรือ sudo chmod 666 /dev/ttyACM0
(ขั้นตอนในการใส่ รหัสผ่าน รหัสจะเป็นอักษรล่องหน แนะนำให้ พิมพ์ a สี่ครั้งนับในใจ)
คำสั่งTerminalในการเปิดพอร์ตUSBก่อนUpload CodeในUbuntu : sudo chmod 666 /dev/ttyUSB0
(อธิบายโค้ดเพิ่มเติม)
ขั้นตอนการโหลดโค้ด สำหรับระบบ windows
จัดทำโดย
นายภูมินทร์ กางทา นักศึกษา มหาวิทยาลัยมหาสารคาม