Kazalo:

Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči): 6 korakov
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči): 6 korakov

Video: Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči): 6 korakov

Video: Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči): 6 korakov
Video: Časopis Vidi 204 2024, December
Anonim
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči)
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči)
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči)
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči)
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči)
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči)
Raspberry Pi RF daljinsko vodene vtičnice (napajalni vtiči)
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 uporabi pod programskim nadzorom za aktiviranje katere koli ali vseh oddaljenih vtičnic po hiši.

Zasnova se ne opira na zunanjo internetno povezljivost (tj. "Internet stvari") in je zato (IMHO) veliko bolj varna kot spletni krmilniki. Kljub temu sem poskusil integracijo z Googlom Home, vendar sem hitro izgubil voljo do življenja, ko so ukazi včasih trajali več deset sekund ali pa se sploh niso izvajali.

Očitna aplikacija v času božiča je nadzor lučk božičnega drevesa in (če ste tako nagnjeni) zunanjih luči zaslona. Čeprav je to preprosta uporaba, boste z izdelavo tega Instructable -a na koncu dobili zelo prilagodljiv krmilnik vtičnic, ki se lahko odzove na vhode senzorjev in na druge naprave v vašem domačem omrežju, na primer Raspberry Pis, ki izvaja Linux Motion.

Na primer, imam niz kuhinjskih luči, ki se prižgejo, ko kamera z "Motion" zazna gibanje v kuhinji in jih po petih minutah brez aktivnosti izklopi. Deluje res dobro!

Z »Taskerjem« in »AutoTools SSH« iz trgovine Google Play lahko nastavite vse vrste domiselnih daljinskih upravljalnikov na telefonu.

Projekt temelji na poceni sprejemniških in oddajnih ploščah 433MHz, ki so na voljo na eBayu. Ti so združljivi z (vsaj v Združenem kraljestvu) 433MHz daljinskim omrežjem, ki se prodaja z daljinskim upravljalnikom. Moj projekt vključuje sprejemnik, tako da lahko enostavno in hitro vključite nove nabore ukazov za daljinsko upravljanje. Treba je opozoriti, da so v Združenem kraljestvu na voljo oddaljene vtičnice v dveh različicah - tiste z ID -jem, ki je programiran s stikalom na vtičnici, in tiste, ki so odvisne od programiranja z daljinskega upravljalnika. Ta projekt je združljiv z obema, vendar prvi ne izgubita svoje identitete zaradi izpada električne energije in so zato zaželeni.

Projekt uporablja staro ohišje usmerjevalnika - nekaj jih imam in zelo priročno imajo večino potrebnih zunanjih priključkov, kot so napajanje, ethernet, USB in antene. Kaj boste uporabili, je odvisno od tega, kaj imate na voljo, zato je ta Instructable verjetno bolj uporaben kot splošni priročnik in ne kot navodila po korakih.

Čeprav za ta projekt ni nujno potrebno, sem dodal tudi hladilni ventilator in krmilno ploščo. Brez ventilatorja se lahko Pi precej segreje (približno 60 ° C). Podrobnosti so lahko navedene v kasnejših navodilih.

Moram omeniti, da nisem programer. Programska oprema je (večinoma) napisana v Pythonu, pametne stvari pa kopirajo ljudje, ki vedo, kaj počnejo. Priznala sem vire, kjer lahko - če sem kakšnega zamudila, mi to sporočite in besedilo bom popravila.

Instructable predvideva nekaj sposobnosti spajkanja in mimogrede poznavanje Pythona, Basha in pogovor z vašim Pi prek SSH (čeprav bom poskušal narediti navodila čim bolj obsežna). Napisano je tudi v britanski angleščini, zato, če berete na drugi strani ribnika, ne upoštevajte dodatnih črk v besedah in čudnih imen stvari (na primer "vtičnice", ki jih poznate kot nekaj podobnega "stenske vtičnice").

Prav tako so dobrodošli vsi komentarji, predlagane izboljšave in uporabe itd.!

1. korak: Priprava primera

Priprava primera
Priprava primera
Priprava primera
Priprava primera
Priprava primera
Priprava primera

Za ta projekt sem uporabil stari usmerjevalnik TP-Link TD-W8960N. Je lepe velikosti in ko sem se odločil, kako priti vanjo, je precej enostavno delati.

