Cuprins:
- Pasul 1: Modificări ale emițătorului
- Pasul 2: Modificări ale receptorului: adăugarea LCD-urilor PIC16F887 și HD44780
- Pasul 3: câteva referințe …
- Pasul 4: Concluzii și lucrări viitoare
Video: Comunicare wireless folosind module RF 433MHz ieftine și microcontrolere Pic. Partea 2: 4 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
În prima parte a acestui instructable, am demonstrat cum să programez un PIC12F1822 utilizând compilatorul MPLAB IDE și XC8, pentru a trimite un șir simplu fără fir folosind module TX / RX 433MHz ieftine.
Modulul receptor a fost conectat printr-un adaptor de cablu USB la UART TTL la un computer, iar datele primite au fost afișate pe RealTerm. Comunicația a fost efectuată la 1200 baud și intervalul maxim realizat a fost de aproximativ 20 de metri prin pereți. Testele mele au arătat că pentru aplicațiile în care nu este nevoie de o rată de date mare și de o rază lungă de acțiune, precum și pentru transmiterea continuă, aceste module au funcționat excepțional de bine.
A doua parte a acestui proiect demonstrează cum să adăugați un receptor PIC16F887 și un modul LCD de 16 × 2 caractere pe receptor. Mai mult, pe transmițător, este urmat un protocol simplu, cu adăugarea câtorva octeți de preamplu. Acești octeți sunt necesari pentru ca modulul RX să își ajusteze câștigul înainte de a obține sarcina utilă reală. Pe partea receptorului, PIC este responsabil de obținerea și validarea datelor care sunt afișate pe ecranul LCD.
Pasul 1: Modificări ale emițătorului
Pe prima parte, transmițătorul trimitea un șir simplu la fiecare câteva ms folosind opt biți de date, un start și un bit de oprire la 1200 biți pe secundă. Deoarece transmisia a fost aproape continuă, receptorul nu a avut probleme cu ajustarea câștigului la datele primite. În a doua parte, firmware-ul este modificat astfel încât transmisia să fie efectuată la fiecare 2,3 secunde. Acest lucru se realizează folosind întreruperea temporizatorului de pază (setată la 2,3s) pentru a trezi microcontrolerul, care este pus în modul de repaus între fiecare transmisie.
Pentru ca receptorul să aibă timp să regleze câștigul, câțiva octeți de preambul cu scurte perioade LO "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" sunt trimise înainte de datele reale. Sarcina utilă este apoi indicată printr-un octet de pornire „&” și un oprit „*”.
Prin urmare, protocolul simplu este descris după cum urmează:
(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & Hello InstWorld! *
Mai mult, un condensator de tantal de decuplare de 10 uF este adăugat între modulul RF + V + și GND pentru a scăpa de ondulația cauzată de modulul DC-DC.
Rata de transmisie a rămas aceeași, totuși testele mele au arătat că și la 2400 de transmisii de transmisie, transmisia a fost eficientă.
Pasul 2: Modificări ale receptorului: adăugarea LCD-urilor PIC16F887 și HD44780
Designul receptorului a fost bazat pe PIC16F887, dar puteți utiliza un PIC diferit cu mici modificări. În proiectul meu am folosit acest 40 pin μC, deoarece voi avea nevoie de pini suplimentari pentru proiectele viitoare bazate pe acest design. Ieșirea modulului RF este conectată la pinul UART rx, în timp ce un LCD de 16x2 caractere (HD44780) este conectat prin pinii PORTB b2-b7 pentru a afișa datele primite.
Ca și în partea 1, datele primite sunt afișate și pe RealTerm. Acest lucru se realizează utilizând pinul UART tx care este conectat la un computer printr-un adaptor de cablu USB la UART TTL.
Privind în firmware, când are loc o întrerupere UART, programul verifică dacă octetul primit este un octet de pornire („&”). Dacă da, începe să înregistreze octeții următori, până când este captat un octet de oprire („*”). De îndată ce se obține întreaga propoziție și dacă este conformă cu protocolul simplu descris anterior, este apoi trimisă pe ecranul LCD, precum și către portul UART tx.
Înainte de a primi octetul de pornire, receptorul și-a ajustat deja câștigul folosind octeții de preambul anterior. Acestea sunt esențiale pentru buna funcționare a receptorului. Se efectuează o simplă verificare a erorilor de depășire și încadrare, însă aceasta este doar o implementare de bază pentru tratarea erorilor UART.
În ceea ce privește hardware-ul, sunt necesare câteva piese pentru receptor:
1 x PIC16F887
1 x HD44780
1 x modul RF Rx 433Mhz
1 x 10 μF condensator de tantal (decuplare)
1 x 10 K tundere (luminozitate font LCD)
1 rezistor de 220 Ω 1/4 W (iluminare de fundal LCD)
1 x 1 KΩ 1/4 W
1 x antenă 433Mhz, 3dbi
În practică, recepția a funcționat excepțional de bine în domenii de până la 20 de metri prin pereți.
Pasul 3: câteva referințe …
Există multe bloguri pe web care oferă sfaturi despre programarea și depanarea PIC, pe lângă site-ul oficial Microschip. Am găsit următoarele foarte utile:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Pasul 4: Concluzii și lucrări viitoare
Sper că acest instructable te-a ajutat să înțelegi cum să folosești modulele RF și microcontrolerele Pic. Puteți să vă ajustați firmware-ul în funcție de nevoile dvs. și să includeți CRC și criptare. Dacă doriți ca designul dvs. să fie și mai sofisticat, puteți utiliza tehnologia Keeloq de la Microschip. În cazul în care aplicația dvs. are nevoie de date bidirecționale, ar trebui să aveți o pereche de TX / RX la ambele microcontrolere sau puteți utiliza un transceiver mai sofisticat. module. Cu toate acestea, folosind acest tip de module ieftine de 433 MHz, se poate realiza doar comunicarea pe jumătate duplex. În plus, pentru a face comunicarea mai fiabilă, ar trebui să aveți o formă de strângere de mână între TX și RX.
În următoarea instruire, vă voi arăta o aplicație practică în care se adaugă un senzor de mediu cu temperatură, presiune barometrică și umiditate pe transmițător. Aici, datele transmise vor include crc și vor avea o criptare de bază.
Senzorul va folosi portul i2c al PIC12F1822, în timp ce implementarea atât a transmițătorului, cât și a receptorului va fi expusă prin schemă și fișiere PCB. Mulțumesc pentru citirea mea!
Recomandat:
Control radio RF 433MHZ folosind HT12D HT12E - Realizarea unei telecomenzi RF folosind HT12E și HT12D cu 433mhz: 5 pași
Control radio RF 433MHZ folosind HT12D HT12E | Efectuarea unei telecomenzi RF Utilizarea HT12E și HT12D Cu 433mhz: În acest instructiv vă voi arăta cum să realizați o telecomandă RADIO folosind modulul receptor 433mhz transmițător cu codare HT12E & IC decodificator HT12D. În acest instructable veți putea trimite și primi date folosind COMPONENTE foarte ieftine CA: HT
Interval lung, 1,8 km, comunicare wireless Arduino-Arduino cu HC-12 .: 6 pași (cu imagini)
Interval lung, 1,8 km, comunicare wireless Arduino-Arduino cu HC-12. În acest instructiv, veți învăța cum să comunicați între Arduinos pe o distanță lungă de până la 1,8 km în aer liber. HC-12 este un port serial wireless modul de comunicare foarte util, extrem de puternic și ușor de utilizat. Mai întâi vei pleca
Comunicare wireless utilizând modulul transmițător NRF24L01 pentru proiecte bazate pe Arduino: 5 pași (cu imagini)
Comunicare fără fir folosind modulul transmițător NRF24L01 pentru proiecte bazate pe Arduino: Acesta este al doilea tutorial instructabil despre roboți și microcontrolere. Este cu adevărat uimitor să-ți vezi robotul în viață și funcționând așa cum era de așteptat și crede-mă că va fi mai distractiv dacă îți controlezi robotul sau alte lucruri fără fir cu rapid și
Un ghid pentru începători pentru microcontrolere: 10 pași (cu imagini)
Un ghid pentru începători pentru microcontrolere: Ce au în comun controlerele la distanță, routerele și roboții? Microcontrolere! În zilele noastre, microcontrolerele pentru începători sunt ușor de utilizat și de programat cu doar un laptop, un cablu USB și unele software-uri open-source (gratuite). Woo hoo!! Toate
Contor RPM simplu folosind module ieftine: 8 pași
Contor RPM simplu folosind module ieftine: Acesta este un proiect foarte interesant și depune eforturi foarte mici, pentru a face un contor RPM foarte simplu (rundă pe secunde În cazul meu)