Satura rādītājs:
- 1. darbība: sākotnējā iestatīšana
- 2. darbība: iestatiet Ngrok
- 3. darbība: Python skripts gaismas slēdža vadībai
- 4. solis: Python skripts ventilatoru vadībai
- 5. darbība: LIRC pakotnes instalēšana un konfigurēšana
- 6. darbība: Python skripts TV vadībai
- 7. darbība: piesakieties AWS kontā
- 8. solis: TV Alexa prasmju iestatīšana
- 9. darbība. Apgaismojiet Alexa prasmju iestatīšanu
- 10. darbība: ventilatora Alexa prasmju iestatīšana
- 11. solis: izveidojiet ķēdi
- 12. solis: Alexa komandas
Video: Kontrolējiet dzīvojamo istabu ar Alexa un Raspberry Pi: 12 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Kontrolējiet savas dzīvojamās istabas televizoru, apgaismojumu un ventilatoru, izmantojot Alexa (Amazon Echo vai Dot) un Raspberry Pi GPIO.
1. darbība: sākotnējā iestatīšana
Es izmantoju Raspberry Pi 2 un Raspbian Jessie attēlu, kas lejupielādēts no vietnes
Kad esat pieteicies, ievadiet šādas komandas, lai instalētu nepieciešamās pakotnes un python bibliotēkas:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install Kolbas kolba-jautājiet sudo apt-get install lirc
2. darbība: iestatiet Ngrok
Apmeklējiet vietni https://ngrok.com/download un iegūstiet jaunāko Linux ARM laidienu kā zip un atvienojiet mājas direktorijā:
unzip /home/pi/ngrok-stable-linux-arm.zip
Atveriet jaunu termināli un ievadiet šādu komandu:
sudo./ngrok http 4000
Atveriet citu jaunu termināli un ievadiet šādu komandu:
sudo./ngrok http 4500
Atveriet trešo jauno termināli un ievadiet šādu komandu:
sudo./ngrok http 5000
3. darbība: Python skripts gaismas slēdža vadībai
Atveriet jaunu termināļa sesiju un izveidojiet jaunu python failu ar nosaukumu light_control.py:
nano light_control.py
Kopējiet/ielīmējiet šādu kodu jaunajā failā:
no kolbas importēšanas Flaskfrom flask_ask imports Jautāt, paziņojums, convert_errors importēt RPi. GPIO kā GPIO importēt reģistrēšanu importēt os GPIO.setmode (GPIO. BCM) app = Kolba (_ name_) ask = Ask (app, '/') logging.getLogger (" setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (statuss): try: pinNum = 27, izņemot izņēmumu kā e: atgriešanās paziņojumu ('PIN kods nav derīgs.') GPIO.setup (pinNum, GPIO. OUT), ja statuss ['on', 'high']: GPIO.output (pinNum, GPIO. LOW), ja statuss ir ['off', '' zems ']: GPIO.output (pinNum, GPIO. HIGH) atgriešanās paziņojums ("Pagriežot {} viesistabas gaismas". formāts (statuss)), ja _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', ports = ports)
Saglabājiet un aizveriet failu.
Sāciet kolbas serveri ar:
sudo python light_control.py
Atstājiet darboties gan ngrok, gan light_control.py
4. solis: Python skripts ventilatoru vadībai
Atveriet jaunu termināļa sesiju un izveidojiet jaunu python failu ar nosaukumu fan_control.py:
nano fan_control.py
Kopējiet/ielīmējiet šādu kodu jaunajā failā:
no kolbas importa Kolba
no flask_ask importēšanas Jautāt, paziņojums, convert_errors importēt RPi. GPIO kā GPIO importēt reģistrēšanu importēt 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 (statuss): try: pinNum = 22, izņemot izņēmumu kā e: atgriešanās paziņojumu ('PIN numurs nav derīgs. ') GPIO.setup (pinNum, GPIO. OUT), ja statuss [' ieslēgts ',' augsts ']: GPIO.izvade (pinNum, GPIO. LOW), ja statuss ir [' izslēgts ',' zems ']: GPIO.output (pinNum, GPIO. HIGH) atgriešanās paziņojums (“Pagriežot {} viesistabas gaismas”. Formāts (statuss)), ja _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', osta = osta)
Saglabājiet un aizveriet failu.
Sāciet kolbas serveri ar:
sudo python fan_control.py
Atstājiet darboties gan ngrok, gan light_control.py, gan fan_control.py
5. darbība: LIRC pakotnes instalēšana un konfigurēšana
Lai kontrolētu televizoru, jums ir jākonfigurē tapa uz Raspberry Pi, lai ģenerētu infrasarkanos (IR) signālus jūsu konkrētajam televizoram. Atveriet termināli un ievadiet šādu komandu, lai instalētu LIRC pakotni, kas emulē daudzu tālvadības pulti.
sudo apt-get install lirc
Tālāk jums ir jāiespējo un jākonfigurē kodola modulis lirc_rpi. Lai to izdarītu, atveriet moduļus Nano redaktorā
sudo nano /etc /modules
Pievienojiet failam tālāk esošās rindiņas (pārliecinieties, vai parametrs gpio_out_pin norāda uz tapu, kas kontrolē IR LED):
lirc_devlirc_rpi gpio_out_pin = 17
Pēc tam atveriet failu hardware.conf programmā Nano tāpat kā iepriekš, izmantojot sudo:
sudo nano /etc/lirc/hardware.conf
Pievienojiet failam šādu konfigurāciju:
LIRCD_ARGS = "-ievadiet" LOAD_MODULES = true
DRIVER = "noklusējuma"
IERĪCE = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Tagad restartējiet Raspberry Pi:
sudo atsāknēšana
6. darbība: Python skripts TV vadībai
Atveriet jaunu termināļa sesiju un izveidojiet jaunu python failu ar nosaukumu ir_control.py:
nano ir_control.py
Dodieties uz vietni
Atrodiet tālvadības pulti, kas ir saderīgs ar jūsu televizoru. Manā gadījumā man ir Sanyo televizors, kas darbojas ar sanyo-tv01 konfigurācijas failu. Kad esat atradis failu, kas atbalsta jūsu televizoru, atveriet to un apskatiet komandu opcijas.
Kopējiet/ielīmējiet šo kodu jaunajā failā un nomainiet sanyo-tv01 ar faila nosaukumu, kas atbilst jūsu televizoram. Pārliecinieties arī, ka TV komandas atbalsta jūsu televizora konfigurācijas fails; Lai pareizi darbotos ar televizora konfigurācijas failu, iespējams, būs jāmaina komandas KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN un KEY_MUTE:
no kolbas importēšanas Flaskfrom flask_ask imports Jautāt, paziņojums, convert_errors importēt RPi. GPIO kā GPIO importēt reģistrēšanu importēt os GPIO.setmode (GPIO. BCM) app = Kolba (_ name_) ask = Ask (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('GPIOControlIntent', mapping = {'status': 'status'}) #'pin': 'pin'}) def tv_function (status): ja statuss ['ieslēgt']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") atgriešanās paziņojums ("Televizora ieslēgšana") elifa statuss ['izslēgt']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") atgriešanās paziņojums ('Televizora izslēgšana') elifa statuss ['mainīt ievadi']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") atgriešanās paziņojums ('Ievades mainīšana televizorā') elif statuss ['palielināt skaļumu']: 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 ") atgriešanās paziņojums (" Skaļuma palielināšana televizorā ") elifa statuss ['samazināt skaļumu']: 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_VOLUMEDSOWNYENSENSION" osiosystems ") atgriešanās paziņojums (" Skaļuma samazināšana televizorā ") elif statuss ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") atgriešanās paziņojums (" TV izslēgšana ") elif statuss ['ieslēgt skaņu ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") atgriešanās paziņojums (' TV ieslēgšanas izslēgšana ') cits: atgriešanās paziņojums (' Attālā funkcija nav atrasta. '), ja _name_ ==' _main_ ': ports = 5000 lietotne.run (resursdators = '0.0.0.0', ports = ports)
Saglabājiet un aizveriet failu.
Sāciet kolbas serveri ar:
sudo python ir_control.py
Atstājiet visus trīs ngrok termināļa logus, light_control.py, fan_control.py un ir_control.py.
7. darbība: piesakieties AWS kontā
Vispirms izveidojiet vai piesakieties savā AWS izstrādātāja kontā un atveriet savu Alexa prasmju sarakstu.
8. solis: TV Alexa prasmju iestatīšana
Atlasiet "Pievienot jaunu prasmi".
Iestatiet prasmes nosaukumu uz “Trigger TV”, bet uzaicinājuma nosaukumam - vārdu (-us), kuru vēlaties izmantot, lai aktivizētu prasmi.
Lai turpinātu, noklikšķiniet uz Tālāk.
Kopējiet/ielīmējiet lodziņā "Nodomu shēma":
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "summa", "type": "AMAZON. NUMBER"}], "aim": "GPIOControlIntent "}]}
Pēc tam noklikšķiniet uz “Pievienot slota veidu”
Laukā "Ievadīt veidu" ievadiet TV_Function.
Laukā "Ievadīt vērtības" ievadiet šādas vērtības:
ieslēdz
izslēgt mainīt ievadi palielināt skaļumu samazināt skaļumu izslēgt ieslēgt skaņu
Pēc tam lodziņā “Izlases paraugi” nokopējiet/ielīmējiet:
GPIOControlIntent {status}
GPIOControlIntent {status} pēc {summām}
Lai turpinātu, noklikšķiniet uz Tālāk.
Atlasiet “HTTPS” kā pakalpojuma galapunkta veidu un atlasiet reģionu. Ievadiet ngrok URL no 2. darbības un noklikšķiniet uz “Tālāk”. Vietrādim URL jābūt apmēram šādam:
ed6ea04d.ngrok.io
Noklikšķiniet uz "Tālāk", lai turpinātu, un nospiediet "Saglabāt".
9. darbība. Apgaismojiet Alexa prasmju iestatīšanu
Aizveriet atvērto prasmi un izvēlieties "Pievienot jaunu prasmi".
Iestatiet prasmes nosaukumu uz “Gaismas vadība” un uzaicinājuma nosaukumu uz vārdu (-iem), kuru vēlaties izmantot, lai aktivizētu prasmi.
Lai turpinātu, noklikšķiniet uz Tālāk. Nokopējiet/ielīmējiet lodziņā "Nodomu shēma":
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "aim": "LightsControlIntent"}]}
Pēc tam noklikšķiniet uz “Pievienot slota veidu”.
Laukā "Ievadīt veidu" ievadiet "LIGHTS_CONTROL".
Laukā "Ievadīt vērtības" ievadiet šādas vērtības:
uz
izslēgts
Pēc tam lodziņā “Izlases paraugi” nokopējiet/ielīmējiet:
LightsControlIntent pagrieziens {status}
Lai turpinātu, noklikšķiniet uz Tālāk. Izvēlieties “HTTPS” kā pakalpojuma galapunkta veidu un atlasiet reģionu. Ievadiet ngrok URL no 2. darbības un noklikšķiniet uz Tālāk. Vietrādim URL jābūt apmēram šādam:
ed6ea04d.ngrok.io
Noklikšķiniet uz "Tālāk", lai turpinātu, un nospiediet "Saglabāt".
10. darbība: ventilatora Alexa prasmju iestatīšana
Aizveriet atvērto prasmi un izvēlieties "Pievienot jaunu prasmi".
Iestatiet prasmes nosaukumu uz “Ventilatora vadība” un uzaicinājuma nosaukumu uz vārdu (-iem), kuru vēlaties izmantot, lai aktivizētu prasmi.
Lai turpinātu, noklikšķiniet uz Tālāk.
Nokopējiet/ielīmējiet lodziņā "Nodomu shēma":
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "aim": "FANControlIntent"}]}
Pēc tam noklikšķiniet uz “Pievienot slota veidu”.
Laukā "Ievadīt veidu" ievadiet "FAN_CONTROL".
Laukā "Ievadīt vērtības" ievadiet šādas vērtības:
uz
izslēgts
Pēc tam lodziņā “Izlases paraugi” nokopējiet/ielīmējiet:
FANControlIntent pagrieziens {status}
Lai turpinātu, noklikšķiniet uz Tālāk. Kā pakalpojuma galapunkta veidu atlasiet “HTTPS” un atlasiet reģionu. Ievadiet ngrok URL no 2. darbības un noklikšķiniet uz Tālāk. Vietrādim URL jābūt apmēram šādam:
ed6ea04d.ngrok.io
Noklikšķiniet uz "Tālāk", lai turpinātu, un nospiediet "Saglabāt".
11. solis: izveidojiet ķēdi
Pievienojiet ķēdi, kā parādīts diagrammā. Es izmantoju JBtek 8 kanālu līdzstrāvas 5 V releja moduli, lai izveidotu savienojumu ar manas mājas maiņstrāvas 120 V līniju un zemi.
12. solis: Alexa komandas
Tagad ar Alexa var izrunāt šādas komandas, lai kontrolētu jūsu dzīvojamo istabu.
Ieteicams:
HiFi vairāku istabu WiFi un Bluetooth skaļrunis: 10 soļi (ar attēliem)
HiFi vairāku istabu WiFi un Bluetooth skaļrunis: ar Wi-Fi savienoti skaļruņi spēj nodrošināt ievērojami labāku audio kvalitāti nekā Bluetooth iespējas. Tie nesaspiež audio saturu pirms tā atskaņošanas, kas var negatīvi ietekmēt skaņu, jo samazina detalizācijas pakāpi
Kā automatizēt savu istabu, izmantojot Arduino? 1. daļa: 5 soļi
Kā automatizēt savu istabu, izmantojot Arduino? 1. daļa: Es vienmēr gribēju kontrolēt savu istabu attālināti, tāpēc es nolēmu izveidot sistēmu, kas ļauj man to darīt. Ja vēlaties uzzināt, kā to izdarīt? tad es aicinu jūs sekot šiem soļiem zemāk
DIY vairāku istabu audio: 15 soļi
DIY vairāku istabu audio: Hei! visi Mans vārds ir Stīvs. Šodien es jums parādīšu, kā izveidot Wifi audio straumētāju, izmantojot ļoti maz detaļu, un tas ir labāk nekā hromēts audio, un jūs varat to izmantot kā vairāku istabu iestatījumu, un tas var savienot līdz 10 skaļruņiem Noklikšķiniet šeit, lai redzētu
Modinātājs: atgādinājums atstāt istabu: 5 soļi
Modinātājs: atgādinājums atstāt savu istabu: Šis ir modinātājs, kas paredzēts, lai piespiestu jūs atstāt savu istabu. Kad ir sasniegts iestatītais laiks, ierīces skaļrunis izslēgsies un pīkstēs, līdz izslēgsit gaismu
Automatizējiet visu istabu, izmantojot Google Home + Arduino, NodeMCU un Ubidots: 5 soļi
Automatizējiet visu savu istabu, izmantojot Google sākumlapu + Arduino, NodeMCU un Ubidots: Sveiki visi, šeit es jums parādīšu projektu, ko es darīju. Tas gatavojas kontrolēt un automatizēt jūsu istabu ar arduino un nodemcu ar IoT platformu, kuru es sāku izmantot pirms mēnešiem un es domāju, ka tas ir pārsteidzoši, tāpēc šeit es dalos ar jums savā pieredzē. Ar šo