Sadržaj:
- Supplies
- Korak 1: Postavite svoj Raspberry Pi
- Korak 2: Povežite svoj hardver
- Korak 3: Dodavanje koda
- Korak 4: Pokušajte
- Korak 5: Otklanjanje grešaka i datoteka RxTx.py
- Korak 6: Uživajte
Video: Kako kontrolirati utičnice pomoću Raspberry Pi: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
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
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
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
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
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:
Kako kontrolirati Bluetooth (HC-05) pomoću Arduina: 5 koraka
Kako kontrolirati Bluetooth (HC-05) s Arduinom: Pozdrav prijatelji, u ovoj lekciji naučit ćemo kako upravljati DC motorom pomoću našeg pametnog telefona ili tableta. Da bismo to postigli, upotrijebit ćemo motorni kontroler L298N i Bluetooth modul (HC- 05) .Započnimo
Kako kontrolirati BLDC motor pomoću Arduina i joystick -a: 6 koraka
Kako kontrolirati BLDC motor pomoću Arduina i joystick -a: Pozdrav prijatelji u ovom vodiču pokazujem vam kako kontrolirati DC motor bez četkica ili BLDC motor s Arduinom i joystickom
Uradi sam Kako kontrolirati kut servo motora pomoću komponente Visuino sekvence: 10 koraka
DIY Kako kontrolirati kut servo motora pomoću komponente Visuino Sequence: U ovom ćemo vodiču koristiti Servo Motor i Arduino UNO te Visuino za kontrolu kuta servo motora pomoću komponente sekvence. Komponenta sekvence je savršena za situacije u kojima želimo pokrenuti nekoliko događaja u nizu u našem slučaju servo motor degr
Kako kontrolirati uređaj pomoću Raspberry Pi i releja - OSNOVE: 6 koraka
Kako upravljati uređajem pomoću Raspberry Pi -a i releja - OSNOVE: Ovo je osnovni i jasan vodič o tome kako kontrolirati uređaj pomoću Raspberry Pi -a i releja, koristan za izradu IoT projekata. Ovaj vodič je za početnike. slijedite ih čak i ako nemate nikakvo znanje o korištenju maline
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice): 6 koraka
Raspberry Pi RF daljinski upravljane mrežne utičnice (utičnice): Kontrolirajte jeftine mrežne utičnice (zidne utičnice) od 433MHz pomoću Raspberry Pi. Pi može naučiti kontrolne kodove koji se šalju sa daljinskog upravljača utičnica i koristiti ih pod programskom kontrolom za aktiviranje bilo koje ili svih udaljenih utičnica u cijeloj kući