Sadržaj:

Bežična komunikacija pomoću jeftinih RF modula od 433MHz i Pic mikrokontrolera. Dio 2: 4 koraka (sa slikama)
Bežična komunikacija pomoću jeftinih RF modula od 433MHz i Pic mikrokontrolera. Dio 2: 4 koraka (sa slikama)

Video: Bežična komunikacija pomoću jeftinih RF modula od 433MHz i Pic mikrokontrolera. Dio 2: 4 koraka (sa slikama)

Video: Bežična komunikacija pomoću jeftinih RF modula od 433MHz i Pic mikrokontrolera. Dio 2: 4 koraka (sa slikama)
Video: Обзор и конфигурация модуля EBYTE LoRa 2024, Novembar
Anonim
Bežična komunikacija pomoću jeftinih RF modula od 433MHz i Pic mikrokontrolera. Dio 2
Bežična komunikacija pomoću jeftinih RF modula od 433MHz i Pic mikrokontrolera. Dio 2

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

Modifikacije odašiljača
Modifikacije odašiljača
Modifikacije odašiljača
Modifikacije odašiljača
Modifikacije odašiljača
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

Modifikacije prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Modifikacije prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Modifikacije prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Modifikacije prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Modifikacije prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Modifikacije 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: