- ส่วนประกอบฮาร์ดแวร์ที่ใช้:
- การเขียนโปรแกรม ESP-01 โมดูลโดยใช้ CP2102 USB-TTL Converter:
- การเชื่อมต่อ ESP-01 กับโมดูล CP2102:
- การเขียนโปรแกรมโมดูล ESP-01 สำหรับ Alexa Home Automation
- แผนภูมิวงจรรวม
- ตั้งค่าแอพ Amazon Alexa สำหรับระบบอัตโนมัติในบ้าน
ลำโพงอัจฉริยะเช่น Amazon Echo หรือ Google home กำลังได้รับความนิยมในปัจจุบันและทั้งสองมีความสามารถในการรวมทักษะหรือการกระทำที่กำหนดเองเพื่อควบคุมอุปกรณ์ใด ๆ โดยใช้ลำโพงอัจฉริยะ ก่อนหน้านี้เราได้สร้างลำโพงอัจฉริยะของเราเองโดยใช้ Raspberry Pi และ Alexa และยังควบคุมเครื่องใช้ภายในบ้านโดยใช้ลำโพงอัจฉริยะ Raspberry Pi
ระบบอัตโนมัติในบ้านกลายเป็นเรื่องปกติมากในปัจจุบันและผู้คนกำลังใช้ IoT เพื่อทำให้ทุกอย่างในบ้านเป็นแบบอัตโนมัติ ที่นี่ในการกวดวิชานี้เราจะใช้จริงอะเมซอนดอท Echo ลำโพงและสร้างทักษะที่กำหนดเองเพื่อควบคุมเครื่องใช้ภายในบ้าน ACเหมือนไฟ, แฟนทีวี, ช่องเสียบใช้ Amazon Echo dot ลำโพง ที่นี่เราจะใช้ Arduino UNO และโมดูล Wi-Fi ESP8266-01 เพื่อเชื่อมต่อลำโพง Echo dot กับเครื่องใช้ไฟฟ้ากระแสสลับ หลังจากบทช่วยสอนนี้คุณจะสามารถควบคุมอุปกรณ์ใด ๆ ผ่าน Alexa
ส่วนประกอบฮาร์ดแวร์ที่ใช้:
- Arduino UNO
- โมดูล ESP-01
- จุดสะท้อนของ Amazon Alexa
- CP2102 ตัวแปลง USB-TTL
- เขียงหั่นขนม
- โมดูลรีเลย์ 5V
- เครื่องใช้ไฟฟ้า AC
- จัมเปอร์
การเขียนโปรแกรม ESP-01 โมดูลโดยใช้ CP2102 USB-TTL Converter:
ที่นี่ ESP-01 ถูกตั้งโปรแกรมโดยใช้ตัวแปลง CP2102 USB-TTL นอกจากนี้ยังสามารถตั้งโปรแกรมโดยใช้บอร์ด Arduino UNO ในกรณีของฉันฉันใช้โมดูล CP2102 และขั้นตอนในการทำสิ่งนี้มีคำอธิบายด้านล่าง
โมดูล ESP-01
ESP8266 ESP-01 เป็นโมดูล Wi-Fi ที่ได้รับความนิยมอย่างมากในการออกแบบแอปพลิเคชัน IoT และใช้เพื่อให้ไมโครคอนโทรลเลอร์เช่น Arduino UNO เชื่อมต่อกับอินเทอร์เน็ต โมดูลนี้เป็นระบบที่มีอยู่ในตัวบนชิป (SOC) ซึ่งสามารถทำหน้าที่เหมือนคอมพิวเตอร์ขนาดเล็ก มาพร้อมกับเฟิร์มแวร์ AT ที่ติดตั้งไว้ล่วงหน้าดังนั้นเราจึงสามารถตั้งโปรแกรมได้โดยใช้ Arduino IDE คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับตัวรับส่งสัญญาณ Wi-Fi ESP-01 และการเขียนโปรแกรมโดยใช้ Arduino IDE ได้ตามลิงค์
คำอธิบายพิน:
VCC:ขาจ่ายไฟของ ESP-01 ซึ่งสามารถจ่ายให้กับ 3.3V DC
GND:พินอ้างอิงกราวด์ของ ESP-01
TXD:ใช้เป็นพินเครื่องส่งสัญญาณ UART
RXD:ใช้เป็น UART Receiver Pin
RESET:ใช้เพื่อรีเซ็ตโมดูลและเป็นขา LOW ที่ใช้งานอยู่
CH_PD:เป็นพินเปิดใช้ชิปซึ่งเป็นพิน HIGH ที่ใช้งานอยู่
GPIO0:พินนี้ทำหน้าที่สองอย่าง หนึ่งคือเป็นอินพุต / เอาต์พุตวัตถุประสงค์ทั่วไปและอื่น ๆ คือการเปิดใช้งานโหมดการเขียนโปรแกรมของ ESP-01
GPIO2:นี่คือพินอินพุต / เอาท์พุตวัตถุประสงค์ทั่วไป
การเชื่อมต่อ ESP-01 กับโมดูล CP2102:
รูปด้านล่างแสดงแผนภาพ pinout ของCP2102 แปลง เชื่อมต่อโมดูล ESP-01 กับโมดูลตัวแปลง CP2102 USB-TTL ตามตารางด้านล่าง
โมดูล ESP-01 |
โมดูล CP2102 |
VCC |
3.3V |
GND |
GND |
RXD |
TXD |
TXD |
RXD |
CH_PD |
3.3V |
รีเซ็ต |
ไม่มีการเชื่อมต่อ |
GPIO0 |
GND |
GPIO2 |
ไม่มีการเชื่อมต่อ |
หลังจากเสร็จสิ้นการเชื่อมต่อด้านบนแล้ววงจรควรมีลักษณะดังนี้:
จากนั้นเชื่อมต่อโมดูล CP2102 กับพีซีของเราเพื่อเขียนโปรแกรม ก่อนอัปโหลดรหัสไปยัง ESP-01 ขั้นแรกให้ตรวจสอบพอร์ตการสื่อสาร สำหรับสิ่งนี้ไปที่ start-> และค้นหาตัวจัดการอุปกรณ์ จากนั้นคลิกที่ COMs และ Ports ภายใต้ตัวเลือกนี้เราควรได้รับพอร์ต COM ที่มีชื่อตัวแปลง USB-TTL เช่น“ Silicon labs CP21xx USB-UART Bridge ” ดังที่แสดงในภาพด้านล่าง:
หลังจากทำตามขั้นตอนข้างต้นสำเร็จแล้วให้เปิด Arduino IDE และเลือกบอร์ดเป็น“ Generic ESP8266 Module ” จากเมนูToolsและเลือกพอร์ต COM ที่เราได้รับในขั้นตอนก่อนหน้านี้
การเขียนโปรแกรมโมดูล ESP-01 สำหรับ Alexa Home Automation
รหัสที่สมบูรณ์จะได้รับเมื่อสิ้นสุดโครงการนี้ นี่คือคำอธิบายทีละขั้นของโค้ดที่จะอัปโหลดในโมดูล ESP-01 ขั้นตอนแรกคือการรวมไลบรารีที่จำเป็นทั้งหมด คุณสามารถดาวน์โหลดไลบรารี“ fauxmoESP.h” ได้จากลิงค์ที่นี่
# รวม # รวม
ในขั้นตอนนี้เราต้องกำหนดข้อมูลประจำตัวทั้งหมดที่จำเป็นในการเชื่อมต่อ ESP-01 กับอินเทอร์เน็ต อัปเดต SSID เครือข่ายและข้อมูลรหัสผ่านของคุณในโปรแกรม
# กำหนด SSID "*******" # กำหนดผ่าน "*******"
จากนั้นกำหนดชื่อของอุปกรณ์ซึ่งเราต้องควบคุมจาก Alexa ในกรณีของฉันฉันใช้ชื่ออุปกรณ์ของฉันว่า " ไฟห้องนอน " " พัดลมห้องนอน " และ " ปลั๊กอัจฉริยะ "
#define device1 "bedroom light" #define device2 "bedroom fan" #define device3 "smart socket"
ฟังก์ชันWiFi.modeใช้เพื่อตั้งค่าโมดูล ESP-01 เป็นโหมด Station และฟังก์ชันWiFi.beginใช้เพื่อเชื่อมต่อโมดูล ESP-01 กับอินเทอร์เน็ตซึ่งใช้ SSID และรหัสผ่านของเครือข่ายเป็นอาร์กิวเมนต์
WiFi.mode (WIFI_STA); WiFi.begin (ssid, ผ่าน);
ส่วนต่อไปคือการเริ่มต้นฟังก์ชันทั้งหมดของ คลาสFauxmoเช่นสร้างเซิร์ฟเวอร์เปิดใช้งานหมายเลขพอร์ตสำหรับอุปกรณ์ Alexa เปิดใช้งานอุปกรณ์ ฯลฯ จากนั้นเพิ่มอุปกรณ์ทั้งหมดโดยใช้ fauxmo.addDevice ซึ่งเราได้สร้างไว้ก่อนหน้านี้
fauxmo.createServer (จริง); fauxmo.setPort (80); fauxmo.enable (จริง); fauxmo.addDevice (อุปกรณ์ 1); fauxmo.addDevice (อุปกรณ์ 2); fauxmo.addDevice (อุปกรณ์ 3);
ถัดไปเขียนฟังก์ชั่นเพื่อการเปรียบเทียบคำสั่งเสียงของเราที่มีชื่ออุปกรณ์ที่กำหนดไว้ล่วงหน้าหากคำสั่งตรงกันให้ส่งอักขระไปยังขั้วอนุกรม Arduino โดยใช้ Serial.print
fauxmo.onSetState ((char device_id ที่ไม่ได้ลงชื่อ, const char * device_name, สถานะบูล, ค่าถ่านที่ไม่ได้ลงชื่อ) {if (strcmp (device_name, device1) == 0) {if (state) Serial.print ("1"); else Serial.print ("2");}}
ใน ห่วง () เป็นโมฆะ ฟังก์ชั่น fauxmo.handle ฟังก์ชั่นก็จะตรวจสอบข้อมูลที่เข้ามาจาก Alexa และจะดำเนินการโดยใช้ onSetstate () ฟังก์ชั่น
ห่วงเป็นโมฆะ () {fauxmo.handle (); }
ตอนนี้อัปโหลดรหัสที่สมบูรณ์ที่ให้ไว้ในตอนท้ายไปยังโมดูล ESP-01 และตรวจสอบให้แน่ใจว่าการอัปโหลดสำเร็จ
รหัส Arduino:
หลังจากนั้นก็ถึงเวลาอัปโหลดโค้ดใน Arduino รหัสสำหรับ Arduino นั้นง่ายมาก รับเฉพาะอักขระที่ส่งจากโมดูล ESP-01 ผ่านขั้ว UART และเปรียบเทียบเพื่อส่งสัญญาณเปิด / ปิดไปยังรีเลย์ โปรแกรมสมบูรณ์สำหรับ Arduino แสดงไว้ด้านล่าง:
ข้อมูลถ่าน การตั้งค่าเป็นโมฆะ () {Serial.begin (115200); PinMode (7, เอาท์พุท); PinMode (6, เอาท์พุท); pinMode (5, เอาท์พุท); digitalWrite (7, ต่ำ); digitalWrite (6, ต่ำ); digitalWrite (5, ต่ำ); } void loop () {if (Serial.available ()> 0) {data = Serial.read (); Serial.print (ข้อมูล); Serial.print ("\ n"); ถ้า (data == '1') digitalWrite (7, HIGH); อื่นถ้า (data == '2') digitalWrite (7, LOW); อื่นถ้า (ข้อมูล == '3') digitalWrite (6, สูง); อื่นถ้า (data == '4') digitalWrite (6, LOW); อื่นถ้า (ข้อมูล == '5') digitalWrite (5, สูง); อื่นถ้า (data == '6') digitalWrite (5, LOW); }}
หลังจากอัปโหลดรหัสไปยัง Arduino แล้วถัดไปเชื่อมต่อฮาร์ดแวร์ตามแผนผังที่ระบุด้านล่าง
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับระบบอัตโนมัติในบ้านโดยใช้ Alexaแสดงไว้ด้านล่าง:
ที่นี่เราได้บัดกรีส่วนประกอบทั้งหมดบน Perfboard เพื่อให้ทำหน้าที่เป็น Arduino shield
ในทำนองเดียวกันเราได้สร้างโมดูลรีเลย์บน Perfboard:
ตั้งค่าแอพ Amazon Alexa สำหรับระบบอัตโนมัติในบ้าน
หลังจากเสร็จสิ้นการตั้งค่าฮาร์ดแวร์และการเข้ารหัสเรียบร้อยแล้วก็ถึงเวลาตั้งค่าแอป Alexa สำหรับ Android ขั้นแรกเราต้องค้นหาอุปกรณ์อัจฉริยะที่อยู่ใกล้เคียงผ่านแอพนี้ ในการเปิดอุปกรณ์ Alexa ของคุณจากนั้นเปิดแอป Alexa ของคุณและคลิกที่ตัวเลือก " อุปกรณ์ " จากนั้นคลิกที่เครื่องหมาย "+" ซึ่งจะขอให้คุณ " เพิ่มอุปกรณ์ " จากนั้นคลิกที่ " เพิ่มอุปกรณ์ " ในประเภทของอุปกรณ์คลิก " อื่น ๆ " จากนั้นเลือกค้นหาอุปกรณ์ จากนั้นแอป Alexa ของคุณควรค้นหาอุปกรณ์ซึ่งอาจใช้เวลาถึง 45 วินาที
หมายเหตุ:นอกจากนี้เรายังสามารถค้นพบอุปกรณ์โดยใช้คำสั่งเสียง“ Alexa ค้นพบอุปกรณ์ ”
หลังจากการค้นพบอุปกรณ์เสร็จสิ้นคุณควรจะได้รับอุปกรณ์ใหม่ 3 เครื่องตามชื่อที่เราให้ไว้ในรหัส ในกรณีของเหล่านี้เป็น ไฟห้องนอน , พัดลมห้องนอน และซ็อกเก็ตสมาร์ท ตอนนี้การตั้งค่าพร้อมสำหรับการทดสอบแล้วเพียงทดสอบโดยพูดว่า“ Alexa เปิดไฟห้องนอน ” และควรตอบกลับว่า“ โอเค” จากนั้นไฟจะสว่างขึ้น ในทำนองเดียวกันเราสามารถทดสอบคำสั่งอื่น ๆ ทั้งหมดได้
นี่คือลักษณะการตั้งค่าที่สมบูรณ์สำหรับเครื่องใช้ในบ้านที่ควบคุมด้วย Amazon Echo dot:
รหัสที่สมบูรณ์สำหรับ ESP-01 พร้อมวิดีโอสาธิตอยู่ด้านล่าง