Ohranil sem tudi 12v @ 1A napajalnik usmerjevalnika, ki je malo pod napetostjo, v praksi pa je v redu za to aplikacijo.

Odpiranje ohišja je posledica odstranjevanja dveh vijakov na dnu ohišja in nato z orodjem za luščenje po robu ohišja, da olajšate odpiranje sponk. Dva vijaka sta pod gumijastimi nogami na zadnji strani ohišja (glej rdeče puščice). Najtežje odpreti posnetke spredaj, vendar sem imel vero in so se upognili k mojemu orodju.

Ko je ohišje odprto, odvijte dve matici na antenskih priključkih in vezje lahko dvignete.

Ker boste pozneje uporabljali obe anteni, odpakirajte koaksialne kable na vezju in jih postavite na eno stran.

Če se počutite pogumno (kot sem bil jaz), lahko s tiskanega vezja odstranite potisno stikalo, vtičnico dc in vtičnico RJ45. Najboljši način, ki sem ga izvedel, je, da ploščo vpeljem v primež in segrejem iz toplotne pištole, pri tem pa cenim s primernim orodjem za odpiranje tankega ohišja ali izvijačem. Logika je, da se vsi spajkalni priključki istopijo hkrati, kar zmanjša splošno toplotno obremenitev plastičnega ohišja komponente v primerjavi z uporabo spajkalnika na vsakem stiku. Vsaj to je teorija. V praksi gre za nekaj sreče! Koliko toplote je treba uporabiti, je stvar presoje, vendar bodite previdni in se motite pri premajhni količini. Če bo vse v redu, boste na koncu dobili uporabne komponente, prikazane na fotografiji (opazili pa boste staljeni gumb stikala in rahlo deformiran vtič RJ45!).

V nasprotnem primeru bo internet kupil vaše koščke.

2. korak: Seznam delov

Raspberry Pi - Sumim, da bo kakšna aroma, vendar sem uporabil 3B+

Oddajna plošča 433MHz - poiščite na eBayu '433MHz RF oddajnik s sprejemnikom za Arduino Arm Mcu Wireless' ali podobno

Sprejemna plošča 433MHz - enako Običajno 1,98 GBP na par

LM2596 Regulator denarja - eBay, običajno 1,95 £. Za pretvorbo 12v moči v 5v za Pi

Light pipe - poiščite na eBayu 'Optični kabel - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3 mm Dia - svetlobni vodnik' - uporabil sem 2 mm cev, vendar bi bilo z 1,5 mm lažje delati (plačal sem £ 2,95 za 1 m)

2 -polno miniaturno stikalo (lepo imeti, vendar neobvezno)

Spajkalna vtičnica USB tipa A 180 ° - prek eBaya sem za deset plačal 1,90 funtov

Dvopolno potisno stikalo (lepo imeti, vendar neobvezno) - svojega sem dobil s plošče modema/usmerjevalnika

Vtičnice (e) RJ45 - obnovljene s plošče modema/usmerjevalnika

Vtičnica za enosmerni tok - prek eBay -a (10X vtičnica za napajanje z enosmernim tokom, ženski priključek za pritrditev na ploščo 5,5 x 2,1 mm 0,99 £)

430MHz antene - pretvorite 2GHz antene modema/usmerjevalnika

12v dc 12W napajanje (minimalno) - v idealnem primeru bo to priloženo modemu/usmerjevalniku. V nasprotnem primeru se morate prepričati, da vtičnica za enosmerni tok zgoraj ustreza tisti, ki jo uporabljate. Zahtevo 12v določa oddajnik 433MHz

Deli za mod ventilatorja za hlajenje bodo podrobneje opisani v kasnejših navodilih.

3. korak: Potrošni material in orodja

Potrebovali boste naslednji potrošni material:

Spajkanje (po potrebi)

Vroče topljeno lepilo (po potrebi)

Povežite žico - (npr.) 22 in 24AWG (po potrebi)

Termoskrčljivi tulec (po potrebi)

Žrtveni maček. 5 ethernet priključni kabel

Žrtveni priključni kabel USB 2.

Orodja:

Odstranjevalci žice

Rezalniki za žice (po možnosti z rezalniki)

Nagrajevalno orodje

Primeren izvijač za razstavljanje ohišja.

Spajkalnik

Pištola za lepilo

Sušilec za lase (za upogibanje svetlobnih cevi in za kakršne koli improvizirane frizerske prekinitve)

