Kazalo:
- Zaloge
- 1. korak: Nastavite svoj Raspberry Pi
- 2. korak: Priključite svojo strojno opremo
- 3. korak: Dodajanje kode
- 4. korak: Poskusite
- 5. korak: Odpravljanje napak in datoteka RxTx.py
- 6. korak: Uživajte
Video: Kako nadzirati vtičnice z uporabo Raspberry Pi: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V tem navodilu vam bom pokazal, kako z Raspberry Pi ustvarite spletni vmesnik za nadzor prodajnih mest v vašem domu. Za ogled tega projekta sem se odločil, ko sem videl natečaj Senzorji, in ker ta projekt vključuje uporabo senzorja za branje kod z daljinskega upravljalnika, ki je priložen vtičnicam, ki jih kupujete, sem mislil, da bi se ta projekt odlično prilegal.
Prizadeval si bom, da bo to čim višje, in zagotovil kodo, da bo vse to delovalo. Za vse vas opice, ki kodirate, vas prosimo, da pobrskate po kodi in me natančno preučite v komentarjih! Vedno si želim izboljšati. Pri tem se dogaja kar nekaj, zato, če imate vprašanja o katerem koli koraku, pustite komentar, da lahko posodobim Instructable s potrebnimi podrobnostmi.
Ta projekt uporablja radijsko frekvenčno nadzorovane vtičnice na 433MHz, skupaj z RF oddajnikom, priključenim na vašo malinovo pi. Vtičnice imajo daljince, ki lahko vklopijo/izklopijo vtičnice, vendar to ni zabavno! Namesto tega bomo uporabili spletni strežnik, ki deluje na maline pi, ki vsem, ki so povezani v omrežje, omogoča vklop ali izklop določenih vtičnic. Spletna stran tega projekta je idealna, saj lahko katero koli napravo, povezano s spletom v vašem omrežju, uporabite kot daljinski upravljalnik.
To je projekt, o katerem sem sanjal, da ga bom dokončal že leta, in čeprav je še prostora za dodatke, je projekt, opisan spodaj, funkcionalen sistem.
Zaloge
- Raspberry Pi (uporabil sem RPi 3 model B+)
- Oddajnik in sprejemnik 433MHz (jaz sem uporabil tega)
- Vtičnice 433MHz (to sem uporabil)
- Ženski skakalci (kupil sem ta kup)
- Računalnik ali ročna naprava z dostopom do interneta
1. korak: Nastavite svoj Raspberry Pi
Začnite tako, da na svoj novi Raspberry Pi namestite najnovejšo različico Raspbiana. Če nameravate uporabiti obstoječi Pi (kar lahko popolnoma storite), se morate prepričati, da imate na svojem Py -ju 3 Python 3, saj je v njem zapisana vsa izvorna koda, ki jo ponudim., tip
python3
v ukazno vrstico. Če imate Python 3, bi morali videti, da je terminal python odprt. Zaprite terminal ali ga vnesite
izhod ()
Ko to potrdite, morate na svoj Pi namestiti bučko. Flask nam omogoča ustvarjanje našega spletnega strežnika. V ukazno vrstico Pi vnesite
sudo pip3 namestite bučko
V primeru, da na svojem Pi nimate nameščenega pipa, boste morali vnesti
sudo apt-get install python3-pip
Raje se razvijam na svojem Raspberry Pi iz udobja svojega namiznega računalnika. Če imate tudi vi raje to možnost, morate v Pi namestiti nekakšno okolje za SSH. PuTTY bo deloval, vendar imam raje grafični vmesnik (grafični uporabniški vmesnik), zaradi česar se zdi, da ste neposredno na Pi. Za možnost grafičnega vmesnika boste želeli namestiti VNC Viewer v računalnik, na katerem nameravate delati. Obstajajo tudi nastavitve, ki jih boste morali prilagoditi na svojem Pi. Navodila za spreminjanje nastavitev najdete tukaj.
2. korak: Priključite svojo strojno opremo
Na tej točki je čas, da vzpostavite vse fizične povezave, ki jih boste morali opraviti pri pripravi na nastavitev izvorne kode za ta projekt. Zatiče oddajnika in sprejemnika boste povezali z zatiči GPIO vašega Pi. Pri tem se boste želeli versko sklicevati na shemo izpisov zatičev GPIO. Če želite to narediti, odprite terminal na svojem Pi in vnesite
pinout
Spodaj so povezave, ki sem jih vzpostavil. Morda imate drugačno konfiguracijo, če ste kupili drugačno strojno opremo oddajnika/sprejemnika, kot sem navedel v uvodu. Če se odločite, da boste izbrali drugačne številke pin, kot so navedene spodaj, se ne bojte! Ko prenesete izvorno kodo, preprosto spremenite številke pin v datoteki RxTx.py.
Sprejemnik (velik čip):
- GND - Vsak označen ozemljitveni zatič
- PODATKI - Pin 11
- DER - Ni povezan
- +5V - Vsak označen +5V pin
- ------
- +5V - Vsak označen +5V pin
- GND - Vsak označen ozemljitveni zatič
- GND - Ni povezano
- ANT - Ni povezan
Opomba: Po potrebi lahko priključite anteno, vendar sem ugotovil, da mi ni treba. Ta mali čip je bil presenetljivo občutljiv in zvesto zaznava signale vsaj 50 metrov od mesta, kjer je sedel, in skozi vsaj dve steni.
Oddajnik:
- P - 3.3V pin
- DA - Pin 7
- G - kateri koli namenski ozemljitveni zatič
- AN - ni povezan
Opomba: Ponovno lahko po potrebi priključite anteno na oddajnik, vendar sem ugotovil, da mi ni treba. Domet je več kot zadosten (50+ft).
3. korak: Dodajanje kode
To je del, na katerem sem največ časa preživel pri razvoju tega projekta. Poskušam komentirati čim več, vendar sem verjetno pustil vrzeli, ki bi lahko zahtevale pojasnilo, če kdo od vas porabi čas, da bi to razumel. Če se vam to zgodi, pustite komentar!
Tu so vključeni naslednji jeziki:
- Python
- CSS
- Javascript
- HTML
- JQuery/Ajax
Python se uporablja v strežniku za bučke in v
RxTx.py
datoteko, ki obravnava prenos in prejem kode. CSS se uporablja za ustvarjanje sloga spletne strani. Kdo želi dolgočasno spletno stran !? Javascript se uporablja pri katerem koli upravljanju dogodkov (pritisk na gumb itd.). HTML je temeljni gradnik spletne strani. Končno se JQuery/Ajax uporablja za komunikacijo med spletno stranjo in zaledjem Python.
Če se vsi ti jeziki slišijo zastrašujoče, ne skrbite! Vedel sem le, da se Python ukvarja s tem projektom, ki je bil jezik, ki je vključeval najmanjšo količino kodiranja, pojdi, pojdi… Dovolj je reči, da si vzemite čas in prečistite kodo, če se tako odločite. Če ne želite, vam ni treba!
Spodaj je imeniška struktura, ki sem jo uporabil na tej spletni strani. Mapa z zadrgo, priložena temu koraku, vsebuje vso izvorno kodo v naslednji strukturi.
Stikalo za vtičnico-> comm-DataRW.py-keys.py-RxTx.py-> spletna stran-statična ----- favicon.ico ----- style.css-predloge ----- index.html ----- urnik.html-- app.py-- podatkovna datoteka
Mapo Outlet Switch lahko postavite kamor koli na svojem Pi. Ko ste pripravljeni zagnati spletni strežnik, odprite terminal na svojem Pi in
cd
(spremeni imenik) v imenik spletnih strani. Nato vnesite
python3 app.py
v terminal. Če ni bilo napak, bi morali iti!
P. S. Bodite potrpežljivi, če naletite na kakšne hrošče. Pred nalaganjem sem jih poskušal zmečkati.
4. korak: Poskusite
Zdaj, ko zaženete kodo, lahko občutite spletni vmesnik na dosegu roke. Nadzor sistema je zelo preprost:
- S spletnim vmesnikom lahko dodate poljubno število prodajnih mest.
- Brisanje je preprosto, kot da kliknete Uredi, izberete vtičnice, ki jih želite izbrisati, in kliknete Izbriši.
Zgornji videoposnetek v YouTubu prikazuje, kako na svoj seznam dejansko dodati novo prodajno mesto. Če povzamemo, kaj prikazuje:
- Najprej vnesite naslov vtičnice v polje Naslov
- Kliknite ali se dotaknite zunaj polja Naslov, da programu omogočite, da preveri, ali naslov že obstaja. Ne morete imeti naslovov z istim imenom
- Po potrditvi sta omogočena gumba za vklop in kodo za vklop.
- Pritisnite in držite gumb za vklop na daljinskem upravljalniku, ki ste ga dobili, in hitro kliknite gumb za vklop kode na vmesniku. Držite gumb na daljinskem upravljalniku, dokler binarna koda ne zapolni sosednjega polja.
- Ponovite prejšnji korak za kodo OFF.
- Kliknite V redu in zdaj ste pripravljeni zamenjati to vtičnico!
Kot je bilo omenjeno v uvodu, projekt ni 100% dokončan za mojo lastno uporabo. Največja komponenta, ki jo moram dokončati in implementirati, je zmožnost načrtovanja. Načrtujem, da uporabniku omogočim izdelavo urnika, ki bi omogočal samodejni vklop in izklop trgovin ob določenem času.
5. korak: Odpravljanje napak in datoteka RxTx.py
Edina znana omejitev sistema je, da obstaja možnost nezdružljivosti med različnimi prodajalci. Koda za vklop in izklop sta 25 bitov za moj sistem, in če ima sistem drugačno dolžino sporočila, ni takoj združljiv s tem projektom. Če ste natančno upoštevali navodila in imate še vedno težave pri tem, da bi to delovalo, bi bil naslednji način najboljši način za odpravljanje napak.
-
Prepričajte se, da je na vašem Pi nameščen matplotlib. To lahko storite tako, da v terminal Pi vnesete naslednje:
-
python3
-
uvoz matplotlib
- Če se prikaže napaka, morate namestiti matplotlib.
-
Zapustite lupino python z uporabo
izhod ()
-
-
Če želite namestiti matplotlib, vnesite
sudo pip3 namestite matplotlib
- v terminal
- Prenesite priloženo datoteko test.py in jo postavite poleg datoteke RxTx.py na svoj Pi
- Odprite terminal python in spremenite imenik v mapo comm.
-
Vrsta
python3 test.py
- Ko piše "** Začetek snemanja **", pritisnite in držite gumb za vklop ali izklop na daljinskem upravljalniku, dokler se snemanje ne konča.
- Program bo naložil sliko matplotlib, ki je podobna zgornji. Povečajte, dokler ne vidite ponavljajočega se signala, kot je prikazano na zgornjih fotografijah.
- Preštejte skupno logično 1 in logično 0 za vsako sporočilo, pri čemer je sporočilo ena ponovitev zgoraj opisanega ponavljajočega se signala. Če je skupno 25, datoteka RxTx.py verjetno ni kriva. Če naletite na kaj drugega kot 25, komentirajte spodaj, jaz pa bom datoteko RxTx.py preoblikoval v bolj odprto (ali pa se preizkusite).
Kaj, če ne vidim ponavljajočega se signala?
Če ne vidite ponavljajočega se signala, je ena od dveh stvari narobe. Najprej preverite, ali so vse vaše mostične povezave pravilno izvedene. Če je vse videti dobro, imate morda slab sprejemnik. Ste kupili tistega, ki sem ga predlagal? Ko sem kupil svoj prvi sprejemniški čip, je bilo zelo hrupno. Tako hrupno, da nisem mogel dobiti jasnega signala. Nato sem vrnil ta čip in vzel tistega, ki sem ga povezal, in ne bi mogel bolje delovati.
6. korak: Uživajte
Veste, da lahko vklopite/izklopite vtičnice iz telefona, tabličnega računalnika, računalnika ali druge spletne naprave! Sporočite mi, kaj mislite v komentarjih!
Priporočena:
DIY Kako nadzirati kot servo motorja s pomočjo komponente Visuino Sequence: 10 korakov
DIY Kako nadzirati kot servo motorja s pomočjo komponente Visuino Sequence: V tej vadnici bomo uporabili Servo Motor in Arduino UNO ter Visuino za nadzor kota servo motorja s pomočjo komponente sekvence. Komponenta zaporedja je kot nalašč za situacije, ko želimo sprožiti več dogodkov v zaporedju v našem primeru servo motor degr
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči): 6 korakov
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči): Upravljajte poceni omrežne vtičnice 433MHz (stenske vtičnice) z uporabo Raspberry Pi. Pi se lahko nauči kontrolnih kod, ki jih oddaja daljinski upravljalnik vtičnic, in jih z uporabo programskega nadzora aktivira katero koli ali vse oddaljene vtičnice po hiši
DIY tester vtičnice, sprejemna soba mora: 12 korakov
DIY tester vtičnice, sprejemna soba mora: Takoj po dekoriranju hiše ste morda zaskrbljeni, delavec iz vtičnice ne bo priključil napačne linije, da bi mi zaračunal, ali puščanje ni zaščiteno. Brez skrbi, zdaj naredimo tester vtičnice, ki natančno zazna vrstni red nogavic v žici
Kako napajati avgustovo ključavnico iz stenske vtičnice?: 7 korakov (s slikami)
Kako napajati avgustovo pametno ključavnico iz stenske vtičnice?: Pred kratkim je moj oče kupil avgustovsko pametno ključavnico in jo namestil na naša garažna vrata. Težava je v tem, da deluje na baterijo in moj oče ne želi skrbeti, da bi baterijo menjaval zelo pogosto. Tako se je odločil za napajanje avgustovske pametne ključavnice od zunaj
Kako: Nadzirati hitrost motorja?: 5 korakov (s slikami)
Kako: Nadzor hitrosti motorja ?: Če imate na voljo nekaj enosmernih motorjev, se najprej spomnite, kako bom nadzoroval hitrost teh motorjev! V tem navodilu bom pokazal, kako enostavno je to storiti! počutite se leni, videoposnetek si lahko ogledate na mojem kanalu tudi Huge Tha