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, Juli
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 emituju sa 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. Rekao sam da sam pokušao integraciju s Google Home -om, ali brzo sam izgubio volju za životom kada je komandama ponekad trebalo nekoliko desetina sekundi da se izvrše ili se uopće nisu izvršile.

Očigledna primjena u vrijeme Božića je kontrola svjetla božićnog drvca i (ako ste tako skloni) vanjskih svjetala ekrana. Iako je to jednostavna upotreba, izgradnjom ovog Instructable -a dobit ćete super fleksibilan utičnički kontroler 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 kada 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 zasnovanih 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 sa (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 skupovi naredbi za daljinsko upravljanje 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 projekt je 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, eternet, 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 korak po korak skup uputa.

Iako to 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). Detalji se mogu navesti u kasnijim Instructable.

Moram napomenuti da nisam programer. Softver je (uglavnom) napisan na Pythonu, a pametne stvari kopiraju ljudi koji znaju šta 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 sa vašim Pi -om putem SSH -a (iako ću pokušati učiniti upute što je moguće opsežnijim). Napisano je i na britanskom engleskom, pa ako čitate s druge strane jezera, zanemarite dodatna slova u riječima i čudne nazive za stvari (poput "utičnica za mrežu", koje ćete znati kao nešto poput „zidne utičnice“).

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

Korak 1: Priprema slučaja

Priprema predmeta
Priprema predmeta
Priprema predmeta
Priprema predmeta
Priprema predmeta
Priprema predmeta

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đe sam zadržao napajanje 12v @ 1A usmjerivača, koje je malo pod naponom, ali u praksi je u redu za ovu aplikaciju.

Otvaranje kućišta je stvar uklanjanja 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 sa prednje strane, ali imao sam vjere i sagnuli su se do mog alata.

Kada 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 potrebno malo sreće! Koliko će se 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 istopljeno dugme prekidača i blago deformiranu traku utičnice RJ45!).

U suprotnom, s interneta ćete kupiti vaše dijelove.

Korak 2: Lista dijelova

Raspberry Pi - Sumnjam da će bilo koja aroma biti dovoljna, ali sam koristio 3B+

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

433MHz prijemna ploča - isto. 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 1m)

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

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

Dvopolni prekidač (lijepo imati, ali opcionalno) - ja sam svoj dobio od modema/ploče usmjerivača

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

Utičnica za istosmjernu struju - preko eBay -a (utičnica za priključivanje 10X DC napajanja, ženski priključak za montažu na ploču 5,5 x 2,1 mm 0,99 £)

430MHz antene - pretvorite 2GHz antene modema/rutera

12v dc 12W napajanje (minimalno) - idealno, ovo dolazi s modemom/usmjerivačem. Ako ne, morate biti sigurni da gornja utičnica za istosmjernu struju odgovara onoj koju koristite. Zahtev za 12v određuje predajnik od 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)

Žica za međusobno povezivanje - (npr.) 22 i 24AWG (prema potrebi)

Termoskupljajuća navlaka (po potrebi)

Žrtvena mačka. 5 Ethernet patch kabla

Žrtveni USB 2 patch kabel.

Alati:

Strojevi za skidanje žice

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

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

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

Pi se nalazi otprilike u sredini kućišta, ostavljajući dovoljno prostora za upotrebu različitih konektora (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 sliku). Kako kutija nije namijenjena za prijenosnu upotrebu, možete se izvući samo pomoću dva pričvršćivača. Mogli biste jednostavno koristiti vijke od 2,5 mm s odvajačima ili čak topljivo ljepilo (koje sam već koristio-samo pazite da ne koristite previše i izbjegavajte bilo kakve komponente za površinsko montiranje na donjoj strani jer ćete neizbježno imati da biste uklonili ploču u neko vrijeme (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đe mi je palo na pamet da se prekidač za pritiskanje mogao koristiti za graciozno isključivanje Pi -a (postoji nekoliko dizajna dostupnih na internetu). 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 greška, ali na kraju vrijedi jer možete direktno vidjeti šta 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 koristiti 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 napravit će vrlo neefikasne 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 količinom nagrade.

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

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

Samo sam izmijenio antenu predajnika 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 konektor 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 na odgovarajući način kako biste kasnije izbjegli neugodne greške.

Slično, USB konektor je ožičen 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 na kućištu ostavljen uz utičnicu telefonske linije.

Korak 5: Napomene predajnika

Napomene predajnika
Napomene predajnika
Napomene predajnika
Napomene predajnika
Napomene predajnika
Napomene predajnika

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

Krug odašiljača FS1000A koji sam kupio* prikazan je na dijagramu. Pokušajem i greš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 ovo. Zanimljivo je pitanje kako biste mogli testirati bez prijemnika …

*Napomena: Kupio sam drugu seriju predajnika nakon što nisam uspio pokrenuti prva dva. Ovim je nedostajalo zavojnice kolektora. Hmmm!

Imao sam 3pF kondenzator u mojoj kutiji za smeće, ali to neće biti slučaj za većinu ljudi, i u svakom slučaju, potrebna vrijednost bi mogla biti veća, recimo 7pF. Gruba zamjena može se izvršiti s dva komada upletene žice (kabel od upletenog para mojih poznanika ima kapacitet od oko 100pF po stopi da vam da vodič kroz dužinu), 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 vjerovatno) bolje izrađen odašiljač.

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

Takođe imajte na umu da pozlaćena rupa uz riječ 'ANT' na predajniku NIJE antenski priključak - to je ona u uglu bez oznaka (pogledajte fotografiju). Ovo je bila moja prva greška …

Pin veza koja je korisno označena sa "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 kod drugih ljudi, ali ja znam dovoljno da ih uhvatim i prilagodim kako bi funkcionirao zajedno. Ovo je ujedno i prvi Instructable koji sam objavio sa 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 sa web stranice PiGPIO.
  • Python3 (dolazi sa Raspbian -om)

Dodatni softver koji koristim:

  • pyephem (izračunava zoru i sumrak - korisno za prebacivanje svjetla)
  • Odlični 'Tasker' i 'AutoTools SSH' za stvaranje daljinskog upravljača na mom Android telefonu - pogledajte fotografiju (oba su dostupna u trgovini Google Play). [Kako stvoriti Tasker 'scenu' izvan je opsega ovog Instructable -a jer je uključena prilično strma krivulja učenja, ali rado ću razgovarati o onome što sam učinio]

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

  • tx.py - softver za argumente u meniju i/ili komandnoj liniji koji šalje odgovarajući kod predajniku na 433MHz.
  • dawn -sumrak - izračunava zoru i sumrak na mojoj lokaciji i ažurira korisnički crontab (koristi se za svjetla božićnog drvca itd.)

Gore navedenom ličnom kodu može se pristupiti putem GitHub -a:

Funkcionalnost projekta osigurava kod PiGPIO i _433.py. Potonji ima funkciju prijema 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. Ovo omogućava sistemu da nauči bilo koji 'normalni' 433MHz RF daljinski upravljač. U principu se može koristiti i 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 Pi u ovoj aplikaciji radi bez glave (tj.) Bez monitora ili tastature, morate razgovarati s njim 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 server i zatvorite raspi-config (što će se vjerojatno završiti ponovnim pokretanjem).

Naknadne komunikacije sa Pi -om tada se mogu voditi sa 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 upustite u Tasker kontrolu). Opet, na mreži postoji mnogo vodiča koji opisuju kako to učiniti. Moj kućni usmjerivač dozvoljava mi da dodijelim fiksnu IP adresu Pi -ovoj MAC adresi, pa to činim na taj način, umjesto uređivanjem postavki Pi -a.

Instaliranje PiGPIO:

ssh u Pi i unesite sljedeće naredbe:

sudo apt update

sudo apt install pigpio python-pigpio python3-pigpio

sudo apt install git

git clone

sudo apt install python3-RPi. GPIO

Da biste pokrenuli PiGPIO pri pokretanju:

crontab -e

dodajte sledeći red:

Nabavite Python kod za odašiljanje i dekodiranje 433MHz RF daljinskih kodova:

wget

unzip _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 daljinskog upravljača RF 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:

kod = 5330005 bita = 24 (jaz = 12780 t0 = 422 t1 = 1236)

Ovi 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) koje treba prenijeti odašiljač na 433MHz. Nadamo se da će potrebna uređivanja biti razumljivo očigledna, a ostalo je na vama …

Preporučuje se: