INHOUDSOPGAWE:
- Stap 1: Senderwysigings
- Stap 2: Aanpassings van die ontvanger: Voeg PIC16F887 en HD44780 LCD by
- Stap 3: 'n Paar verwysings …
- Stap 4: Gevolgtrekkings en toekomstige werk
Video: Draadlose kommunikasie met behulp van goedkoop 433MHz RF -modules en Pic -mikrobeheerders. Deel 2: 4 stappe (met prente)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
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
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
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:
SmartHome draadlose kommunikasie: die uiterste basiese beginsels van MQTT: 3 stappe
SmartHome draadlose kommunikasie: die uiterste beginsels van MQTT: MQTT Basics: ** Ek gaan 'n Home Automation -reeks doen, ek sal deur die stappe gaan om alles te leer wat ek in die toekoms gedoen het. Hierdie instruksies is die basis vir die opstel van MQTT vir gebruik in my toekomstige instruksies. Hoe
Draadlose Arduino -robot met behulp van die HC12 -draadlose module: 7 stappe
Draadlose Arduino -robot wat die HC12 -draadlose module gebruik: Hallo ouens, welkom terug. In my vorige pos het ek verduidelik wat 'n H Bridge Circuit is, L293D -motorbestuurder -IC, L293D -motorbestuurder -IC vir die bestuur van hoëstroom -motorbestuurders en hoe u u eie L293D -motorbestuurderbord kan ontwerp en maak
Langafstand, 1,8 km, draadlose kommunikasie tussen Arduino en Arduino met die HC-12 .: 6 stappe (met foto's)
Long Range, 1.8km, Arduino to Arduino Wireless Communication Met die HC-12 .: In hierdie instruksies leer jy hoe om tussen Arduinos te kommunikeer oor 'n lang afstand tot 1.8km in die oop lug. Die HC-12 is 'n draadlose seriële poort baie nuttige, uiters kragtige en maklik om te gebruik kommunikasiemodule. Eerstens sal jy lees
Draadlose kommunikasie met behulp van NRF24L01 -transceivermodule vir Arduino -gebaseerde projekte: 5 stappe (met foto's)
Draadlose kommunikasie met behulp van NRF24L01-transceivermodule vir projekte wat op Arduino gebaseer is: Dit is my tweede instruksies oor die robotte en mikrobeheerders. Dit is regtig ongelooflik om u robot lewendig te sien werk soos verwag, en glo my, dit sal lekkerder wees as u u robot of ander draadlose dinge vinnig en
Draadlose seriële kommunikasie met behulp van Bluefruit: 4 stappe
Draadlose seriële kommunikasie met behulp van Bluefruit: Hier is 'n eenvoudige stap -vir -stap gids om u drade te vervang deur 'n Bluetooth -laenergieverbinding: dit het my 'n rukkie geneem om dit uit te vind, want daar is amper geen dokumentasie om dit te doen met moderne Bluetooth -lae -energie -tegnologie soos soos die Bluefrui