Taula de continguts:
- Pas 1: modificacions del transmissor
- Pas 2: modificacions del receptor: afegir LCD PIC16F887 i HD44780
- Pas 3: poques referències …
- Pas 4: Conclusions i treball futur
Vídeo: Comunicació sense fils mitjançant mòduls RF de 433 MHz i microcontroladors Pic. Part 2: 4 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
A la primera part d’aquest instructiu, vaig demostrar com programar un PIC12F1822 mitjançant el compilador MPLAB IDE i XC8, per enviar una cadena senzilla sense fils mitjançant mòduls TX / RX 433MHz barats.
El mòdul receptor es va connectar mitjançant un adaptador de cable USB a UART TTL a un PC i les dades rebudes es van mostrar a RealTerm. La comunicació es va realitzar a 1200 baud i l’abast màxim aconseguit va ser d’uns 20 metres a través de les parets. Les meves proves van demostrar que per a aplicacions on no és necessària una elevada velocitat de dades i un llarg abast, i per a la transmissió contínua, aquests mòduls funcionaven excepcionalment.
La segona part d’aquest projecte demostra com afegir un microcontrolador PIC16F887 i un mòdul LCD de 16 × 2 caràcters al receptor. A més, en el transmissor, se segueix un protocol senzill amb l'addició d'alguns bytes de preàmbuls. Aquests bytes són necessaris perquè el mòdul RX ajusti el seu guany abans d’obtenir la càrrega útil real. Al costat del receptor, el PIC és l’encarregat d’obtenir i validar les dades que es mostren a la pantalla LCD.
Pas 1: modificacions del transmissor
A la primera part, el transmissor enviava una cadena senzilla cada pocs ms mitjançant vuit bits de dades, un inici i un bit d’aturada a 1200 bits per segon. Com que la transmissió era gairebé contínua, el receptor no va tenir problemes per ajustar el seu guany a les dades rebudes. A la segona part, el firmware es modifica de manera que la transmissió es realitza cada 2,3 segons. Això s’aconsegueix mitjançant la interrupció del temporitzador del gos de vigilància (ajustat a 2,3 s) per activar el microcontrolador, que es posa en mode de repòs entre cada transmissió.
Per tal que el receptor tingui temps d’afinar el seu guany, s’envien uns quants bytes de preàmbul amb temps LO curts "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" abans de les dades reals. La càrrega útil s'indica llavors amb un byte inicial "&" i un byte "*" d'aturada.
Per tant, el protocol simple es descriu de la següent manera:
(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) i Hello InstWorld! *
A més, s’afegeix un condensador de tàntal de desacoblament de 10 uF entre el V + i el GND del mòdul RF per desfer-se de l’ondulació causada pel mòdul dc-dc step up.
La velocitat en bauds es va mantenir igual, tot i que les meves proves van demostrar que a 2400 bauds també la transmissió era eficient.
Pas 2: modificacions del receptor: afegir LCD PIC16F887 i HD44780
El disseny del receptor es basava en PIC16F887, però podeu utilitzar un PIC diferent amb poques modificacions. Al meu projecte he utilitzat aquest 40 pin μC, ja que necessitaré pins addicionals per a futurs projectes basats en aquest disseny. La sortida del mòdul RF està connectada al pin UX rx, mentre que un lcd de 16x2 caràcters (HD44780) es connecta a través dels pins P2B b2-b7 per mostrar les dades rebudes.
Com passa amb la primera part, les dades rebudes també es mostren a RealTerm. Això s’aconsegueix utilitzant el pin tx UART que es connecta a un PC mitjançant un adaptador de cable USB a UART TTL.
Analitzant el firmware, quan es produeix una interrupció UART, el programa comprova si el byte rebut és un byte inicial ('&'). Si és així, comença a enregistrar els bytes següents, fins que es captura un byte de parada ('*'). Tan bon punt s’obté tota la frase i si s’ajusta al protocol simple descrit anteriorment, s’envia a la pantalla lcd, així com al port tx UART.
Abans de rebre el byte inicial, el receptor ja ha ajustat el seu guany mitjançant els bytes del preàmbul precedents. Aquests són fonamentals per al bon funcionament del receptor. Es realitza una simple comprovació d'errors de superació i enquadrament, però només es tracta d'una implementació bàsica de maneig d'errors UART.
En termes de maquinari, es necessiten algunes parts per al receptor:
1 x PIC16F887
1 x HD44780
1 x mòdul RF Rx 433Mhz
Condensador de tantal 1 x 10 μF (desacoblament)
1 retallador de 10 K (brillantor de la font LCD)
1 x 220 Ω resistència 1/4 W (llum de fons LCD)
1 x 1 KΩ 1/4 W
1 x antena 433Mhz, 3dbi
A la pràctica, la recepció va funcionar excepcionalment bé en rangs de fins a 20 metres a través de parets.
Pas 3: poques referències …
Hi ha molts blocs al web que ofereixen consells sobre programació i resolució de problemes PIC, a més del lloc web oficial de Microschip. Em va semblar molt útil el següent:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Pas 4: Conclusions i treball futur
Espero que aquesta instrucció us ajudi a entendre com utilitzar mòduls de RF i microcontroladors Pic. Podeu ajustar el microprogramari a les vostres necessitats i incloure CRC i xifratge. Si voleu que el vostre disseny sigui encara més sofisticat, podeu utilitzar la tecnologia Keeloq de Microschip. En cas que la vostra aplicació necessiti dades bidireccionals, haureu de tenir un parell de TX / RX als dos microcontroladors o podeu utilitzar un transceptor més sofisticat. mòduls. Tanmateix, utilitzant aquest tipus de mòduls barats de 433 MHz, només es pot aconseguir la comunicació dúplex mitja. A més, per fer més fiable la comunicació, haureu de tenir algun tipus de handshake entre TX i RX.
A la propera instrucció, us mostraré una aplicació pràctica on s’afegeix un sensor ambiental amb temperatura, pressió baromètrica i humitat al transmissor. Aquí, les dades transmeses inclouran crc i tindran un xifratge bàsic.
El sensor utilitzarà el port i2c del PIC12F1822, mentre que la implementació del transmissor i del receptor s’exposarà a través d’esquemes i fitxers PCB. Gràcies per llegir-me.
Recomanat:
Llarg abast, 1,8 km, comunicació sense fils Arduino a Arduino amb l'HC-12 .: 6 passos (amb imatges)
Llarg abast, 1,8 km, comunicació sense fils Arduino a Arduino amb l'HC-12: en aquest instructiu aprendreu com comunicar-vos entre Arduinos a una distància llarga de fins a 1,8 km a l'aire lliure. L'HC-12 és un port sèrie sense fils mòdul de comunicació molt útil, extremadament potent i fàcil d'utilitzar. Primer sortireu
Xarxa de sensors sense fils de baix cost en banda de 433 MHz: 5 passos (amb imatges)
Xarxa de sensors sense fils de baix cost a la banda de 433 MHz: Moltes gràcies a Teresa Rajba per haver-me acceptat amablement d’utilitzar les dades de les seves publicacions en aquest article. * xarxes? Una senzilla definició no
Comunicació sense fils mitjançant el mòdul transceptor NRF24L01 per a projectes basats en Arduino: 5 passos (amb imatges)
Comunicació sense fils mitjançant el mòdul transceptor NRF24L01 per a projectes basats en Arduino: Aquest és el meu segon tutorial instructiu sobre els robots i els microcontroladors. És realment sorprenent veure el vostre robot viu i funcionant com s’esperava i cregueu-me que serà més divertit controlar el vostre robot o altres coses sense fils de manera ràpida i
Com mesurar correctament el consum d'energia dels mòduls de comunicació sense fils en l'era del baix consum d'energia ?: 6 passos
Com mesurar correctament el consum d’energia dels mòduls de comunicació sense fils a l’era del baix consum d’energia ?: El baix consum d’energia és un concepte extremadament important a la Internet de les coses. La majoria de nodes IoT han d’estar alimentats per bateries. Només mesurant correctament el consum d'energia del mòdul sense fils podem estimar amb precisió la quantitat de bateria que
Sistema de semàfors de 4 vies que fa servir 5 Arduinos i 5 mòduls sense fils NRF24L01: 7 passos (amb imatges)
Sistema de semàfors de 4 vies que utilitza 5 mòduls sense fils Arduinos i 5 NRF24L01: fa poc vaig crear un Instructable que detallava un sol parell de semàfors en una placa de taula, i també vaig crear un altre Instructable que mostra el marc bàsic per utilitzar un mòdul sense fils NRF24L01. em va fer pensar! Hi ha força