433MHz FM komunikacijski sprejemnik (neobvezno - za odpravljanje težav z oddajnikom) - (npr.) AR1000

4. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Kako sestavite Pi in pomožne plošče, je odvisno od primera, ki ga uporabljate. Fotografije prikazujejo, kaj sem naredil.

Pi leži približno na sredini ohišja in omogoča dovolj prostora za uporabo različnih priključkov (upoštevajte, da se HDMI ne uporablja, saj se s Pi komunicira prek SSH (tj.) Brez glave).

Pi sem pritrdil na podlago z nekaj rešenimi plastičnimi pritrdilnimi elementi (glej fotografijo). Ker škatla ni namenjena prenosni uporabi, se lahko izognete le z uporabo dveh pritrdilnih elementov. Z lahkoto lahko uporabite 2,5-milimetrske vijake s stojnicami ali celo vroče topljeno lepilo (kar sem že uporabljal v preteklosti-pazite, da ga ne uporabljate preveč in se izogibajte kakršnim koli površinskim montažnim komponentam na spodnji strani, saj boste neizogibno imeli če želite ploščo kdaj odstraniti (prvi zakon gradnje - morali jo boste razstaviti)).

Za pritrditev različnih plošč na stranice ohišja sem uporabil vroče lepilo. Veljajo enaki pomisleki kot zgoraj.

Ko je vse na svojem mestu, lahko stvari povežete.

Blok diagram prikazuje shemo ožičenja, ki sem jo uporabil. Upoštevajte, da uporabljam izbirno stikalo za izmenično napajanje med oddajnimi in sprejemnimi ploščami - verjetno obstaja majhno tveganje za to, vendar sprejemnika nisem hotel prepražiti.

Zdelo se mi je tudi, da bi potisno stikalo lahko uporabili za ljubek izklop Pi (na internetu je na voljo več modelov). Nisem se trudil - v tem primeru deluje kot preprosto stikalo za vklop/izklop. Paziti moram le, da izklopim Pi prek SSH, preden pritisnem stikalo.

Opazili boste svetlobne cevi, ki se uporabljajo za usmerjanje svetlobe iz dveh LED na Pi in iz LED stanja napajanja na sprednji del ohišja. Za upogibanje cevi sem uporabil toploto iz sušilnika za lase (zagotovo NE želite uporabiti toplotne pištole!). To je zelo poskus in napaka, vendar je na koncu vredno, saj lahko neposredno vidite, kaj LED signalizirajo, namesto da se zanašate na programsko opremo in zunanje LED. Seveda je vaša izbira. Rezanje cevi poteka z ostrim parom rezalnikov za žico (najboljši so rezkarji za izpiranje), lahko pa uporabite tudi ostre škarje. Ponovno lahko uporabite toplotno lepilno lepilo za pritrditev cevi na mestu, vendar pazite, da uporabite le majhno količino, ki se hitro ohladi, saj lahko lepilo izkrivi cevi.

V idealnem primeru bi morali spremeniti antene. Običajno bodo velikosti tako, da delujejo na 2 GHz in bodo pri uporabi na 433 MHz naredile zelo neučinkovite antene.

Če želite to narediti, najprej odstranite pokrov antene, da izpostavite antenski kabel. Mislim, da sem imel srečo, saj je pokrov z vsake antene prišel le z majhno nagrado.

Odrežite, kjer je prikazano, da odstranite prvotno 2GHz anteno in izpostavite soos. Previdno dostopajte do notranjega jedra, pletenico dobro odstranite in jo spajkajte na nov kos žice, kot je prikazano. Dolžina nove žice je približno 1/4 valovne dolžine 433MHz (tj.) Dolžina = 0,25 * 3E8/433E6 = 17 cm. Spodnji del je mogoče naviti z majhnim svedrom ali podobnim, da se lahko celotna dolžina prilega pokrovu antene.

Pred ponovno montažo preverite, ali ni stika med notranjo in zunanjo anteno.

Anteno oddajnika sem spremenil le kot "gluhi" sprejemnik, kar je verjetno koristno pri učenju kod za daljinsko upravljanje RF (glej kasneje).

