INHOUDSOPGAWE:

Draadlose kommunikasie met behulp van goedkoop 433MHz RF -modules en Pic -mikrobeheerders. Deel 2: 4 stappe (met prente)
Draadlose kommunikasie met behulp van goedkoop 433MHz RF -modules en Pic -mikrobeheerders. Deel 2: 4 stappe (met prente)

Video: Draadlose kommunikasie met behulp van goedkoop 433MHz RF -modules en Pic -mikrobeheerders. Deel 2: 4 stappe (met prente)

Video: Draadlose kommunikasie met behulp van goedkoop 433MHz RF -modules en Pic -mikrobeheerders. Deel 2: 4 stappe (met prente)
Video: Wireless zigbee button for smart home automation - compact and budget 2024, Desember
Anonim
Draadlose kommunikasie met behulp van goedkoop 433MHz RF -modules en Pic -mikrobeheerders. Deel 2
Draadlose kommunikasie met behulp van goedkoop 433MHz RF -modules en Pic -mikrobeheerders. Deel 2

In die eerste deel van hierdie instruksies het ek gedemonstreer hoe u 'n PIC12F1822 met MPLAB IDE en XC8 -samesteller kan programmeer om 'n eenvoudige string draadloos te stuur met goedkoop TX/RX 433MHz -modules.

Die ontvangermodule is via 'n USB- na UART TTL -kabeladapter aan 'n rekenaar gekoppel, en die ontvangde data is op RealTerm vertoon. Die kommunikasie is uitgevoer teen 1200 baud en die maksimum bereik wat bereik is, was ongeveer 20 meter deur mure. My toetse het getoon dat hierdie modules buitengewoon goed presteer vir toepassings waar hoë datatempo en lang afstand nie nodig is nie en vir deurlopende transmissie.

Die tweede deel van hierdie projek demonstreer hoe u 'n PIC16F887 -mikrobeheerder en 'n 16 × 2 -karakter -LCD -module op die ontvanger kan byvoeg. Boonop word op die sender 'n eenvoudige protokol gevolg met die toevoeging van 'n paar voorgrepe. Hierdie grepe is nodig vir die RX -module om die versterking daarvan aan te pas voordat hy die werklike loonvrag kry. Aan die ontvangerkant is die PIC verantwoordelik om die data wat op die LCD -skerm verskyn, te kry en te bekragtig.

Stap 1: Senderwysigings

Senderwysigings
Senderwysigings
Senderwysigings
Senderwysigings
Senderwysigings
Senderwysigings

In die eerste deel stuur die sender elke paar ms 'n eenvoudige string met behulp van agt databits, 'n begin en 'n stopbit teen 1200 bis per sekonde. Aangesien die oordrag byna deurlopend was, het die ontvanger geen moeite gehad om die wins daarvan aan te pas by die ontvangde data nie. In die tweede deel word die firmware so aangepas dat die oordrag elke 2,3 sekondes uitgevoer word. Dit word bereik deur die waghond -timer -onderbreking (ingestel op 2.3s) te maak om die mikrokontroleerder wakker te maak, wat tussen elke uitsending in die slaapmodus gesit word.

Om die ontvanger tyd te kry om die wins te verstel, word 'n paar aanhefgrepe met kort LO-tye "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" gestuur voor die werklike data. Nuttelading word dan aangedui deur 'n begin '&' en 'stop'*'byte.

Daarom word die eenvoudige protokol soos volg beskryf:

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

Boonop word 'n 10uF ontkoppeling tantaalkondensator bygevoeg tussen die V+ en GND van die RF-module om ontslae te raak van die rimpel wat veroorsaak word deur die dc-dc opstapmodule.

Baud -tempo het dieselfde gebly, maar my toetse het getoon dat die oordrag teen 2400 baud ook doeltreffend was.

Stap 2: Aanpassings van die ontvanger: Voeg PIC16F887 en HD44780 LCD by

Ontvanger -wysigings: voeg PIC16F887 en HD44780 LCD by
Ontvanger -wysigings: voeg PIC16F887 en HD44780 LCD by
Ontvanger -wysigings: voeg PIC16F887 en HD44780 LCD by
Ontvanger -wysigings: voeg PIC16F887 en HD44780 LCD by
Ontvanger -wysigings: voeg PIC16F887 en HD44780 LCD by
Ontvanger -wysigings: voeg PIC16F887 en HD44780 LCD by

Die ontvangerontwerp was gebaseer op PIC16F887, maar u kan 'n ander PIC gebruik met min wysigings. In my projek het ek hierdie 40 -pins μC gebruik, aangesien ek ekstra penne benodig vir toekomstige projekte wat gebaseer is op hierdie ontwerp. Die uitset van die RF-module is gekoppel aan die UART rx-pen, terwyl 'n 16x2 karakter lcd (HD44780) deur PORTB-penne b2-b7 gekoppel is om die ontvangde data te vertoon.

Soos met Deel 1, word die ontvangde data ook op RealTerm vertoon. Dit word bereik met behulp van UART tx -pen wat via 'n USB- na UART TTL -kabeladapter aan 'n rekenaar gekoppel is.

As u na die firmware kyk, kyk die program na 'n UART -onderbreking of die byte wat ontvang is 'n beginbyte ('&') is. Indien wel, begin dit met die opneem van die daaropvolgende grepe totdat 'n stopbyte ('*') opgevang word. Sodra die hele sin verkry is en as dit voldoen aan die eenvoudige protokol wat voorheen beskryf is, word dit na die lcd -skerm sowel as na die UART tx -poort gestuur.

Voordat die beginbyte ontvang is, het die ontvanger sy versterking reeds aangepas met behulp van die voorafgaande aanhefgrepe. Dit is van kritieke belang vir die gladde werking van die ontvanger. 'N Eenvoudige oorskrydings- en raamfoutkontrole word uitgevoer, maar dit is slegs 'n basiese implementering van UART -fouthantering.

Wat hardeware betref, is 'n paar dele nodig vir die ontvanger:

1 x PIC16F887

1 x HD44780

1 x RF Rx -module 433Mhz

1 x 10 μF tantaalkondensator (ontkoppeling)

1 x 10 K trimmer (LCD lettertipe helderheid)

1 x 220 Ω 1/4 W weerstand (LCD -agtergrond)

1 x 1 KΩ 1/4 W

1 x antenne 433Mhz, 3dbi

In die praktyk werk die ontvangers buitengewoon goed in reekse tot 20 meter deur mure.

Stap 3: 'n Paar verwysings …

Daar is baie blogs op die internet, behalwe die amptelike Microschip -webwerf, wenke oor PIC -programmering en probleemoplossing. Ek het die volgende baie nuttig gevind:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Stap 4: Gevolgtrekkings en toekomstige werk

Ek hoop dat hierdie instruksies u gehelp het om te verstaan hoe u RF -modules en Pic -mikrobeheerders kan gebruik. U kan u firmware aanpas by u eie behoeftes en CRC en kodering insluit. As u u ontwerp nog meer gesofistikeerd wil maak, kan u die Keeloq-tegnologie van Microschip gebruik. As u toepassing tweerigting-data benodig, moet u 'n paar TX/RX by beide mikrobeheerders hê, of u kan meer gesofistikeerde transceiver gebruik modules. Deur hierdie soort goedkoop 433MHz -modules te gebruik, kan slegs 'n half duplex -kommunikasie bereik word. Om die kommunikasie betroubaarder te maak, moet u 'n vorm van handdruk tussen TX en RX hê.

Op die volgende instruksie sal ek u 'n praktiese toepassing wys waar 'n omgewingsensor met temperatuur, barometriese druk en humiditeit op die sender bygevoeg word. Hier sal die gestuurde data crc insluit en 'n basiese kodering hê.

Die sensor gebruik die i2c -poort van die PIC12F1822, terwyl die implementering van beide sender en ontvanger blootgestel sal word deur skemas en PCB -lêers. Dankie dat u my gelees het!

Aanbeveel: