Sadržaj:

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

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

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

U prvom dijelu ovog uputstva pokazao sam kako programirati PIC12F1822 koristeći MPLAB IDE i XC8 kompajler, za slanje jednostavnog niza bežično pomoću jeftinih TX/RX 433MHz modula.

Modul prijamnika spojen je putem USB -a na UART TTL kabelski adapter na računalo, a primljeni podaci prikazani su na RealTermu. Komunikacija je izvedena pri 1200 bauda, a maksimalni doseg postignut je oko 20 metara kroz zidove. Moji su testovi 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 prikazuje kako se na prijemnik dodaje PIC16F887 mikrokontroler i LCD modul od 16 × 2 znaka. Štoviš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 dobivanje i provjeru podataka koji su prikazani na LCD ekranu.

Korak 1: Izmjene 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 podatkovnih bitova, početni i zaustavni bit pri 1200 bita u sekundi. Budući da je prijenos bio gotovo kontinuiran, prijemnik nije imao problema prilagoditi dobitak primljenim podacima. Na drugom dijelu, firmware se mijenja tako da se prijenos vrši svake 2,3 sekunde. To se postiže prekidom mjerača vremena nadzornika (postavljenim na 2,3 s) za buđenje mikrokontrolera, koji se stavlja u stanje mirovanja između svakog prijenosa.

Kako bi prijemnik imao vremena za fino podešavanje svog dobitka, nekoliko stvarnih bajtova s kratkim LO vremenima "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" šalje se prije stvarnih podataka. Korisni teret tada je označen početnim '&' i zaustavnim '*' bajtom.

Stoga je jednostavan protokol opisan na sljedeći način:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & Pozdrav InstWorld!*

Štoviše, tantalski kondenzator za razdvajanje od 10uF dodaje se između V+ i GND RF modula kako bi se uklonili valovi uzrokovani modulom za povećanje dc-dc.

Brzina prijenosa podataka ostala je ista, no moji su testovi pokazali da je prijenos također bio učinkovit pri 2400 bauda.

Korak 2: Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a

Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a
Izmjene prijemnika: Dodavanje PIC16F887 i HD44780 LCD -a

Dizajn prijamnika temeljio se na PIC16F887, ali možete koristiti drugi PIC s malim izmjenama. U svom projektu koristio sam ovu 40 -pinsku μC, jer će mi za dodatne projekte na temelju ovog dizajna biti potrebni dodatni pinovi. Izlaz RF modula spojen je na UART rx pin, dok je LCD zaslon od 16x2 znakova (HD44780) spojen preko PORTB pinova b2-b7 za prikaz primljenih podataka.

Kao i u prvom dijelu, primljeni podaci također su prikazani na RealTerm -u. To se postiže pomoću UART tx pina koji je preko USB -a na UART TTL kabelski adapter spojen na računalo.

Gledajući u firmware, kada dođe do UART prekida, program provjerava je li primljeni bajt početni bajt ('&'). Ako je odgovor da, započ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 zaslon, kao i na UART tx port.

Prije primanja početnog bajta, prijemnik je već prilagodio svoj dobitak pomoću prethodnih bajtova preambule. Oni su ključni za nesmetan rad prijemnika. Provodi se jednostavna provjera greške prekoračenja i uokvirivanja, međutim ovo je samo osnovna implementacija upravljanja UART pogreškama.

Što se tiče hardvera, prijemniku 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 službene web stranice 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 firmware svojim potrebama i uključiti CRC i šifriranje. Ako želite svoj dizajn učiniti još sofisticiranijim, možete upotrijebiti Microschipovu tehnologiju Keeloq. U slučaju da vašoj aplikaciji trebaju dvosmjerni podaci, trebali biste imati par TX/RX na oba mikrokontrolera ili možete upotrijebiti sofisticiraniji primopredajnik moduli. Međutim, koristeći ovu vrstu jeftinih modula od 433MHz, može se ostvariti samo poludupleksna komunikacija. Nadalje, 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 odašiljača i prijamnika biti izložena kroz sheme i pcb datoteke. Hvala što ste me pročitali!

Preporučeni: