Obsah:
- Zásoby
- Krok 1: Nastavte si Raspberry Pi
- Krok 2: Zapojení hardwaru
- Krok 3: Přidání kódu
- Krok 4: Vyzkoušejte to
- Krok 5: Ladění a soubor RxTx.py
- Krok 6: Užijte si to
Video: Jak ovládat zásuvky pomocí Raspberry Pi: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
V tomto Instructable vám předvedu, jak vytvořit webové rozhraní pro ovládání zásuvek ve vašem domě pomocí Raspberry Pi. Rozhodl jsem se napsat tento projekt, když jsem viděl soutěž Senzory, a protože tento projekt zahrnuje použití senzoru pro čtení kódů z dálkového ovladače dodávaného s prodejnami, které zakoupíte, myslel jsem si, že tento projekt bude perfektní.
Budu pracovat na tom, aby to bylo co nejvyšší a poskytl kód, aby to všechno fungovalo. Pro všechny vaše kódové opice, neváhejte se ponořit do kódu a zkoumat mě v komentářích! Stále se snažím zlepšovat. Děje se toho docela dost, takže pokud máte dotazy k jakémukoli kroku, zanechte prosím komentář, abych mohl aktualizovat Instructable s potřebnými detaily.
Tento projekt využívá vysokofrekvenčně řízené zásuvky na 433 MHz spojené s RF vysílačem připojeným k vašemu malinovému pi. Zásuvky jsou vybaveny dálkovými ovladači, které mohou zapínat/vypínat zásuvky, ale to není legrace! Místo toho použijeme webový server běžící na Raspberry Pi, který umožní komukoli připojenému k síti zapnout nebo vypnout určité zásuvky. Webové rozhraní tohoto projektu je ideální, protože jako dálkové ovládání lze použít jakékoli zařízení připojené k webu ve vaší síti.
Jedná se o projekt, o jehož dokončení jsem snil, a přestože stále existuje prostor pro doplnění, níže popsaný projekt je funkční systém.
Zásoby
- Raspberry Pi (použil jsem RPi 3 Model B+)
- Vysílač a přijímač 433 MHz (použil jsem tento)
- Zásuvky 433 MHz (použil jsem to)
- Propojky mezi ženami a ženami (koupil jsem tuto partu)
- Počítač nebo ruční zařízení umožňující přístup k internetu
Krok 1: Nastavte si Raspberry Pi
Začněte instalací nejnovější verze Raspbian na váš nový Raspberry Pi. Pokud plánujete použít existující Pi (což můžete úplně udělat), stačí se ujistit, že máte na svém Pi Python 3, protože v tom je napsán veškerý mnou poskytnutý zdrojový kód., typ
python3
do příkazového řádku. Pokud máte Python 3, měli byste vidět otevřený terminál pythonu. Ukončete terminál zavřením nebo zadáním
výstup()
Jakmile to potvrdíte, musíte na svůj Pi nainstalovat baňku. Flask nám umožňuje vytvořit náš webový server. Na příkazovém řádku Pi napište
sudo pip3 install baňka
V případě, že na Pi nemáte nainstalovaný pip, budete muset zadat
sudo apt-get install python3-pip
Dávám přednost vývoji na svém Raspberry Pi z pohodlí svého stolního počítače. Pokud také dáváte přednost této možnosti, musíte do Pi nainstalovat nějaké prostředí pro SSH. PuTTY bude fungovat, ale dávám přednost GUI (grafické uživatelské rozhraní), což vypadá, že jste přímo na Pi. Pro možnost GUI budete chtít nainstalovat VNC Viewer na počítač, na kterém plánujete pracovat. Existují také nastavení, která budete muset na svém Pi upravit. Pokyny pro úpravu nastavení naleznete zde.
Krok 2: Zapojení hardwaru
V tomto okamžiku je na čase provést všechna fyzická připojení, která budete muset provést v rámci přípravy na nastavení zdrojového kódu pro tento projekt. Piny vysílače a přijímače propojíte s piny GPIO vašeho Pi. Budete chtít nábožensky odkazovat na pinoutový diagram GPIO pinů. Chcete -li to provést, otevřete terminál na vašem Pi a napište
pinout
Následují připojení, která jsem vytvořil. Pokud jste zakoupili jiný hardware vysílače/přijímače, než jsem uvedl v úvodu, můžete mít jinou konfiguraci. Pokud se rozhodnete zvolit jiná čísla pinů, než jaká uvádím níže, nebojte se! Když stahujete zdrojový kód, jednoduše upravte čísla pinů podle potřeby v souboru RxTx.py.
Přijímač (velký čip):
- GND - Jakýkoli určený uzemňovací kolík
- DATA - pin 11
- DER - Není připojeno
- +5V - jakýkoli určený +5V pin
- ------
- +5V - jakýkoli určený +5V pin
- GND - Jakýkoli určený uzemňovací kolík
- GND - není připojeno
- ANT - Není připojeno
Poznámka: Podle potřeby můžete připojit anténu, ale zjistil jsem, že to nepotřebuji. Tento malý čip byl překvapivě citlivý a věrně detekuje signály nejméně 50 stop od místa, kde seděl, a nejméně dvěma stěnami.
Vysílač:
- P - 3,3V pin
- DA - Pin 7
- G - Jakýkoli určený uzemňovací kolík
- AN - není připojeno
Poznámka: Opět můžete k vysílači připojit anténu podle potřeby, ale zjistil jsem, že to nepotřebuji. Dosah je více než dostačující (50+ft).
Krok 3: Přidání kódu
To je část, na které jsem strávil většinu času, když jsem vyvíjel tento projekt. Snažím se co nejvíce komentovat, ale pravděpodobně jsem nechal mezery, které mohou vyžadovat vysvětlení, pokud někdo z vás tráví čas snahou to pochopit. Pokud se vám to stane, zanechte prosím komentář!
Zde jsou zahrnuty tyto jazyky:
- Krajta
- CSS
- Javascript
- HTML
- JQuery/Ajax
Python se používá na baňkovém serveru a
RxTx.py
soubor, který zpracovává přenos a příjem kódu. CSS se používá při generování stylu webové stránky. Kdo chce nudný web !? Javascript se používá při jakékoli manipulaci s událostmi (stisknutí tlačítka atd.). HTML je základním stavebním kamenem webové stránky. Nakonec se ke komunikaci mezi webovou stránkou a backendem Pythonu používá JQuery/Ajax.
Pokud všechny tyto jazyky zní zastrašujícím způsobem, nemějte obavy! Věděl jsem jen, že se do tohoto projektu zapojí Python, což je shodou okolností jazyk, který zahrnuje nejmenší množství kódování, viz obrázek … Stačí říct, věnujte čas procházení kódu, pokud se tak rozhodnete. Pokud nechcete, nemusíte!
Následuje struktura adresářů, kterou jsem se rozhodl použít s touto webovou stránkou. Zipovaná složka připojená k tomuto kroku obsahuje veškerý zdrojový kód v následující struktuře.
Přepínač výstupu-> komunikace-- DataRW.py-- keys.py-- RxTx.py-> webová stránka-- statický ----- favicon.ico ----- style.css-- šablony ----- index.html ----- schedule.html-- app.py-- data.file
Složku Outlet Switch můžete umístit kamkoli na svůj Pi. Když jste připraveni spustit svůj webový server, otevřete terminál na vašem Pi a
CD
(změnit adresář) na adresář webové stránky. Potom napište
python3 app.py
do terminálu. Pokud nedošlo k žádným chybám, měli byste jít!
P. S. Pokud narazíte na nějaké chyby, buďte trpěliví. Před odesláním jsem se pokusil všechny zmáčknout.
Krok 4: Vyzkoušejte to
Nyní, když spouštíte kód, můžete mít pocit, že webové rozhraní máte na dosah ruky. Ovládání systému je velmi jednoduché:
- Pomocí webového rozhraní můžete přidat libovolný počet prodejen.
- Odstranění je stejně jednoduché jako kliknutí na Upravit, výběr prodejen, které chcete odstranit, a kliknutí na Odstranit.
Výše uvedené video na YouTube ukazuje, jak ve skutečnosti přidat nový výstup do seznamu. Abychom shrnuli, co ukazuje:
- Do pole Název nejprve zadejte název prodejny
- Kliknutím nebo klepnutím mimo pole Název povolíte programu zkontrolovat, zda název již neexistuje. Nemůžete mít tituly se stejným názvem
- Po ověření jsou tlačítka ON Code a OFF Code aktivována.
- Stiskněte a podržte tlačítko ON na dodaném dálkovém ovladači a rychle klikněte na tlačítko ON Code na rozhraní. Podržte tlačítko na dálkovém ovladači, dokud váš binární kód nezaplní sousední pole.
- Opakujte předchozí krok pro kód OFF.
- Klikněte na OK a nyní jste připraveni tuto zásuvku přepnout!
Jak již bylo zmíněno v úvodu, projekt není pro mé vlastní použití 100% dokončen. Největší komponentou, kterou ještě musím dokončit a implementovat, je schopnost plánování. Plánuji umožnit uživateli sestavit plán, který by umožnil automatické zapínání a vypínání prodejen v určených časech.
Krok 5: Ladění a soubor RxTx.py
Jediným známým omezením systému je, že existuje šance na nekompatibilitu mezi různými prodejci. Zprávy s kódem zapnutí a vypnutí mají pro můj systém 25 bitů, a pokud má systém jinou délku zprávy, není s tímto projektem okamžitě kompatibilní. Pokud jste přesně postupovali podle pokynů a stále máte problémy s fungováním, bude nejlepším způsobem, jak problém vyřešit, následující.
-
Ujistěte se, že máte na svém Pi nainstalován matplotlib. Toho můžete dosáhnout zadáním následujícího příkazu do terminálu Pi:
-
python3
-
importovat matplotlib
- Pokud se zobrazí chyba, musíte nainstalovat matplotlib.
-
Ukončete shell pythonu pomocí
výstup()
-
-
Chcete -li nainstalovat matplotlib, zadejte
sudo pip3 nainstalujte matplotlib
- do terminálu
- Stáhněte si přiložený soubor test.py a umístěte jej vedle souboru RxTx.py na svůj Pi
- Otevřete terminál pythonu a změňte adresář do složky comm.
-
Typ
python3 test.py
- Když se zobrazí zpráva „** Zahájeno nahrávání **“, stiskněte a podržte tlačítko ZAPNUTO nebo VYPNUTO na dálkovém ovládání, dokud nahrávání neskončí.
- Program načte obrázek matplotlib, který vypadá podobně jako výše. Přibližujte, dokud neuvidíte opakující se signál, jak je ukázáno na fotografiích výše.
- Počítejte celkovou logickou 1 a logickou 0 pro každou zprávu, kde zpráva je jedna iterace opakujícího se signálu, jak je vidět výše. Pokud je součet 25, soubor RxTx.py pravděpodobně není na vině. Pokud narazíte na něco jiného než 25, nezapomeňte to komentovat níže a já upravím soubor RxTx.py tak, aby byl otevřenější (nebo si ho můžete vyzkoušet).
Co když nevidím opakující se signál?
Pokud nevidíte opakující se signál, jedna ze dvou věcí je špatná. Nejprve zkontrolujte, zda jsou všechna vaše propojovací vodiče správně provedena. Pokud vše vypadá dobře, můžete mít špatný přijímač. Koupil jste ten, který jsem navrhl? Když jsem si koupil svůj první přijímací čip, bylo to velmi hlučné. Tak hlučný, že jsem nemohl dostat jasný signál. Pak jsem ten čip vrátil a vzal ten, který jsem propojil, a nemohlo to fungovat lépe.
Krok 6: Užijte si to
Víte, že máte možnost zapínat/vypínat zásuvky ze svého telefonu, tabletu, počítače nebo jiného webového zařízení! Dejte mi vědět, co si myslíte v komentářích!
Doporučuje:
DIY -- Jak vyrobit robot Spider, který lze ovládat pomocí smartphonu pomocí Arduino Uno: 6 kroků
DIY || Jak vyrobit robota Spider, který lze ovládat pomocí smartphonu pomocí Arduino Uno: Při výrobě robota Spider se člověk může naučit tolik věcí o robotice. Stejně jako vytváření robotů je zábavné a náročné. V tomto videu vám ukážeme, jak vyrobit robota Spider, kterého můžeme ovládat pomocí smartphonu (Androi
Jak ovládat Bluetooth (HC-05) pomocí Arduina: 5 kroků
Jak ovládat Bluetooth (HC-05) pomocí Arduina: Dobrý den, moji přátelé, v této lekci se naučíme ovládat stejnosměrný motor pomocí smartphonu nebo tabletu. K dosažení tohoto cíle použijeme ovladač motoru L298N a modul Bluetooth (HC- 05). Začněme tedy
Jak ovládat stejnosměrný motor pomocí L298n a Arduino: 5 kroků
Jak ovládat stejnosměrný motor pomocí L298n a Arduino: Zdravím všechny. Pojďme se představit. Jmenuji se Dimitris a jsem z Řecka. Arduino mám velmi rád, protože je to chytrá deska. Pokusím se popsat co nejlépe tento návod, aby jej mohl udělat kdokoli. Začněme tedy
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
Pomocí gest můžete ovládat přehrávání na YouTube pomocí Arduina: 5 kroků
Ovládejte přehrávání na YouTube pomocí gest pomocí Arduina: StoryYouTube vám umožní přetočit vpřed pouze o 5 sekund pokaždé, když kliknete na pravé tlačítko. Rozhodl jsem se tedy použít Arduino a python k vytvoření ovladače, který mi pomůže rychle posunout vpřed o 20 sekund pokaždé, když mávnu rukou