Cuprins:

Socluri Raspberry Pi RF telecomandate (prize de alimentare): 6 pași
Socluri Raspberry Pi RF telecomandate (prize de alimentare): 6 pași

Video: Socluri Raspberry Pi RF telecomandate (prize de alimentare): 6 pași

Video: Socluri Raspberry Pi RF telecomandate (prize de alimentare): 6 pași
Video: Discovering the 433MHz RF Transmitter/Receiver: Unpacking and First Impressions 😲😲 #diy #arduino 2024, Iulie
Anonim
Socluri Raspberry Pi RF telecomandate (prize de alimentare)
Socluri Raspberry Pi RF telecomandate (prize de alimentare)
Socluri Raspberry Pi RF telecomandate (prize de alimentare)
Socluri Raspberry Pi RF telecomandate (prize de alimentare)
Socluri Raspberry Pi RF telecomandate (prize de alimentare)
Socluri Raspberry Pi RF telecomandate (prize de alimentare)
Socluri Raspberry Pi RF telecomandate (prize de alimentare)
Socluri Raspberry Pi RF telecomandate (prize de alimentare)

Controlați prizele de rețea ieftine de 433 MHz (prize de perete) folosind un Raspberry Pi. Pi poate învăța codurile de control emise de telecomanda prizelor și le poate folosi sub controlul programului pentru a activa oricare sau toate prizele de la distanță din toată casa.

Designul nu se bazează pe conectivitatea externă la internet (adică) „Internetul obiectelor” și, prin urmare, este (IMHO) mult mai sigur decât controlerele bazate pe web. Acestea fiind spuse, am încercat integrarea cu Google Home, dar am pierdut rapid dorința de a trăi când comenzile au durat uneori câteva zeci de secunde pentru a fi executate sau niciodată executate deloc.

O aplicație evidentă în timpul Crăciunului este controlul luminilor pomului de Crăciun și (dacă sunteți înclinat în acest fel) lumini de afișare exterioare. Deși este o utilizare simplă, construind acest Instructable veți ajunge cu un controler de prize super flexibil care poate răspunde la intrările senzorilor și la alte dispozitive din rețeaua dvs. de acasă, cum ar fi Raspberry Pis care rulează Linux Motion.

De exemplu, am un set de lumini de bucătărie care se aprind atunci când o cameră care rulează „Motion” detectează mișcarea în bucătărie și apoi le stinge după cinci minute fără activitate. Funcționează foarte bine!

Cu „Tasker” și „AutoTools SSH” din magazinul Google Play, puteți configura tot felul de telecomenzi fanteziste bazate pe telefon.

Proiectul se bazează pe receptoare de 433 MHz și plăci de transmisie disponibile pe scară largă pe eBay. Acestea sunt compatibile cu (cel puțin în Marea Britanie) prizele de la distanță de 433 MHz comercializate cu telecomenzi. Proiectul meu include un receptor, astfel încât noile seturi de comenzi de la distanță pot fi încorporate ușor și rapid. Un punct de remarcat - prizele de la distanță disponibile în Marea Britanie par să vină în două variante - cele cu un ID programat de un comutator de pe priză și cele care depind de programarea de pe telecomandă. Acest proiect este compatibil cu ambele, dar primii nu își pierd identitatea într-o întrerupere a energiei și, prin urmare, sunt de preferat.

Proiectul folosește o carcasă de router veche - am câteva dintre acestea și au foarte ușor majoritatea conectorilor externi necesari, cum ar fi alimentarea, Ethernet, USB și antena (e). Ceea ce utilizați va depinde de ceea ce aveți la dispoziție, astfel încât acest instructabil este probabil mai util ca un ghid general, mai degrabă decât ca un set de instrucțiuni pas cu pas.

Deși nu este strict necesar pentru acest proiect, am adăugat și un ventilator de răcire și o placă de control. Fără ventilator, Pi se poate încălzi destul de mult (circa 60 ° C). Detaliile pot fi furnizate într-un Instructable ulterior.

Ar trebui să menționez că nu sunt programator. Software-ul este (în mare parte) scris în Python și lucrurile inteligente sunt copiate de la oameni care știu ce fac. Am recunoscut sursele unde pot - dacă mi-a lipsit vreuna, vă rog să mă anunțați și voi corecta textul.

Instructable presupune o anumită abilitate de lipire și o familiaritate trecătoare cu Python, Bash și vorbind cu Pi-ul dvs. prin SSH (deși voi încerca să fac instrucțiunile cât mai cuprinzătoare posibil). De asemenea, este scris în engleza britanică, deci dacă citiți de cealaltă parte a iazului, vă rugăm să ignorați literele suplimentare din cuvinte și numele ciudate pentru lucruri (cum ar fi „prize de rețea”, pe care le veți cunoaște ca ceva de genul „prize de perete”).

Orice comentarii, îmbunătățiri și utilizări sugerate etc. sunt, de asemenea, foarte binevenite!

Pasul 1: Pregătirea cazului

Pregătirea cazului
Pregătirea cazului
Pregătirea cazului
Pregătirea cazului
Pregătirea cazului
Pregătirea cazului

Am folosit un vechi router TP-Link TD-W8960N pentru acest proiect. Are o dimensiune frumoasă și, odată ce am aflat cum să intru, este destul de ușor de lucrat.

De asemenea, am păstrat sursa de alimentare 12v @ 1A a routerului, care este puțin alimentată, dar în practică este OK pentru această aplicație.

Deschiderea carcasei este o chestiune de îndepărtare a două șuruburi în partea inferioară a carcasei și apoi utilizarea unui instrument de curaj în jurul marginii carcasei pentru a ușura clemele deschise. Cele două șuruburi se află sub picioarele de cauciuc din spatele carcasei (vezi săgețile roșii). Cele mai dificile clipuri de deschis sunt cele de pe partea din față, dar am avut credință și s-au aplecat în fața instrumentului meu.

Odată ce carcasa este deschisă, desfaceți cele două piulițe de pe conectorii antenei și placa de circuit poate fi ridicată.

Deoarece veți utiliza ambele antene mai târziu, desfaceți cablurile coaxiale de pe placa de circuit și puneți-le pe o parte.

Dacă vă simțiți curajoși (așa cum am fost eu), puteți scoate comutatorul, priza de curent continuu și prizele RJ45 de pe placa de circuit. Cel mai bun mod pe care l-am găsit pentru a face acest lucru este să fixez placa într-un menghină și să aplic căldură dintr-un pistol de căldură, în timp ce apreciați cu un instrument adecvat pentru deschiderea carcasei subțiri sau o șurubelniță. Logica este că toate conexiunile de lipit sunt topite în același timp, reducând stresul termic general pe carcasa din plastic a componentei, comparativ cu utilizarea unui fier de lipit pe fiecare joncțiune. Aceasta este teoria cel puțin. În practică, este implicat ceva noroc! Câtă căldură să aplici este o chestiune de judecată, dar fii atent și greșește din partea prea puțin. Dacă totul merge bine, veți termina cu componentele utilizabile prezentate în fotografie (totuși veți observa butonul de comutare topit și banda de soclu RJ45 ușor deformată!).

În caz contrar, este accesat internetul pentru a-ți cumpăra biții.

Pasul 2: Lista pieselor

Raspberry Pi - Bănuiesc că va avea vreo aromă, dar am folosit un 3B +

Placă de transmisie de 433 MHz - căutați pe eBay „Transmițător RF de 433 MHz cu kit receptor pentru Arduino Arm Mcu Wireless” sau similar

Placă receptor 433MHz - idem. De obicei 1,98 GBP per pereche

LM2596 Regulator Buck - eBay, de obicei 1,95 GBP. Pentru a converti puterea de 12v la 5v pentru Pi

Țeavă de lumină - căutați pe eBay „Cablu fibra optică - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3mm Dia - Ghid de lumină” - Am folosit țeavă de 2 mm, dar 1,5 mm ar fi fost mai ușor de lucrat cu (am plătit £ 2,95 pentru 1m)

Comutator cu comutator în miniatură cu 2 poli (plăcut, dar opțional)

Soclu USB tip A 180 ° care poate fi soldat - prin eBay, am plătit 1,90 GBP pentru zece

Întrerupător dual pole push (plăcut de avut, dar opțional) - L-am primit pe al meu de pe placa modem / router

Soclu (uri) RJ45 - recuperat de pe placa modem / router

Priză de curent continuu - prin eBay (10X priză de alimentare DC priză mufă femelă montare panou 5,5 x 2,1 mm 0,99 GBP)

Antene de 430 MHz - convertiți antenele de 2 GHz ale modemului / routerului

Sursă de alimentare 12v c.c. 12W (minim) - în mod ideal, aceasta va veni împreună cu modemul / routerul. Dacă nu, trebuie să vă asigurați că priza de curent continuu de mai sus se potrivește cu cea pe care o utilizați. Cerința de 12v este determinată de transmițătorul de 433 MHz

Părțile pentru modul ventilatorului de răcire vor fi detaliate într-o instrucțiune ulterioară.

Pasul 3: Consumabile și instrumente

Veți avea nevoie de următoarele consumabile:

Lipit (după cum este necesar)

Adeziv topit la cald (după cum este necesar)

Sârmă de interconectare - (de exemplu) 22 și 24AWG (după cum este necesar)

Manșon termocontractabil (după cum este necesar)

Cat de sacrificiu. 5 cablu patch ethernet

Cablu sacrificativ USB 2.

Instrumente:

Decapanti de sârmă

Freze de sârmă (de preferință freze de spălat)

Instrument de premiere

Șurubelniță adecvată pentru a demonta carcasa.

Ciocan de lipit

Pistol de lipit

Uscător de păr (pentru a îndoi conductele de lumină și pentru orice întrerupere improvizată a coafurii)

Receptor de comunicații FM de 433 MHz (opțional - pentru depanarea problemelor emițătorului) - (de exemplu) AR1000

Pasul 4: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Modul în care asamblați plăcile Pi și auxiliare depinde de cazul pe care îl utilizați. Fotografiile arată ce am făcut.

Pi se așează aproximativ în mijlocul carcasei, permițând suficient spațiu pentru utilizarea diferiților conectori (rețineți că HDMI nu este utilizat deoarece Pi este comunicat prin SSH (adică) „fără cap”.

Am atașat Pi la bază folosind câteva elemente de fixare din plastic recuperate (a se vedea fotografia). Deoarece cutia nu este destinată utilizării portabile, puteți scăpa doar folosind două elemente de fixare. Puteți utiliza cu ușurință șuruburi de 2,5 mm cu stand-off-uri sau chiar lipici topit (pe care l-am folosit în trecut - asigurați-vă că nu folosiți prea mult și evitați componentele de montare pe suprafață pe partea inferioară, deoarece veți avea inevitabil pentru a scoate placa la un moment dat (prima lege a construcției - va trebui să o desfaceți)).

Am folosit lipici fierbinte pentru a fixa diferitele plăci pe laturile carcasei. Se aplică aceleași considerații ca mai sus.

Odată ce totul este la locul său, puteți conecta lucrurile.

Diagrama bloc arată schema de cablare pe care am folosit-o. Rețineți că folosesc comutatorul opțional pentru a alterna puterea între plăcile emițătorului și receptorului - probabil că există un risc mic de a face acest lucru, dar nu am vrut să prăjesc receptorul atunci când transmit.

De asemenea, mi-a trecut prin minte că butonul push ar fi putut fi folosit pentru a alimenta cu grație Pi (există o serie de modele disponibile pe internet). Nu m-am deranjat - în acest caz acționează ca un simplu comutator de pornire / oprire. Trebuie doar să fiu atent să închid Pi prin SSH înainte de a apăsa comutatorul.

Veți observa conductele de lumină utilizate pentru a canaliza lumina de la cele două LED-uri de pe Pi și de la LED-ul de stare a sursei de alimentare către partea din față a carcasei. Am folosit căldura de la un uscător de păr pentru a îndoi conductele (cu siguranță NU VREI să folosiți un pistol de căldură!). Este o încercare și o eroare, dar merită în cele din urmă, deoarece puteți vedea direct ce semnalizează LED-urile, mai degrabă decât să se bazeze pe software și LED-uri externe. Desigur, este alegerea ta. Tăierea țevilor se face cu o pereche ascuțită de freze de sârmă (frezele de spălare sunt cele mai bune), dar puteți folosi și foarfece ascuțite. Din nou, lipiciul topit la cald poate fi folosit pentru a fixa țevile în loc, dar aveți grijă să folosiți doar o cantitate mică - care se răcește rapid - deoarece adezivul poate distorsiona conductele.

În mod ideal ar trebui să modificați antenele. Acestea vor fi de obicei dimensionate pentru a funcționa la 2 GHz și vor produce antene foarte ineficiente atunci când sunt utilizate la 433 MHz.

Pentru a face acest lucru, trebuie mai întâi să scoateți capacul antenei pentru a expune firul antenei. Cred că am avut noroc, deoarece capacul s-a desprins de la fiecare antenă cu doar o cantitate mică de preț.

Tăiați locul indicat pentru a scoate antena originală de 2 GHz și expuneți co-axul. Accesați cu atenție miezul interior, îndepărtând bine panglica și lipiți-o pe o bucată nouă de sârmă, așa cum se arată. Lungimea noului fir este de aproximativ o lungime de undă de 1/4 de 433MHz (adică) lungime = 0,25 * 3E8 / 433E6 = 17cm. Partea inferioară poate fi înfășurată folosind un burghiu mic sau similar pentru a permite ca toată lungimea să se potrivească în capacul antenei.

Înainte de reasamblare, verificați dacă nu există un scurtcircuit între contactele antenei interioare și exterioare.

Am modificat doar antena transmițătorului, deoarece un receptor „surd” este probabil avantajos atunci când învăț codurile de telecomandă RF (vezi mai târziu).

Conexiunea Ethernet se realizează prin cablarea unui Cat sacrificial. 5 cablu de interconectare la mufa RJ45 salvată din modem. Tăiați cablul pentru a se potrivi distanței dintre soclul Pi ethernet și soclul carcasei RJ45 și descoperiți cei opt fire. Utilizați un tester de continuitate pentru a vă asigura că conectați pinul cablului 1 la pinul 1 al prizei etc. Un mod simplu de a face acest lucru este să conectați conectorul la priza la care vă conectați și să sunați între contactele prizei și capetele goale ale cablului. Deoarece se folosește doar una dintre cele patru prize RJ45 externe, marcați priza cablată în consecință pentru a evita erorile jenante ulterior.

În mod similar, conectorul USB este conectat utilizând un cablu de sacrificare USB 2, pinul cablat 1 la pinul 1 etc. Conectorul USB din lumea exterioară este lipit la cald pe carcasă, folosind orificiul carcasei lăsat de priza liniei telefonice.

Pasul 5: Note ale emițătorului

Note transmițător
Note transmițător
Note transmițător
Note transmițător
Note transmițător
Note transmițător

Plăcile de transmisie și recepție de 433 MHz pe care le-am folosit sunt omniprezente pe internet și, deoarece sunt atât de ieftine, am comandat două perechi din fiecare (pentru a permite cock-up-uri experimentale). Am constatat că receptoarele sunt fiabile, dar transmițătorul pe care l-am folosit trebuie modificat pentru a funcționa în mod fiabil.

Circuitul transmițătorului FS1000A pe care l-am cumpărat * este prezentat în diagramă. Am constatat, prin încercări și erori, că un condensator de 3pF avea nevoie să fie instalat în poziția C1 SoT (selectați pe test) pentru a face ca lucrul să funcționeze. Deoarece am un receptor în bandă largă care acoperă 430 MHz, a fost relativ ușor să depanez acest lucru. Cum ați putea testa fără un receptor este o întrebare interesantă …

* Notă: Am cumpărat un al doilea lot de emițătoare după ce nu am putut funcționa primele două. Toate acestea au lipsit bobina colectorului. Hmmm!

Am avut un condensator de 3pF în cutia de gunoi, dar nu va fi cazul pentru majoritatea oamenilor, și, în orice caz, valoarea necesară ar putea fi mai mare, să spunem 7pF. O înlocuire brută poate fi făcută cu doi biți de sârmă răsucită (cablul cu pereche răsucită al cunoștinței mele are o capacitate de aproximativ 100pF pe picior pentru a vă oferi un ghid de lungime), dar nu este recomandat deoarece pot apărea alte probleme. Sperăm că veți avea noroc și nu veți avea o astfel de problemă. Puteți cumpăra întotdeauna un transmițător mai scump (și, prin urmare, probabil) mai bine făcut.

Rețineți, de asemenea, că frecvența transmițătorului nu este foarte precisă sau stabilă, dar în practică a fost suficient de bună pentru a acționa în mod fiabil prizele de la distanță.

Vă rugăm să rețineți, de asemenea, că orificiul placat adiacent cuvântului „ANT” de pe transmițător NU este conexiunea antenei - este cea din colț fără marcaj (vezi fotografia). Aceasta a fost prima greșeală pe care am făcut-o….

Conexiunea PIN marcată cu ajutor „ATAD” ar trebui să citească „DATA”, desigur.

Pasul 6: Prezentare generală a software-ului

Prezentare generală a software-ului
Prezentare generală a software-ului

Vă rog să rețineți că nu sunt programator. După cum sa menționat anterior, lucrurile inteligente sunt codul altor persoane, dar știu suficient pentru a o ciupi și a o adapta pentru a face să funcționeze împreună. Acesta este, de asemenea, primul instructabil pe care l-am publicat cu codul, deci scuze dacă am greșit! Dacă aveți întrebări, vă rugăm să țineți cont de asta …

Software-ul de bază pe care l-am folosit este după cum urmează:

  • Raspbian Stretch Lite
  • PiGPIO (o bibliotecă fantastică pentru conducerea servomotorelor etc.)
  • Cod _433.py (pentru a codifica și decoda codurile de control RF) - legat de pe site-ul web PiGPIO.
  • Python3 (vine cu Raspbian)

Software suplimentar pe care îl folosesc:

  • pyephem (calculează orele zorilor și amurgului - utile pentru comutarea luminii)
  • Excelentele „Tasker” și „AutoTools SSH” pentru a crea o telecomandă pe telefonul meu Android - vezi fotografia (ambele disponibile în magazinul Google Play). [Cum se creează o „scenă” a Tasker-ului nu intră în sfera acestui instructabil, deoarece este implicată o curbă de învățare destul de abruptă, dar sunt fericit să discut despre ceea ce am făcut]

Codul meu propriu (în Python). Brut, dar funcțional:

  • tx.py - software de argument pentru meniu și / sau linie de comandă care trimite codul corespunzător la transmițătorul de 433 MHz.
  • dawn-amurg - calculează orele zorilor și amurgului la locația mea și actualizează utilizatorul crontab (folosit pentru luminile pomului de Crăciun etc.)

Codul personal de mai sus poate fi accesat prin GitHub:

Funcționalitatea proiectului este asigurată de codul PiGPIO și _433.py. Acesta din urmă are o funcție de recepție care ascultă comenzile telecomenzii de la telecomanda RF de 433 MHz și decodează impulsurile de sincronizare, producând o ieșire care poate fi stocată pentru o utilizare ulterioară de către funcția de transmisie. Acest lucru permite sistemului să învețe orice telecomandă RF „normală” de 433 MHz. În principiu, poate fi, de asemenea, utilizat pentru a afla telecomenzile RF ale vecinului. Aș recomanda cu tărie acest lucru, deoarece vecinii rareori văd latura amuzantă a sunetelor aleatorii. Nu aș vrea.

Înființat

Deoarece Pi-ul din această aplicație este rulat „fără cap” (adică) fără monitor sau tastatură, trebuie să-i vorbiți prin ssh. Există o mulțime de ghiduri disponibile care acoperă modul de configurare a unui Pi fără cap, dar pentru a simplifica lucrurile, presupun că începeți mai întâi Pi cu un monitor și tastatură. Odată pornit, porniți terminalul și introduceți „sudo raspi-config”. Selectați „5. Opțiuni de interfață "și apoi" P2 SSH ". Activați serverul ssh și închideți raspi-config (care probabil se va termina cu o repornire).

Comunicările ulterioare cu Pi pot fi apoi efectuate de la un terminal la distanță prin ssh. Rețineți că codul nu necesită o adresă IP LAN fixă pentru Pi, dar cu siguranță vă ajută (și este cu siguranță necesar dacă intrați în controlul Tasker). Din nou, există o mulțime de tutoriale online care acoperă cum să faceți acest lucru. Ruterul meu de acasă îmi permite să atribuie o adresă IP fixă la adresa MAC a Pi, așa că o fac așa, mai degrabă decât editând setarea Pi.

Instalarea PiGPIO:

ssh în Pi și introduceți următoarele comenzi:

actualizare sudo apt

sudo apt instalează pigpio python-pigpio python3-pigpio

sudo apt install git

git clone

sudo apt instalează python3-RPi. GPIO

Pentru a rula PiGPIO la pornire:

crontab -e

adăugați următoarea linie:

@reboot / usr / local / bin / pigpiod

Obțineți codul Python pentru transmiterea și decodarea codurilor de la distanță RF de 433 MHz:

wget

dezarhivați _433_py.zip

Mutați _433.py dezarhivat într-un director adecvat (de exemplu) ~ / software / apps

Tastare (în acel director)

_433.py

plasează Pi în modul 433 rx, în așteptarea codurilor de telecomandă RF demodulate pe pinul GPIO 38.

Cu receptorul de 433 MHz conectat, când se utilizează o telecomandă de 433 MHz în apropiere, vor fi văzute pe ecran ceva de genul următoarelor date:

cod = 5330005 biți = 24 (decalaj = 12780 t0 = 422 t1 = 1236)

Aceste date sunt utilizate în programul dvs. Python pentru a regenera transmisia de pe telecomandă.

Pentru a trimite aceste date într-un fișier pentru utilizare ulterioară, rulați:

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

Odată ce ați obținut datele, următorul pas este să le utilizați pentru a edita codul „tx.py” pe care îl puteți copia din depozitul meu GitHub. Acest cod folosește datele pentru a genera forme de undă înțelese de prizele de la distanță care trebuie transmise de transmițătorul de 433 MHz. Sperăm că modificările necesare vor fi în mod rezonabil evidente, iar restul depinde de dvs. …..

Recomandat: