Indholdsfortegnelse:

Trådløs kommunikation ved hjælp af billige 433MHz RF -moduler og Pic -mikrokontroller. Del 2: 4 trin (med billeder)
Trådløs kommunikation ved hjælp af billige 433MHz RF -moduler og Pic -mikrokontroller. Del 2: 4 trin (med billeder)

Video: Trådløs kommunikation ved hjælp af billige 433MHz RF -moduler og Pic -mikrokontroller. Del 2: 4 trin (med billeder)

Video: Trådløs kommunikation ved hjælp af billige 433MHz RF -moduler og Pic -mikrokontroller. Del 2: 4 trin (med billeder)
Video: Homey Keynote — Easy. Fun. Everyone. 2024, Juli
Anonim
Trådløs kommunikation ved hjælp af billige 433MHz RF -moduler og Pic -mikrokontroller. Del 2
Trådløs kommunikation ved hjælp af billige 433MHz RF -moduler og Pic -mikrokontroller. Del 2

På den første del af denne instruktive demonstrerede jeg, hvordan man programmerer en PIC12F1822 ved hjælp af MPLAB IDE og XC8 -compiler, til at sende en simpel streng trådløst ved hjælp af billige TX/RX 433MHz -moduler.

Modtagermodulet blev forbundet via en USB til UART TTL -kabeladapter til en pc, og de modtagne data blev vist på RealTerm. Kommunikationen blev udført ved 1200 baud, og den maksimale rækkevidde var omkring 20 meter gennem vægge. Mine tests viste, at for applikationer, hvor der ikke er behov for høj datahastighed og lang rækkevidde, og for kontinuerlig transmission, fungerede disse moduler usædvanligt godt.

Den anden del af dette projekt viser, hvordan man tilføjer en PIC16F887 mikrokontroller og et 16 × 2 tegn LCD -modul på modtageren. Desuden følges der på transmitteren en simpel protokol med tilføjelse af et par preample bytes. Disse bytes er nødvendige for, at RX -modulet justerer sin forstærkning, før den faktiske nyttelast opnås. På modtagersiden er PIC ansvarlig for at hente og validere de data, der vises på LCD -skærmen.

Trin 1: Sendermodifikationer

Sendermodifikationer
Sendermodifikationer
Sendermodifikationer
Sendermodifikationer
Sendermodifikationer
Sendermodifikationer

På den første del sendte senderen en simpel streng hvert par ms ved hjælp af otte databit, en start- og en stopbit med 1200 bit pr. Sekund. Da transmissionen var næsten kontinuerlig, havde modtageren ingen problemer med at justere dens gevinst til de modtagne data. På den anden del ændres firmwaren, så transmissionen udføres hvert 2,3 sekund. Dette opnås ved hjælp af vagthundens timer -afbrydelse (indstillet til 2,3 sek.) Til at vække mikrokontrolleren, som sættes i dvaletilstand mellem hver transmission.

For at modtageren har tid til at finjustere sin gevinst, sendes et par præamblebytes med korte LO-tider "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" før de faktiske data. Nyttelast angives derefter med et start '&' og et stop '*' byte.

Derfor beskrives den enkle protokol som følger:

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

Desuden tilføjes en 10uF afkoblingstantalalkondensator mellem RF-modulets V+ og GND for at slippe af med krusningen forårsaget af dc-dc step up-modulet.

Baudhastigheden forblev den samme, men alligevel viste mine tests, at transmissionen ved 2400 baud også var effektiv.

Trin 2: Modtagermodifikationer: Tilføjelse af PIC16F887 og HD44780 LCD

Modtagermodifikationer: Tilføjelse af PIC16F887 og HD44780 LCD
Modtagermodifikationer: Tilføjelse af PIC16F887 og HD44780 LCD
Modtagermodifikationer: Tilføjelse af PIC16F887 og HD44780 LCD
Modtagermodifikationer: Tilføjelse af PIC16F887 og HD44780 LCD
Modtagermodifikationer: Tilføjelse af PIC16F887 og HD44780 LCD
Modtagermodifikationer: Tilføjelse af PIC16F887 og HD44780 LCD

Modtagerens design var baseret på PIC16F887, men du kan bruge en anden PIC med små ændringer. I mit projekt brugte jeg denne 40 pin μC, da jeg skal bruge ekstra pins til fremtidige projekter baseret på dette design. Udgangen fra RF-modulet er forbundet til UART rx-stiften, mens en 16x2 tegn lcd (HD44780) er forbundet via PORTB-ben b2-b7 for at vise de modtagne data.

Som med del 1 vises de modtagne data også på RealTerm. Dette opnås ved hjælp af UART tx pin, der er forbundet via en USB til UART TTL kabeladapter til en pc.

Når man kigger på firmwaren, når der finder en UART -afbrydelse sted, kontrollerer programmet, om den modtagne byte er en startbyte ('&'). Hvis ja, begynder det at optage de efterfølgende bytes, indtil en stopbyte er fanget ('*'). Så snart hele sætningen er opnået, og hvis den er i overensstemmelse med den simple protokol, der er beskrevet før, sendes den derefter til lcd -skærmen såvel som til UART tx -porten.

Inden modtagelse af startbyte har modtageren allerede justeret sin forstærkning ved hjælp af de foregående præamblebytes. Disse er afgørende for, at modtageren fungerer gnidningsløst. Der foretages en simpel kontrol af overløb og indramning af fejl, men dette er kun en grundlæggende implementering af UART -fejlhåndtering.

Med hensyn til hardware er der brug for et par dele til modtageren:

1 x PIC16F887

1 x HD44780

1 x RF Rx -modul 433Mhz

1 x 10 μF tantal kondensator (afkobling)

1 x 10 K trimmer (LCD -skriftens lysstyrke)

1 x 220 Ω 1/4 W modstand (LCD -baggrundsbelysning)

1 x 1 KΩ 1/4 W

1 x antenne 433Mhz, 3dbi

I praksis fungerede de modtagne usædvanligt godt i områder op til 20 meter på trods af vægge.

Trin 3: Et par referencer …

Der er mange blogs på nettet, der giver tips om PIC -programmering og fejlfinding udover det officielle Microschip -websted. Jeg fandt følgende meget nyttigt:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Trin 4: Konklusioner og fremtidigt arbejde

Jeg håber, at denne instruktive hjalp dig med at forstå, hvordan du bruger RF -moduler og Pic -mikrokontroller. Du kan tilpasse din firmware til dine egne behov og inkludere CRC og kryptering. Hvis du vil gøre dit design endnu mere sofistikeret, kan du bruge Microschips Keeloq-teknologi. Hvis din applikation har brug for tovejsdata, skal du have et par TX/RX på begge mikrokontroller, eller du kan bruge mere sofistikeret transceiver moduler. Ved hjælp af denne form for billige 433MHz -moduler kan der imidlertid kun opnås halv duplex kommunikation. For at gøre kommunikationen mere pålidelig, skal du have en form for håndtryk mellem TX og RX.

På den næste instruerbare, vil jeg vise dig en praktisk applikation, hvor en miljøsensor med temperatur, barometertryk og fugtighed tilføjes på senderen. Her vil de overførte data omfatte crc og have en grundlæggende kryptering.

Sensoren bruger i2c -porten på PIC12F1822, hvorimod implementeringen af både sender og modtager vil blive afsløret gennem skemaer og pcb -filer. Tak fordi du læste mig!

Anbefalede: