สมาร์ทวอทช์ที่เชื่อมต่ออินเทอร์เน็ตด้วย ESP-01
เลิกเล่น Bluetooth แบบพื้นฐานแล้ว มาดู WiFi-Based Smart Watch ที่ใช้พลังของ ESP8266 ESP-01 เชื่อมนาฬิกาข้อมือตรงๆ เข้าสู่อินเทอร์เน็ตเลย โปรเจกต์นี้จะเปลี่ยนอุปกรณ์สวมข้อมือให้กลายเป็นแดชบอร์ดโซเชียลมีเดียและศูนย์กลางแจ้งเตือน ที่สามารถดึงข้อมูลสดๆ จาก YouTube API และแสดงการแจ้งเตือนจากสมาร์ทโฟนผ่านแอป Android ที่เราสร้างขึ้นเองได้
ตรรกะการเชื่อมต่อของ ESP-01
เราเลือก ESP-01 มาเป็น "สมอง" ของนาฬิกา เพราะมันเล็กกระทัดรัดสุดๆ:
- ซิงค์เวลาด้วย NTP: แทนที่จะใช้ชิป Real-Time Clock (RTC) นาฬิกาของเราใช้ Network Time Protocol (NTP) มันจะเชื่อมต่อกับเซิร์ฟเวอร์เวลาทั่วโลกผ่าน WiFi เพื่อให้หน้าปัดนาฬิกาแม่นยำถึงระดับมิลลิวินาทีเสมอ
- เชื่อมต่อกับ YouTube API: โดยการส่งคำขอ HTTP GET พร้อมคีย์ API ที่เราตั้งเอง นาฬิกาจะไปถามข้อมูลสถิติของช่อง YouTube ของเรา มันจะแยกวิเคราะห์ข้อมูล JSON ที่ได้กลับมา เพื่อดึงจำนวน Subscriber และ View แบบเรียลไทม์มาแสดงผล โดยจะอัปเดตทุกๆ สองสามนาที
- ติดตามโซเชียล: ใช้ตรรกะเดียวกันนี้ดึงจำนวนผู้ติดตาม Instagram มาได้ด้วย งานนี้เลยเป็นเครื่องมือชั้นดีสำหรับครีเอเตอร์ที่อยากเช็คการเติบโตของแอคเคาต์ตัวเองได้ทุกที่
เซิร์ฟเวอร์แจ้งเตือนและ MIT App Inventor
เพื่อเชื่อมโยงระหว่างนาฬิกากับสมาร์ทโฟน โปรเจกต์นี้ใช้วิธี Notification Server:
- แอป Android สร้างเอง: ใช้ MIT App Inventor 2 สร้างแอปพลิเคชันเฉพาะขึ้นมาเพื่อ "ฟัง" การแจ้งเตือนจากระบบของโทรศัพท์
- ส่งต่อข้อมูลด้วย TCP/UDP: เมื่อมีการแจ้งเตือนใหม่เข้ามา (เช่น จาก WhatsApp, SMS, Email) แอปจะส่งแพ็กเก็ตข้อมูลผ่านเครือข่ายภายในบ้าน (หรือผ่านสะพานคลาวด์) ไปยังที่อยู่ IP ของนาฬิกา
- แสดงผลบน OLED: นาฬิกาจะระบุตัวผู้ส่งและข้อความสั้นๆ จากนั้นแสดงผลบนจอ 1.12'' Grove OLED Display โดยใช้ไลบรารี U8g2 หรือ Grove OLED
การประกอบฮาร์ดแวร์ให้กะทัดรัด
การออกแบบให้สวมใส่ได้สะดวกคือความท้าทายใหญ่สุดของโปรเจกต์นี้:
- OLED 1.12'': ถูกเลือกเพราะใช้อินเทอร์เฟซ I2C ซึ่งต้องการสายข้อมูลแค่สองเส้น (SDA/SCL) และให้สีดำลึก คอนทราสต์สูง อ่านง่ายในสภาพแสงต่างๆ
- ประสิทธิภาพด้านพลังงาน: ESP-01 ขึ้นชื่อเรื่องกินไฟสูงตอนที่กำลังเชื่อมต่อ WiFi โปรเจกต์นี้จึงรวม แบตเตอรี่ LiPo 3.7V และโมดูลชาร์จ TP4056 เข้าไปด้วย เพื่อให้นาฬิกาชาร์จผ่าน USB ได้ง่าย
- การปรับแต่งเฟิร์มแวร์: เพื่อยืดอายุแบตเตอรี่ให้ได้มากที่สุด ซอฟต์แวร์จะใช้คำสั่ง
ESP.deepSleep()ในช่วงระหว่างการรีเฟรชข้อมูล โดยจะตื่นขึ้นมาเฉพาะตอนซิงค์เวลาหรือตรวจสอบการแจ้งเตือนใหม่เท่านั้น
เมื่อปีที่แล้วพี่ทำสมาร์ทวอทช์ที่ใช้ Bluetooth แต่มาไม่กี่เดือนมานี้พี่ได้ลองเล่นกับโมดูล WiFi ตัวจิ๋ว ESP-01 แล้วมันทำเอาพี่ทึ่งในความสามารถของมันมาก เลยตัดสินใจทำนาฬิกาอินเทอร์เน็ตขึ้นมา เอาง่ายๆ ก่อน พอทำนาฬิกาได้แล้วก็อยากเพิ่มฟีเจอร์เข้าไปอีก เรื่องมันเลยลุกลาม จากหนึ่งเป็นสอง สุดท้ายก็ได้นาฬิกาที่ใช้ google api แสดงสถิติของช่อง YouTube และจำนวนผู้ติดตาม Instagram ของเรา แถมยังมีเซิร์ฟเวอร์แจ้งเตือนที่ทำให้มันดึงการแจ้งเตือนจากสมาร์ทโฟนมาได้ผ่านแอปที่เราทำขึ้นจาก App Inventor อีกด้วย