Ethernetna povezava je vzpostavljena z ožičenjem žrtvovane Cat. 5 povežite kabel z vtičnico RJ45, rešeno iz modema. Odrežite kabel tako, da ustreza razdalji med vtičnico Pi ethernet in vtičnico ohišja RJ45 ter ogolite vseh osem žic. S testerjem neprekinjenosti zagotovite, da boste kabel 1 kabla priklopili na vtičnico 1 itd. Enostaven način za to je, da priključite konektor v vtičnico, na katero ožičite, in zazvonite med kontakti vtičnice in golimi konci kabla. Ker je v uporabi le ena od štirih zunanjih vtičnic RJ45, ustrezno označite žično vtičnico, da se kasneje izognete neprijetnim napakam.

Podobno je priključek USB ožičen z žrtvovalnim priključnim kablom USB 2, žičnim zatičem 1 do zatičem 1 itd. Priključek USB zunanjega sveta je vroče prilepljen na ohišje z uporabo luknje v ohišju, ki ga pušča telefonska vtičnica.

5. korak: Opombe oddajnika

Opombe oddajnika
Opombe oddajnika
Opombe oddajnika
Opombe oddajnika
Opombe oddajnika
Opombe oddajnika

Oddajne in sprejemne plošče 433MHz, ki sem jih uporabil, so povsod prisotne na internetu, in ker so tako poceni, sem naročil po dva para vsakega (da omogočim eksperimentalne prigrizke). Ugotovil sem, da so sprejemniki zanesljivi, vendar je bilo treba oddajnik, ki sem ga uporabil, spremeniti, da bo deloval zanesljivo.

Vezje oddajnika FS1000A, ki sem ga kupil*, je prikazano na diagramu. S poskusi in napakami sem ugotovil, da je treba kondenzator 3pF namestiti v položaj C1 SoT (izberite pri preskusu), da bo stvar delovala. Ker imam širokopasovni sprejemnik, ki pokriva 430MHz, je bilo to relativno enostavno odpraviti. Zanimivo vprašanje je, kako bi lahko preizkusili brez sprejemnika.

*Opomba: kupil sem drugo serijo oddajnikov, potem ko prva dva nista mogla delovati. Pri vseh je manjkala zbiralna tuljava. Hmmm!

V svoji škatli za smeti sem imel kondenzator 3pF, vendar za večino ljudi to ne velja, v vsakem primeru pa bi bila lahko potrebna večja vrednost, recimo 7pF. Surovo zamenjavo lahko naredite z dvema bitoma zvite žice (kabel mojega znanega zvitega para ima kapacitivnost okoli 100 pF na nogo, kar vam daje vodnik po dolžini), vendar to ni priporočljivo, saj se lahko pojavijo druga vprašanja. Upajmo, da boste imeli srečo in da ne boste imeli takšnih težav. Vedno bi lahko kupili dražji (in zato verjetno) bolje izdelan oddajnik.

Upoštevajte tudi, da frekvenca oddajnika ni zelo natančna ali stabilna, v praksi pa je bila dovolj dobra za zanesljivo delovanje oddaljenih vtičnic.

Upoštevajte tudi, da prevlečena luknja ob besedi 'ANT' na oddajniku NI antenski priključek - to je tista v kotu brez oznak (glej fotografijo). To je bila moja prva napaka …

Pin povezava, ki je koristno označena z "ATAD", bi morala dejansko prebrati "DATA".

6. korak: Pregled programske opreme

Pregled programske opreme
Pregled programske opreme

Upoštevajte, da nisem programer. Kot smo že omenili, je pametna koda drugih ljudi, vendar vem dovolj, da jo prilepim in prilagodim, da deluje skupaj. To je tudi prvi Instructable, ki sem ga objavil s kodo, zato se opravičujem, če sem naredil narobe! Če imate kakršna koli vprašanja, upoštevajte to…

Osnovna programska oprema, ki sem jo uporabil, je naslednja:

  • Raspbian Stretch Lite
  • PiGPIO (fantastična knjižnica za vožnjo servomotorjev itd.)
  • _433.py koda (za kodiranje in dekodiranje RF nadzornih kod) - povezana s spletnega mesta PiGPIO.
  • Python3 (prihaja z Raspbian)

Dodatna programska oprema, ki jo uporabljam:

  • pyephem (izračuna čas zore in mraka - uporabno za preklapljanje luči)
  • Odlična 'Tasker' in 'AutoTools SSH' za ustvarjanje daljinskega upravljalnika na mojem telefonu Android - glej fotografijo (obe sta na voljo v trgovini Google Play). [Kako ustvariti „sceno“Taskerja je zunaj področja uporabe tega navodila, saj je vključena precej strma krivulja učenja, vendar z veseljem razpravljam o tem, kar sem naredil]

Moja koda (v Pythonu). Surovo, vendar funkcionalno:

  • tx.py - programska oprema za argumentiranje menija in/ali ukazne vrstice, ki pošilja ustrezno kodo oddajniku 433MHz.
  • dawn -dusk - izračuna čas zore in mraka na moji lokaciji ter posodobi crontab uporabnika (uporablja se za lučke božičnega drevesa itd.)

Zgornja osebna koda je dostopna prek GitHub:

Funkcionalnost projekta zagotavljata koda PiGPIO in _433.py. Slednji ima sprejemno funkcijo, ki posluša ukaze daljinskega upravljalnika z vašega 433MHz RF daljinskega upravljalnika in dekodira časovne impulze, pri čemer proizvede izhod, ki ga funkcija prenosa lahko shrani za kasnejšo uporabo. To sistemu omogoča, da se nauči katerega koli "običajnega" 433MHz RF daljinskega upravljalnika. Načeloma se lahko uporablja tudi za učenje daljinskega upravljalnika vašega soseda. To bi močno odsvetoval, saj sosedje redko vidijo smešno plat naključnega zvonjenja na vratih. Ne bi.

Nastaviti

Ker se Pi v tej aplikaciji izvaja "brez glave" (tj.) Brez monitorja ali tipkovnice, se morate z njim pogovoriti prek ssh. Na voljo je veliko vodnikov, ki opisujejo, kako nastaviti Pi brez glave, vendar da bi bilo preprosto, predpostavljam, da najprej zaženete Pi z monitorjem in tipkovnico. Po zagonu zaženite terminal in vnesite 'sudo raspi-config'. Izberite '5. Možnosti vmesnika "in nato" P2 SSH ". Omogočite strežnik ssh in zaprite raspi-config (kar se bo verjetno končalo s ponovnim zagonom).

Naslednje komunikacije s Pi lahko nato vodite z oddaljenega terminala prek ssh. Upoštevajte, da koda ne zahteva fiksnega naslova IP za omrežje Pi, vendar zagotovo pomaga (in zagotovo je potrebno, če se poglobite v nadzor Taskerja). Spet je na spletu veliko vaj, ki opisujejo, kako to storiti. Moj domači usmerjevalnik mi omogoča, da dodelim fiksni naslov IP naslovu MAC Pi, zato to storim tako, ne pa z urejanjem nastavitev Pi.

Namestitev PiGPIO:

ssh v Pi in vnesite naslednje ukaze:

sudo apt posodobitev

sudo apt namestite pigpio python-pigpio python3-pigpio

sudo apt install git

git clone

sudo apt namestite python3-RPi. GPIO

Če želite zagnati PiGPIO ob zagonu:

crontab -e

dodaj naslednjo vrstico:

Pridobite Pythonovo kodo za prenos in dekodiranje 433MHz RF kod na daljavo:

wget

odpakiraj _433_py.zip

Premaknite nezapakirano datoteko _433.py v ustrezen imenik (npr.) ~/Software/apps

Tipkanje (v tem imeniku)

_433.py

postavi Pi v način 433 rx in čaka na demodulirane kode daljinskega upravljalnika RF na pin 38 GPIO.

Ko je sprejemnik 433MHz priključen, se v bližini uporablja daljinski upravljalnik 433MHz, na zaslonu pa bodo prikazani naslednji podatki:

koda = 5330005 bitov = 24 (vrzel = 12780 t0 = 422 t1 = 1236)

Ti podatki se uporabljajo v vašem programu Python za regeneracijo prenosa z daljinskega upravljalnika.

Če želite te podatke prenesti v datoteko za kasnejšo uporabo, zaženite:

_433.py> ~/software/apps/remotedata.txt

Ko dobite podatke, je naslednji korak, da z njimi uredite kodo 'tx.py', ki jo lahko kopirate iz mojega skladišča GitHub. Ta koda uporablja podatke za ustvarjanje valovnih oblik, ki jih razumejo oddaljene vtičnice, ki jih pošilja oddajnik 433MHz. Upajmo, da bodo potrebne spremembe razumljivo očitne, ostalo pa je odvisno od vas …

Priporočena: