Ir ao conteúdo
  • Cadastre-se

FabianoFire

Membros Juniores
  • Total de itens

    2
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

0

Sobre FabianoFire

  • Data de Nascimento 20-08-1978 (40 anos)

Informações gerais

  • Cidade e Estado
    curitiba
  1. olá amigos! Fiz um simples projeto para receber os dados do SMS, porém como não preciso saber data,hora e telefone coloquei um identificador de inicio da mensagem o qual é a letra Z, assim que chega esse carácter salvo mais 3 caracteres e envio via sms, após isso faço uma comparação e se for a mensagem correta entraria no loop infinito de piscar o led, o que acontece é que envio Zmfa e recebo sempre Zmf e os dois últimos dados errados, tentei de varias formas e não tive um resultado positivo. Estou usando pic 16F873A, cristal 16Mhz, MikroC Segue o codigo: char buffer[64]; char i; char data_rx; char control; char mensage; //================== interrupt ============================================== void interrupt(){ if (PIR1.RCIF) { data_rx = UART1_Read(); //buffer = data_rx; //i++; if (( data_rx == 'Z') && (mensage == 0)){ mensage = 1; control = 1; } if(mensage == 1){ switch (control){ case 1 : buffer[1] = data_rx; control = 2; break; case 2 : buffer[2] = data_rx; control = 3; break; case 3 : buffer[3] = data_rx; control = 4; break; case 4 : buffer[4] = data_rx; control = 5; break; } } } PIR1.RCIF = 0; } //============================================================================= //========================== inicilize SIM800l ================================ void inicialize_sim(){ uart1_write_text("AT+CMGF=1"); //Configuramos o módulo para trabalhar com os SMS em modo texto uart1_write (10); uart1_write (13); delay_ms(1000); //Pausa de 1 segundo uart1_write_text("AT+CNMI=1,2,0,0,0"); //Configuramos o módulo para que nos mostre os SMS recebidos por comunicação serie uart1_write (10); uart1_write (13); UART1_Write_Text("AT+CMGD=1\n\r"); } //============================================================================= //======================== SEND SMS =========================================== void send_sms(){ delay_ms(3000); UART1_Write_text("AT+CMGS="); UART1_Write( 34 ); UART1_Write_text( "999061955") ; UART1_Write( 34 ); UART1_Write( 13 ); delay_ms(200); UART1_Write_text( "ok") ; uart1_write (buffer[1]); uart1_write (buffer[2]); uart1_write (buffer[3]); uart1_write (buffer[4]); UART1_Write( 13 ); UART1_Write( 26 ); UART1_Write( 13 ); delay_ms(2000); UART1_Write_Text("AT+CMGD=1\n\r"); } //============================================================================= void main(){ trisa.f0 = 0; //led pin porta.f0 = 0; adcon1 = 0x06; UART1_Init(9600); // Initialize UART module at 9600 bps Delay_ms(15000); // Wait for sim800 to stabilize inicialize_sim(); Delay_ms(5000); // Wait for sim800 to stabilize PIR1.RCIF = 0; // Limpa Flag da interrupção de recebimento serial PIE1.RCIE = 1; // Habilita interrupção de recebimento serial INTCON.GIE = 1; // Habilita as interrupções de alta prioridade INTCON.PEIE = 1; // Habilita as interrupções de baixa prioridade i = 0; mensage = 0; control = 0; //porta.f0 = 1; //delay_ms(2000); do{ porta.f0 = 1; if(control == 5 ){ INTCON.GIE = 0; send_sms(); control = 0; mensage = 0; INTCON.GIE = 1; } if ((buffer[1] == 'Z') && (buffer[2] == 'm') && (buffer[3] == 'f') && (buffer[4] == 'a')){ INTCON.GIE = 0; do{ porta.f0 =~ porta.f0; delay_ms(1000); }while(1); } }while(1); }
  2. Boa Tarde! Preciso de um programador que desenvolva ou termine o programa que comecei, desenvolvi uma placa eletrônica que envia dados ao computador através da porta serial RS232, os dados são enviados da seguinte forma 8 bytes que são a identificação do ponto e 5 que são, dia, mês, ano, hora e minuto. Preciso criar um banco de dados que assimile os 8 bytes de identificação a um nome criado pelo usuario e depois gerar um relatorio. Quem tiver interesse por favor entrem em contato via MP. para tratarmos valores e passar mais informações, não é regra mas preferencialmente de Curitiba.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×