Sadržaj:
- Korak 1: Modifikacije odašiljača
- Korak 2: Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
- Korak 3: Nekoliko referenci …
- Korak 4: Zaključci i budući rad
Video: Bežična komunikacija pomoću jeftinih RF modula od 433MHz i Pic mikrokontrolera. Dio 2: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
U prvom dijelu ovog uputstva pokazao sam kako programirati PIC12F1822 koristeći MPLAB IDE i XC8 kompajler, za slanje jednostavnog niza bežično koristeći jeftine TX/RX 433MHz module.
Modul prijemnika je preko USB -a povezan sa UART TTL kablovskim adapterom povezan sa računarom, a primljeni podaci su prikazani na RealTerm -u. Komunikacija je izvedena pri 1200 bauda, a maksimalni postignuti doseg bio je oko 20 metara kroz zidove. Moji testovi su pokazali da su za aplikacije gdje nema potrebe za velikom brzinom prijenosa podataka i velikim dometom, te za kontinuirani prijenos, ti moduli radili izuzetno dobro.
Drugi dio ovog projekta pokazuje kako se na prijemnik dodaje PIC16F887 mikrokontroler i LCD modul od 16 × 2 karaktera. Štaviše, na odašiljaču se slijedi jednostavan protokol s dodavanjem nekoliko bajtova preduzora. Ovi bajtovi su potrebni kako bi RX modul prilagodio svoj dobitak prije nego što dobije stvarnu nosivost. Sa prijemne strane, PIC je odgovoran za dobijanje i provjeru podataka koji su prikazani na LCD ekranu.
Korak 1: Modifikacije odašiljača
U prvom dijelu, odašiljač je slao jednostavan niz svakih nekoliko ms koristeći osam bitova podataka, početni i zaustavni bit pri 1200 bita u sekundi. Kako je prijenos bio gotovo kontinuiran, prijemnik nije imao problema s prilagođavanjem pojačanja primljenim podacima. U drugom dijelu, firmver je modificiran tako da se prijenos vrši svake 2,3 sekunde. To se postiže pomoću prekidača mjerača vremena nadzornika (postavljenog na 2,3 s) za buđenje mikrokontrolera, koji se stavlja u stanje mirovanja između svakog prijenosa.
Da bi prijemnik imao vremena da fino podesi svoj dobitak, nekoliko stvarnih bajtova sa kratkim LO vremenima "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" šalje se prije stvarnih podataka. Korisni teret je tada označen početnim '&' i zaustavnim '*' bajtom.
Stoga je jednostavan protokol opisan na sljedeći način:
(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & Hello InstWorld!*
Štaviše, tantalski kondenzator za razdvajanje od 10uF dodaje se između V+ i GND RF modula kako bi se uklonili talasi uzrokovani dc-dc step up modulom.
Brzina prijenosa podataka ostala je ista, ali moji su testovi pokazali da je prijenos također bio efikasan pri 2400 bauda.
Korak 2: Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Dizajn prijemnika bio je zasnovan na PIC16F887, ali možete koristiti drugi PIC sa malim izmjenama. U svom projektu koristio sam ovu 40 -pinsku μC, jer će mi za dodatne projekte na osnovu ovog dizajna biti potrebni dodatni pinovi. Izlaz RF modula je spojen na UART rx pin, dok je 16x2 karakter LCD (HD44780) povezan preko PORTB pinova b2-b7 za prikaz primljenih podataka.
Kao i u prvom dijelu, primljeni podaci se također prikazuju na RealTerm -u. To se postiže pomoću UART tx pina koji je preko USB -a povezan na UART TTL kabelski adapter spojen na računalo.
Gledajući firmver, kada dođe do UART prekida, program provjerava je li primljeni bajt početni bajt ('&'). Ako je odgovor potvrdan, počinje snimanje sljedećih bajtova, sve dok se ne uhvati zaustavni bajt ('*'). Čim se dobije cijela rečenica, i ako je u skladu s prethodno opisanim jednostavnim protokolom, tada se šalje na lcd ekran, kao i na UART tx port.
Prije primanja početnog bajta, prijemnik je već prilagodio svoj dobitak koristeći prethodne bajtove preambule. Ovo je ključno za nesmetan rad prijemnika. Provodi se jednostavna provjera greške prekoračenja i kadriranja, međutim ovo je samo osnovna implementacija rukovanja greškom UART.
Što se tiče hardvera, za prijemnik je potrebno nekoliko dijelova:
1 x PIC16F887
1 x HD44780
1 x RF Rx modul 433Mhz
1 x 10 μF tantalni kondenzator (odvajanje)
1 x 10 K trimer (svjetlina LCD fonta)
1 x 220 Ω otpornik 1/4 W (LCD pozadinsko osvjetljenje)
1 x 1 KΩ 1/4 W
1 x Antena 433Mhz, 3dbi
U praksi, primljeni su radili izuzetno dobro u rasponima do 20 metara kroz zidove.
Korak 3: Nekoliko referenci …
Postoji mnogo blogova na webu koji daju savjete o programiranju PIC -a i rješavanju problema, osim na službenoj web stranici Microschip. Sljedeće mi je jako pomoglo:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Korak 4: Zaključci i budući rad
Nadam se da vam je ovo uputstvo pomoglo da razumijete kako koristiti RF module i Pic mikrokontrolere. Možete prilagoditi svoj firmver svojim potrebama i uključiti CRC i šifriranje. Ako želite svoj dizajn učiniti još sofisticiranijim, možete koristiti Microschip-ovu Keeloq tehnologiju. U slučaju da vašoj aplikaciji trebaju dvosmjerni podaci, trebali biste imati par TX/RX-a na oba mikrokontrolera ili možete koristiti sofisticiraniji primopredajnik moduli. Međutim, koristeći ovu vrstu jeftinih modula od 433MHz, može se ostvariti samo poludupleksna komunikacija. Osim toga, kako biste komunikaciju učinili pouzdanijom, trebate imati neki oblik rukovanja između TX -a i RX -a.
Na sljedećem uputstvu pokazat ću vam praktičnu primjenu gdje se na odašiljač dodaje senzor okoliša s temperaturom, barometrijskim tlakom i vlagom. Ovdje će preneseni podaci uključivati crc i imat će osnovnu enkripciju.
Senzor će koristiti i2c port na PIC12F1822, dok će implementacija i predajnika i prijemnika biti izložena kroz sheme i pcb datoteke. Hvala što ste me pročitali!
Preporučuje se:
Daleki domet, 1,8 km, bežična komunikacija Arduino do Arduino s HC-12 .: 6 koraka (sa slikama)
Bežična komunikacija na velike udaljenosti, 1,8 km, bežična komunikacija Arduino-Arduino s HC-12 .: U ovom uputstvu naučit ćete kako komunicirati između Arduinosa na velike udaljenosti do 1,8 km na otvorenom. HC-12 je bežični serijski port komunikacijski modul koji je vrlo koristan, izuzetno moćan i jednostavan za korištenje. Prvo ćete napustiti
Bežična komunikacija pomoću modula primopredajnika NRF24L01 za projekte zasnovane na Arduinu: 5 koraka (sa slikama)
Bežična komunikacija pomoću NRF24L01 primopredajničkog modula za Arduino temeljene projekte: Ovo je moj drugi vodič za robote i mikrokontrolere. Zaista je nevjerojatno vidjeti svog robota živog i kako radi kako se očekuje i vjerujte mi da će biti zabavnije ako upravljate svojim robotom ili drugim bežičnim stvarima brzim i
RF modul 433MHZ - Napravite prijemnik i predajnik od 433MHZ RF modula bez ikakvog mikrokontrolera: 5 koraka
RF modul 433MHZ | Napravite prijemnik i predajnik od 433MHZ RF modula bez ikakvog mikrokontrolera: Želite li poslati bežične podatke? lako i bez potrebe za mikrokontrolerom? Evo, u ovom uputstvu ću vam pokazati mi osnovni RF predajnik i prijemnik spreman za upotrebu! U ovom uputstvu možete slati i primati podatke koristeći vrlo ver
Bežična serijska komunikacija pomoću Bluefruit -a: 4 koraka
Bežična serijska komunikacija pomoću Bluefruit -a: Evo jednostavnog vodiča korak po korak kako biste zamijenili svoje žice bluetooth vezom niske energije: Trebalo mi je vremena da to shvatim jer gotovo da nema dokumentacije o tome kako to učiniti sa modernom bluetooth tehnologijom niske energije, poput kao Bluefrui
Jednostavan mjerač broja okretaja pomoću jeftinih modula: 8 koraka
Jednostavan mjerač broja okretaja pomoću jeftinih modula: Ovo je vrlo zanimljiv projekt i ulaže mnogo manje napora, čini vrlo jednostavan mjerač broja okretaja (u mom slučaju okruglo po sekundi)