Innehållsförteckning:
- Steg 1: Sändarändringar
- Steg 2: Mottagarmodifieringar: Lägga till PIC16F887 och HD44780 LCD
- Steg 3: Några referenser …
- Steg 4: Slutsatser och framtida arbete
Video: Trådlös kommunikation med hjälp av billiga 433MHz RF -moduler och Pic -mikrokontroller. Del 2: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
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:
Trådlös vibrations- och temperatursensordata till MySQL med hjälp av Node-RED: 40 steg
Trådlös vibrations- och temperatursensordata till MySQL med hjälp av Node-RED: Presentation av NCD: s Long Range IoT Industrial trådlösa vibrations- och temperatursensor, med upp till 2 mils intervall användning av en trådlös nätverksstruktur. Denna enhet innehåller en precisions 16-bitars vibrations- och temperaturgivare och
Skicka data om trådlös vibration och temperatur till Google Sheets med hjälp av Node-RED: 37 steg
Skicka data om trådlös vibration och temperatur till Google Sheets med hjälp av Node-RED: Introduktion till NCD: s Long Range IoT Industrial trådlösa vibrations- och temperatursensor, med upp till 2 mils intervall användning av en trådlös nätverksstruktur. Denna enhet innehåller en precisions 16-bitars vibrations- och temperaturgivare och
Lång räckvidd, 1,8 km, Arduino till Arduino Trådlös kommunikation med HC-12 .: 6 steg (med bilder)
Lång räckvidd, 1,8 km, Arduino till Arduino Trådlös kommunikation med HC-12 .: I denna instruktör kommer du att lära dig hur du kommunicerar mellan Arduinos över en lång sträcka upp till 1,8 km utomhus. HC-12 är en trådlös seriell port kommunikationsmodul som är mycket användbar, extremt kraftfull och lätt att använda. Först lär du
Trådlös kommunikation med NRF24L01 -sändtagarmodul för Arduino -baserade projekt: 5 steg (med bilder)
Trådlös kommunikation med NRF24L01-sändtagarmodul för Arduino-baserade projekt: Detta är min andra instruerbara handledning om robotar och mikrokontroller. Det är verkligen fantastiskt att se din robot leva och fungera som förväntat och tro mig det kommer att bli roligare om du styr din robot eller andra trådlösa saker med snabb och
Skapa e-postvarningar för NCD trådlös temperatur- och fuktighetssensor med hjälp av nodrött: 22 steg
Skapa e-postvarningar för NCD trådlös temperatur- och luftfuktighetssensor med hjälp av Node-Red: Vi använder här NCD: s temperatur- och fuktighetssensor, men stegen förblir lika för någon av ncd-produkterna, så om du har andra trådlösa ncd-sensorer, upplev gratis observera bredvid. Genom att stoppa den här texten måste du