Inhoudsopgave:

Amazon Echo-gestuurde IR-afstandsbediening - Ajarnpa
Amazon Echo-gestuurde IR-afstandsbediening - Ajarnpa

Video: Amazon Echo-gestuurde IR-afstandsbediening - Ajarnpa

Video: Amazon Echo-gestuurde IR-afstandsbediening - Ajarnpa
Video: ESP32 Alexa Home Automation using Amazon Echo + Bluetooth + IR Remote with Fan Dimmer circuit 2024, Mei
Anonim
Amazon Echo-gestuurde IR-afstandsbediening
Amazon Echo-gestuurde IR-afstandsbediening

Het Amazon Echo-systeem kan veel aspecten van een smart home regelen, maar een smart outlet kan alleen in- en uitgeschakeld worden. Veel apparaten worden niet onmiddellijk ingeschakeld door ze eenvoudig aan te sluiten en vereisen extra stappen, zoals het indrukken van knoppen op een afstandsbediening of het fysieke apparaat om in te schakelen of de gewenste instellingen te krijgen.

In deze handleiding wordt een Raspberry Pi Zero W geconfigureerd om te fungeren als een smart home-apparaat dat kan worden bestuurd door Amazon Echo en om alle gewenste IR-opdrachten naar een apparaat te sturen wanneer daarom wordt gevraagd om in of uit te schakelen.

In dit specifieke geval zal de Pi worden geconfigureerd om de IR-commando's te leren van een afstandsbediening die is voorzien van een "ClassicFlame 23II310GRA 23" Infrarood Kwarts Haard Inzet". Een IR-LED zal dan worden gebruikt om de IR-commando's op verzoek te verzenden, en tot slot de Pi die is geconfigureerd om een Philips Hue-apparaat te emuleren dat kan worden bediend met Echo.

Stap 1: Materialen

Materialen
Materialen

Verplicht:

  • Raspberry Pi Zero W
  • 4 GB of meer Micro SDHC Klasse 10 geheugenkaart (16 GB voorbeeld)
  • Micro USB
  • 1 IR-LED
  • MicroUSB-lichtnetadapter (2,1 ampère of hoger aanbevolen)
  • IR-LED
  • IR-ontvanger VS/1838B
  • 100 ohm weerstand
  • Diversen draad

Aanbevolen:

  • Koptelefoon aansluiting
  • 1/8 inch hoofdtelefoon/audiokabel
  • 2N2222 NPN-transistor
  • 1k ohm weerstand
  • Rapsberry Pi Zero-behuizing

Om de initiële configuratie van een Raspberry Pi Zero W te voltooien, zijn een paar extra randapparatuur vereist, maar deze zullen tijdens het voltooide project niet fulltime in gebruik zijn

  • Mini HDMI-naar-HDMI-adapter: wordt gebruikt om de Pi Zero W op een tv of monitor aan te sluiten met een HDMI-kabel van volledige grootte
  • USB OTG-kabel: wordt gebruikt om van micro-USB naar USB-poort(en) van volledige grootte te converteren voor het aansluiten van een toetsenbord en/of muis
  • HDMI-kabel: wordt gebruikt om verbinding te maken met een tv of monitor, samen met een adapter naar mini-HDMI

De eerste twee items en een koffer worden geleverd met verschillende Pi Zero starterkits, zoals: MakerSpot Mega Kit

Stap 2: Stel Raspberry Pi in

De Raspberry Pi-website heeft een uitstekende oplossing voor het instellen van Raspbian Stretch OS op een Raspberry Pi. Ik raad de Lite-versie aan voor een kleinere footprint als dit alleen een project op de Pi is. Als u in de toekomst meer besturingssysteemopties of een eenvoudigere installatie wilt, kunt u snel aan de slag door de instructies voor NOOBS te volgen. Deze handleiding is gebaseerd op Raspbian, die bij NOOBS wordt geleverd

www.raspberrypi.org/learning/software-guide/

Zodra Raspbian actief is, schakelt u SSH in om externe verbindingen met het apparaat mogelijk te maken zonder dat een monitor/toetsenbord/muis rechtstreeks op de Pi hoeft te worden aangesloten. Als u optioneel externe toegang tot de GUI wilt, kunt u ook VNC-toegang inschakelen

www.raspberrypi.org/documentation/remote-access/ssh/

Het wordt ook ten zeerste aanbevolen om een statisch IP-adres in te stellen op de draadloze netwerkconfiguratie, zodat deze na verloop van tijd niet verandert. Het is mogelijk dat het IP-adres niet verandert als er niet regelmatig nieuwe apparaten op het draadloze netwerk worden aangesloten, maar als u het als statisch configureert, zorgt u ervoor dat dit niet gebeurt.

www.circuitbasics.com/how-to-set-up-a-static-ip-on-the-raspberry-pi/

Stap 3: LIRC. configureren

LIRC configureren
LIRC configureren
LIRC configureren
LIRC configureren
LIRC configureren
LIRC configureren
LIRC configureren
LIRC configureren

De volgende stappen zijn sterk gebaseerd op de uitstekende handleidingen die hier te vinden zijn:

alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/https://camp.isaax.io/en/isaax-examples/ir-control-via- lirc-on-framboos-pi-zero-w

Deze handleiding is gebaseerd op Rasbian Stretch en lirc 0.9.4c-9Andere handleidingen zijn mogelijk gebaseerd op eerdere versies van en vermelden een hardware.conf-bestand dat niet langer nodig is met deze versie en hoger. Ik heb ook ontdekt dat het op mijn systemen niet langer nodig is om het bestand /etc/modules te wijzigen. Op dit moment zijn er aanvullende wijzigingen nodig voor kernelversie 4.19 die hier momenteel niet zijn gedocumenteerd. Zorg ervoor dat u op 4.14 bent voor deze set instructies

De Linux Infrared Remote Control (LIRC)-bibliotheek wordt gebruikt om het ontvangen van IR-commando's via de ontvangermodule af te handelen, deze op te slaan in een bestand en vervolgens de commando's indien gewenst te verzenden via de IR-LED.

De eerste stap is om de IR-signalen van onze bestaande afstandsbediening op te nemen met behulp van de IR-ontvanger en ze op te slaan in een bestand. De IR-ontvanger is in eerste instantie alleen nodig om de IR-signalen te leren en kan vervolgens worden verwijderd, zodat een tijdelijke verbinding kan worden gebruikt.

Sluit de IR-ontvanger aan op de Raspberry Pi. Gebruik de bijgevoegde afbeelding om de VCC-, GND- en signaalpinnen te identificeren. Met behulp van een breadboard, aansluitdraden of creatief buigen van de pinnen naar de volgende verbindingen:

VCC wordt aangesloten op 5 volt pinGND op een aardepin Signaal op pin 23

Schakel in en maak verbinding met de Raspberry Pi door ofwel de terminal op het lokale apparaat te openen, of een SSH-verbinding te maken met een programma zoals Putty voor Windows.

De volgende regels kunnen worden gekopieerd en geplakt in de SSH-sessie. Ze zullen regels toevoegen/wijzigen aan verschillende configuratiebestanden die nodig zijn om lirc te laten werken.

sudo apt update

sudo apt install -y lirc echo dtoverlay=lirc-rpi, gpio_in_pin=23, gpio_out_pin=22 | sudo tee -a /boot/config.txt sudo sed -i '/driver = */cdriver = standaard' /etc/lirc/lirc_options.conf sudo sed -i '/device = */cdevice = /dev/lirc0' / etc/lirc/lirc_options.conf sudo shutdown -r now

Wacht tot het apparaat opnieuw is opgestart en log opnieuw in.

Optioneel: IR-ontvanger testen

Monteer het LIRC-apparaat om te bevestigen dat elke invoer kan worden ontvangen. Mogelijk moet u de Pi opnieuw opstarten nadat deze test is voltooid om deze beschikbaar te maken voor latere stappen.

sudo systemctl stop lircd

mode2 -d /dev/lirc0Richt een IR-afstandsbediening op de ontvanger en druk op een knop om ervoor te zorgen dat de gegevens op het scherm verschijnen CTRL+C om op te slaan

Op dit moment is het LIRC-programma geïnstalleerd en kunnen we IR-informatie bekijken.

Stap 4: IR-codes vastleggen

Een extern profiel kan worden gedownload van de LIRC-website

lirc-remotes.sourceforge.net/remotes-table.html

en geplaatst in /etc/lirc/lircd.confg.d, of een aangepast profiel kan worden aangemaakt met uw eigen afstandsbediening.

Tijdens dit proces voert u de naam in van de toets/knop die u opneemt. Alleen geldige namen zijn toegestaan, dus voer de volgende opdracht uit om alle beschikbare namen te zien

irrecord --list-namespace Voorbeeld: ik gebruikte de naam KEY_POWER toen ik de aan/uit-knop op mijn afstandsbediening opnam en KEY_TIME bij het opnemen van de timerknop

Als er meer dan een paar sleutels worden opgenomen, raad ik aan om de gebruikte sleutelnamen te documenteren en naar welke knop ze verwijzen, omdat er mogelijk geen perfecte naam is voor de knop die wordt opgenomen. Dit maakt het gemakkelijker om in de toekomst te verwijzen.

Genereer een configuratiebestand op afstand

Maak een nieuw configuratiebestand voor de afstandsbediening (met /dev/lirc0)

sudo systemctl stop lircd

cd ~ irrecord -d /dev/lirc0 Als u een fout tegenkomt die zegt dat gegevens niet kunnen worden gedecodeerd of dat er iets mis is gegaan, drukt u op CTRL+C om te annuleren en voert u het laatste commando uit. asirrecord -f -d /dev/lirc0this zal het record dwingen om in de onbewerkte modus te draaien en het proces zou moeten toestaan doorgaan

Volg de aanwijzingen op het scherm. Nadat het systeem is geïnitialiseerd, voert u de naam in van de afstandsbediening die u aan het opnemen bent (het resulterende bestand is gebaseerd op deze naam), voer vervolgens de toetsnaam in die u gaat opnemen en druk vervolgens op de knop op de afstandsbediening terwijl u deze naar de ontvanger totdat u om de naam van de volgende knop wordt gevraagd. Herhaal deze stap voor elke knop op de afstandsbediening die u wilt opnemen.

Kopieer je nieuwe configuratiebestand(en) naar de map lircd.conf.d en start lirc opnieuw

sudo cp ~/*.lircd.conf /etc/lirc/lircd.conf.d

sudo systemctl start lircd

Op dit moment zijn externe codes opgenomen in een bestand.

Stap 5: Hoofdtelefoonaansluiting (optioneel)

Hoofdtelefoonaansluiting (optioneel)
Hoofdtelefoonaansluiting (optioneel)
Hoofdtelefoonaansluiting (optioneel)
Hoofdtelefoonaansluiting (optioneel)

Om lopende draden te maken en de Raspberry Pi meer modulair aan te passen, heb ik een 1/8 inch hoofdtelefoon-audio-aansluiting op de behuizing gelijmd en draden op de aansluiting aangesloten. Koptelefoondraden met de bijpassende stekker werden gebruikt om de IR-LED aan te sluiten, zodat deze draad naar een onopvallende plaats kon worden geleid om te wijzen op de IR-ontvanger van het apparaat dat ik wilde aansluiten, maar kon gemakkelijk worden losgekoppeld van de Pi zonder te hoeven verwijderen alle draden.

Dit is puur optioneel, maar is van pas gekomen.

Stap 6: IR-LED aansluiten (snel)

IR LED aansluiten (Snel)
IR LED aansluiten (Snel)
IR LED aansluiten (Snel)
IR LED aansluiten (Snel)
IR LED aansluiten (Snel)
IR LED aansluiten (Snel)

Het aansluiten van de IR Emitting LED op de Raspberry Pi kan op meerdere manieren. Deze stap toont de snelle manier waarop ik het heb aangesloten, maar waarvan ik later ontdekte dat het de huidige limiet op de pinnen van de Pi kan overschrijden. Tot nu toe heb ik geen problemen ondervonden, maar een meer ideale manier van verbinden wordt beschreven in de volgende stap

Bereken de weerstand die nodig is voor uw IR LED. https://ledcalculator.net/ kan helpen bij het bepalen van de juiste weerstandswaarde als u alle specificaties van uw LED heeft. In dit geval is de spanning van pin 22 3,3 volt, de spanningsval van de LED is 1,2 volt, de stroomsterkte is 20 ma en er is 1 LED gebruikt, wat resulteert in een weerstand van 110 ohm. Ik gebruikte een enkele weerstand van 100 ohm.

Opmerking: Later werd ik erop attent gemaakt dat de maximale stroomsterkte van alle pinnen op een bepaald moment 16 ma is, dus deze configuratie zou dat kunnen overschrijden. Een betere configuratie met een transistor en 5 volt voeding wordt beschreven in de volgende stap, maar na enkele weken draaien in deze configuratie heb ik nog geen problemen ondervonden.

Pin 22 op de Raspberry Pi wordt verbonden met de anode van de IR-led, die standaard het langere been is.

De kortere pin van de LED wordt aangesloten op de weerstand en vervolgens op de aardingspin. Ik sneed het grootste deel van de draad op de weerstand af en soldeerde het rechtstreeks aan een aardpen en aan de aarddraad die naar de LED ging.

Stap 7: IR LED aansluiten (juiste methode)

IR LED aansluiten (juiste methode)
IR LED aansluiten (juiste methode)
IR LED aansluiten (juiste methode)
IR LED aansluiten (juiste methode)

Om de LED correct aan te sluiten zonder de treklimiet van de Raspberry Pi te overschrijden, sluit u de LED's aan op de 5 volt-voeding met de juiste weerstand, sluit u de kathodepen aan op de collectorpen van een 2N2222-weerstand, sluit u de emitterpen van de transistor aan op aarde, en verbind pin 22 van de Pi met een weerstand van 1K ohm met de basispin van de transistor. Hierdoor kan een zeer kleine stroom van pin 22 de LED met aarde verbinden, waardoor het circuit wordt voltooid zonder de Pi te veel te trekken.

In mijn voorbeeld heb ik 2 IR-LED's aangesloten, zodat ik zowel de sfeerverlichting als de elektrische haard kon regelen.

Stap 8: Het verzenden van IR-opdrachten testen

Testen Verzenden van IR-opdrachten
Testen Verzenden van IR-opdrachten

Om een IR-commando te verzenden, wordt het programma irsend gebruikt.

Syntaxis: irsend

Voorbeeld: irsend SEND_ONCE Spectrafire KEY_POWER Hiermee wordt het aan/uit-knopcommando van de Spectrafire-afstandsbediening eenmaal verzonden. Vervang Spectrafire door de naam van uw afstandsbediening. Herhaal dit met andere toetsnamen die worden gebruikt bij het opnemen van het bestand.

In dit stadium kunt u alle eerder opgenomen opdrachten verzenden met behulp van de IR-LED die is aangesloten op de Raspberry Pi.

Stap 9: Ha-bridge installeren

Om ervoor te zorgen dat de Echo ons apparaat kan bedienen, zullen we een Philips Hue-lamp nabootsen met ha-bridge. Eenmaal geconfigureerd, kan de Echo dit apparaat detecteren en er aan / uit-opdrachten naar toe sturen.

De website voor ha-bridge schetst duidelijk het proces voor de huidige versie en wordt ten zeerste aanbevolen om te bekijken.

github.com/bwssytems/ha-bridge

Kopieer en plak de volgende regels in een SSH-sessie om HA Bridge te installeren en configureren. (Het kan nodig zijn om de eerste regel zelf uit te voeren en vervolgens de overige regels te plakken

sudo apt install -y oracle-java8-jdk

mkdir /home/pi/habridge cd /home/pi/habridge/ rm ha-bridge-*.jar -f wget $(curl -s https://api.github.com/repos/bwssytems/ha-bridge/releases /latest | grep 'browser_' | cut -d\" -f4) mv ha-bridge-*.jar ha-bridge.jar echo [Unit] | sudo tee /etc/systemd/system/habridge.service echo Description=HA Bridge | sudo tee -a /etc/systemd/system/habridge.service echo Wants=network.target | sudo tee -a /etc/systemd/system/habridge.service echo After=network.target | sudo tee -a /etc /systemd/system/habridge.service echo | sudo tee -a /etc/systemd/system/habridge.service echo [Service] | sudo tee -a /etc/systemd/system/habridge.service echo Type=simple | sudo tee -a /etc/systemd/system/habridge.service echo WorkingDirectory=/home/pi/habridge | sudo tee -a /etc/systemd/system/habridge.service echo ExecStart=/usr/bin/java -jar -Dconfig. file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge.jar | sudo tee -a /etc/systemd/system/habridge.service echo | sudo tee -a /etc/ systemd/system/hab ridge.service echo [Installeren] | sudo tee -a /etc/systemd/system/habridge.service echo WantedBy=multi-user.target | sudo tee -a /etc/systemd/system/habridge.service #Reload System Control en start service, instelling om in te schakelen bij opstarten sudo systemctl daemon-reload sudo systemctl start habridge.service sudo systemctl enable habridge.service

Stap 10: Een Philips Hue-lamp emuleren

Een Philips Hue-lamp emuleren
Een Philips Hue-lamp emuleren
Een Philips Hue-lamp emuleren
Een Philips Hue-lamp emuleren

Terwijl ha-bridge actief is, opent u een webbrowser en voert u het IP-adres van de Raspberry Pi in, en de interface voor ha-bridge zou moeten verschijnen.

Klik op de link Toevoegen/Bewerken bovenaan de pagina

Naam: voer de naam in die u wilt gebruiken bij het uitspreken van opdrachten

Stel in de sectie met het label "On Items" het type "Execute Command/Script/Program" in en voer de opdracht in het vak Doelitem in. Als meerdere opdrachten gewenst zijn, klikt u op de knop Toevoegen om de huidige regel op te slaan en een andere opdracht in te voeren. het is ook mogelijk om een vertraging in te stellen en een opdracht een bepaald aantal keren te herhalen In dit geval moet eerst de aan/uit-knop worden ingedrukt en vervolgens de timer-knop 3 keer om de automatische uitschakeltimer in te stellen op 3 uur.

Herhaal hetzelfde idee voor het gebied "Off Items" en klik op Toevoegen als u klaar bent.

Klik bovenaan de pagina op "Bridge-apparaat toevoegen" om het op te slaan als een nieuw item, of Update Bridge-apparaat als u een bestaand item wijzigt.

Richt de IR-LED op het apparaat. Klik op de pagina Brugapparaten op de knop Test AAN of Test UIT om te controleren of deze naar wens werkt.

Stap 11: Verbinding maken met Amazon Echo

Verbinding maken met Amazon Echo
Verbinding maken met Amazon Echo

De laatste stap is om de Amazon Echo te laten communiceren met dit apparaat. Opmerking: beide apparaten moeten hetzelfde netwerk zijn.

Optie 1) zeg "Alexa, ontdek slimme apparaten voor thuis"

Optie 2) Open de Alexa-app, tik op Menu>Smart Home en klik op de link "Apparaten ontdekken"

Na enkele ogenblikken moet het apparaat worden herkend.

Spreek, "Alexa, zet de slaapkamerhaard aan" en controleer of het apparaat wordt ingeschakeld zoals verwacht. Vervang de slaapkamerhaard met hoe u uw apparaat ook noemt in ha-bridge. Herhaal het proces om het apparaat uit te schakelen.

Als je de IR LED nog niet hebt gemonteerd, zoek dan een onopvallende plek om hem te monteren en laat hem in de algemene richting van de IR-ontvanger in het apparaat wijzen. Mogelijk moet u het verplaatsen om naar verschillende gebieden te wijzen om de beste locatie te vinden.

Aanbevolen: