Obsah:
- Krok 1: Nastavení serveru a závislostí na Raspberry Pi
- Krok 2: Nainstalujte si webový framework a konfiguraci pro NGiNX
- Krok 3: Nastavení skriptů Pythonu, které budou interagovat s GPIO
- Krok 4: Dokončení na straně PHP věcí
- Krok 5: Vytvoření obvodu
- Krok 6: Závěrečné testování
- Krok 7: Bonusová část: Old-school Clapper Trigger
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
V tomto projektu ukážu, jak vytvořit zcela bezdrátový systém ovládání světla s bonusem na konci. Sledujte kompletní návod.
Požadavky:
- Raspberry Pi (jakákoli příchuť je v pořádku, ale použil jsem model 3B+)
- Dva tranzistory 2n2222 (doporučuji zakoupit alespoň pět, protože existuje velká šance, že jich omylem zkrátíte)
-propojovací kabely typu male-to-male a male-to-female
- prkénko
- (volitelně, ale doporučeno) Napájení 5V na prkénko
- Dva z každého 1k a 10k odporů
- Modul se dvěma relé
- Dvě staré domácí žárovky nebo jiná osvětlovací zařízení (použijte žárovky jako žárovky, které během testování obvykle shoří)
- Lepicí páska a řezačka kabelů pro spojování
Krok 1: Nastavení serveru a závislostí na Raspberry Pi
Pro svůj projekt jsem použil NGiNX, i když můžete použít libovolný server, který chcete (Apache2 atd.). Vanilková instalace pomocí správce balíčků je v pořádku, není třeba kompilovat vlastní zdroj ani nic podobného. Budeme také potřebovat PHP, Python3 a Composer.
- SSH do svého PI a zadejte $ sudo nano /etc/dhcpcd.conf
- Konfigurujte statické parametry IP
- Restartujte PI
- Zkontrolujte, zda vše funguje, zadáním {the_ip_you_chose} do adresního řádku prohlížeče (měli byste vidět uvítací stránku nginx)
Krok 2: Nainstalujte si webový framework a konfiguraci pro NGiNX
Chceme mít web, ke kterému máme přístup z mobilního nebo stolního prohlížeče, a abychom se zbavili psaní prostého kódu php/html, který není předmětem tohoto tutoriálu, použijeme místo toho PHP framework s názvem Yii2, který zvládne základní směrování a styling pro nás.
- Přejděte na instalační stránku Yii2 a pomocí skladatele jej nainstalujte do/var/www/html/light-switch
- Zatím nic neuvidíme, protože jsme stále nevložili konfigurační soubor pro server
- K tomuto kroku jsem připojil soubor (výchozí)
- Použijte jej tak, jak je v tomto rámci, nebo si vyhledejte jiný online, pokud dáváte přednost jinému backendu
- Tento soubor musíte vložit do/etc/nginx/sites-available/
- Znovu načtěte NGiNX pomocí $ sudo systemctl znovu načtěte nginx
- V případě, že něco nefunguje, můžete spustit $ sudo nginx -t pro ladění konfiguračních souborů
Krok 3: Nastavení skriptů Pythonu, které budou interagovat s GPIO
Protože PHP neradi hraje tak dobře se skripty typu runtime, jako je GPIO API a python, není příliš přátelský k webovým aplikacím, použijeme každý z nich v jejich výhodných kontextech. V příloze k tomuto kroku najdete 4 potřebné python skripty, které interagují s piny a spouští světla. Umístěte skripty kamkoli chcete, ale poznamenejte si jejich umístění, protože je budeme potřebovat v dalším kroku, když nastavíme php stránku věcí.
Krok 4: Dokončení na straně PHP věcí
Vše, co musíme udělat, je odstranit některé z výchozích cest a stránek z hlavního rozvržení a přidat několik řádků kódu do SiteController plus novou metodu nazvanou actionLightswitch (). Poté spustí skripty pythonu z předchozího kroku, které zase budou ovládat piny GPIO.
Krok 5: Vytvoření obvodu
Vzhledem k povaze tohoto specifického reléového modulu (spíná se při připojení k GND) potřebujeme vytvořit obvod pomocí tranzistorů. PI otevře pouze tranzistor, který nechá proud proudit z datových pinů relé na GND, čímž se spustí cívka a uzavře obvod pro žárovky. Postupujte podle schémat na přiložených obrázcích a bude se vám dařit.
U této další části musíte být opravdu opatrní, protože je čas připojit relé. Nejprve odpojte vše! Relé má 3 porty na připojení. Propojíme kabely našich spotřebičů se středním a s otevřeným nápisem. Opatrně spojte kabel, abyste odhalili měděné vodiče, a vložte je do výše uvedených portů relé. Na pořadí nezáleží, protože nyní pracujeme s alternativním proudem.
Krok 6: Závěrečné testování
Zkontrolujte svůj obvod a přiřazené piny alespoň dvakrát a poté připojte PI k napájení a do adresního řádku prohlížeče zadejte {the_chosen_ip}. Na první stránce budou naše dva přepínače. Klikněte na ně a sledujte, jak se světla zapínají/vypínají.
Krok 7: Bonusová část: Old-school Clapper Trigger
Požadavky:
- jakýkoli USB mikrofon (nemusí to být vysoce kvalitní)
- Balíček ALSA (způsob instalace se bude lišit v závislosti na vaší distribuci)
- Modul PyAudio
Zkopírujte přiložený skript pythonu a zapojte mikrofon. Restartujte PI. Spusťte skript a postupujte podle pokynů konzoly. Přibližte se k mikrofonu a dvakrát tleskněte. Měli byste vidět tleskání registrované na výstupu konzoly a pokud bude úspěšné, obě světla se rozsvítí po 2 sekundách.