สารบัญ:

Alexa Voice Control TV Remote ESP8266: 9 ขั้นตอน
Alexa Voice Control TV Remote ESP8266: 9 ขั้นตอน

วีดีโอ: Alexa Voice Control TV Remote ESP8266: 9 ขั้นตอน

วีดีโอ: Alexa Voice Control TV Remote ESP8266: 9 ขั้นตอน
วีดีโอ: Smart Home with Google Assistant & Alexa using NodeMCU ESP8266 (Manual + Voice) | IoT Projects 2021 2024, พฤศจิกายน
Anonim
Alexa Voice Control รีโมททีวี ESP8266
Alexa Voice Control รีโมททีวี ESP8266

มีใครในบ้านของคุณทำรีโมทคอนโทรลหาย คุณเดินเข้าไปในห้องว่างๆ แล้วพบว่าทีวีส่งเสียงดัง แบตเริ่มเสื่อมและไม่มีการควบคุมจากด้านหลังห้อง ตอนนี้คุณสามารถควบคุมทีวี DVR อะไรก็ได้ด้วยการควบคุม IR ที่คุณสามารถจับสัญญาณ IR ได้ ฉันสร้างระบบนี้เพื่อควบคุม SKY DVR ของฉันด้วยอินเทอร์เฟซเสียงที่เรียบง่าย

ฮาร์ดแวร์ที่จำเป็น:

  1. Amazon Echo หรือ Dot
  2. เราเตอร์ไร้สายที่สามารถส่งต่อได้ (ผู้ให้บริการของฉันทำสิ่งนี้ให้ฉัน)
  3. Arduino NANO แปลงเป็น 3V3
  4. ESP8266 -01 หรือเทียบเท่า
  5. โมดูลหรือวงจรส่งสัญญาณ IR
  6. โมดูลรับสัญญาณ IR หากคุณต้องการจับรหัส

ซอฟต์แวร์และบริการที่จำเป็น:

  1. Arduino IDE ฉันใช้1.6.11
  2. บัญชีทักษะ Amazon Alexa (ฟรี)
  3. บัญชี Amazon AWS (รุ่นฟรี แต่ต้องใช้บัตรเครดิตในการเปิดบัญชี) หรือเซิร์ฟเวอร์สำรอง

ขั้นตอนที่ 1: การตั้งค่าทักษะของ Alexa

การตั้งค่าทักษะของ Alexa
การตั้งค่าทักษะของ Alexa
การตั้งค่าทักษะของ Alexa
การตั้งค่าทักษะของ Alexa
การตั้งค่าทักษะของ Alexa
การตั้งค่าทักษะของ Alexa

ชุดทักษะของ Alexas ใช้คำสั่งเสียงและกรองโดยใช้รายการ 'ค่า'

เมื่อลงทะเบียนแล้ว:

ในคอนโซล Amazon Developer เลือกแท็บ Alexa> Alexa Skills Kit [เริ่มต้นใช้งาน]

[เพิ่มทักษะใหม่]

ประเภททักษะ: โมเดลการโต้ตอบแบบกำหนดเอง

ภาษา: เลือกภาษาที่ถูกต้อง เมื่อตั้งค่าเป็นภาษาอังกฤษ (US) จะไม่ตอบสนอง !

ชื่อ: ตอนนี้ไม่สำคัญเพราะเราไม่ได้เผยแพร่

Invocation Name:, เลือกชื่อย่อ, เป็นคำที่ใช้เปิดแอพ

[ต่อไป]

เจตนา สคีมา วางในโค้ด

ประเภทสล็อตที่กำหนดเอง {เพิ่มประเภทสล็อต] ป้อน EFFECT_ON_TV

ในค่า Slot ให้วางโค้ด

ตัวอย่างคำพูด ใส่ TVCommandIntent ทีวี {TVAction}

[บันทึก] ในหน้าทักษะถัดไป เราต้องเพิ่มลิงก์ไปยังโค้ดที่เราจะเรียกใช้เมื่อ "Intent" ถูกเรียกโดยคำว่า "clicker" ของแอปหรือหลังจากนั้นโดย "tv {slot value}".

เราจะกลับมาที่ Alexa หลังจากที่เราตั้งค่าสคริปต์หลามเซิร์ฟเวอร์แลมบ์ดา

ขั้นตอนที่ 2: สคริปต์ Python ของเซิร์ฟเวอร์ AWS Lambda

ลงชื่อสมัครใช้ Free Tier ของ AWS ฉันกังวลว่าสิ่งนี้อาจทำให้ฉันต้องเสียเงินจริง แต่หลังจากใช้งานมาระยะหนึ่งและอ่านฟอรัมแล้ว ขีดจำกัดการใช้งานนั้นสูงมากสำหรับการใช้งานส่วนบุคคลและเพื่อการพัฒนา ไม่ควรถึงจุดชาร์จ มีทางเลือกอื่นในการใช้เซิร์ฟเวอร์ HTTPS ของคุณเอง และนี่อาจเป็นสิ่งที่ esp8266 สามารถทำได้ อีกวิธีหนึ่งที่สอนได้!

นี่คือรหัสที่ทำงานเมื่อมีการเอ่ยชื่อเรียก (เช่น "Alexa open clicker") และรับคำวิเศษจาก Alexa เมื่อแอปเริ่มต้น คุณจะต้องพูดว่า "เล่นทีวี ทีวีกระโดดห้า" และ Alexa จะส่ง "เล่น", "ข้าม 5" ไปยังสคริปต์หลามนี้ แอปหมดเวลาหากไม่มีการตอบสนองหลังจากผ่านไประยะหนึ่ง

ในบริการของ AWS ก่อนอื่นให้เลือกตำแหน่งของคุณ ที่ด้านบนขวาจะมีตัวเลือก

สำหรับสหรัฐฯ เลือก N Virginia สำหรับ EU เลือกไอร์แลนด์

เลือก Lambda จากหัวข้อ Compute

[สร้างฟังก์ชันแลมบ์ดา]

[ฟังก์ชันว่าง]

กำหนดค่าทริกเกอร์: คลิกที่กล่องจุดและเลือก Alexa Skills Kit

[ต่อไป]

กำหนดค่าฟังก์ชัน

ตั้งชื่ออะไรก็ได้

คำอธิบาย ขึ้นอยู่กับคุณ

Runtine: Python 2.7

วางในรหัสหลาม

ในรหัสที่อยู่ URL HTTP จะต้องเปลี่ยนเป็นที่อยู่ IP ภายนอกของคุณเองในภายหลัง

link="https://185.255.255.255:777/text?data=" + favorite_color

ด้านล่างของหน้าจอคือ ROLE คลิกที่แท็บและเลือก Select a custom Role

ซึ่งจะเปิดหน้าจอใหม่และคลิกอนุญาต จะกลับไปที่หน้าจอกำหนดค่าฟังก์ชันโดยเลือกการทำงานพื้นฐานของ Lamda เป็นบทบาทที่มีอยู่

[ถัดไป] รีวิว กด [สร้างฟังก์ชัน] และควรรวบรวมและให้หมายเลข ARN แก่คุณ คัดลอกรหัสนี้แล้วเราจะใส่ลงในชุดทักษะ alexa

ขั้นตอนที่ 3:

ขั้นตอนที่ 4: ตั้งค่าลิงก์ Alexa Skills Kit เป็น AWS Lambda

ตั้งค่าลิงก์ Alexa Skills Kit เป็น AWS Lambda
ตั้งค่าลิงก์ Alexa Skills Kit เป็น AWS Lambda

ในชุดทักษะของ Alexa ให้เลือกหน้าการกำหนดค่า ไปที่ Global Fields แล้วเลือก AWS Lambda และภูมิภาคของคุณ แล้ววางโค้ด ARN ลงในช่อง [NEXT] ในการทดสอบ ให้ตรวจสอบว่าได้เลือก ENABLED แล้ว

ตอนนี้เราทำเสร็จแล้ว สำหรับฮาร์ดแวร์บางตัว

ขั้นตอนที่ 5: การแปลง Arduino NANO 3V3

การแปลง Arduino NANO 3V3
การแปลง Arduino NANO 3V3
การแปลง Arduino NANO 3V3
การแปลง Arduino NANO 3V3

ESP8266 ทำงานจาก 3v3 ดังนั้นคุณจึงเรียกใช้จากตัวควบคุมภายนอกหรือแปลงนาโน ฉันใช้โคลนนาโนกับชิป USB CH340 ฉันมีเค้าโครง pcb ที่แตกต่างกันสองแบบที่ฉันรู้จัก แต่หวังว่านี่จะครอบคลุมเค้าโครงส่วนใหญ่

เราจำเป็นต้องเปลี่ยนตัวควบคุม 5V ด้วยพินที่รองรับ 3v3 one, 1117-3 จากนั้นกำหนดเส้นทาง 5V จากซ็อกเก็ต usb ไปยังตัวควบคุมและเชื่อมต่อทุกอย่างอื่นเข้ากับเอาต์พุต โชคดีที่สามารถทำได้โดยการถอดไดโอดอินพุตแทนที่ตัวควบคุมและเพิ่มสายหนึ่งเส้นจากด้านอินพุตของไดโอดไปยัง Vin บนบอร์ดนาโน

ตรวจสอบว่าคุณสามารถตั้งโปรแกรมนาโนหลังจากการแปลง

ขั้นตอนที่ 6: รหัส NANO

รหัสนาโน
รหัสนาโน
รหัสนาโน
รหัสนาโน

รหัสที่ใช้สำหรับรีโมต SKY UK ของฉันอาจเป็นเฉพาะรุ่นและควรตรวจสอบรหัสของคุณทำงานในแบบร่างแยกต่างหากซึ่งไม่ได้เชื่อมโยงกับ esp8266

ฉันใช้ไลบรารี IRremote โดย shirriff เวอร์ชัน 2.0.1

ใช้ตัวอย่าง IRrecord เพื่อจับภาพคำสั่งระยะไกลที่ต้องใช้โมดูลตัวรับสัญญาณ IR หรือคุณอาจพบรหัสของคุณบนเว็บ ฉันจะไม่พูดถึงที่นี่ แต่นี่คือที่ที่คุณสามารถเลือกสิ่งที่คุณควบคุมและวิธี

เชื่อมต่อเครื่องส่งสัญญาณ IR ที่มีอยู่ในอีเบย์หรือสร้างใหม่ คุณควรใช้ไฟ LED IR 850nm เนื่องจากเป็นเครื่องรับทั่วไป ไลบรารี IR ใช้ D3 เป็นพิน TX

คำของ Alexa ถูกส่งผ่านไปยังนาโน ดังนั้นจากที่นี่ นาโนจึงพร้อมการควบคุมด้วยเสียง

ขั้นตอนที่ 7: ESP8266

ESP8266
ESP8266
ESP8266
ESP8266
ESP8266
ESP8266

มีโมดูล ESP8266 มากมาย ฉันใช้อันหนึ่งเพื่อต่อสายใต้กล้องจุลทรรศน์ ESP8266-01 มีส่วนหัว 2x4 และหมุดทั้งหมดที่คุณต้องการและราคาถูก ตัวอย่างมากมายบนเว็บ,. การเดินทางของฉัน GPIO_0 ต้องเชื่อมต่อกับ gnd ระหว่างเปิดเครื่อง (จากนั้นสามารถลอยได้) เมื่อตั้งโปรแกรมซึ่งเป็น config pin ดึงสูงภายใน เมื่อตั้งโปรแกรมแล้ว ให้ GPIO_0 ลอยและเปิดเครื่องอีกครั้ง CHPD เชื่อมต่อกับ V+ อย่างถาวร

ผู้จัดการบอร์ดใน Arduino 1.6.11 ไม่มีลิงก์ esp8622

ใน Arduino IDEfile>preferences>Additional Board Manager URL ให้เพิ่ม:

arduino.esp8266.com/stable/package_esp8266c…

จากนั้นไปที่ตัวจัดการบอร์ดและค้นหาแพ็คเกจ esp8266 ตอนนี้ควรให้รายชื่อบอร์ด esp8266 จำนวนมาก เลือก Tools>Board>ESP8266 Generic Module การใช้โมดูล usb เป็น uart คุณสามารถตั้งโปรแกรมส่วน esp ด้วย esp8266_server_text จ่ายไฟด้วย 3V3 เชื่อมต่อ TX-RX, RX-TX และ Gnd

คุณต้องป้อน SSID เครือข่ายและรหัสผ่านของคุณลงในสคริปต์และพอร์ตที่คุณจะตั้งค่าสำหรับการส่งต่อพอร์ต เช่น 777

คุณสามารถเรียกใช้รหัสโดยเปิดเครื่อง esp ใหม่ในขณะที่เชื่อมต่อกับตัวแปลง usb เป็น uart และหน้าต่างอนุกรมของ arduino (9600 บอด) ควรแสดงที่อยู่ IP ในเครื่องของโมดูล esp ป้อนรหัสนี้และตั้งโปรแกรมใหม่

ขั้นตอนที่ 8: ตั้งค่าเครือข่าย

ตั้งค่าเครือข่าย
ตั้งค่าเครือข่าย
ตั้งค่าเครือข่าย
ตั้งค่าเครือข่าย

ดังนั้น เพื่อให้การเรียก Lambda URL เชื่อมต่อกับเซิร์ฟเวอร์ ESP HTTP เราจำเป็นต้องตั้งค่าเราเตอร์ของคุณให้เป็นการส่งต่อพอร์ต ฉันได้รับที่อยู่ IP ภายนอกจาก https://www.whatsmyip.org/ ฉันใช้ลิงก์ไมโครเวฟ ดังนั้นผู้ให้บริการของฉันจึงมีเราเตอร์ และฉันต้องขอส่งต่อพอร์ตจากพวกเขา ฉันต้องให้ที่อยู่ IP ของ ESP8266 บนเครือข่ายของฉันและพอร์ตที่ฉันเลือก เช่น 777 ต้องป้อนที่อยู่ IP ภายนอกลงในสคริปต์ lambda python และที่อยู่ esp ในเครื่องของคุณจะแสดงเมื่อคุณเรียกใช้รหัส esp8266 ผ่าน ลิงค์ usb กับ uart

โมดูล ESP บนการเชื่อมต่อ usb กับ uart ควรแสดงคำที่เข้ามาจากแลมบ์ดาบนเทอร์มินัล

เชื่อมต่อ ESP กับนาโนตามที่แสดง 3v3, gnd และ TX ไปยัง nano D2 soft serial หากคุณมีนาโนบน usb เพื่อแสดงการสื่อสารแบบอนุกรมบน th epc มันควรแสดงว่าได้รับอะไรจาก esp

หาก ESP ไม่ได้เชื่อมต่อกับเครือข่ายหรือไม่ตอบสนองต่อการเรียก URL จาก lambda แลมบ์ดาจะหมดเวลาและ Alexa จะรายงานการตอบสนองของทักษะที่ล้มเหลว

ขั้นตอนที่ 9: Alexa เปิด Clicker Tv Pause

Alexa Open Clicker Tv Pause
Alexa Open Clicker Tv Pause

ฉันวางโมดูลไว้ข้างเครื่องรับ แต่ด้วยเอาต์พุต IR ที่มีกำลังสูงกว่า มันอาจจะอยู่ที่ใดก็ได้ในห้อง ฉันใช้อะแดปเตอร์แปลงไฟ usb ยี่ห้อที่รู้จักเพื่อป้อนพลังงานผ่าน usb

นั่งลงแล้วพูดว่า "Alexa open Clicker"

คู่มือทีวี

ทีวีลง

เลือกทีวี

ละครโทรทัศน์

ทีวีกระโดดห้า

เพื่อข้ามไปข้างหน้าตามจำนวนนาทีที่ตั้งไว้มาโครจะไปที่ 30x รอตามเวลาที่ร้องขอแล้วเล่น

โฆษณาในสหราชอาณาจักรใช้เวลาประมาณห้านาที

หากต้องการออกจากแอป ให้พูดว่า Alexa ออก

สนุก.

แนะนำ: