Sadržaj:

Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice): 6 koraka
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice): 6 koraka

Video: Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice): 6 koraka

Video: Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice): 6 koraka
Video: Network Topologies (Star, Bus, Ring, Mesh, Ad hoc, Infrastructure, & Wireless Mesh Topology) 2024, Srpanj
Anonim
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice)
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice)
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice)
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice)
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice)
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice)
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice)
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (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 s daljinskog upravljača utičnica i koristiti ih pod programskom kontrolom za aktiviranje bilo koje ili svih udaljenih utičnica po kući.

Dizajn se ne oslanja na vanjsko internetsko povezivanje (tj. "Internet stvari") i stoga je (IMHO) mnogo sigurniji od internetskih kontrolera. Ipak, pokušao sam se integrirati s Google Homeom, ali brzo sam izgubio volju za životom kad je ponekad potrebno nekoliko desetaka sekundi za izvršavanje naredbi ili ih uopće nije bilo.

Očigledna primjena u vrijeme Božića je upravljanje svjetlima božićnog drvca i (ako ste tako skloni) vanjskim svjetlima zaslona. Iako je to jednostavna upotreba, izgradnjom ovog Instructable -a završit ćete sa super fleksibilnim kontrolerom utičnica koji može reagirati na ulaze senzora i na druge uređaje na vašoj kućnoj mreži, poput Raspberry Pis -a koji pokreće Linux Motion.

Na primjer, imam set kuhinjskih svjetala koji se pale kad kamera s pokretom detektira kretanje u kuhinji, a zatim ih isključuje nakon pet minuta bez aktivnosti. Radi jako dobro!

Pomoću 'Tasker' i 'AutoTools SSH' iz trgovine Google Play možete postaviti sve vrste elegantnih daljinskih upravljača na telefonu.

Projekt se oslanja na jeftine prijemne i odašiljačke ploče od 433MHz koje su široko dostupne na eBayu. Oni su kompatibilni s (barem u Velikoj Britaniji) daljinskim utičnicama na daljinskom upravljaču od 433 MHz koje se prodaju s daljinskim upravljačima. Moj projekt uključuje prijemnik tako da se novi i naredbeni daljinski upravljači mogu lako i brzo ugraditi. Treba napomenuti jednu stvar - čini se da daljinske utičnice dostupne u Velikoj Britaniji dolaze u dvije varijante - one s ID -om programiranim prekidačem na utičnici i one koje se oslanjaju na programiranje s daljinskog upravljača. Ovaj je projekt kompatibilan s obje, ali prvi ne gube svoj identitet zbog nestanka struje i stoga su poželjniji.

Projekt koristi staru kutiju usmjerivača - imam ih nekoliko i vrlo zgodno imaju većinu potrebnih vanjskih konektora, kao što su napajanje, ethernet, USB i antene. Ono što ćete koristiti ovisit će o tome što imate na raspolaganju pa je ovaj Instructable vjerojatno korisniji kao opći vodič, a ne skup uputa korak po korak.

Iako nije strogo potrebno za ovaj projekt, dodao sam i ventilator za hlađenje i upravljačku ploču. Bez ventilatora, Pi se može prilično zagrijati (oko 60 ° C). Pojedinosti se mogu navesti u kasnijim uputama.

Moram napomenuti da nisam programer. Softver je (uglavnom) napisan na Pythonu, a pametne stvari kopiraju se od ljudi koji znaju što rade. Priznao sam izvore gdje mogu - ako sam neke propustio, obavijestite me i ispravit ću tekst.

Instructable pretpostavlja neke sposobnosti lemljenja i usputno poznavanje Pythona, Basha i razgovora s vašim Pi -om putem SSH -a (iako ću pokušati učiniti upute što je moguće opsežnijim). Također je napisano na britanskom engleskom, pa ako čitate s druge strane ribnjaka, zanemarite dodatna slova u riječima i čudne nazive za stvari (kao što su "mrežne utičnice", koje ćete znati kao nešto poput "zidne utičnice").

Svi komentari, predložena poboljšanja i upotrebe itd. Također su dobrodošli!

Korak 1: Priprema slučaja

Priprema slučaja
Priprema slučaja
Priprema slučaja
Priprema slučaja
Priprema slučaja
Priprema slučaja

Za ovaj projekt koristio sam stari usmjerivač TP-Link TD-W8960N. Lijepe je veličine i kad sam već smislio kako ući u nju, prilično je lako raditi na njoj.

Također sam zadržao napajanje usmjerivača 12v @ 1A, koje je malo pod naponom, ali u praksi je u redu za ovu aplikaciju.

Otvaranje kućišta odnosi se na uklanjanje dva vijka na dnu kućišta, a zatim pomoću alata za otjecanje oko ruba kućišta kako biste olakšali otvaranje kopči. Dva vijka nalaze se ispod gumenih nožica na stražnjoj strani kućišta (vidi crvene strelice). Najteže se otvaraju isječci s prednje strane, ali imao sam vjere i sagnuli su se do mog alata.

Nakon što se kućište otvori, otpustite dvije matice na priključcima antene i ploča se može izvaditi.

Kako ćete kasnije koristiti obje antene, odspojite koaksijalne vodiče na ploči i postavite ih na jednu stranu.

Ako se osjećate hrabro (kao što sam i ja bio), možete ukloniti prekidač za potiskivanje, DC utičnicu i RJ45 utičnicu s ploče. Najbolji način na koji sam to učinio je da stegnem ploču u porok i zagrijavam toplinski pištolj dok cijenim s odgovarajućim alatom za otvaranje tankog kućišta ili odvijačem. Logika je da se svi spojevi za lemljenje tope u isto vrijeme, smanjujući ukupni toplinski stres na plastičnom kućištu komponente u usporedbi s upotrebom lemilice na svakom spoju. Bar je to teorija. U praksi je u pitanju malo sreće! Koliko će topline primijeniti stvar je prosuđivanja, ali budite oprezni i griješite na strani premalo. Ako sve bude u redu, završit ćete s upotrebljivim komponentama prikazanim na fotografiji (međutim primijetit ćete istopljenu tipku prekidača i blago deformiranu traku utičnice RJ45!).

U suprotnom, Internet će kupiti vaše dijelove.

Korak 2: Popis dijelova

Raspberry Pi - Sumnjam da će bilo koji okus biti dovoljan, ali koristila sam 3B+

Ploča odašiljača 433MHz - potražite na eBayu 'RF odašiljač od 433MHz s kompletom prijamnika za Arduino Arm Mcu Wireless' ili slično

433MHz prijemna ploča - isto tako Obično 1,98 GBP po paru

LM2596 Buck regulator - eBay, obično 1,95 GBP. Za pretvaranje snage 12v u 5v za Pi

Svjetlosna cijev - potražite na eBayu 'Optički kabel - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3 mm Dia - Svjetlosni vodič' - koristio sam cijev od 2 mm, ali s 1,5 mm bi bilo lakše raditi (platio sam £ 2,95 za 1 m)

2 -polni minijaturni prekidač (lijepo imati, ali opcionalno)

USB utičnica za lemljenje 180 ° za spajanje - putem eBay -a deset sam platio 1,90 funti

Prekidač s dva pola (lijepo imati, ali izborno) - ja sam svoj dobio od modema/ploče usmjerivača

RJ45 utičnica (e) - oporavljene s ploče modema/usmjerivača

Utičnica za istosmjerno napajanje - putem eBay -a (utičnica za priključivanje 10X istosmjernog napajanja, ženski priključak za montažu na ploču 5,5 x 2,1 mm 0,99 GBP)

430MHz antene - pretvorite 2GHz antene modema/usmjerivača

12v dc 12W napajanje (minimalno) - idealno, ovo će doći s modemom/usmjerivačem. Ako ne, morate biti sigurni da gornja utičnica za istosmjernu struju odgovara onoj koju koristite. Zahtjev za 12v određuje odašiljač na 433MHz

Dijelovi za mod ventilatora za hlađenje bit će detaljno opisani u kasnijim uputama.

Korak 3: Potrošni materijal i alati

Trebat će vam sljedeći potrošni materijal:

Lemljenje (po potrebi)

Ljepilo za topljenje (po potrebi)

Spojite žicu - (npr.) 22 i 24AWG (prema potrebi)

Termoskupljajuća navlaka (prema potrebi)

Žrtvena mačka. 5 Ethernet patch kabel

Žrtveni USB 2 patch kabel.

Alati:

Skidači žica

Rezači žice (po mogućnosti rezači u ravnini)

Nagradni alat

Odgovarajući odvijač za rastavljanje kućišta.

Lemilica

Pištolj za ljepilo

Sušilo za kosu (za savijanje svjetlosnih cijevi i za sve improvizirane frizerske prekide)

433MHz FM komunikacijski prijemnik (opcionalno - za rješavanje problema s odašiljačem) - (npr.) AR1000

Korak 4: Montaža

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

Način sastavljanja Pi i pomoćnih ploča ovisi o slučaju koji koristite. Fotografije pokazuju što sam učinio.

Pi se nalazi otprilike u sredini kućišta, dopuštajući dovoljno prostora za upotrebu različitih priključaka (imajte na umu da se HDMI ne koristi jer se s Pi komunicira putem SSH -a (tj. "Bez glave").

Pričvrstio sam Pi na podlogu pomoću nekoliko spašenih plastičnih zatvarača (vidi fotografiju). Budući da kutija nije namijenjena za prijenosnu upotrebu, možete se izvući samo pomoću dva pričvršćivača. Možete jednostavno upotrijebiti vijke od 2,5 mm s odvajačima ili čak i topljivo ljepilo (koje sam već koristio-samo pazite da ne koristite previše i izbjegavajte bilo kakve komponente za površinsko montiranje s donje strane jer ćete neizbježno imati da biste u neko vrijeme uklonili ploču (prvi zakon izgradnje - morat ćete je rastaviti)).

Upotrijebio sam vruće ljepilo za pričvršćivanje različitih ploča sa strana kućišta. Primjenjuju se ista razmatranja kao gore.

Kad sve bude na svom mjestu, možete povezati stvari.

Blok dijagram prikazuje shemu ožičenja koju sam koristio. Imajte na umu da koristim opcijski prekidač za izmjenjivanje napajanja između odašiljača i prijemnika - vjerojatno postoji mali rizik od toga, ali nisam htio pržiti prijemnik prilikom odašiljanja.

Također mi je palo na pamet da se potisni prekidač mogao upotrijebiti za elegantno isključivanje Pi -a (na internetu postoji niz dizajna). Nisam se trudio - u ovom slučaju djeluje kao jednostavan prekidač za uključivanje/isključivanje. Moram samo paziti da isključim Pi putem SSH -a prije nego pritisnem prekidač.

Primijetit ćete svjetlosne cijevi koje se koriste za usmjeravanje svjetla s dvije LED diode na Pi i sa LED statusa napajanja prema prednjoj strani kućišta. Za savijanje cijevi koristila sam toplinu iz sušila za kosu (definitivno NE ŽELITE koristiti toplinski pištolj!). To je vrlo pokušaj i pogreška, ali na kraju vrijedi jer možete izravno vidjeti što LED signaliziraju, a ne oslanjati se na softver i vanjske LED diode. Naravno, to je vaš izbor. Rezanje cijevi vrši se oštrim parom rezača žice (rezači u ravnini su najbolji), ali možete koristiti i oštre škare. I opet se topljivo ljepilo može upotrijebiti za učvršćivanje cijevi na mjestu, ali pazite da koristite samo malu količinu - koja se brzo hladi - jer ljepilo može iskriviti cijevi.

Idealno bi bilo da promijenite antene. Obično će biti veličine za rad na 2GHz i bit će vrlo neučinkovite antene kada se koriste na 433MHz.

Da biste to učinili, najprije uklonite poklopac antene kako biste otkrili žicu antene. Mislim da sam imao sreće jer se poklopac skinuo sa svake antene sa samo malom vrijednošću.

Izrežite gdje je prikazano kako biste uklonili originalnu 2GHz antenu i otkrili suosjeku. Pažljivo pristupite unutarnjoj jezgri, uklonite pletenicu i lemite je na novi komad žice kako je prikazano. Duljina nove žice je otprilike 1/4 valne duljine od 433MHz (tj.) Duljina = 0,25 * 3E8/433E6 = 17 cm. Donji dio može se namotati pomoću male bušilice ili slično kako bi cijela duljina stala u poklopac antene.

Prije ponovnog sastavljanja provjerite nema li kratkog spoja između unutarnjih i vanjskih kontakata antene.

Samo sam izmijenio odašiljačku antenu jer je prijemnik 'gluh' vjerojatno koristan pri učenju kodova RF daljinskog upravljača (vidi kasnije).

Ethernet veza ostvaruje se ožičenjem žrtvenog Cat -a. 5 spojite kabel u utičnicu RJ45 spašenu iz modema. Odrežite kabel tako da odgovara udaljenosti između utičnice Pi ethernet i utičnice kućišta RJ45 i ogolite svih osam žica. Upotrijebite ispitivač kontinuiteta kako biste osigurali da žicu kabela 1 povežete s iglom 1 utičnice itd. Jednostavan način za to je da spojite utikač u utičnicu na koju ožičite i zvonite između kontakata utičnice i golih krajeva kabela. Budući da se koristi samo jedna od četiri vanjske utičnice RJ45, označite ožičenu utičnicu u skladu s tim kako biste kasnije izbjegli neugodne pogreške.

Isto tako, USB konektor ožičen je pomoću žrtvenog USB 2 patch kabela, ožičenog pina 1 do pina 1 itd. USB konektor vanjskog svijeta vruće je zalijepljen na mjesto na kućištu, koristeći otvor u kućištu ostavljen uz utičnicu telefonske linije.

Korak 5: Napomene odašiljača

Napomene o odašiljaču
Napomene o odašiljaču
Napomene o odašiljaču
Napomene o odašiljaču
Napomene o odašiljaču
Napomene o odašiljaču

Ploče za odašiljanje i primanje od 433MHz koje sam koristio sveprisutne su na internetu, a kako su tako jeftine, naručio sam po dva para (kako bi se omogućilo eksperimentalno podizanje). Otkrio sam da su prijemnici pouzdani, ali je odašiljač koji sam koristio morao promijeniti da bi radio pouzdano.

Krug odašiljača FS1000A koji sam kupio* prikazan je na dijagramu. Pokušajem i pogreškom sam otkrio da je potrebno postaviti 3pF kondenzator u položaj C1 SoT (odaberi na testu) kako bi stvar radila. Budući da imam širokopojasni prijemnik koji pokriva 430MHz, bilo je relativno lako riješiti problem. Zanimljivo je pitanje kako biste mogli testirati bez prijemnika …

*Napomena: Kupio sam drugu seriju odašiljača nakon što nisam uspio pokrenuti prva dva. Njima je svima nedostajala zavojnica kolektora. Hmmm!

Imao sam 3pF kondenzator u kutiji za smeće, ali to neće biti slučaj za većinu ljudi, pretpostavljam da bi u svakom slučaju potrebna vrijednost mogla biti veća, recimo 7pF. Gruba zamjena može se izvršiti s dva bitova upletene žice (kabel od upletenog para mojih poznanika ima kapacitet od oko 100pF po stopi kako bi vam dao vodič po dužini), ali se ne preporučuje jer se mogu pojaviti drugi problemi. Nadajmo se da ćete imati sreće i da nećete imati takvih problema. Uvijek ste mogli kupiti skuplji (i stoga vjerojatno) bolje izrađen odašiljač.

Također imajte na umu da frekvencija odašiljača nije vrlo precizna ili stabilna, ali u praksi je bila dovoljno dobra za pouzdano upravljanje udaljenim utičnicama.

Također imajte na umu da provučena rupa uz riječ 'ANT' na odašiljaču NIJE priključak antene - to je ona u kutu bez oznaka (vidi fotografiju). Ovo je bila moja prva greška …

Pin veza koja je korisno označena s "ATAD" trebala bi zapravo glasiti "DATA".

Korak 6: Pregled softvera

Pregled softvera
Pregled softvera

Imajte na umu da ja nisam programer. Kao što je ranije rečeno, pametne stvari su tuđi kod, ali ja znam dovoljno da ga uhvatim i prilagodim kako bi radio zajedno. Ovo je ujedno i prvi Instructable koji sam objavio s kodom, pa se ispričavam ako sam pogriješio! Ako imate pitanja, imajte to na umu…

Osnovni softver koji sam koristio je sljedeći:

  • Raspbian Stretch Lite
  • PiGPIO (fantastična biblioteka za upravljanje servo pogonima itd.)
  • _433.py kôd (za kodiranje i dekodiranje RF kontrolnih kodova) - na koji se povezuje s web stranice PiGPIO.
  • Python3 (dolazi s Raspbian -om)

Dodatni softver koji koristim:

  • pyephem (izračunava zoru i sumrak - korisno za prebacivanje svjetla)
  • Izvrsni 'Tasker' i 'AutoTools SSH' za stvaranje daljinskog upravljača na mojem Android telefonu - pogledajte fotografiju (obje su dostupne u trgovini Google Play). [Kako stvoriti „scenu“Taskera izvan je opsega ovog Instructable -a jer postoji prilično strma krivulja učenja, ali rado ću razgovarati o tome što sam učinio]

Moj vlastiti kod (u Pythonu). Grubo, ali funkcionalno:

  • tx.py - softver za argumentiranje izbornika i/ili naredbenog retka koji šalje odgovarajući kod odašiljaču na 433MHz.
  • zora -sumrak - izračunava zoru i sumrak na mojoj lokaciji i ažurira korisničku crontab (koristi se za svjetla božićnog drvca itd.)

Gore navedenom osobnom kodu može se pristupiti putem GitHub -a:

Funkcionalnost projekta osigurava kod PiGPIO i _433.py. Potonji ima funkciju primanja koja osluškuje naredbe daljinskog upravljača s vašeg RF daljinskog upravljača na 433MHz i dekodira vremenske impulse, proizvodeći izlaz koji se može pohraniti za kasniju upotrebu pomoću funkcije odašiljanja. To omogućuje sustavu učenje bilo kojeg 'normalnog' 433MHz RF daljinskog upravljača. U načelu se također može koristiti za učenje daljinskih upravljača vašeg susjeda. Ne bih to savjetovao jer susjedi rijetko vide smiješnu stranu nasumičnog zvonjenja na vratima. Ne bih.

Postaviti

Budući da se Pi u ovoj aplikaciji pokreće 'bez glave' (tj.) Bez monitora ili tipkovnice, morate s njim razgovarati putem ssh -a. Dostupno je mnogo vodiča koji opisuju kako postaviti Pi bez glave, ali da stvari budu jednostavne, pretpostavit ću da prvo pokrenete Pi s monitorom i tipkovnicom. Nakon pokretanja pokrenite terminal i unesite 'sudo raspi-config'. Odaberite '5. Opcije sučelja ', a zatim' P2 SSH '. Omogućite ssh poslužitelj i zatvorite raspi-config (što će vjerojatno završiti ponovnim pokretanjem).

Naknadne komunikacije s Pi -om tada se mogu voditi s udaljenog terminala putem ssh -a. Imajte na umu da kôd ne zahtijeva fiksnu LAN IP adresu za Pi, ali svakako pomaže (i svakako je potrebno ako se pozabavite kontrolom Taskera). Opet, na mreži postoji mnogo vodiča koji opisuju kako to učiniti. Moj kućni usmjerivač dopušta mi da dodijelim fiksnu IP adresu Pi -ovoj MAC adresi, pa to činim na taj način, umjesto uređivanjem Pi -jevih postavki.

Instaliranje PiGPIO:

ssh u Pi i unesite sljedeće naredbe:

sudo apt ažuriranje

sudo apt install pigpio python-pigpio python3-pigpio

sudo apt install git

git klon

sudo apt install python3-RPi. GPIO

Da biste pokrenuli PiGPIO pri pokretanju:

crontab -e

dodajte sljedeći redak:

Nabavite Python kod za prijenos i dekodiranje 433MHz RF daljinskih kodova:

wget

raspakirajte _433_py.zip

Premjestite raspakiranu datoteku _433.py u odgovarajući direktorij (npr.) ~/Software/apps

Kucanje (u tom direktoriju)

_433.py

postavlja Pi u mod 433 rx, čekajući demodulirane kodove RF daljinskog upravljača na GPIO pin 38.

S priključenim prijemnikom od 433 MHz, kada se u blizini koristi daljinski upravljač od 433 MHz, na ekranu će se vidjeti nešto poput sljedećih podataka:

kôd = 5330005 bita = 24 (jaz = 12780 t0 = 422 t1 = 1236)

Ti se podaci koriste u vašem Python programu za regeneraciju prijenosa s daljinskog upravljača.

Da biste ove podatke prenijeli u datoteku za kasniju upotrebu, pokrenite:

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

Nakon što dobijete podatke, sljedeći korak je korištenje njih za uređivanje koda 'tx.py' koji možete kopirati iz mog spremišta GitHub. Ovaj kôd koristi podatke za generiranje valnih oblika koje razumije udaljena utičnica (e) za prijenos od odašiljača na 433MHz. Nadamo se da će potrebna uređivanja biti razumljivo očita, a ostalo je na vama …

Preporučeni: