Uso de PIC16F887 para conexion serial con USB y por bluetooth

Estado
Cerrado para nuevas respuestas.
Que tal chicos buenas tardes desde México, he estado siguiendo este foro desde hace un par de años y por primera vez me animo a escribir un post con una duda.

Recientemente hice un control de temperatura con el PIC16F887 y un LM35. Mando datos usando el puerto UART y el RS232 para poder visualizarlos, ya sea en hyperterminal, matlab o un programa que hice en Visual Studio.

Mi duda es el siguiente: Sera posible que pueda añadirle una salida de datos bluetooth al PIC manteniendo la salida (USB) actual que ya tiene? Para que por ejemplo mande exactamente los mismos datos a 2 equipos diferentes o a un teléfono y una computadora? De ser posible, que me recomiendan para hacerlo?

Les dejo el código que he estado utilizando:

Código:
#include <16f887.h>
#device adc = 10
#use delay (clock=8000000) 
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#include <lcd.c>   
#use rs232(UART1, baud=9600, parity=N, bits=8)

float temp, med;
int valor = 0;

void main() {
    //**************************************************   
    setup_oscillator(OSC_8MHZ | OSC_INTRC);
    setup_uart(9600);
    setup_comparator(NC_NC_NC_NC);
    setup_adc_ports(sAN0);
    setup_adc(adc_clock_internal);
    set_adc_channel(0);

    //**************************************************  
    lcd_init();
    lcd_putc("Temperatura: ");


    while (1) {
        
        med = read_adc();
        temp = med * (0.48875);
        lcd_gotoxy(1, 2);
        printf(lcd_putc, "%02.1f", temp);
        printf("%02.1f", temp);
        printf("\r\n");
        lcd_gotoxy(5, 2);
        lcd_putc("\337C");
        delay_ms(500);
    }

}
 
Mi duda es el siguiente: ¿Será posible que pueda añadirle una salida de datos bluetooth al PIC manteniendo la salida (USB) actual que ya tiene? Para que por ejemplo mande exactamente los mismos datos a 2 equipos diferentes o a un teléfono y una computadora?
Si se puede hacer eso y más, aunque siempre habrá unos milisegundos de retraso entre envíos.

Actualmente tengo un sistema que trabaja con varios sensores.
Lee humedad relativa, temperatura de 2 zonas, presión atmosférica, distancia, monitoreo de sensores magnéticos, controla 8 salidas para electroválvulas, incluyendo un control para una carga inductiva de 3000 Watts, más la lectura de voltaje y corriente alterna de la carga.
Ésto, con un PIC16F887.

El proceso se lleva a cabo por RS-232 a USB por medio de un programa para PC y también por Bluetooth hacia un teléfono celular con una aplicación que diseñé para Android.

Los procesos son monitorizados por ambos, y ambos pueden tener control sobre el microcontrolador.

Así qué, de que se puede, se puede. :cool:
De ser posible, ¿qué me recomiendan para hacerlo?
Como el PIC16F887 no cuenta con puerto USB y tampoco tiene dos módulos USART, necesitas usar RS-232 por software, aparte de usar el módulo USART. (Por hardware)

Lo primordial es mantener una sincronización de los procesos en ejecución y se se usan interrupciones, también debes saber controlarlas para que no se bloqueé el microcontrolador.
 
Estado
Cerrado para nuevas respuestas.
Atrás
Arriba