Sadržaj:

Kako kontrolirati utičnice pomoću Raspberry Pi: 6 koraka
Kako kontrolirati utičnice pomoću Raspberry Pi: 6 koraka

Video: Kako kontrolirati utičnice pomoću Raspberry Pi: 6 koraka

Video: Kako kontrolirati utičnice pomoću Raspberry Pi: 6 koraka
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Juli
Anonim
Kako kontrolirati utičnice pomoću Raspberry Pi
Kako kontrolirati utičnice pomoću Raspberry Pi
Kako kontrolirati utičnice pomoću Raspberry Pi
Kako kontrolirati utičnice pomoću Raspberry Pi
Kako kontrolirati utičnice pomoću Raspberry Pi
Kako kontrolirati utičnice pomoću Raspberry Pi

U ovom uputstvu pokazat ću vam kako stvoriti web sučelje za kontrolu prodajnih mjesta u vašem domu pomoću Raspberry Pi. Odlučio sam se za pisanje ovog projekta kada sam vidio natječaj za senzore, a budući da ovaj projekt uključuje korištenje senzora za čitanje kodova s daljinskog upravljača koji ste dobili s utičnicama koje kupujete, mislio sam da će ovaj projekt savršeno odgovarati.

Radit ću na tome da ovo bude na najvišem mogućem nivou i pružit ću kod kako bi sve ovo funkcioniralo. Za sve vas koji šifrirate majmune, slobodno kopajte po kodu i pomno me proučite u komentarima! Uvek gledam da se poboljšam. U ovome se prilično događa, pa ako imate pitanja o bilo kojem koraku, ostavite komentar kako bih mogao ažurirati Instructable sa potrebnim detaljima.

Ovaj projekt koristi radio -frekvencijske utičnice na 433MHz zajedno sa RF odašiljačem spojenim na vaš malina pi. Utičnice dolaze s daljinskim upravljačima koji mogu uključiti/isključiti utičnice, ali to nije zabavno! Umjesto toga koristit ćemo web poslužitelj pokrenut na malini pi koji omogućava svakome ko je spojen na mrežu da uključi ili isključi određene utičnice. Web prednja strana ovog projekta je idealan jer se bilo koji uređaj povezan na web na vašoj mreži može koristiti kao vaš daljinski upravljač.

Ovo je projekt o kojem sam godinama sanjao da završim, i iako još uvijek ima prostora za dodatke, projekt opisan na sljedeći način je funkcionalan sistem.

Supplies

  • Raspberry Pi (koristio sam RPi 3 model B+)
  • Odašiljač i prijemnik od 433 MHz (koristio sam ovaj)
  • Utičnice 433MHz (ovo sam koristio)
  • Majice za žene (kupila sam ovu hrpu)
  • Računalo ili ručni uređaj koji može pristupiti internetu

Korak 1: Postavite svoj Raspberry Pi

Postavite svoj Raspberry Pi
Postavite svoj Raspberry Pi

Počnite instaliranjem najnovije verzije Raspbiana na svoj novi Raspberry Pi. Ako planirate koristiti postojeći Pi (što možete potpuno učiniti), sve što trebate je provjeriti imate li Python 3 na svom Pi, jer je to ono u čemu je napisan sav izvorni kôd koji nudim. Da biste to učinili,, tip

python3

u komandnu liniju. Ako imate Python 3, trebali biste vidjeti otvoren Python terminal. Zatvorite ili upišite izlaz iz terminala

Izlaz()

Nakon što to potvrdite, morate instalirati bočicu na svoj Pi. Flask nam omogućuje stvaranje našeg web servera. U komandnoj liniji Pi otkucajte

sudo pip3 instalirajte bocu

U slučaju da na svom Pi nemate instaliran pip, morat ćete upisati

sudo apt-get install python3-pip

Više volim da se razvijam na svom Raspberry Pi -u iz udobnosti svog stonog računara. Ako i vi više volite ovu opciju, morate instalirati neku vrstu okruženja za SSH u Pi. PuTTY će raditi, ali više volim imati GUI (grafičko korisničko sučelje), zbog čega se čini da ste direktno na Pi -u. Za opciju grafičkog sučelja, htjet ćete instalirati VNC Viewer na računalo na kojem planirate raditi. Postoje i postavke koje ćete morati prilagoditi na svom Pi -u. Upute za promjenu postavki možete pronaći ovdje.

Korak 2: Povežite svoj hardver

Spajanje hardvera
Spajanje hardvera

U ovom trenutku, vrijeme je da uspostavite sve fizičke veze koje ćete morati napraviti u pripremi za postavljanje izvornog koda za ovaj projekt. Povezivat ćete pinove predajnika i prijemnika na GPIO pinove vašeg Pi -a. Morat ćete religijski referencirati pinout dijagram GPIO pinova. Da biste to učinili, otvorite terminal na svom Pi i upišite

pinout

Ovo su veze koje sam uspostavio. Možda ste imali drugačiju konfiguraciju ako ste kupili drugačiji hardver za odašiljač/prijemnik nego što sam naveo u uvodu. Ako se odlučite za odabir različitih PIN brojeva od onih koje sam naveo u nastavku, ne bojte se! Kada preuzimate izvorni kod, jednostavno promijenite PIN brojeve prema potrebi u datoteci RxTx.py.

Prijemnik (veliki čip):

  • GND - Bilo koji naznačeni pin za uzemljenje
  • PODACI - Pin 11
  • DER - Nije povezano
  • +5V - Bilo koji naznačeni +5V pin
  • ------
  • +5V - Bilo koji naznačeni +5V pin
  • GND - Bilo koji naznačeni pin za uzemljenje
  • GND - Nije povezano
  • ANT - Nije povezan

Napomena: Možda ste mogli povezati antenu po potrebi, ali otkrio sam da to nije potrebno. Ovaj mali čip bio je iznenađujuće osjetljiv i vjerno detektira signale na najmanje 50 stopa od mjesta na kojem je sjedio i kroz najmanje dva zida.

Odašiljač:

  • P - pin 3.3V
  • DA - Pin 7
  • G - Bilo koji naznačeni pin za uzemljenje
  • AN - nije povezan

Napomena: Opet, prema potrebi, možete povezati antenu s odašiljačem, ali otkrio sam da to nije potrebno. Domet je više nego dovoljan (50+ft).

Korak 3: Dodavanje koda

Ovo je dio na kojem sam proveo najviše vremena dok sam razvijao ovaj projekt. Pokušavam komentirati što je više moguće, ali vjerojatno sam ostavio praznine koje bi mogle zahtijevati objašnjenje ako neko od vas provede vrijeme pokušavajući to razumjeti. Ako vam se to dogodi, ostavite komentar!

Jezici koji su ovdje uključeni su:

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

Python se koristi u flask serveru i u

RxTx.py

datoteku koja upravlja prijenosom i prijemom koda. CSS se koristi za stvaranje stila web stranice. Ko želi dosadnu web stranicu !? Javascript se koristi u bilo kojem rukovanju događajima (pritiskom na dugme itd.). HTML je osnovni gradivni blok web stranice. Konačno, JQuery/Ajax se koristi za komunikaciju između web stranice i Python pozadine.

Ne brinite ako svi ovi jezici zvuče zastrašujuće! Znao sam samo da se Python upušta u ovaj projekt, koji je slučajno bio jezik koji je uključivao najmanje količine kodiranja, idite na zaključak … Dovoljno je reći, odvojite vrijeme pročešljavajući kôd ako to odlučite učiniti. Ako ne želite, ne morate!

Slijedi struktura direktorija koju sam odabrao upotrijebiti na ovoj web stranici. Mapa sa zipom koja je priložena ovom koraku sadrži sav izvorni kod u sljedećoj strukturi.

Prekidač utičnice-> comm-- DataRW.py-- keys.py-- RxTx.py-> web stranica-- statički ----- favicon.ico ----- style.css-- predlošci ----- index.html ----- schedule.html-- app.py-- data.file

Mapu Outlet Switch možete staviti bilo gdje na svom Pi -u. Kad budete spremni za pokretanje web servera, otvorite terminal na svom Pi i

cd

(promijenite direktorij) u direktorij web stranice. Zatim otkucajte

python3 app.py

u terminal. Ako nije bilo grešaka, trebali biste biti spremni!

P. S. Budite strpljivi ako naiđete na neke greške. Pokušao sam ih zgnječiti prije postavljanja.

Korak 4: Pokušajte

Pokušaj!
Pokušaj!

Sada kada pokrećete kôd, možete osjetiti web sučelje nadohvat ruke. Upravljanje sistemom je vrlo jednostavno:

  • Pomoću web sučelja možete dodati koliko god želite prodajnih mjesta.
  • Brisanje je jednostavno poput klikanja uređivanja, odabira prodajnih mjesta koje želite izbrisati i klikanja brisanja.

Gornji YouTube video prikazuje kako zapravo možete dodati novu utičnicu na svoju listu. Da rezimiramo ono što prikazuje:

  • Prvo unesite naslov poslovnice u polje Naslov
  • Kliknite ili dodirnite izvan polja Naslov da biste omogućili programu da provjeri da naslov već ne postoji. Ne možete imati naslove sa istim imenom
  • Nakon potvrde, tasteri za uključivanje i isključivanje koda su omogućeni.
  • Pritisnite i zadržite dugme ON na daljinskom upravljaču koji ste dobili i brzo kliknite dugme ON Code na interfejsu. Držite dugme na daljinskom upravljaču sve dok vaš binarni kôd ne popuni susjedno polje.
  • Ponovite prethodni korak za OFF kod.
  • Pritisnite U redu i sada ste spremni za promjenu ove utičnice!

Kao što je spomenuto u uvodu, projekt nije 100% dovršen za moju vlastitu upotrebu. Najveća komponenta koju tek trebam dovršiti i implementirati je mogućnost planiranja. Planiram omogućiti korisniku da napravi raspored koji bi omogućio automatsko uključivanje i isključivanje prodajnih mjesta u određeno vrijeme.

Korak 5: Otklanjanje grešaka i datoteka RxTx.py

Otklanjanje grešaka i datoteka RxTx.py
Otklanjanje grešaka i datoteka RxTx.py
Otklanjanje grešaka i datoteka RxTx.py
Otklanjanje grešaka i datoteka RxTx.py
Otklanjanje grešaka i datoteka RxTx.py
Otklanjanje grešaka i datoteka RxTx.py
Otklanjanje grešaka i datoteka RxTx.py
Otklanjanje grešaka i datoteka RxTx.py

Jedino poznato ograničenje sistema je to što postoji mogućnost nekompatibilnosti među prodajnim mjestima različitih dobavljača. Kodne i isključene poruke su 25 bita za moj sistem, a ako sistem ima različitu dužinu poruke, nije odmah kompatibilan s ovim projektom. Ako ste točno slijedili upute, a i dalje imate problema s pokretanjem ovoga, sljedeće bi bilo najbolji način za rješavanje problema.

  • Uverite se da imate matplotlib instaliran na vašem Pi -u. To možete učiniti upisivanjem sljedećeg u Pi -ov terminal:

    • python3

    • import matplotlib

    • Ako dobijete grešku, morate instalirati matplotlib.
    • Izađite iz ljuske python pomoću

      Izlaz()

  • Za instalaciju matplotlib upišite

    sudo pip3 install matplotlib

  • u terminal
  • Preuzmite priloženu datoteku test.py i postavite je pored datoteke RxTx.py na svoj Pi
  • Otvorite python terminal i promijenite direktorij u mapu comm.
  • Tip

    python3 test.py

  • Kad piše "** Započeto snimanje **", pritisnite i držite tipku ON ili OFF na daljinskom upravljaču dok snimanje ne završi.
  • Program će učitati matplotlib figuru koja izgleda slično gore navedenoj. Zumirajte dok ne vidite signal koji se ponavlja kao što je prikazano na gornjim fotografijama.
  • Prebrojite ukupni logički 1 i logički 0 za svaku poruku, gdje je poruka jedna iteracija gore ponavljanog signala. Ako je ukupan iznos 25, datoteka RxTx.py vjerojatno nije kriva. Ako naiđete na nešto drugo osim 25, svakako komentirajte u nastavku, a ja ću ponovo ugraditi datoteku RxTx.py da bude otvorenija (ili se slobodno okušajte u tome).

Šta ako ne vidim signal koji se ponavlja?

Ako ne vidite signal koji se ponavlja, jedna od dvije stvari nije u redu. Prvo provjerite jesu li sve vaše kratkospojne žice ispravno izvedene. Ako sve izgleda dobro, možda imate loš prijemnik. Jeste li kupili onu koju sam predložio? Kad sam kupio svoj prvi prijemnički čip, bilo je jako bučno. Tako bučno da nisam mogao dobiti jasan signal. Zatim sam vratio taj čip i uzeo onaj koji sam povezao, i nije mogao bolje funkcionirati.

Korak 6: Uživajte

Znate da imate mogućnost uključivanja/isključivanja utičnica sa svog telefona, tableta, računara ili drugog uređaja koji podržava web! Javite mi šta mislite u komentarima!

Preporučuje se: