Innehållsförteckning:

Trådlös kommunikation med hjälp av billiga 433MHz RF -moduler och Pic -mikrokontroller. Del 2: 4 steg (med bilder)
Trådlös kommunikation med hjälp av billiga 433MHz RF -moduler och Pic -mikrokontroller. Del 2: 4 steg (med bilder)

Video: Trådlös kommunikation med hjälp av billiga 433MHz RF -moduler och Pic -mikrokontroller. Del 2: 4 steg (med bilder)

Video: Trådlös kommunikation med hjälp av billiga 433MHz RF -moduler och Pic -mikrokontroller. Del 2: 4 steg (med bilder)
Video: Homey Keynote — Easy. Fun. Everyone. 2024, December
Anonim
Trådlös kommunikation med hjälp av billiga 433MHz RF -moduler och Pic -mikrokontroller. Del 2
Trådlös kommunikation med hjälp av billiga 433MHz RF -moduler och Pic -mikrokontroller. Del 2

På den första delen av denna instruerbara visade jag hur man programmerar en PIC12F1822 med MPLAB IDE och XC8 -kompilator, för att skicka en enkel sträng trådlöst med billiga TX/RX 433MHz -moduler.

Mottagarmodulen var ansluten via en USB till UART TTL -kabeladapter till en dator, och den mottagna informationen visades på RealTerm. Kommunikationen utfördes vid 1200 baud och den maximala räckvidden som uppnåddes var cirka 20 meter genom väggar. Mina tester visade att för applikationer där det inte finns behov av hög datahastighet och lång räckvidd, och för kontinuerlig överföring, presterade dessa moduler exceptionellt bra.

Den andra delen av detta projekt visar hur man lägger till en PIC16F887 mikrokontroller och en 16 × 2 tecken LCD -modul på mottagaren. På sändaren följs dessutom ett enkelt protokoll med tillägg av några inledande byte. Dessa byte är nödvändiga för att RX -modulen ska justera sin förstärkning innan den faktiska nyttolasten uppnås. På mottagarsidan är PIC ansvarig för att få och validera data som visas på LCD -skärmen.

Steg 1: Sändarändringar

Sändarändringar
Sändarändringar
Sändarändringar
Sändarändringar
Sändarändringar
Sändarändringar

På den första delen skickade sändaren en enkel sträng var några ms med hjälp av åtta databitar, en start- och en stoppbit med 1200 bitar per sekund. Eftersom överföringen var nästan kontinuerlig hade mottagaren inga problem med att justera sin förstärkning till de mottagna data. På den andra delen modifieras firmware så att överföringen utförs var 2,3 sekund. Detta uppnås med hjälp av vakthundens timeravbrott (inställt på 2,3 sek) för att väcka mikrokontrollern, som sätts i viloläge mellan varje överföring.

För att mottagaren ska få tid att finjustera sin förstärkning skickas några ingressbyte med korta LO-tider "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" innan de faktiska uppgifterna. Nyttolast indikeras sedan med en start '&' och en stopp '*' byte.

Därför beskrivs det enkla protokollet enligt följande:

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

Dessutom läggs en 10uF-frikopplingstantalskondensator till mellan RF-modulens V+ och GND för att bli av med krusningen som orsakas av dc-dc step up-modulen.

Baudhastigheten förblev densamma, men mina tester visade att vid 2400 baud också var överföringen effektiv.

Steg 2: Mottagarmodifieringar: Lägga till PIC16F887 och HD44780 LCD

Mottagarmodifieringar: Lägger till PIC16F887 och HD44780 LCD
Mottagarmodifieringar: Lägger till PIC16F887 och HD44780 LCD
Mottagarmodifieringar: Lägger till PIC16F887 och HD44780 LCD
Mottagarmodifieringar: Lägger till PIC16F887 och HD44780 LCD
Mottagarmodifieringar: Lägger till PIC16F887 och HD44780 LCD
Mottagarmodifieringar: Lägger till PIC16F887 och HD44780 LCD

Mottagardesignen baserades på PIC16F887, men du kan använda en annan PIC med små modifieringar. I mitt projekt använde jag denna 40 -stift μC, eftersom jag kommer att behöva extra stift för framtida projekt baserade på denna design. Utsignalen från RF-modulen är ansluten till UART rx-stiftet, medan en 16x2 tecken LCD (HD44780) är ansluten via PORTB-stiften b2-b7 för att visa mottagen data.

Precis som med del 1 visas de mottagna data också på RealTerm. Detta uppnås med UART tx -stift som är ansluten via en USB till UART TTL -kabeladapter till en dator.

När du tittar på firmware, när ett UART -avbrott sker, kontrollerar programmet om den mottagna byten är en startbyte ('&'). Om ja, börjar den spela in de efterföljande bytena tills en stoppbyte fångas ('*'). Så snart hela meningen erhålls, och om den överensstämmer med det enkla protokoll som beskrivits tidigare, skickas den sedan till LCD -skärmen, liksom till UART tx -porten.

Innan mottagaren startbyte har mottagaren redan justerat sin förstärkning med hjälp av föregående ingressbyte. Dessa är avgörande för att mottagaren ska fungera smidigt. En enkel kontroll av överkörning och inramning görs, men detta är bara en grundläggande implementering av UART -felhantering.

När det gäller hårdvara behövs några delar för mottagaren:

1 x PIC16F887

1 x HD44780

1 x RF Rx -modul 433Mhz

1 x 10 μF tantal kondensator (avkoppling)

1 x 10 K trimmer (LCD -fontens ljusstyrka)

1 x 220 Ω 1/4 W motstånd (LCD -bakgrundsbelysning)

1 x 1 KΩ 1/4 W

1 x antenn 433Mhz, 3dbi

I praktiken fungerade den mottagna exceptionellt bra i intervall upp till 20 meter genom väggar.

Steg 3: Några referenser …

Det finns många bloggar på webben som ger tips om PIC -programmering och felsökning förutom den officiella Microschip -webbplatsen. Jag tyckte följande var till stor hjälp:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Steg 4: Slutsatser och framtida arbete

Jag hoppas att denna instruerbara hjälpte dig att förstå hur du använder RF -moduler och Pic -mikrokontroller. Du kan anpassa din firmware till dina egna behov och inkludera CRC och kryptering. Om du vill göra din design ännu mer sofistikerad kan du använda Microschips Keeloq-teknik. Om din applikation behöver dubbelriktad data måste du ha ett par TX/RX på båda mikrokontroller, eller så kan du använda mer sofistikerad transceiver moduler. Men med denna typ av billiga 433MHz -moduler kan endast halv duplexkommunikation åstadkommas. För att göra kommunikationen mer tillförlitlig skulle du behöva ha någon form av handskakning mellan TX och RX.

På nästa instruerbara, kommer jag att visa dig en praktisk applikation där en miljösensor med temperatur, barometertryck och luftfuktighet läggs till på sändaren. Här kommer den överförda datan att inkludera crc och ha en grundläggande kryptering.

Sensorn kommer att använda i2c -porten på PIC12F1822, medan implementeringen av både sändare och mottagare kommer att exponeras genom scheman och PCB -filer. Tack för att du läser mig!

Rekommenderad: