- วัสดุประณีต:
- ส่วนที่ 1: การตั้งค่า Raspberry Pi ด้วย SSH และ VNC
- ส่วนที่ 2: ตั้งค่าบัญชีผู้พัฒนา Amazon ของคุณและกำหนดค่า Alexa Voice Services บน Raspberry Pi:
- ส่วนที่ 3: การตั้งค่า PubNub และ IFTTT สำหรับ Alexa Pi Home Automation :
- ส่วนที่ 3-2: การตั้งค่า IFTTT สำหรับบริการ Amazon Alexa:
- ส่วนที่ 4: การเชื่อมต่อฮาร์ดแวร์และแผนภาพวงจร:
- ส่วนที่ 5: รหัส Python สำหรับควบคุม LED:
คุณเคยคิดเกี่ยวกับลำโพงที่สามารถควบคุมได้ด้วยเสียงของคุณ !!! จะเป็นอย่างไรหากเราสามารถควบคุมเครื่องใช้ไฟฟ้าภายในบ้านได้ด้วยวิธีนี้และทำให้เครื่องใช้ไฟฟ้าเหล่านี้ฉลาดขึ้น ผู้ช่วยเสียงกลายเป็นที่นิยมมากขึ้นในขณะที่เรากำลังมุ่งหน้าไปในยุคของAI และระบบ IOT ตามคุณเคยได้ยินเกี่ยวกับ Google ช่วยแอปเปิ้ลศิริและ Amazon Alexa ทั้งหมดนี้เป็นระบบ AI ที่ใช้เสียงสิ่งที่ทำให้สิ่งเหล่านี้แตกต่างกันคือระบบนิเวศของพวกเขาและนี่คือจุดที่Amazon Alexaโดดเด่นที่สุด Google, Apple และ Amazon บริษัท เหล่านี้ทั้งหมดได้เปิดตัวลำโพงอัจฉริยะของพวกเขาแล้ว แต่ Amazon เป็นคนแรกที่แนะนำลำโพงอัจฉริยะ Amazon echo, Echo Dot Spot ฯลฯ เป็นลำโพงอัจฉริยะที่มีจำหน่ายในตลาด
Amazon ให้ API สำหรับการใช้ของบริการเสียงที่นิยมมาก, Alexaเป็นโอเพ่นซอร์สและพร้อมใช้งานบน Github นอกจากนี้คุณสามารถติดตั้งหรือรวม Alexa บนอุปกรณ์ที่กำหนดเองเช่น Raspberry Pi และรับฟังก์ชั่น Amazon Echo แบบเต็มในอุปกรณ์นั้น
การใช้บริการเสียง Alexaเราสามารถเล่นเพลงได้รับข้อมูลเกี่ยวกับสภาพอากาศ, ตั๋วหนังสือและอื่น ๆ อีกมากมาย สิ่งที่คุณต้องทำคือ "ถาม" ในบทช่วยสอนนี้เราจะดูว่าเราสามารถควบคุม Raspberry Pi GPIO โดยใช้บริการ Alexa Voiceเพื่อเรืองแสง LED ได้อย่างไร
วัสดุประณีต:
ข้อกำหนดฮาร์ดแวร์:
- Raspberry Pi 3 หรือ Raspberry Pi 2 Model B และ SD Card (8GB หรือมากกว่า)
- ลำโพงภายนอกพร้อมสาย AUX 3.5 มม
- ไมโครโฟนเว็บแคมหรือ USB 2.0 ใด ๆ
- โมดูลรีเลย์
- LED
หมายเหตุ: เว็บแคมมีไมโครโฟนในตัวดังนั้นเราจะใช้สิ่งนี้แทนไมโครโฟน USB 2.0
แอพซอฟต์แวร์และข้อกำหนดของเว็บ:
- ลงทะเบียนบัญชีกับ Alexa Voice Services
- ลงทะเบียนบัญชีกับ PubNub
- ลงทะเบียนบัญชีกับ IFTTT
นอกจากนี้เรายังสมมติว่า Raspberry pi ของคุณได้รับการตั้งค่ากับ Raspbian OS แล้วและเชื่อมต่อกับอินเทอร์เน็ต ด้วยสิ่งเหล่านี้เรามาดูบทช่วยสอนกัน หากคุณยังใหม่กับ Raspberry Pi ให้ไปที่การเริ่มต้นใช้งาน Raspberry pi ก่อน
บทช่วยสอนทั้งหมดแบ่งออกเป็น 5 ส่วนหลัก ๆ ดังนี้:
- หากคุณไม่มีจอภาพเราต้องตั้งค่า Raspberry Pi ด้วย SSH และ VNC ตรวจสอบการเชื่อมต่อไมโครโฟน USB
- ตั้งค่า Amazon Developer ของคุณและติดตั้ง Alexa บน Raspberry Pi
- การตั้งค่า PubNub และ IFTTT สำหรับ Alexa Home Automation
- การเชื่อมต่อฮาร์ดแวร์
- รหัส Python สำหรับ Alexa Pi GPIO Control
หากคุณต้องการควบคุม LED ด้วยเสียงของคุณให้ตรวจสอบโครงการ LED ที่ควบคุมด้วยเสียงที่ใช้บลูทู ธ ของเราด้วย
ส่วนที่ 1: การตั้งค่า Raspberry Pi ด้วย SSH และ VNC
ขั้นแรกเราจะเชื่อมต่อ Raspberry Pi กับ SSH และ VNC สำหรับบทเรียนตามนี้ในเว็บไซต์ทางการของ Raspberry Pi ลิงค์จะได้รับด้านล่าง
สำหรับ SSH: ลิงก์ SSh
สำหรับ VNC: ลิงก์ VNC
หากคุณมี Monitor คุณสามารถออกจากขั้นตอนนี้และไปที่ขั้นตอนที่ 2 ได้โดยตรงซึ่งเป็นการตั้งค่า Alexa Voice Service (Avs) ก่อนหน้านั้นเราต้องตรวจสอบการเชื่อมต่อไมค์
การตรวจสอบไมค์เว็บแคมด้วย Raspberry Pi:
1. เปิดเทอร์มินัล Raspberry Pi แล้วพิมพ์คำสั่งarecord -l สิ่งนี้จะแสดงอุปกรณ์ฮาร์ดแวร์ที่เชื่อมต่อกับ Raspberry Pi ดังที่แสดงด้านล่าง:
การ์ด 1 คือไมค์ของเว็บแคมของคุณที่เราจะใช้ หากไม่ปรากฏแสดงว่าเว็บแคมของคุณอาจมีปัญหา
2. ตอนนี้ตรวจสอบว่าไมค์ทำงานหรือไม่โดยเรียกใช้คำสั่งบันทึกเสียงเป็น:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. ในการเล่นเสียงที่บันทึกไว้ให้พิมพ์คำสั่งนี้:
omxplayer -p -o local /home/pi/Desktop/test.wav
หากคุณเชื่อมต่อ Raspberry Pi กับจอภาพโดยใช้สาย HDMI โดยค่าเริ่มต้นเอาต์พุตเสียงจะผ่านลำโพงของจอภาพของคุณ (หากมีลำโพงในตัว) ดังนั้นในการเปลี่ยนเป็น 3.5 มม. คุณต้องพิมพ์คำสั่งต่อไปนี้:
sudo raspi-config และไปที่ Advance option
เลือกเสียงจากรายการ -> เลือกบังคับ 3.5 มม. -> เลือกตกลงและรีสตาร์ท Raspberry Pi
ตอนนี้คุณควรได้ยินเสียงจากแจ็ค 3.5 มม.
หมายเหตุ:หากคุณต้องการเพิ่มหรือลดความดังของเสียงอินพุตสำหรับไมโครโฟนให้พิมพ์ alsamixer ในเทอร์มินัล เลือกการ์ดเสียงจากเทอร์มินัลโดยกด F6
กด F4 เพื่อเปลี่ยน Mic dB gain และตั้งค่าตามที่คุณต้องการ
หากคุณมีไมโครโฟน USB 2.0 ขั้นตอนในการตรวจสอบไมโครโฟนจะเหมือนกัน ที่นี่เราใช้เว็บแคมสำหรับไมโครโทรศัพท์ USB
ส่วนที่ 2: ตั้งค่าบัญชีผู้พัฒนา Amazon ของคุณและกำหนดค่า Alexa Voice Services บน Raspberry Pi:
เราได้อธิบายรายละเอียดในบทช่วยสอนก่อนหน้านี้แล้วซึ่งเราได้สร้างลำโพงอัจฉริยะ Amazon Echo เรากำลังมุ่งเน้นไปที่การควบคุม Raspberry Pi GPIO ด้วย Alexa ดังนั้นเราจึงไม่ได้อธิบายกระบวนการทั้งหมดอีกครั้งดังนั้นอ่านบทความก่อนหน้านี้และเตรียมลำโพงของคุณให้พร้อมด้วยบริการเสียงของ Alexa ที่ติดตั้งบน Raspberry pi ของคุณ
ในการทดสอบ Alexa เพียงแค่ปลุกเธอด้วยการพูดชื่อของเธอ! ตรวจสอบวิดีโอสาธิตที่ให้ไว้ในตอนท้ายของบทช่วยสอน
คุณสามารถถามเธอเกี่ยวกับอุณหภูมิของเมืองของคุณเพื่อตรวจสอบว่าใช้งานได้หรือไม่
ส่วนที่ 3: การตั้งค่า PubNub และ IFTTT สำหรับ Alexa Pi Home Automation :
สำหรับการควบคุมราสเบอร์รี่ Pi GPIO ใช้นี้ Alexa Piเราต้องการความช่วยเหลือของPubNub หลาม SDKและIFTTTเราจะให้คำสั่งแก่ IFTTT ผ่าน Alexa และ PubNub ให้สัญญาณกับ RPi เพื่อเปิด / ปิด LED ดังนั้นเราจะติดตั้ง PubNub บน Raspberry Pi ก่อน
ส่วนที่ 3-1: การติดตั้ง PubNub Python SDK:
PubNub มี API การส่งข้อความเพื่อเผยแพร่ / สมัครรับข้อความใด ๆ บนเครือข่ายทั่วโลก ที่นี่เราใช้ IFTTT และ Alexa เพื่อเผยแพร่ข้อความบน PubNub เพื่อทำให้ Raspberry Pi GPIO ต่ำ / สูง Raspberry Pi ได้รับข้อความนี้และ Pi จะเปิดหรือปิด LED ตามนั้น ทำตามขั้นตอนด้านล่างเพื่อตั้งค่า PubNub บน Raspberry Pi:
ขั้นตอนที่ 1:เปิดเทอร์มินัลบน RPi ของคุณและเรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง SDK:
sudo pip ติดตั้ง pubnub == 3.9.0
ติดตั้งเวอร์ชัน3.9.0เท่านั้นเวอร์ชันอื่น ๆ จะไม่ทำงานกับสคริปต์ python ซึ่งเราจะเรียกใช้ในช่วงสุดท้าย
ขั้นตอนที่ 2:ไปที่ PubNub แล้วลงชื่อเข้าใช้ด้วยข้อมูลรับรองของคุณ
ขั้นตอนที่ 3: รับ คีย์การเผยแพร่และสมัครสมาชิกที่ เราจะใช้ในภายหลัง
ส่วนที่ 3-2: การตั้งค่า IFTTT สำหรับบริการ Amazon Alexa:
IFTTT เป็นบริการบนเว็บฟรีที่ช่วยให้ผู้ใช้สามารถสร้างกลุ่มของคำสั่งเงื่อนไขง่ายๆที่เรียกว่า“ สูตรอาหาร” ซึ่งจะเรียกใช้ตามการเปลี่ยนแปลงของบริการเว็บอื่น ๆ เช่น Gmail, Facebook, Instagram และ IFTTT เป็นคำย่อของ“ If This Then That”
สำหรับโครงการนี้IFTTT ใช้เพื่อสร้าง Raspberry Pi GPIO LOW / HIGH ตามคำสั่งเสียงที่ได้รับจากบริการ Alexa ที่ทำงานบน RPi
ทำตามขั้นตอนเหล่านี้เพื่อสร้างแอพเพล็ต:
ขั้นตอนที่ 1: -เข้าสู่ IFTTT ด้วยข้อมูลประจำตัวของคุณหรือลง ทะเบียน หากคุณไม่มีบัญชีอยู่
ขั้นตอนที่ 2: - ในแอปเพล็ตของฉันคลิกที่ แอพเพล็ตใหม่
ขั้นตอนที่ 3: - คลิกที่ + นี่
ขั้นตอนที่ 4: - ค้นหา Amazon Alexa และคลิกที่มันลงชื่อเข้าใช้ด้วยรายละเอียดบัญชีผู้พัฒนา amazon ของคุณ
ขั้นตอนที่ 5: - เลือกทริกเกอร์ พูดวลีเฉพาะ
ขั้นตอนที่ 6: - ให้ “ เปิดไฟ” เป็นวลีคลิกที่ สร้างทริกเกอร์
ขั้นตอนที่ 7: - คลิกที่ + นั่น
ขั้นตอนที่ 8: - ค้นหา Webhooks คลิกที่ มัน และเลือก สร้างคำขอทางเว็บ
ขั้นตอนที่ 9: - Webhooks จัดเตรียมคำขอ REST WEB ใช้คีย์เผยแพร่และสมัครสมาชิกที่ได้รับจาก PubNub และแก้ไข URL ต่อไปนี้
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
ขั้นตอนที่ 10: - วาง URL ที่แก้ไขลงในกล่องข้อความ URL
ขั้นตอนที่ 11: - ตั้งค่า Method เป็น GET, Content as application / json แล้วคลิกที่ บันทึก
ขั้นตอนที่ 12: - ทำตามขั้นตอนเดียวกันเพื่อสร้างทริกเกอร์สำหรับ " ปิดไฟ " และแก้ไข URL ดังต่อไปนี้
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
ขั้นตอนที่ 13: - ตอนนี้เราพร้อมกับส่วนประกอบเว็บทั้งหมดสำหรับการสาธิตแล้ว
ส่วนที่ 4: การเชื่อมต่อฮาร์ดแวร์และแผนภาพวงจร:
สำหรับโครงการนี้เราต้องการ LED แบบธรรมดาเพื่อการทดสอบ ด้านล่างเป็นแผนภาพวงจรและอุปกรณ์การเชื่อมต่อกับการควบคุมราสเบอร์รี่ Pi GPIO กับ Amazon Alexa
เราจะใช้ GPIO18 ในสคริปต์ python ของเราดังนั้นเชื่อมต่อรีเลย์ LED 18 ของคุณคุณสามารถเปลี่ยนสิ่งนี้ได้ในสคริปต์ python
ส่วนที่ 5: รหัส Python สำหรับควบคุม LED:
ค้นหาPython Scriptที่สมบูรณ์ในตอนท้ายของบทช่วยสอนนี้
คุณต้องแก้ไขคีย์ Pub และ Subด้วยคีย์ pubnub ในโค้ด python
# เริ่มต้น Pubnub Keys pub_key = "***************************" sub_key = "*********** ************* "
ตอนนี้เรียกใช้สคริปต์
หลาม alexaRpi.py
ตอนนี้เราพร้อมสำหรับการสาธิตตรวจสอบให้แน่ใจว่าคุณใช้บริการทั้งสามจากส่วนที่ 1 (ขั้วทั้งสาม) ก่อนดำเนินการต่อ
หากต้องการให้คำสั่งใด ๆ คุณต้องปลุกบริการ Alexa โดยเรียก "Alexa" ทุกครั้งที่คุณต้องการส่งคำสั่ง คุณจะได้ยินเสียงบี๊บ เมื่อคุณได้ยินเสียงบี๊บให้พูดว่า“ Alexa Trigger Turn on the Light "คุณจะเห็นไฟเปิดขึ้นภายในชั่วครู่ แล้วถ้าคุณพูดว่า“ Alexa Trigger Turn off the Light ” ไฟควรจะดับลง
แค่นั้นแหละ…. คุณสามารถเพิ่มรีเลย์เพื่อควบคุมอุปกรณ์ AC เพิ่มเติมได้แม้ว่าคุณจะสามารถควบคุมอุปกรณ์ต่างๆได้โดยใช้รีเลย์มากขึ้นและพิน GPIO ของ Raspberry pi
ตรวจสอบโค้ดและวิดีโอสาธิตด้านล่าง ตรวจสอบโครงการ Home Automation ทั้งหมดของเราได้ที่นี่