Obsah:
- Krok 1: Spotřební materiál a připojení
- Krok 2: Nastavení PI
- Krok 3: Stažení a kompilace kódu
- Krok 4: Použití
- Krok 5: Jak kód funguje
- Krok 6: Přizpůsobení a přátelská jména
Video: Ovladač relé Alexa Raspberry Pi: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Vytvořil jsem tento Instructable, abych se podělil o své zkušenosti s integrací zařízení IOT s Alexou od Amazonu.
Tento projekt umožňuje ovládat reléovou desku připojenou k Raspberry Pi pomocí ovladače Smarthome.
Byl testován s Alexou, ale zdá se, že funguje dobře i s Samsung Smartthings a dalšími řídicími rozhraními, protože emuluje řadu zásuvek Belkin Wemo.
Existuje spousta příkladů založených na vynikajícím kódu FAUXMO, ale to znamenalo naučit se python a nedalo mi podrobnou kontrolu, kterou jsem potřeboval pro svá zařízení, a tak jsem se rozhodl znovu vytvořit od nuly pomocí C jako mého základního kódovacího jazyka.
Také jsem nechtěl jít do hloubky lambda kódu na Amazon.com, takže jsem to opravdu zjednodušil.
Zveřejnil jsem zdroj a poznámky na Github:
github.com/Switchdoctorstu/StuPiMo
Tento tutoriál má skutečně popsat, jak funguje, a publikovat své poznámky pro případ, že by pomohl ostatním.
Krok 1: Spotřební materiál a připojení
Věci, které potřebujete, jsou snadno dostupné na Amazon / EBay:
- Raspberry PI *
- Pi napájecí zdroj
- Dupont konektory
- Reléová deska
- Starý kabel micro USB (snížit na polovinu pro napájení reléové karty)
Jakýkoli malinový Pi bude fungovat, testoval jsem to na modelu B a Zero.
*Pokud používáte Pi Zero, budete potřebovat síťový adaptér OTG (pokud si nekoupíte verzi „W“s buitem ve WiFi)
Budete muset připojit Pi k síti.
Pomocí dupontních konektorů připojte reléovou kartu k Pi.
Všimněte si, že reléová karta by měla používat externí napájení (odpojte odkaz a připojte se k externímu 5v). Bude fungovat napájený z PI, ale není doporučeno pro běžící produkci.
Pro nastavení jsem použil externě napájený USB HUB. To poskytuje výkon PI.
Také jsem přerušil konec starého kabelu USB a napájel relé z 2. připojení USB k rozbočovači, abych zůstal v bezpečí. Moje 'produkční' verze používá malý 5V 5A spínaný napájecí zdroj. Znovu jsem zkrátil kabel USB na polovinu, abych napájel Pi přes Micro-USB a odpojil dva dupontní konektory pro napájení reléové desky. V kabelu USB jsou 4 vodiče, většina používá k označení napájení 5 V červenou/černou, ale v případě pochybností použijte měřič, abyste se ujistili, že dostanete správné vodiče.
Reléové piny na desce jsou připojeny k příslušným GPIO pinům na PI záhlaví.
Kód vám umožňuje vybrat piny GPIO, ale výchozí jsem použil:
- Reléový kolík 1 - uzemnění
- Reléový pin 2 - relé 1 - GPIO 0
- Reléový kolík 3 - Relé 2 - GPIO 1
- Reléový kolík 4 - Relé 3 - GPIO 2
- Reléový kolík 5 - Relé 4 - GPIO 3
- Reléový kolík 6 - Relé 5 - GPIO 4
- Reléový kolík 7 - Relé 6 - GPIO 5
- Reléový kolík 8 - Relé 7 - GPIO 6
- Reléový kolík 9 - Relé 8 - GPIO 7
- Reléový pin 10 - +5v pro logiku
Krok 2: Nastavení PI
Nebudu znovu vytvářet návod, jak zprovoznit PI a připojit se k síti.
Existuje mnoho průvodců, včetně vynikajících instrukcí na:
www.instructables.com/id/Ultimate-Raspberr…
Budete se muset dostat do bodu, kdy je PI v síti viditelné a můžete se k němu připojit.
Nezáleží na tom, zda je to prostřednictvím ethernetového nebo bezdrátového připojení.
Tento projekt lze dokončit pouze pomocí Raspberry PI pomocí editoru Geany Programmers, ale pro mě osobně je snazší provést přípravu kódu na PC pomocí Visual Studio nebo Eclipse (nebo dokonce Notepad ++) a poté jej nahrát do PI pro ladění pomocí Připojení VNC. Opět to nebudu pokrývat, protože existuje mnoho vynikajících instrukcí o nastavení VNC na RPi.
Vše, co potřebujete, je dostat se do bodu, kdy můžete nahrát a zkompilovat kód.
Je důležité poznamenat, že vzhledem k tomu, že obslužný program UPNP vyžaduje vícesměrové vysílání UDP, musí být použitá rozhraní nastavena na režim 'Promiscuous'.
To lze provést na příkazovém řádku:
pi@raspberrypi: ~ $ ifconfig eth0 promisc
a / nebo
pi@raspberrypi: ~ $ ifconfig wlan0 promisc
To musí být trvalé, proto jsem upravil /etc/rc.local
sudo nano / etc / rc.local
zahrnout řádek:
sudo ifconfig eth0 promisc
po první sadě řádků banneru #, abyste zajistili, že rozhraní byla nastavena při spuštění.
Krok 3: Stažení a kompilace kódu
Samotný kód se nachází v mém úložiště Github;
github.com/Switchdoctorstu/StuPiMo/blob/ma…
zatímco existují „správné“způsoby klonování úložiště. pro mě bylo jednodušší otevřít editor Geany na ploše Pi a vložit kód.
Podobně pokud používáte příkazový řádek;
Vytvořte nový adresář
mkdir Stu
Změňte to
cd Stu
Vytvořte nový textový soubor
nano StuPiMo.c
Zkopírujte kód z Github raw a vložte jej do nového souboru
Uložit a odejít.
Jakmile máte soubor jako objekt zdrojového kódu C, můžete jej zkompilovat pomocí
gcc -o StuPiMo StuPiMo.c -l zapojeníPi
Všimněte si „-l wiringPi“, aby bylo zajištěno, že překladač propojí požadovanou knihovnu wiringPi.
Kód lze poté spustit pomocí
./StuPiMo
Opět platí, že pokud to chcete spustit při spuštění, použijte příkaz:
sudo nano /etc/rc.local
přidat následující řádek
sudo/home/pi/Stu/StuPiMo &
do vašeho souboru /etc/rc.local. Nezapomeňte soubor uložit při ukončení.
Všimněte si, že '&' je nezbytné k zajištění, že se spustí dílčí proces, aby se zajistilo, že skript není v tomto okamžiku blokován.
Krok 4: Použití
Jakmile spustíte kód, požádejte Alexu o „Discover Devices“a ona by měla najít všech 8 virtuálních zařízení Wemo.
Pak stačí říci: „Alexa zapněte zásuvku 1“nebo „Alexa vypněte zásuvku 6“atd. A příslušné relé se změní.
Krok 5: Jak kód funguje
Kód funguje tak, že emuluje řadu zásuvkových zařízení Belkin Wemo.
Aby toho bylo dosaženo, musí zvládnout 2 hlavní funkce
- obslužný program zjišťování vysílání UPNP
- „obsluha zařízení“(jedna na virtuální zařízení) pro správu příkazů odeslaných do zařízení a požadovaných odpovědí.
Funkce „bonus“spočívá v tom, že také publikuje webovou stránku, která umožňuje ovládání zařízení.
Obsluha UPNP
Obslužný program UPNP otevírá soket pro sledování paketů protokolu SSDP na portu 239.255.255.250 1900.
Reaguje na všechny dotazy typu „M-SEARCH“přicházející s balíčkem reakcí na objevy, který každému, kdo se zeptá, oznámí jednotlivé emulátory wemo.
Handler zařízení
Obslužné rutiny zařízení (jeden na virtuální zařízení) monitorují řadu IP portů a reagují na požadavky.
Na požádání poslouží odpověď setup.xml
Na požádání bude sloužit soubor s popisem události
Bude reagovat na požadavek GETBINARYSTATE
Zpracuje a odpoví na požadavek SETBINARYSTATE
Webový server
Webový server je jednoduchá rutina, která vytváří formulář HTML obsahující tlačítko na relé.
Reaguje na stisknutí tlačítek a podle toho přepíná stav relé.
Krok 6: Přizpůsobení a přátelská jména
Nezbláznil jsem se z kódu, aby byl jednoduchý a upravitelný.
Základy lze přizpůsobit definicemi na začátku kódu:
// globální definice#definujte WEBPORT 5353 // port, na kterém chcete spustit webový server
#define NUMDEVICES 8 // Počet virtuálních zařízení k vytvoření
#define PORTBASE 43450 // base IP port to increment up from
WEBPORT je číslo portu, na kterém běží vestavěný webový server. Dalo by se to udělat sedět na 80, aby to bylo snadné, ale zjistil jsem, že je to v rozporu s Tomcat nebo jinými službami běžícími lokálně.
NUMDEVICES definuje počet jednotlivých emulátorů WEMO, které mají být spuštěny. Pokud máte reléovou kartu se 2 porty, nastavte ji na 2, 4 porty = 4 atd.
Popisné názvy pro zařízení jsou nastaveny v rutině s názvem setup_names:
int setup_names (char friendly [NUMDEVICES] [NAMELEN]) {int i = 0;
// použijte tuto smyčku
pro (i = 0; i <NUMDEVICES; i ++) {
sprintf (friendly , "Socket %d", i + 1);
}
// nebo následující manuální tabulka k vyplnění názvů zařízení
/*
strcpy (přátelský [0], "TV v ložnici");
strcpy (přátelský [1], „elektrická deka“);
strcpy (přátelský [2], "Lampa do ložnice");
strcpy (přátelský [3], "Socket 4");
strcpy (friendly [4], "Socket 5");
strcpy (friendly [5], "Socket 6");
strcpy (přátelský [6], "Socket 7");
strcpy (přátelský [7], "Socket 8");
*/
vrátit i;
}
Použil jsem smyčku pro volání každého ze zařízení 'Socket n', ale můžete tuto smyčku smazat a místo toho přidat vlastní popisná jména (jen se ujistěte, že přidáte stejné číslo jako NUMDEVICES), pokud odstraníte / * * /
Pokud provedete jakékoli změny, nezapomeňte kód znovu zkompilovat.
Doporučuje:
Alexa IoT TV ovladač ESP8266: 10 kroků (s obrázky)
Alexa IoT TV-Controller ESP8266: Nedávno jsem koupil Amazon Echo Dot během dne Amazon Prime za ~ 20 €. Tyto malé hlasové asistentky jsou levné a skvělé pro domácí automatizaci, pokud víte, co je možné a jak vytvářet chytrá zařízení. Mám Samsung Smart TV, ale chtěl jsem
Raspberry Pi, Python a ovladač krokového motoru TB6600: 9 kroků
Raspberry Pi, Python a ovladač krokového motoru TB6600: Tento návod postupuje podle kroků, které jsem provedl pro připojení Raspberry Pi 3b k regulátoru krokového motoru TB6600, napájecímu zdroji 24 V DC a 6vodičovém krokovém motoru. Jsem asi jako mnoho z vás a náhodou mám " chytací tašku " zbývající část
Přepínač relé IOT ovládaný hlasem na Arduinu (Google Home & Alexa podporováno): 11 kroků
Hlasově ovládaný reléový spínač IOT založený na Arduinu (Google Home & Alexa podporováno): Tento projekt popisuje, jak vytvořit hlasově ovládaný reléový spínač IOT na bázi Arduina. Jedná se o relé, které můžete dálkově zapínat a vypínat pomocí aplikace pro iOS a Android, stejně jako jej propojit s IFTTT a ovládat pomocí hlasu pomocí Googlu
Jak ovládat zařízení pomocí Raspberry Pi a relé - ZÁKLADY: 6 kroků
Jak ovládat zařízení pomocí Raspberry Pi a relé - ZÁKLADY: Toto je základní a přímočarý návod, jak ovládat zařízení pomocí Raspberry Pi a relé, užitečné při vytváření projektů IoT Tento návod je pro začátečníky, je přátelský k pokračujte, i když nemáte žádné znalosti o používání Raspberry
Arduino DIY herní ovladač - Herní ovladač Arduino PS2 - Hra Tekken s gamepadem pro kutily Arduino: 7 kroků
Arduino DIY herní ovladač | Herní ovladač Arduino PS2 | Hraní Tekken s DIY Arduino Gamepad: Ahoj kluci, hraní her je vždy zábava, ale hraní s vaší vlastní DIY vlastní hrou je zábavnější. Takže v tomto návodu vytvoříme herní ovladač pomocí arduino pro micro