Tabla de contenido:

Comunicación inalámbrica con módulos RF de 433 MHz y microcontroladores Pic baratos. Parte 2: 4 pasos (con imágenes)
Comunicación inalámbrica con módulos RF de 433 MHz y microcontroladores Pic baratos. Parte 2: 4 pasos (con imágenes)

Video: Comunicación inalámbrica con módulos RF de 433 MHz y microcontroladores Pic baratos. Parte 2: 4 pasos (con imágenes)

Video: Comunicación inalámbrica con módulos RF de 433 MHz y microcontroladores Pic baratos. Parte 2: 4 pasos (con imágenes)
Video: CÓMO UTILIZAR un MÓDULO de RF 433 MHZ 📡 ► ARDUINO [ TUTORIAL 22 ] ✅ 2024, Mes de julio
Anonim
Comunicación inalámbrica con módulos RF de 433 MHz y microcontroladores Pic baratos. Parte 2
Comunicación inalámbrica con módulos RF de 433 MHz y microcontroladores Pic baratos. Parte 2

En la primera parte de este instructivo, demostré cómo programar un PIC12F1822 usando el compilador MPLAB IDE y XC8, para enviar una cadena simple de forma inalámbrica usando módulos baratos TX / RX 433MHz.

El módulo receptor se conectó mediante un adaptador de cable USB a UART TTL a una PC y los datos recibidos se mostraron en RealTerm. La comunicación se realizó a 1200 baudios y el alcance máximo alcanzado fue de unos 20 metros a través de paredes. Mis pruebas mostraron que para aplicaciones donde no hay necesidad de alta velocidad de datos y largo alcance, y para transmisión continua, estos módulos funcionaron excepcionalmente bien.

La segunda parte de este proyecto demuestra cómo agregar un microcontrolador PIC16F887 y un módulo LCD de 16 × 2 caracteres en el receptor. Además, en el transmisor, se sigue un protocolo simple con la adición de algunos bytes de preamplificación. Estos bytes son necesarios para que el módulo RX ajuste su ganancia antes de obtener la carga útil real. En el lado del receptor, el PIC es responsable de obtener y validar los datos que se muestran en la pantalla LCD.

Paso 1: Modificaciones del transmisor

Modificaciones del transmisor
Modificaciones del transmisor
Modificaciones del transmisor
Modificaciones del transmisor
Modificaciones del transmisor
Modificaciones del transmisor

En la primera parte, el transmisor enviaba una cadena simple cada pocos ms utilizando ocho bits de datos, un bit de inicio y otro de parada a 1200 bits por segundo. Como la transmisión fue casi continua, el receptor no tuvo problemas para ajustar su ganancia a los datos recibidos. En la segunda parte, se modifica el firmware para que la transmisión se realice cada 2,3 segundos. Esto se logra utilizando la interrupción del temporizador de vigilancia (establecida en 2,3 s) para activar el microcontrolador, que se pone en modo de suspensión entre cada transmisión.

Para que el receptor tenga tiempo de ajustar su ganancia, se envían algunos bytes de preámbulo con tiempos de LO cortos "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" antes de los datos reales. La carga útil se indica con un byte de inicio '&' y un byte de parada '*'.

Por lo tanto, el protocolo simple se describe de la siguiente manera:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) y ¡Hola InstWorld! *

Además, se agrega un condensador de tantalio de desacoplamiento de 10uF entre V + y GND del módulo RF para eliminar la ondulación causada por el módulo elevador dc-dc.

La velocidad en baudios se mantuvo igual, sin embargo, mis pruebas mostraron que también a 2400 baudios, la transmisión fue eficiente.

Paso 2: Modificaciones del receptor: Adición de LCD PIC16F887 y HD44780

Modificaciones del receptor: adición de LCD PIC16F887 y HD44780
Modificaciones del receptor: adición de LCD PIC16F887 y HD44780
Modificaciones del receptor: adición de LCD PIC16F887 y HD44780
Modificaciones del receptor: adición de LCD PIC16F887 y HD44780
Modificaciones del receptor: adición de LCD PIC16F887 y HD44780
Modificaciones del receptor: adición de LCD PIC16F887 y HD44780

El diseño del receptor se basó en PIC16F887, pero puede usar un PIC diferente con pequeñas modificaciones. En mi proyecto usé este 40 pines μC, ya que necesitaré pines adicionales para proyectos futuros basados en este diseño. La salida del módulo RF está conectada al pin UART rx, mientras que un lcd de 16x2 caracteres (HD44780) está conectado a través de los pines PORTB b2-b7 para mostrar los datos recibidos.

Como en la Parte 1, los datos recibidos también se muestran en RealTerm. Esto se logra usando el pin UART tx que se conecta a través de un adaptador de cable USB a UART TTL a una PC.

Al observar el firmware, cuando se produce una interrupción de UART, el programa comprueba si el byte recibido es un byte de inicio ('&'). Si es así, comienza a registrar los bytes subsiguientes, hasta que se captura un byte de parada ('*'). Tan pronto como se obtiene la oración completa, y si se ajusta al protocolo simple descrito anteriormente, se envía a la pantalla lcd, así como al puerto UART tx.

Antes de recibir el byte de inicio, el receptor ya ha ajustado su ganancia utilizando los bytes de preámbulo anteriores. Estos son fundamentales para el buen funcionamiento del receptor. Se realiza una simple verificación de errores de encuadre y desbordamiento, sin embargo, esta es solo una implementación básica de manejo de errores de UART.

En términos de hardware, se necesitan algunas partes para el receptor:

1 x PIC16F887

1 x HD44780

1 x módulo RF Rx 433Mhz

1 condensador de tantalio de 10 μF (desacoplamiento)

1 recortador de 10 K (brillo de fuente LCD)

1 x resistencia de 220 Ω 1/4 W (retroiluminación de LCD)

1 x 1 KΩ 1/4 W

1 x Antena 433Mhz, 3dbi

En la práctica, el recibido funcionó excepcionalmente bien en rangos de hasta 20 metros a través de paredes.

Paso 3: Algunas referencias …

Hay muchos blogs en la web que ofrecen consejos sobre la programación y resolución de problemas de PIC, además del sitio web oficial de Microschip. Encontré lo siguiente muy útil:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Paso 4: Conclusiones y trabajo futuro

Espero que este instructivo te haya ayudado a comprender cómo usar módulos de RF y microcontroladores Pic. Puede ajustar su firmware a sus propias necesidades e incluir CRC y cifrado. Si desea que su diseño sea aún más sofisticado, puede utilizar la tecnología Keeloq de Microschip. En caso de que su aplicación necesite datos bidireccionales, necesitaría tener un par de TX / RX en ambos microcontroladores, o puede usar un transceptor más sofisticado módulos. Sin embargo, utilizando este tipo de módulos baratos de 433 MHz, solo se puede lograr la comunicación semidúplex. Además de esto, para que la comunicación sea más confiable, necesitará algún tipo de protocolo de enlace entre TX y RX.

En el siguiente instructivo, le mostraré una aplicación práctica en la que se agrega un sensor ambiental con temperatura, presión barométrica y humedad en el transmisor. Aquí, los datos transmitidos incluirán crc y tendrán un cifrado básico.

El sensor usará el puerto i2c del PIC12F1822, mientras que la implementación tanto del transmisor como del receptor se expondrá a través de esquemas y archivos pcb. ¡Gracias por leerme!

Recomendado: