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, Srpanj
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 Instructable ću pokazati vam kako stvoriti web sučelje za kontrolu prodajnih mjesta u vašem domu pomoću malina 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 bi ovaj projekt savršeno pristajao.

Radit ću na tome da ovo bude na što višoj razini i pružiti kôd kako bi sve ovo funkcioniralo. Za sve vas koji šifrirate majmune, slobodno kopajte po kodu i pomno me proučite u komentarima! Uvijek se trudim poboljšati. Postoji vrlo malo događa u tome, tako da ako imate pitanja o bilo kojem koraku, molimo ostavite komentar, tako da mogu ažurirati Instructable s potrebnim detaljima.

Ovaj projekt koristi radio -frekvencijske utičnice na 433MHz zajedno s 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ćuje svakome tko je spojen na mrežu da uključi ili isključi određene utičnice. Web prednja strana ovog projekta idealan je jer se bilo koji uređaj povezan s internetom na vašoj mreži može koristiti kao vaš daljinski upravljač.

Ovo je projekt sam sanjao završetka godinama, a iako još uvijek ima prostora za dopune, projekt opisuje kao slijedi je funkcionalni sustav.

Pribor

  • 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

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

python3

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

Izlaz()

Nakon što to potvrdite, morate instalirati tikvicu na svoj Pi. Flask nam omogućuje stvaranje našeg web poslužitelja. Iz naredbenog retka Pi upišite

sudo pip3 instalirajte tikvicu

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

sudo apt-get install python3-pip

Radije se razvijam na svom Raspberry Pi -u iz udobnosti stolnog računala. Ako i vi više volite ovu opciju, morate instalirati neku vrstu okruženja za SSH u Pi. Kit će raditi, ali ja radije imati GUI (grafičko korisničko sučelje), što ga čini izgledaju kao da ste izravno na Pi. Za opciju GUI, htjet ćete instalirati VNC Viewer na računalo na kojem planirate raditi. Postoje i postavke koje ćete morati prilagoditi na svom Pi. Upute za promjenu postavki možete pronaći ovdje.

2. korak: Priključ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. Spojit ćete pinove odašiljača i prijemnika na GPIO pinove vašeg Pi -a. Morat ćete se vjerski pozivati na dijagram iscrtavanja GPIO pinova. Da biste to učinili, otvorite terminal na svom Pi i upišite

prikaz izvoda

Slijede veze koje sam uspostavio. Možda ste imali drugačiju konfiguraciju ako ste kupili drugačiji hardver za odašiljač/prijamnik 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 povezano

Napomena: Možda ste mogli spojiti antenu po potrebi, ali otkrio sam da to ne moram. Ovaj mali čip je bio iznenađujuće osjetljiva i vjerno otkriva signale na najmanje 50ft odakle 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 ne moram učiniti. 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 netko od vas provede vrijeme pokušavajući to razumjeti. Ako vam se to dogodi, ostavite komentar!

Jezici koji su ovdje uključeni su:

  • Piton
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Python se koristi u flask poslužitelju i u

RxTx.py

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

Ako svi ovi jezici zvuče zastrašujuće, ne brinite! Znao sam samo da se Python upušta u ovaj projekt, koji je slučajno bio jezik koji je uključivao najmanju količinu kodiranja, shvatite … 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.

Utičnica-> comm-DataRW.py-- keys.py-RxTx.py-> web stranica-statički ----- favicon.ico ----- style.css-- predlošci ----- index.html ----- raspored.html-- app.py-- datoteka podataka

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

CD

(promijenite imenik) u imenik web stranica. Zatim upišite

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 učitavanja.

Korak 4: Pokušajte

Pokušaj!
Pokušaj!

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

  • Pomoću web sučelja možete dodati koliko god želite prodajnih mjesta.
  • Brisanje je jednostavno kao da kliknete Uredi, odaberete prodajna mjesta koja želite izbrisati i kliknete Izbriši.

Gornji YouTube videozapis pokazuje kako se zapravo može dodati novo mjesto na vaš popis. Ukratko, ono što prikazuje:

  • Prvo unesite naslov prodajnog mjesta u polje Naslov
  • Pritisnite ili dodirnite izvan polja Naslov da biste omogućili programu da provjeri da naslov već ne postoji. Ne možete imati naslove s istim imenom
  • Nakon potvrde, gumbi za uključivanje i isključivanje koda su omogućeni.
  • Pritisnite i držite gumb ON na daljinskom upravljaču koji ste dobili i brzo kliknite gumb ON Code na sučelju. Držite gumb 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 moje vlastite potrebe. Najveća komponenta koju još moram dovršiti i implementirati je mogućnost planiranja. Planiram dopustiti korisniku izradu rasporeda koji bi omogućio automatsko uključivanje i isključivanje prodajnih mjesta u određeno vrijeme.

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

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

Jedino poznato ograničenje sustava je da postoji mogućnost nekompatibilnosti među prodajnim mjestima različitih dobavljača. U na i off kod poruke 25 bita za moj sustav, a ako sustav ima drugačiji duljinu 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 otklanjanje pogrešaka.

  • Provjerite imate li instaliran matplotlib na svom Pi. To možete učiniti upisivanjem sljedećeg u terminal Pi:

    • python3

    • uvoz matplotlib

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

      Izlaz()

  • Za instalaciju matplotlib upišite

    sudo pip3 instalirajte 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 brojku koja izgleda slično gore navedenoj. Zumirajte dok ne vidite signal koji se ponavlja, kao što je prikazano na gornjim fotografijama.
  • Izbrojite ukupni logički 1 i logički 0 za svaku poruku, gdje je poruka jedna iteracija gore ponavljanog signala. Ako je ukupno 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).

Što 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čunala ili drugog uređaja koji podržava web! Javite mi što mislite u komentarima!

Preporučeni: