Obsah:

Ako ovládať zásuvky pomocou Raspberry Pi: 6 krokov
Ako ovládať zásuvky pomocou Raspberry Pi: 6 krokov

Video: Ako ovládať zásuvky pomocou Raspberry Pi: 6 krokov

Video: Ako ovládať zásuvky pomocou Raspberry Pi: 6 krokov
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Júl
Anonim
Ako ovládať zásuvky pomocou Raspberry Pi
Ako ovládať zásuvky pomocou Raspberry Pi
Ako ovládať zásuvky pomocou Raspberry Pi
Ako ovládať zásuvky pomocou Raspberry Pi
Ako ovládať zásuvky pomocou Raspberry Pi
Ako ovládať zásuvky pomocou Raspberry Pi

V tomto návode vám ukážem, ako vytvoriť webové rozhranie na ovládanie zásuviek vo vašej domácnosti pomocou Raspberry Pi. Rozhodol som sa napísať tento projekt, keď som videl súťaž Senzory, a pretože tento projekt zahŕňa použitie senzora na čítanie kódov z diaľkového ovládača, ktorý je k dispozícii v predajniach, ktoré si kúpite, myslel som si, že tento projekt bude perfektný.

Budem sa snažiť, aby to bolo čo najvyššie a poskytnúť kód, aby to všetko fungovalo. Pokiaľ ide o vás všetky kódové opice, pokojne sa v kóde pohrabte a preskúmajte ma v komentároch! Stále sa snažím zlepšovať. V tomto sa deje pomerne veľa, takže ak máte otázky týkajúce sa akéhokoľvek kroku, zanechajte prosím komentár, aby som mohol aktualizovať pokyny s potrebnými podrobnosťami.

Tento projekt používa rádiofrekvenčne ovládané zásuvky na frekvencii 433 MHz spojené s RF vysielačom pripojeným k vášmu malinovému pi. Zásuvky sú dodávané s diaľkovými ovládačmi, ktoré môžu zapínať/vypínať zásuvky, ale nie je to žiadna zábava! Namiesto toho použijeme webový server spustený na Raspberry Pi, ktorý umožní komukoľvek pripojenému k sieti zapnúť alebo vypnúť určité zásuvky. Webový front-end tohto projektu je ideálny, pretože ako diaľkové ovládanie je možné použiť akékoľvek zariadenie pripojené k webu vo vašej sieti.

Toto je projekt, o ktorom som sníval, že ho dokončím už roky, a hoci stále existuje priestor na doplnenie, projekt popísaný nižšie je funkčný systém.

Zásoby

  • Raspberry Pi (použil som RPi 3 Model B+)
  • Vysielač a prijímač 433 MHz (použil som tento)
  • Zásuvky 433 MHz (použil som to)
  • Svetríky medzi ženami a ženami (kúpil som si túto skupinu)
  • Počítač alebo vreckové zariadenie s prístupom na internet

Krok 1: Nastavte si Raspberry Pi

Nastavte si Raspberry Pi
Nastavte si Raspberry Pi

Začnite inštaláciou najnovšej verzie Raspbian na svoje nové Raspberry Pi. Ak plánujete použiť existujúci Pi (čo môžete úplne urobiť), stačí sa uistiť, že máte na svojom Pi Python 3, pretože v ňom je napísaný všetok mnou poskytnutý zdrojový kód., typ

python3

do príkazového riadka. Ak máte Python 3, mali by ste vidieť otvorený terminál pythonu. Ukončite terminál zatvorením alebo zadaním

východ()

Keď to potvrdíte, musíte na svoj Pi nainštalovať banku. Flask nám umožňuje vytvoriť náš webový server. Do príkazového riadka Pi zadajte

sudo pip3 nainštalujte banku

V prípade, že na vašom Pi nemáte nainštalovaný pip, budete musieť napísať

sudo apt-get install python3-pip

Radšej vyvíjam na svojom Raspberry Pi z pohodlia svojho stolného počítača. Ak aj vy dávate prednosť tejto možnosti, musíte si do Pi nainštalovať nejaké prostredie na SSH. PuTTY bude fungovať, ale ja mám radšej GUI (grafické užívateľské rozhranie), vďaka ktorému to vyzerá, že ste priamo na Pi. Pokiaľ ide o možnosť GUI, budete chcieť nainštalovať prehliadač VNC na počítač, na ktorom plánujete pracovať. Existujú aj nastavenia, ktoré budete musieť na svojom Pi upraviť. Pokyny na úpravu nastavení nájdete tu.

Krok 2: Pripojenie hardvéru

Pripojenie hardvéru
Pripojenie hardvéru

V tomto bode je načase vytvoriť všetky fyzické pripojenia, ktoré budete musieť urobiť v rámci prípravy na nastavenie zdrojového kódu pre tento projekt. Piny vysielača a prijímača prepojíte s kolíkmi GPIO vášho Pi. Budete chcieť nábožensky odkazovať na diagram pinov GPIO pinov. Ak to chcete urobiť, otvorte terminál na svojom počítači Pi a zadajte

pinout

Nasledujú spojenia, ktoré som urobil. Ak ste si kúpili iný hardvér vysielača/prijímača, ako som uviedol v úvode, môžete mať inú konfiguráciu. Ak sa rozhodnete vybrať iné čísla pinov, než aké uvádzam nižšie, nebojte sa! Keď sťahujete zdrojový kód, jednoducho upravte čísla pinov podľa potreby v súbore RxTx.py.

Prijímač (veľký čip):

  • GND - Akýkoľvek určený uzemňovací kolík
  • DATA - pin 11
  • DER - Nie je pripojené
  • +5V - Akýkoľvek určený +5V pin
  • ------
  • +5V - Akýkoľvek určený +5V pin
  • GND - Akýkoľvek určený uzemňovací kolík
  • GND - nie je pripojené
  • ANT - nepripojené

Poznámka: Podľa potreby môžete pripojiť anténu, ale zistil som, že to nepotrebujem. Tento malý čip bol prekvapivo citlivý a verne detekuje signály najmenej 50 stôp od miesta, kde sedel, a najmenej dvoma stenami.

Vysielač:

  • P - 3,3V kolík
  • DA - kolík 7
  • G - Akýkoľvek určený uzemňovací kolík
  • AN - nepripojené

Poznámka: Opäť môžete k vysielaču pripojiť anténu podľa potreby, ale zistil som, že to nepotrebujem. Dosah je viac ako dostatočný (50+ft).

Krok 3: Pridanie kódu

To je časť, na ktorej som strávil väčšinu času, keď som vyvíjal tento projekt. Snažím sa komentovať čo najviac, ale pravdepodobne som nechal medzery, ktoré si môžu vyžadovať vysvetlenie, ak niekto z vás trávi čas snahou porozumieť tomu. Ak sa vám to stane, zanechajte prosím komentár!

Zahrnuté sú tu tieto jazyky:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Python sa používa na serveri baniek a vo formáte

RxTx.py

súbor, ktorý spracováva prenos a príjem kódu. CSS sa používa na generovanie štýlu webovej stránky. Kto chce nudný web !? Javascript sa používa pri akejkoľvek manipulácii s udalosťami (stlačenie tlačidla atď.). HTML je základným stavebným kameňom webovej stránky. Nakoniec JQuery/Ajax slúži na komunikáciu medzi webovou stránkou a backendom Pythonu.

Ak všetky tieto jazyky pôsobia zastrašujúco, nebojte sa! Vedel som iba, že Python ide do tohto projektu, čo je zhodou okolností jazyk, ktorý zahŕňa najmenšie množstvo kódovania, choďte na to … Stačí povedať, urobte si čas na prehľadávanie kódu, ak sa tak rozhodnete. Kto nechce, nemusí!

Nasleduje štruktúra adresárov, ktorú som sa rozhodol použiť s touto webovou stránkou. Zipovaný priečinok pripojený k tomuto kroku obsahuje všetky zdrojové kódy v nasledujúcej štruktúre.

Výstupný prepínač-> komunikácia-- DataRW.py-- keys.py-- RxTx.py-> webová stránka-- statický ----- favicon.ico ----- style.css-- šablóny ----- index.html ----- schedule.html-- app.py-- data.file

Priečinok Outlet Switch môžete umiestniť kdekoľvek na svoj Pi. Keď ste pripravení spustiť webový server, otvorte terminál na počítači Pi a

cd

(zmeniť adresár) do adresára webových stránok. Potom napíšte

python3 app.py

do terminálu. Ak neexistujú žiadne chyby, mali by ste ísť!

P. S. Ak narazíte na nejaké chyby, buďte trpezliví. Pred odoslaním som sa pokúsil všetky stlačiť.

Krok 4: Skúste to

Skús to!
Skús to!

Teraz, keď spustíte kód, môžete si urobiť dojem z webového rozhrania na dosah ruky. Ovládanie systému je veľmi jednoduché:

  • Prostredníctvom webového rozhrania môžete pridať toľko predajných miest, koľko chcete.
  • Vymazanie je také jednoduché, ako kliknúť na položku Upraviť, vybrať zásuvky, ktoré chcete odstrániť, a kliknúť na položku Odstrániť.

Vyššie uvedené video na YouTube ukazuje, ako skutočne postupovať pri pridaní novej zásuvky do vášho zoznamu. Aby sme zhrnuli, čo ukazuje:

  • Najprv zadajte názov pobočky do poľa Názov
  • Kliknutím alebo dotykom mimo poľa Názov povolíte programu skontrolovať, či názov už neexistuje. Nemôžete mať názvy s rovnakým názvom
  • Po overení sú tlačidlá ON Code a OFF Code aktivované.
  • Stlačte a podržte tlačidlo ON na dodanom diaľkovom ovládači a rýchlo kliknite na tlačidlo ON Code na rozhraní. Podržte tlačidlo na diaľkovom ovládači, kým váš binárny kód nezaplní susedné pole.
  • Zopakujte predchádzajúci krok pre VYPNUTÝ kód.
  • Kliknite na tlačidlo OK a teraz ste pripravení prepnúť túto zásuvku!

Ako je uvedené v úvode, projekt nie je 100% dokončený pre moje vlastné použitie. Najväčšou zložkou, ktorú ešte musím dokončiť a implementovať, je schopnosť plánovať. Mám v pláne umožniť používateľovi zostaviť rozvrh, ktorý by umožnil automatické zapínanie a vypínanie zásuviek v určených časoch.

Krok 5: Ladenie a súbor RxTx.py

Ladenie a súbor RxTx.py
Ladenie a súbor RxTx.py
Ladenie a súbor RxTx.py
Ladenie a súbor RxTx.py
Ladenie a súbor RxTx.py
Ladenie a súbor RxTx.py
Ladenie a súbor RxTx.py
Ladenie a súbor RxTx.py

Jediným známym obmedzením systému je, že existuje šanca na nekompatibilitu medzi rôznymi predajcami. Správy s kódom zapnutia a vypnutia majú pre môj systém 25 bitov a ak má systém inú dĺžku správy, nie je okamžite kompatibilný s týmto projektom. Ak ste presne postupovali podľa pokynov a stále máte problémy s tým, aby to fungovalo, najlepší spôsob, ako problém odstrániť, je nasledujúci.

  • Uistite sa, že máte na svojom Pi nainštalovaný matplotlib. Môžete to urobiť zadaním nasledujúceho príkazu do terminálu Pi:

    • python3

    • import matplotlib

    • Ak sa zobrazí chyba, musíte nainštalovať matplotlib.
    • Ukončite shell pythonu pomocou

      východ()

  • Ak chcete nainštalovať matplotlib, zadajte

    sudo pip3 nainštalujte matplotlib

  • do terminálu
  • Stiahnite si priložený súbor test.py a umiestnite ho vedľa súboru RxTx.py na svoj Pi
  • Otvorte terminál python a zmeňte adresár na priečinok comm.
  • Napíšte

    python3 test.py

  • Keď sa zobrazí hlásenie „** Spustené nahrávanie **“, stlačte a podržte tlačidlo ZAPNUTÉ alebo VYPNUTÉ na diaľkovom ovládaní, kým sa nahrávanie neskončí.
  • Program načíta figúrku matplotlib, ktorá vyzerá podobne ako vyššie. Približujte, kým neuvidíte opakujúci sa signál, ako je to znázornené na vyššie uvedených fotografiách.
  • Spočítajte celkovú logickú 1 a logickú 0 pre každú správu, kde správa je jednou iteráciou opakujúceho sa signálu uvedeného vyššie. Ak je ich spolu 25, súbor RxTx.py pravdepodobne nie je na vine. Ak narazíte na niečo iné ako 25, dajte nám vedieť nižšie uvedený komentár a ja upravím súbor RxTx.py tak, aby bol otvorenejší (alebo si ho môžete vyskúšať).

Čo keď nevidím opakujúci sa signál?

Ak nevidíte opakujúci sa signál, jedna z dvoch vecí je nesprávna. Najprv skontrolujte, či sú všetky prepojovacie vodiče správne zapojené. Ak všetko vyzerá dobre, môžete mať zlý prijímač. Kúpil si ten, ktorý som navrhol? Keď som si kúpil svoj prvý čip prijímača, bolo to veľmi hlučné. Tak hlučný, že som nedokázal dostať jasný signál. Potom som vrátil ten čip a vybral ten, ktorý som prepojil, a nemohlo to fungovať lepšie.

Krok 6: Užite si to

Viete, že máte možnosť zapnúť/vypnúť zásuvky z telefónu, tabletu, počítača alebo iného zariadenia s povoleným webom! Dajte mi vedieť, čo si myslíte v komentároch!

Odporúča: