Sisukord:
- Samm: esmane seadistamine
- Samm: seadistage Ngrok
- Samm: valguslüliti juhtimise Pythoni skript
- Samm: ventilaatori juhtimise Pythoni skript
- Samm: LIRC paketi installimine ja konfigureerimine
- 6. toiming: Pythoni skript teleri juhtimiseks
- Samm: logige sisse AWS -i kontole
- 8. samm: teleri Alexa oskuste seadistamine
- 9. samm: süttib Alexa oskuste seadistamine
- 10. samm: fännige Alexa oskuste seadistamine
- Samm: looge vooluring
- 12. samm: Alexa käsud
Video: Kontrolli elutuba Alexa ja Raspberry Pi abil: 12 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:45
Juhtige oma elutoa telerit, valgustit ja ventilaatorit Alexa (Amazon Echo või Dot) ja Raspberry Pi GPIO abil.
Samm: esmane seadistamine
Kasutasin Raspberry Pi 2 ja Raspbian Jessie pilti, mis on alla laaditud aadressilt
Kui olete sisse loginud, sisestage nõutavad paketid ja pythoni teegid installimiseks järgmised käsud:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install Kolb-kolb-küsi sudo apt-get install lirc
Samm: seadistage Ngrok
Külastage aadressi https://ngrok.com/download ja hankige uusim Linuxi ARM -i väljalaskmine kodukataloogis:
pakkige lahti /home/pi/ngrok-stable-linux-arm.zip
Avage uus terminal ja sisestage järgmine käsk:
sudo./ngrok http 4000
Avage uus terminal ja sisestage järgmine käsk:
sudo./ngrok http 4500
Avage kolmas uus terminal ja sisestage järgmine käsk:
sudo./ngrok http 5000
Samm: valguslüliti juhtimise Pythoni skript
Avage uus terminaliseanss ja looge uus pythoni fail nimega light_control.py:
nano light_control.py
Kopeerige/kleepige järgmine kood uude faili:
kolvi impordist Kolbfrom flask_ask import Küsi, avaldus, convert_errors import RPi. GPIO GPIO -na importimise logimine import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger (" setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (olek): try: pinNum = 27, välja arvatud erand kui e: tagastuslause ('PIN -kood ei sobi.') GPIO.setup (pinNum, GPIO. OUT), kui olek on ['on', 'high']: GPIO.output (pinNum, GPIO. LOW), kui olek on ['off', ' madal ']: GPIO.output (pinNum, GPIO. HIGH) tagastuslause (' Turning {} The Living Room Lights'.format (status)) if _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 ', port = port)
Salvestage ja sulgege fail.
Käivitage kolviserver järgmiselt:
sudo python light_control.py
Jätke nii ngrok kui ka light_control.py tööle
Samm: ventilaatori juhtimise Pythoni skript
Avage uus terminaliseanss ja looge uus pythoni fail nimega fan_control.py:
nano fan_control.py
Kopeerige/kleepige järgmine kood uude faili:
kolvi impordist Kolb
from flask_ask import Küsi, avaldus, convert_errors import RPi. GPIO kui GPIO import logimine 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 (olek): try: pinNum = 22, välja arvatud erand kui e: tagastuslause ('PIN -number pole kehtiv. ') GPIO.seadistus (pinNum, GPIO. OUT), kui olek on [' sees ',' kõrge ']: GPIO.väljund (pinNum, GPIO. LOW), kui olek on [' väljas ',' madal ']: GPIO.output (pinNum, GPIO. HIGH) tagastamisavaldus („Turning {} the Living Room Lights”.format (status)) if _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', port = port)
Salvestage ja sulgege fail.
Käivitage kolviserver järgmiselt:
sudo python fan_control.py
Jätke nii ngrok, light_control.py kui ka fan_control.py tööle
Samm: LIRC paketi installimine ja konfigureerimine
Teleri juhtimiseks peate seadistama Raspberry Pi tihvti, et see tekitaks teie konkreetse teleri jaoks infrapuna (IR) signaale. Avage terminal ja sisestage järgmine käsk, et installida LIRC -pakett, mis jäljendab paljude kaugjuhtimispuldide infrapunasignaale.
sudo apt-get install lirc
Järgmisena peate lubama ja konfigureerima tuuma mooduli lirc_rpi. Selleks avage moodulid Nano redaktoris
sudo nano /etc /modules
Lisage faili järgmised read (veenduge, et parameeter gpio_out_pin osutab IR -LED -i juhtivale tihvtile):
lirc_devlirc_rpi gpio_out_pin = 17
Seejärel avage sudo abil fail hardware.conf, nagu varem:
sudo nano /etc/lirc/hardware.conf
Lisage failile järgmine konfiguratsioon:
LIRCD_ARGS = "-sisestage" LOAD_MODULES = tõsi
DRIVER = "vaikimisi"
SEADME = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Nüüd taaskäivitage Raspberry Pi:
sudo taaskäivitamine
6. toiming: Pythoni skript teleri juhtimiseks
Avage uus terminaliseanss ja looge uus pythoni fail nimega ir_control.py:
nano ir_control.py
Minge aadressile
Leidke teleriga ühilduv kaugjuhtimispult. Minu puhul on mul Sanyo teler, mis töötab konfiguratsioonifailiga sanyo-tv01. Kui olete leidnud telerit toetava faili, avage see ja vaadake käsuvalikud läbi.
Kopeerige/kleepige järgmine kood uude faili ja asendage sanyo-tv01 teie teleriga sobiva failinimega. Veenduge ka, et teleri konfiguratsioonifail toetaks teleri käske; Võimalik, et peate teleri konfiguratsioonifailiga õigesti töötamiseks muutma käske KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN ja KEY_MUTE.
kolvi impordist Kolbfrom flask_ask import Küsi, avaldus, convert_errors import RPi. GPIO kui GPIO import logimine 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_function (status): kui olek ['sisselülitamine']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") tagastusavaldus ("Teleri sisselülitamine") elifi olek ['lülita välja']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") tagastusavaldus ('Teleri väljalülitamine') elifi olek ['muuda sisendit]: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") return lause ('Teleri sisendi muutmine') elifi olek ['suurendage helitugevust]: 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 ") tagastusavaldus (" Teleri helitugevuse suurendamine ") elifi olek ['vähenda helitugevust]: 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_VOLUMEDSOWNYSENSION ") tagastusavaldus (" Teleri helitugevuse vähendamine ") elifi olek ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") tagastusavaldus (" Teleri vaigistamine ") elifi olek ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") tagastuslause (' Teleri vaigistuse tühistamine ') else: tagastuslause (' Kaugfunktsiooni ei leitud. ') kui _nimi_ ==' _main_ ': port = 5000 rakendust.run (host = '0.0.0.0', port = port)
Salvestage ja sulgege fail.
Käivitage kolviserver järgmiselt:
sudo python ir_control.py
Jätke kõik kolm ngrok terminaliakent, light_control.py, fan_control.py ja ir_control.py tööle
Samm: logige sisse AWS -i kontole
Kõigepealt looge või logige sisse oma AWS -i arendajakontole ja avage oma Alexa oskuste loend.
8. samm: teleri Alexa oskuste seadistamine
Valige "Lisa uus oskus".
Määrake oskuse nimeks „Trigger TV” ja kutse nimeks sõna (d), mida soovite oskuse aktiveerimiseks kasutada.
Jätkamiseks klõpsake nuppu „Järgmine”.
Kopeerige/kleepige väljale "Kavatskeem" järgmine:
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "summa", "type": "AMAZON. NUMBER"}], "kavatsus": "GPIOControlIntent "}]}
Seejärel klõpsake nuppu „Lisa pesa tüüp”
Sisestage väljale „Sisesta tüüp” TV_Function.
Sisestage väljale „Sisesta väärtused” järgmised väärtused:
sisse lülitada
välja lülitama muuda sisend suurendama helitugevust vähendama helitugevust vaigistuse tühistamine
Seejärel kopeerige/kleepige väljale „Prooviväljendid” järgmine:
GPIOControlIntent {status}
GPIOControlIntent {status} {summa} võrra
Jätkamiseks klõpsake nuppu „Järgmine”.
Valige teenuse lõpp -punkti tüübiks „HTTPS” ja valige piirkond. Sisestage 2. sammus ngrok URL ja klõpsake nuppu „Järgmine”. URL peaks olema umbes selline:
ed6ea04d.ngrok.io
Jätkamiseks klõpsake "Järgmine" ja vajutage "Salvesta".
9. samm: süttib Alexa oskuste seadistamine
Sulgege avatud oskus ja valige "Lisa uus oskus".
Määrake oskuse nimeks „Lights Control” ja kutse nimeks sõna (d), mida soovite oskuse aktiveerimiseks kasutada.
Jätkamiseks klõpsake nuppu „Järgmine”. Kopeerige/kleepige väljale "Kavatskeem" järgmine:
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "kavatsus": "LightsControlIntent"}]}
Seejärel klõpsake nuppu „Lisa pesa tüüp”.
Sisestage väljale „Sisesta tüüp” „LIGHTS_CONTROL”.
Sisestage väljale „Sisesta väärtused” järgmised väärtused:
peal
väljas
Seejärel kopeerige/kleepige väljale „Prooviväljendid” järgmine:
LightsControlIntent turn {status}
Jätkamiseks klõpsake nuppu „Järgmine”. Valige teenuse lõpp -punkti tüübiks „HTTPS” ja valige piirkond. Sisestage 2. sammus ngrok URL ja klõpsake nuppu „Järgmine”. URL peaks olema umbes selline:
ed6ea04d.ngrok.io
Jätkamiseks klõpsake "Järgmine" ja vajutage "Salvesta".
10. samm: fännige Alexa oskuste seadistamine
Sulgege avatud oskus ja valige "Lisa uus oskus".
Määrake oskuse nimeks „Ventilaatori juhtimine“ja kutse nimeks sõna (d), mida soovite oskuse aktiveerimiseks kasutada.
Jätkamiseks klõpsake nuppu „Järgmine”.
Kopeerige/kleepige väljale "Kavatskeem" järgmine:
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "kavatsus": "FANControlIntent"}]}
Seejärel klõpsake nuppu „Lisa pesa tüüp”.
Sisestage väljale „Sisesta tüüp” „FAN_CONTROL”.
Sisestage väljale „Sisesta väärtused” järgmised väärtused:
peal
väljas
Seejärel kopeerige/kleepige väljale „Prooviväljendid” järgmine:
FANControlIntent turn {status}
Jätkamiseks klõpsake nuppu „Järgmine”. Valige teenuse lõpp -punkti tüübiks „HTTPS” ja valige piirkond. Sisestage 2. sammus ngrok URL ja klõpsake nuppu „Järgmine”. URL peaks olema umbes selline:
ed6ea04d.ngrok.io
Jätkamiseks klõpsake "Järgmine" ja vajutage "Salvesta".
Samm: looge vooluring
Ühendage vooluring skeemil näidatud viisil. Ma kasutasin JBtek 8 kanaliga alalisvoolu 5 V releemoodulit, et ühendada oma kodu vahelduvvoolu 120v liin ja maandus.
12. samm: Alexa käsud
Nüüd saab Alexaga öelda järgmisi käske elutoa juhtimiseks.
Soovitan:
Elutuba filmi jaoks koos Shellyga: 4 sammu
Elutuba filmi jaoks koos Shellyga: projekti kokkuvõte
Orienteerumise õppimine Raspberry Pi ja MXC6226XU abil Pythoni abil: 6 sammu
Orienteerumise õppimine Raspberry Pi ja MXC6226XU abil Pythoni kasutamine: mürad on lihtsalt osa sõiduki töötamisest. Väga häälestatud sõidukimootori sumin on suurepärane heli. Rehvimustrid nurisevad vastu teed, tuul karjub peeglite, plastkildude ja armatuurlaua ümber liikudes
Kiirenduse jälgimine Raspberry Pi ja AIS328DQTR abil Pythoni abil: 6 sammu
Kiirenduse jälgimine Raspberry Pi ja AIS328DQTR abil Pythoni kasutamine: Kiirendus on piiratud, ma arvan, et mõne füüsikaseaduse kohaselt.- Terry Riley Gepard kasutab jälitamisel hämmastavat kiirendust ja kiireid kiiruse muutusi. Kiireim olend kaldal kasutab aeg -ajalt oma tipptempot saagi püüdmiseks
Kiirenduse variatsioonide jälgimine Raspberry Pi ja MMA7455 abil Pythoni abil: 6 sammu
Kiirenduse variatsioonide jälgimine Raspberry Pi ja MMA7455 abil Pythoni abil: ma ei komistanud, vaid testisin gravitatsiooni. See töötab endiselt … Kiirendava kosmosesüstiku esitus selgitas, et süstiku kõrgeimas punktis olev kell valib gravitatsioonilise aja laienemise tõttu kiiremini kui baasi. Mõned
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil