Taula de continguts:
- Pas 1: configuració inicial
- Pas 2: configureu Ngrok
- Pas 3: Script Python per al control de commutadors de llum
- Pas 4: Python Script per al control de ventiladors
- Pas 5: Instal·lació i configuració del paquet LIRC
- Pas 6: Python Script per al control de TV
- Pas 7: inicieu la sessió al compte d'AWS
- Pas 8: Configuració de l'habilitat Alexa de TV
- Pas 9: Configuració de l'habilitat d'Alexa
- Pas 10: Configuració de l'habilitat d'Alexa Fan
- Pas 11: Construeix el Ciruit
- Pas 12: ordres d'Alexa
Vídeo: Sala de control amb Alexa i Raspberry Pi: 12 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
Controleu el televisor de la sala, els llums i el ventilador amb Alexa (Amazon Echo o Dot) i Raspberry Pi GPIO.
Pas 1: configuració inicial
He utilitzat una imatge de Raspberry Pi 2 i una imatge de Raspbian Jessie descarregada de
Un cop hàgiu iniciat la sessió, introduïu les ordres següents per instal·lar els paquets necessaris i les biblioteques python:
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
Pas 2: configureu Ngrok
Visiteu https://ngrok.com/download i obteniu la versió més recent de Linux ARM com a zip i descomprimiu-la al directori inicial:
descomprimiu /home/pi/ngrok-stable-linux-arm.zip
Obriu un terminal nou i introduïu l'ordre següent:
sudo./ngrok http 4000
Obriu un altre terminal nou i introduïu l'ordre següent:
sudo./ngrok http 4500
Obriu el tercer terminal nou i introduïu l'ordre següent:
sudo./ngrok http 5000
Pas 3: Script Python per al control de commutadors de llum
Obriu una nova sessió de terminal i creeu un fitxer python nou anomenat light_control.py:
nano light_control.py
Copieu / enganxeu el codi següent al fitxer nou:
des de la importació del flascó Flask des de la importació de flask_ask Ask, declaració, convert_errors import RPi. GPIO com a importació de registres d'importació GPIO 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 excepte Excepció com a e: return statement ('El número de pin no és vàlid.') GPIO.setup (pinNum, GPIO. OUT) si l'estat a ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) si l'estat a ['off', ' baix ']: declaració de retorn GPIO.output (pinNum, GPIO. HIGH) (' Turning {} the Living Room Lights'.format (status)) if _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 ', port = port)
Deseu i tanqueu el fitxer.
Inicieu el servidor de matràs amb:
sudo python light_control.py
Deixeu funcionar tant ngrok com light_control.py
Pas 4: Python Script per al control de ventiladors
Obriu una nova sessió de terminal i creeu un nou fitxer python anomenat fan_control.py:
nano fan_control.py
Copieu / enganxeu el codi següent al fitxer nou:
d'importació de matràs Matràs
de flask_ask import Ask, statement, convert_errors import RPi. GPIO com a importació de registres d'importació GPIO 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 except Exception as e: return statement ('Pin number no vàlid. ') GPIO.setup (pinNum, GPIO. OUT) si l'estat a [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) si l'estat a [' off ',' low ']: Declaració de retorn GPIO.output (pinNum, GPIO. HIGH) ("Turning {} the Living Room Lights". Format (status)) if _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', port = port)
Deseu i tanqueu el fitxer.
Inicieu el servidor de matràs amb:
sudo python fan_control.py
Deixeu en funcionament ngrok, light_control.py i fan_control.py
Pas 5: Instal·lació i configuració del paquet LIRC
Per controlar el televisor, heu de configurar un pin al Raspberry Pi per generar senyals infrarojos (IR) per al vostre televisor específic. Obriu el terminal i introduïu l'ordre següent per instal·lar un paquet LIRC que emuli els senyals infrarojos de molts comandaments a distància.
sudo apt-get install lirc
A continuació, heu d’habilitar i configurar el mòdul del nucli lirc_rpi. Per fer-ho, obriu mòduls a l'editor Nano
sudo nano / etc / modules
Afegiu les línies següents al fitxer (assegureu-vos que el paràmetre gpio_out_pin apunti al pin que controla el LED IR):
lirc_devlirc_rpi gpio_out_pin = 17
A continuació, obriu el fitxer hardware.conf a Nano com abans amb sudo:
sudo nano /etc/lirc/hardware.conf
Afegiu la configuració següent al fitxer:
LIRCD_ARGS = "- uinput" LOAD_MODULES = cert
DRIVER = "predeterminat"
DEVICE = "/ dev / lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Ara, reinicieu el Raspberry Pi:
sudo reiniciar
Pas 6: Python Script per al control de TV
Obriu una nova sessió de terminal i creeu un nou fitxer python anomenat ir_control.py:
nano ir_control.py
Aneu a
Cerqueu un comandament a distància que sigui compatible amb el vostre televisor. En el meu cas, tinc un televisor Sanyo que funciona amb el fitxer de configuració sanyo-tv01. Un cop trobeu un fitxer que admeti el vostre televisor, obriu-lo i mireu a través de les opcions d’ordres.
Copieu / enganxeu el següent codi al fitxer nou i substituïu sanyo-tv01 pel nom del fitxer que funciona amb el vostre televisor. Assegureu-vos també que el fitxer de configuració dels televisors admeti les ordres de TV; És possible que hagueu de modificar les ordres KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN i KEY_MUTE perquè funcionin correctament amb el fitxer de configuració del televisor:
des de la importació del flascó Flask des de la importació de flask_ask Preguntar, declaració, convertir_errors importar RPi. GPIO com a importació de registres d'importació GPIO 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_function (status): if status in ['activar']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") declaració de retorn ('Encendre el televisor') estat elif a ['apagar']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") declaració de retorn ('Apagar el televisor') estat elif a ['canvia l'entrada']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") return statement ('Canviant l'entrada al televisor') estat elif a ['augmentar el volum']: 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 ") declaració de retorn ('Augment de volum al televisor') estat elif a ['disminuir volum']: 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 ") declaració de retorn (" Disminució del volum al televisor ") estat elif a ['silenciar']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") declaració de retorn ('Silenciar la TV') estat elif a ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") declaració de retorn (' Unmuting the TV ') else: return statement (' Remote function not found. ') if _name_ ==' _main_ ': port = 5000 app.run (host = '0.0.0.0', port = port)
Deseu i tanqueu el fitxer.
Inicieu el servidor de matràs amb:
sudo python ir_control.py
Deixeu en funcionament les tres finestres del terminal ngrok, light_control.py, fan_control.py i ir_control.py
Pas 7: inicieu la sessió al compte d'AWS
Primer creeu o inicieu la sessió al vostre compte de desenvolupador d’AWS i obriu la llista d’Alexa Skills.
Pas 8: Configuració de l'habilitat Alexa de TV
Seleccioneu "Afegeix una habilitat nova".
Establiu el nom de l'habilitat a "Trigger TV" i el nom d'invocació a les paraules que vulgueu utilitzar per activar l'habilitat.
Feu clic a "Següent" per continuar.
Copieu / enganxeu el següent al quadre "Esquema d'intencions":
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "import", "type": "AMAZON. NUMBER"}], "intent": "GPIOControlIntent "}]}
A continuació, feu clic a "Afegeix un tipus de ranura"
Introduïu TV_Function al camp "Tipus d'introducció".
Introduïu els valors següents al camp "Introduïu valors":
encendre
apagar canviar entrada augmentar volum disminuir volum silenciar activar silenciar
A continuació, copieu / enganxeu el següent al quadre "Utilitats de mostra":
GPIOControlIntent {status}
GPIOControlIntent {status} per {quantitat}
Feu clic a "Següent" per continuar.
Seleccioneu "HTTPS" com a Tipus de punt final del servei i seleccioneu una regió. Introduïu l'URL ngrok des del pas 2 i feu clic a "Següent". L'URL hauria de ser semblant a:
ed6ea04d.ngrok.io
Feu clic a "Següent" per continuar i premeu "Desa".
Pas 9: Configuració de l'habilitat d'Alexa
Tanqueu l'habilitat oberta i seleccioneu "Afegeix una habilitat nova".
Establiu el nom de l'habilitat a "Control de llums" i el nom d'invocació a les paraules que vulgueu utilitzar per activar l'habilitat.
Feu clic a "Següent" per continuar. Copieu / enganxeu el següent al quadre "Esquema d'intencions":
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intent": "LightsControlIntent"}]}
A continuació, feu clic a "Afegeix un tipus de ranura".
Introduïu "LIGHTS_CONTROL" al camp "Tipus d'introducció".
Introduïu els valors següents al camp "Introduïu valors":
encès
apagat
A continuació, copieu / enganxeu el següent al quadre "Utilitats de mostra":
LightsControlIntent turn {status}
Feu clic a "Següent" per continuar. Seleccioneu "HTTPS" com a Tipus de punt final del servei i seleccioneu una regió. Introduïu l'URL ngrok des del pas 2 i feu clic a "Següent". L'URL hauria de ser semblant a:
ed6ea04d.ngrok.io
Feu clic a "Següent" per continuar i premeu "Desa".
Pas 10: Configuració de l'habilitat d'Alexa Fan
Tanqueu l'habilitat oberta i seleccioneu "Afegeix una habilitat nova".
Establiu el nom de l'habilitat a "Control del ventilador" i el nom d'invocació a les paraules que vulgueu utilitzar per activar l'habilitat.
Feu clic a "Següent" per continuar.
Copieu / enganxeu el següent al quadre "Esquema d'intencions":
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}
A continuació, feu clic a "Afegeix un tipus de ranura".
Introduïu "FAN_CONTROL" al camp "Tipus d'introducció".
Introduïu els valors següents al camp "Introduïu valors":
encès
apagat
A continuació, copieu / enganxeu el següent al quadre "Utilitats de mostra":
FANControlIntent turn {status}
Feu clic a "Següent" per continuar. Seleccioneu "HTTPS" com a Tipus de punt final del servei i seleccioneu una regió. Introduïu l'URL ngrok des del pas 2 i feu clic a "Següent". L'URL hauria de ser semblant a:
ed6ea04d.ngrok.io
Feu clic a "Següent" per continuar i premeu "Desa".
Pas 11: Construeix el Ciruit
Connecteu el circuit tal com es mostra a l'esquema. Vaig utilitzar un mòdul de relé DC 5V JBtek de 8 canals per connectar-me a la línia i terra de 120 AC de casa meva.
Pas 12: ordres d'Alexa
Ara es poden comunicar les ordres següents a Alexa per controlar el saló.
Recomanat:
Sala d’exposicions amb LED: 12 passos
Sala d’exposicions amb LED: Hola a tothom! En aquesta pàgina us mostraré el concepte de solució de llum portàtil per als models d’edificis. Hi ha la llista de subministraments. Per al disseny de la sala d’exposicions (disseny): 1. Cartró (aproximadament 2x2 m) 2. Paper de calcar (0,5
Control de persianes amb ESP8266, integració de Google Home i Openhab i control web: 5 passos (amb imatges)
Control de persianes amb ESP8266, integració de Google Home i Openhab i control web: en aquest instructiu us mostro com he afegit automatització a les meves persianes. Volia poder afegir i eliminar l’automatització, de manera que tota la instal·lació és fixa. Les parts principals són: Motor pas a pas Controlador pas a pas controlat per ESP-01 Engranatge i muntatge
Control de sala amb ESP8266 - Temperatura, moviment, cortines i il·luminació: 8 passos
Control de sala amb ESP8266 | Temperatura, moviment, cortines i il·luminació: aquest projecte consisteix en un sistema basat en el mòdul NodeMCU ESP8266 que us permet controlar la brillantor d’una tira LED i de la cortina de la vostra habitació, també és capaç d’enviar dades sobre els esdeveniments de moviment de la vostra habitació. i la temperatura fins al núvol w
Shadow Light Box: control per control remot IR amb Arduino: 8 passos (amb imatges)
Shadow Light Box: control per control remot IR amb Arduino: aquesta instrucció us guiarà com fer una caixa de llum d’ombra per al proper Nadal. Podeu decorar la vostra habitació o fer-la per al vostre amic com a regal. Aquesta caixa d’ombres pot fer diversos tipus de color barrejant el color per vermell, blau, verd
Controleu-vos els aparells elèctrics amb el vostre control remot de televisió (control remot ir) amb pantalla de temperatura i humitat: 9 passos
Controleu-vos els aparells elèctrics amb el vostre control remot de televisió (control remot ir) amb pantalla de temperatura i humitat: hola, sóc Abhay i és el meu primer bloc sobre Instructables i avui us mostraré com controlar els vostres electrodomèstics amb el vostre control remot de TV construint aquest projecte senzill. gràcies al laboratori atl per obtenir suport i proporcionar el material