Kazalo:

Brezžična komunikacija z uporabo poceni 433MHz RF modulov in Pic mikrokontrolerjev. 2. del: 4 koraki (s slikami)
Brezžična komunikacija z uporabo poceni 433MHz RF modulov in Pic mikrokontrolerjev. 2. del: 4 koraki (s slikami)

Video: Brezžična komunikacija z uporabo poceni 433MHz RF modulov in Pic mikrokontrolerjev. 2. del: 4 koraki (s slikami)

Video: Brezžična komunikacija z uporabo poceni 433MHz RF modulov in Pic mikrokontrolerjev. 2. del: 4 koraki (s slikami)
Video: 🇯🇵 Как пользоваться интернет-кафе 🍛☕ 2024, Julij
Anonim
Brezžična komunikacija z uporabo poceni 433MHz RF modulov in Pic mikrokontrolerjev. 2. del
Brezžična komunikacija z uporabo poceni 433MHz RF modulov in Pic mikrokontrolerjev. 2. del

V prvem delu tega navodila sem pokazal, kako programirati PIC12F1822 s prevajalnikom MPLAB IDE in XC8, da brezžično pošlje preprost niz z uporabo poceni modulov TX/RX 433MHz.

Sprejemniški modul je bil prek USB -kabla s kablom UART TTL priključen na računalnik, prejeti podatki pa so prikazani na RealTerm. Komunikacija je potekala pri 1200 baudih, največji doseg pa je bil približno 20 metrov skozi stene. Moji testi so pokazali, da so bili ti moduli za aplikacije, kjer ni potrebe po visoki hitrosti prenosa podatkov in velikem dosegu ter za neprekinjen prenos, izjemno dobri.

Drugi del tega projekta prikazuje, kako na sprejemnik dodati mikrokrmilnik PIC16F887 in modul LCD velikosti 16 × 2 znaka. Poleg tega na oddajniku sledi preprost protokol z dodatkom nekaj bajtov predvzorca. Ti bajti so potrebni, da modul RX prilagodi svoj dobiček, preden dobi dejansko obremenitev. Na strani sprejemnika je PIC odgovoren za pridobivanje in preverjanje podatkov, ki so prikazani na LCD zaslonu.

1. korak: Spremembe oddajnika

Spremembe oddajnikov
Spremembe oddajnikov
Spremembe oddajnikov
Spremembe oddajnikov
Spremembe oddajnikov
Spremembe oddajnikov

V prvem delu je oddajnik vsakih nekaj ms pošiljal preprost niz z uporabo osmih podatkovnih bitov, začetnega in zaustavnega bita pri 1200 bitih na sekundo. Ker je bil prenos skoraj neprekinjen, sprejemnik ni imel težav prilagoditi dobička sprejetim podatkom. V drugem delu je vdelana programska oprema spremenjena tako, da se prenos izvaja vsakih 2,3 sekunde. To dosežemo s prekinitvijo časovnika nadzornika (nastavljeno na 2,3 s), da prebudimo mikrokrmilnik, ki je med vsakim prenosom preklopljen v način mirovanja.

Da bi sprejemnik imel čas za natančno nastavitev dobička, se pred dejanskimi podatki pošlje nekaj bajtov preambule s kratkimi časi LO "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)". Tovor je nato označen z začetnim bajtom '&' in končnim '*' bajtom.

Zato je preprost protokol opisan na naslednji način:

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

Poleg tega je med V+ in GND RF modula dodan 10uF ločilni tantalski kondenzator, da se znebite valovanja, ki ga povzroči modul za povečanje dc-dc.

Hitrost prenosa podatkov je ostala enaka, vendar so moji testi pokazali, da je bil prenos učinkovit tudi pri 2400 baud.

2. korak: Spremembe sprejemnika: Dodajanje PIC16F887 in HD44780 LCD

Spremembe sprejemnika: Dodajanje PIC16F887 in HD44780 LCD
Spremembe sprejemnika: Dodajanje PIC16F887 in HD44780 LCD
Spremembe sprejemnika: Dodajanje PIC16F887 in HD44780 LCD
Spremembe sprejemnika: Dodajanje PIC16F887 in HD44780 LCD
Spremembe sprejemnika: Dodajanje PIC16F887 in HD44780 LCD
Spremembe sprejemnika: Dodajanje PIC16F887 in HD44780 LCD

Zasnova sprejemnika je temeljila na PIC16F887, vendar lahko uporabite drugačen PIC z majhnimi spremembami. V svojem projektu sem uporabil ta 40 -polni μC, saj bom za prihodnje projekte, ki temeljijo na tej zasnovi, potreboval dodatne zatiče. Izhod RF modula je priključen na UART rx pin, medtem ko je 16x2 znakovni LCD (HD44780) priključen preko PORTB nožic b2-b7 za prikaz prejetih podatkov.

Tako kot pri prvem delu so prejeti podatki prikazani tudi na RealTerm. To se doseže z uporabo pin -a UART tx, ki je prek kabla USB -UART -TTL -kabla priključen na računalnik.

Če pogledamo vdelano programsko opremo, ko pride do prekinitve UART, program preveri, ali je prejeti bajt začetni bajt ('&'). Če je odgovor pritrdilen, začne zapisovati naslednje bajte, dokler se ne ujame zaporni bajt ('*'). Takoj, ko je pridobljen celoten stavek in če je v skladu s prej opisanim preprostim protokolom, se nato pošlje na lcd zaslon, pa tudi na vrata UART tx.

Preden je prejel začetni bajt, je sprejemnik že prilagodil svoj dobiček z uporabo prejšnjih bajtov preambule. Ti so ključni za nemoteno delovanje sprejemnika. Izvede se preprosto preverjanje napak pri prekoračitvi in uokvirjanju, vendar je to le osnovna izvedba obravnave napak UART.

Kar zadeva strojno opremo, je za sprejemnik potrebno nekaj delov:

1 x PIC16F887

1 x HD44780

1 x RF Rx modul 433Mhz

1 x 10 μF tantalov kondenzator (ločevanje)

1 x 10 K trimer (svetlost pisave LCD)

1 x 220 Ω 1/4 W upor (osvetlitev LCD)

1 x 1 KΩ 1/4 W

1 x antena 433Mhz, 3dbi

V praksi je prejemnik deloval izjemno dobro v razponih do 20 metrov skozi stene.

3. korak: Nekaj referenc …

Poleg uradnega spletnega mesta Microschip na spletu obstaja veliko blogov, ki dajejo nasvete o programiranju PIC in odpravljanju težav. Zelo koristno se mi je zdelo naslednje:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

4. korak: Zaključki in delo v prihodnosti

Upam, da vam je ta navodila pomagala razumeti, kako uporabljati RF module in Pic mikrokrmilnike. Vdelano programsko opremo lahko prilagodite svojim potrebam in vključite CRC in šifriranje. Če želite svojo zasnovo narediti še bolj prefinjeno, lahko uporabite Microschipovo tehnologijo Keeloq. Če vaša aplikacija potrebuje dvosmerne podatke, bi morali imeti na obeh mikrokrmilnikih par TX/RX ali pa uporabiti bolj izpopolnjen oddajnik modulov. Vendar pa je s tovrstnimi poceni moduli 433MHz mogoče doseči le pol dupleksno komunikacijo. Poleg tega bi morali za bolj zanesljivo komunikacijo imeti določeno obliko rokovanja med TX in RX.

V naslednjem navodilu vam bom pokazal praktično uporabo, kjer se na oddajnik doda okoljski senzor s temperaturo, barometričnim tlakom in vlažnostjo. Tu bodo posredovani podatki vključevali crc in bodo imeli osnovno šifriranje.

Senzor bo uporabljal vrata i2c na PIC12F1822, medtem ko bo izvedba oddajnika in sprejemnika izpostavljena s shemami in datotekami pcb. Hvala, ker ste me prebrali!

Priporočena: