Taula de continguts:

Comunicació sense fils mitjançant mòduls RF de 433 MHz i microcontroladors Pic. Part 2: 4 passos (amb imatges)
Comunicació sense fils mitjançant mòduls RF de 433 MHz i microcontroladors Pic. Part 2: 4 passos (amb imatges)

Vídeo: Comunicació sense fils mitjançant mòduls RF de 433 MHz i microcontroladors Pic. Part 2: 4 passos (amb imatges)

Vídeo: Comunicació sense fils mitjançant mòduls RF de 433 MHz i microcontroladors Pic. Part 2: 4 passos (amb imatges)
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Juliol
Anonim
Comunicació sense fils mitjançant mòduls RF de 433 MHz i microcontroladors Pic. Part 2
Comunicació sense fils mitjançant mòduls RF de 433 MHz i microcontroladors Pic. Part 2

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

Modificacions del transmissor
Modificacions del transmissor
Modificacions del transmissor
Modificacions del transmissor
Modificacions del transmissor
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

Modificacions del receptor: afegint LCD PIC16F887 i HD44780
Modificacions del receptor: afegint LCD PIC16F887 i HD44780
Modificacions del receptor: afegint LCD PIC16F887 i HD44780
Modificacions del receptor: afegint LCD PIC16F887 i HD44780
Modificacions del receptor: afegint LCD PIC16F887 i HD44780
Modificacions del receptor: afegint 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: