Talaan ng mga Nilalaman:
- Hakbang 1: Paunang Pag-set up
- Hakbang 2: Pag-setup ng Ngrok
- Hakbang 3: Python Script para sa Light Switch Control
- Hakbang 4: Python Script para sa Fan Control
- Hakbang 5: Pag-install at Pag-configure ng LIRC Package
- Hakbang 6: Python Script para sa TV Control
- Hakbang 7: Mag-login sa AWS Account
- Hakbang 8: Pag-set up ng Kasanayan sa TV Alexa
- Hakbang 9: Mga Pag-set up ng Kasanayan sa Alexa
- Hakbang 10: Pag-setup ng Kasanayan sa Fan Alexa
- Hakbang 11: Buuin ang Ciruit
- Hakbang 12: Mga Utos ng Alexa
Video: Kontrolin ang Living Room Sa Alexa at Raspberry Pi: 12 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Kontrolin ang iyong sala sa TV, ilaw, at Fan na may Alexa (Amazon Echo o Dot) at Raspberry Pi GPIO.
Hakbang 1: Paunang Pag-set up
Gumamit ako ng isang Raspberry Pi 2 at isang imahe ng Raspbian Jessie na na-download mula sa
Kapag naka-log in, ipasok ang mga sumusunod na utos upang mai-install ang kinakailangang mga pakete at python library.
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install Flask flask-ask sudo apt-get install lirc
Hakbang 2: Pag-setup ng Ngrok
Bisitahin ang https://ngrok.com/download at makuha ang pinakabagong paglabas ng Linux ARM bilang isang zip at i-unzip sa loob ng direktoryo ng bahay:
unzip /home/pi/ngrok-stable-linux-arm.zip
Magbukas ng isang bagong terminal at ipasok ang sumusunod na utos:
sudo./ngrok http 4000
Magbukas ng isa pang bagong terminal at ipasok ang sumusunod na utos:
sudo./ngrok http 4500
Buksan ang pangatlong bagong terminal at ipasok ang sumusunod na utos:
sudo./ngrok http 5000
Hakbang 3: Python Script para sa Light Switch Control
Magbukas ng isang bagong sesyon ng terminal at lumikha ng isang bagong file ng sawa na pinangalanang light_control.py:
nano light_control.py
Kopyahin / i-paste ang sumusunod na code sa bagong file:
mula sa flask import Flaskfrom flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): try: pinNum = 27 maliban sa Exception bilang e: return statement ('Hindi wasto ang numero ng pin.') GPIO.setup (pinNum, GPIO. OUT) kung katayuan sa ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) kung katayuan sa ['off', ' mababa ']: GPIO.output (pinNum, GPIO. HIGH) pahayag sa pagbabalik (' Pagliko sa {} ang Mga Living Room Lights'.format (status)) kung _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 ', port = port)
I-save at isara ang file.
Simulan ang flask server gamit ang:
sudo python light_control.py
Iwanan ang parehong ngrok at light_control.py tumatakbo
Hakbang 4: Python Script para sa Fan Control
Magbukas ng isang bagong sesyon ng terminal at lumikha ng isang bagong file ng sawa na pinangalanang fan_control.py:
nano fan_control.py
Kopyahin / i-paste ang sumusunod na code sa bagong file:
mula sa flask import Flask
mula sa flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 maliban sa Exception bilang e: return statement ('Pin number hindi wasto. ') GPIO.setup (pinNum, GPIO. OUT) kung katayuan sa [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) kung katayuan sa [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) pahayag sa pagbabalik ('Pagliko sa {} ang Mga Living Room Lights'.format (status)) kung _name_ ==' _main_ ': port = 4500 app.run (host =' 0.0.0.0 ', port = port)
I-save at isara ang file.
Simulan ang flask server gamit ang:
sudo python fan_control.py
Iwanan ang parehong ngrok, light_control.py, at fan_control.py tumatakbo
Hakbang 5: Pag-install at Pag-configure ng LIRC Package
Upang makontrol ang TV dapat mong i-configure ang isang pin sa Raspberry Pi upang makabuo ng mga infrared (IR) signal para sa iyong tukoy na TV. Buksan ang terminal at ipasok ang sumusunod na utos upang mag-install ng isang pakete ng LIRC na tumutulad sa mga infrared signal ng maraming mga remote control.
sudo apt-get install lirc
Susunod, kailangan mong paganahin at i-configure ang lirc_rpi kernel module. Upang magawa ito, buksan ang mga module sa Nano editor
sudo nano / etc / modules
Idagdag ang mga linya sa ibaba sa file (Tiyaking tumuturo ang parameter ng gpio_out_pin sa pin na kinokontrol ang IR LED):
lirc_devlirc_rpi gpio_out_pin = 17
Susunod, buksan ang file ng hardware.conf sa Nano tulad ng dati gamit ang sudo:
sudo nano /etc/lirc/hardware.conf
Idagdag ang sumusunod na pagsasaayos sa file:
LIRCD_ARGS = "- uinput" LOAD_MODULES = totoo
DRIVER = "default"
DEVICE = "/ dev / lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Ngayon, i-reboot ang Raspberry Pi:
sudo reboot
Hakbang 6: Python Script para sa TV Control
Magbukas ng isang bagong sesyon ng terminal at lumikha ng isang bagong file ng sawa na pinangalanang ir_control.py:
nano ir_control.py
Pumunta sa
Maghanap ng isang remote na katugma sa iyong TV. Sa aking kaso mayroon akong isang Sanyo TV na gumagana sa sanyo-tv01 config file. Kapag nakakita ka ng isang file na sumusuporta sa iyong TV buksan ito at tingnan ang mga pagpipilian sa utos.
Kopyahin / i-paste ang sumusunod na code sa bagong file at palitan ang sanyo-tv01 ng pangalan ng file na gumagana sa iyong TV. Siguraduhin din na ang mga utos sa tv ay sinusuportahan ng iyong TVs config file; Maaaring kailanganin mong baguhin ang KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN, at KEY_Mute upang gumana nang tama sa config file ng iyong TV:
mula sa flask import Flaskfrom flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ ask.intent ('GPIOControlIntent', mapping = {'status': 'status'}) # 'pin': 'pin'}) def tv_unction (status): if status in ['turn on']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") pahayag ng pagbabalik ('Pag-on sa TV') status ng elif sa ['turn off']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") pagbabalik pahayag ('Patayin ang TV') katayuan ng elif sa ['baguhin ang input']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") pagbabalik pahayag ('Pagbabago ng input sa TV') status ng elif sa ['pagtaas ng dami']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") pahayag ng pagbabalik ('Pagtaas ng Dami sa TV') katayuan ng elif sa ['pagbawas ng dami']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN ") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irYSO S01 TV ") pahayag sa pagbabalik ('Pagbabawas ng Dami sa TV') katayuan ng elif sa ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_Mute ") pahayag sa pagbabalik ('Pag-mute ng TV') katayuan ng elif sa ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") pahayag ng pagbabalik (' Unmuting the TV ') else: return statement (' Remote function not found. ') if _name_ ==' _main_ ': port = 5000 app.run (host = '0.0.0.0', port = port)
I-save at isara ang file.
Simulan ang flask server gamit ang:
sudo python ir_control.py
Iwanan ang lahat ng tatlong ngrok terminal windows, light_control.py, fan_control.py, at ir_control.py na tumatakbo
Hakbang 7: Mag-login sa AWS Account
Una lumikha o mag-login sa iyong AWS Developer Account at buksan ang iyong listahan ng Mga Kasanayan sa Alexa.
Hakbang 8: Pag-set up ng Kasanayan sa TV Alexa
Piliin ang "Magdagdag ng Bagong Kasanayan".
Itakda ang Pangalan ng Kasanayan sa 'Trigger TV' at ang Pangalan ng Paanyaya sa (mga) salita na nais mong gamitin upang maisaaktibo ang kasanayan.
I-click ang 'Susunod' upang magpatuloy.
Kopyahin / i-paste ang sumusunod sa kahon na 'Intent Schema':
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "dami", "type": "AMAZON. NUMBER"}], "hangarin": "GPIOControlIntent "}]}
Susunod, i-click ang 'Magdagdag ng Uri ng Slot'
Ipasok ang TV_Function sa patlang na 'Enter Type'.
Ipasok ang mga sumusunod na halaga sa patlang na 'Enter Values':
buksan
patayin ang pagbabago ng input dagdagan ang dami ng pagbaba ng lakas ng tunog mute unmute
Susunod, Kopyahin / i-paste ang sumusunod sa kahon na 'Sample Utterances':
GPIOControlIntent {status}
GPIOControlIntent {status} ayon sa {halaga}
I-click ang 'Susunod' upang magpatuloy.
Piliin ang 'HTTPS' bilang Serbisyo Endpoint Type at pumili ng isang rehiyon. Ipasok ang ngrok URL mula sa hakbang 2 at i-click ang 'Susunod'. Ang URL ay dapat na tulad ng:
ed6ea04d.ngrok.io
I-click ang 'Susunod' upang magpatuloy at pindutin ang 'I-save'.
Hakbang 9: Mga Pag-set up ng Kasanayan sa Alexa
Isara ang bukas na kasanayan at piliin ang "Magdagdag ng Bagong Kasanayan".
Itakda ang Pangalan ng Kasanayan sa 'Control ng Lights' at ang Pangalan ng Paanyaya sa (mga) salita na nais mong gamitin upang maisaaktibo ang kasanayan.
I-click ang 'Susunod' upang magpatuloy. Kopyahin / i-paste ang sumusunod sa kahon na 'Intent Schema':
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intent": "LightsControlIntent"}]}
Susunod, i-click ang 'Magdagdag ng Uri ng Slot'.
Ipasok ang "LIGHTS_CONTROL" sa patlang na 'Enter Type'.
Ipasok ang mga sumusunod na halaga sa patlang na 'Enter Values':
sa
off
Susunod, Kopyahin / i-paste ang sumusunod sa kahon na 'Sample Utterances':
LightsControlIntent turn {status}
I-click ang 'Susunod' upang magpatuloy. Piliin ang 'HTTPS' bilang Serbisyo Endpoint Type at pumili ng isang rehiyon. Ipasok ang ngrok URL mula sa hakbang 2 at i-click ang 'Susunod'. Ang URL ay dapat na tulad ng:
ed6ea04d.ngrok.io
I-click ang 'Susunod' upang magpatuloy at pindutin ang 'I-save'.
Hakbang 10: Pag-setup ng Kasanayan sa Fan Alexa
Isara ang bukas na kasanayan at piliin ang "Magdagdag ng Bagong Kasanayan".
Itakda ang Pangalan ng Kasanayan sa 'Control ng Fan' at ang Pangalan ng Paanyaya sa (mga) salita na nais mong gamitin upang maisaaktibo ang kasanayan.
I-click ang 'Susunod' upang magpatuloy.
Kopyahin / i-paste ang sumusunod sa kahon na 'Intent Schema':
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}
Susunod, i-click ang 'Magdagdag ng Uri ng Slot'.
Ipasok ang "FAN_CONTROL" sa patlang na 'Enter Type'.
Ipasok ang mga sumusunod na halaga sa patlang na 'Enter Values':
sa
off
Susunod, Kopyahin / i-paste ang sumusunod sa kahon na 'Sample Utterances':
FANControlIntent turn {status}
I-click ang 'Susunod' upang magpatuloy. Piliin ang 'HTTPS' bilang Serbisyo Endpoint Type at pumili ng isang rehiyon. Ipasok ang ngrok URL mula sa hakbang 2 at i-click ang 'Susunod'. Ang URL ay dapat na tulad ng:
ed6ea04d.ngrok.io
I-click ang 'Susunod' upang magpatuloy at pindutin ang 'I-save'.
Hakbang 11: Buuin ang Ciruit
Ikonekta ang circuit tulad ng ipinakita sa diagram. Gumamit ako ng isang JBtek 8 Channel DC 5V Relay Module upang kumonekta sa aking mga tahanan AC 120v na linya at lupa.
Hakbang 12: Mga Utos ng Alexa
Ngayon ang mga sumusunod na utos ay maaaring magsalita sa Alexa upang makontrol ka sa sala.
Inirerekumendang:
Kontrolin ang mga LED Sa Alexa o IFTTT (SINRIC PRO TUTORIAL): 6 na Hakbang
Kontrolin ang mga LED Sa Alexa o IFTTT (SINRIC PRO TUTORIAL): Kaya nais mong maging ang taong iyon na nagpapakita sa isang pangkaraniwang hapunan sa pamamagitan ng pagsasabing " Si Alexa ay magbukas ng ilaw? &Quot; Ang proyektong ito ay para sa iyo! Sa pagtatapos ng mga itinuturo na ito maaari mong makontrol ang isang RGB strip gamit ang isang aparatong Alexa at IFTTT sa
Living Room para sa Pelikulang May Shelly: 4 Hakbang
Living Room for Movie With Shelly: Buod ng Executive ng Project Paano makalikha ng isang napakasimpleng pag-automate gamit ang mga gawain sa bahay sa google upang gawing komportable ang silid ng aking silid na manuod ng pelikula
Kontrolin ang Mga Kagamitang Pantahanan Sa Pamamagitan ng Alexa Sa ESP8266 o ESP32: 8 Mga Hakbang
Kontrolin ang Mga Kagamitang Pantahanan Sa Pamamagitan ng Alexa Sa ESP8266 o ESP32: Hoy, ano na, Guys! Ang Akarsh dito mula sa CETech. Ang proyekto kong ito ay tutulong sa iyong buhay na maging madali at ikaw ay magiging isang hari pagkatapos makontrol ang mga gamit sa iyong bahay sa pamamagitan lamang ng pagbibigay ng isang utos kay Alexa. Ang pangunahing bagay sa likod ng p
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c
LED LIGHT LIGHT SA MY LIVING ROOM !!!: 6 Hakbang
LED Light LIGHT SA MY LIVING ROOM !!!: 18 LED Light Bulb para sa " extra " ningning