Obsah:

Jak ovládat zásuvky pomocí Raspberry Pi: 6 kroků
Jak ovládat zásuvky pomocí Raspberry Pi: 6 kroků

Video: Jak ovládat zásuvky pomocí Raspberry Pi: 6 kroků

Video: Jak ovládat zásuvky pomocí Raspberry Pi: 6 kroků
Video: Rozdíl mezi Arduinem a Raspberry Pi 2024, Červenec
Anonim
Jak ovládat zásuvky pomocí Raspberry Pi
Jak ovládat zásuvky pomocí Raspberry Pi
Jak ovládat zásuvky pomocí Raspberry Pi
Jak ovládat zásuvky pomocí Raspberry Pi
Jak ovládat zásuvky pomocí Raspberry Pi
Jak ovládat zásuvky pomocí Raspberry Pi

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

Nastavte si Raspberry Pi
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

Zapojení hardwaru
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

Zkusit to!
Zkusit 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

Ladění a soubor RxTx.py
Ladění a soubor RxTx.py
Ladění a soubor RxTx.py
Ladění a soubor RxTx.py
Ladění a soubor RxTx.py
Ladění a soubor RxTx.py
Ladění a soubor RxTx.py
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: