Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h> // Inlcui a biblioteca SoftwareSerial.h
- #define RxD 6 // Define RxD como 6
- #define TxD 7 // Define TxD como 7
- #define relePin 13
- SoftwareSerial Equipo(RxD,TxD); // Instância a biblioteca SoftwareSerial.h
- char Dados[25] = {0}; // Matriz pra guardar dados lidos da softserial
- int i ; // Incremento
- byte NewData; // indicador de dados novos
- unsigned int Valor1; // valor da primeira informação
- unsigned int Valor2; // valor da segunda informação
- String StrVal ; // Variavel temporiaria para concaternar strings
- boolean releVal = 0;
- //----------------------------------------------------------
- // valores para teste
- // char Dados[] = {0x30, 0x2E, 0x30, 0x37, 0x20, 0x2C, 0x75, 0x53, 0x2C, 0x32, 0x35, 0x2E, 0x30, 0x2C, 0xBA, 0x43, 0x00, 0x0D, 0x0A};
- // 0 . 0 7 ESP ' u S ' 2 5 . 0 ' 0xBA, C 0 CR NL
- // char Dados[] = {0x32, 0x31, 0x35, 0x32, 0x2E, 0x33, 0x20, 0x2C, 0x75, 0x53, 0x2C, 0x32, 0x35, 0x2E, 0x30, 0x2C, 0xBA, 0x43, 0x00, 0x0D, 0x0A};
- // 2 1 5 2 . 3 ESP ' u S ' 2 5 . 0 ' 0xBA, C 0 CR NL
- //------------------------------------------------
- void setup()
- {
- Serial.begin(9600); // Inicialisa a serial com baud rate de 9600
- Equipo.begin(9600); // Inicialisa a softserial com baud rate do equipamento como 9600
- pinMode(relePin,OUTPUT);
- }
- //------------------------------------------------
- void loop()
- {
- while(Equipo.available()) // Se algo for recebido pela serial do módulo bluetooth
- {
- Dados[i] = Equipo.read(); // Le os dados da softserial
- delay(10); // Tempo entre um dado e outro
- NewData = 1; // Define que existe novo dado lido da serial
- i++;// Incrementa a contagem de bytes lidos
- }
- /* // Rotina para teste
- while(Serial.available()>0) // Se algo for recebido pela serial do módulo bluetooth
- {
- Dados[i] = Serial.read(); // Le os dados da serial
- delay(20); // Tempo entre um dado e outro
- NewData = 1; // Define que existe novo dado lido da serial
- i++; // Incrementa a contagem de bytes lidos
- }
- */
- i = 0; // Zera o contador de bytes lidos
- if (NewData == 1) // Se tiver dados novos lidos
- {
- int lixo = 0; // Variavel para descarte de dados
- while (Dados[i] != 0x2E) // Concaterna dados até encontrar ponto decimal
- {
- StrVal = StrVal += Dados[i]; // Concaterna os dados
- i++; // Incrementa a contagem de bytes concaternados
- }
- Valor1 = StrVal.toInt(); // Transforma a string concaternada em inteiro
- Serial.print(Valor1);
- Serial.print(" ");
- StrVal = ""; // Zera a string de concaternar
- i++; // Incrementa a contagem de bytes concaternados
- while (Dados[i] != 0x20) // Avança até encontrar um espaço
- {
- lixo = Dados[i]; // Descarta os dados lidos
- i++; // Incrementa a contagem de bytes concaternados
- }
- i = i+5; // Incrementa a contagem de bytes concaternados
- while (Dados[i] != 0x2E) // Concaterna dados até encontrar ponto decimal
- {
- StrVal = StrVal += Dados[i]; // Concaterna os dados
- i++; // Incrementa a contagem de bytes concaternados
- }
- Valor2 = StrVal.toInt(); // Transforma a string concaternada em inteiro
- Serial.println(Valor2);
- StrVal = ""; // Zera a string de concaternar
- for( int m = 0; m <25; m++) // Zera a matriz de guardar dados lidos
- {
- (Dados[m]) = 0; // Zera a matriz de guardar dados lidos
- }
- NewData = 0; // Zera indicador de byte novo lido
- i = 0; // Zera o contador de bytes concaternados
- }
- if (Valor1<=1590) {
- digitalWrite(relePin,HIGH);}
- else
- {
- digitalWrite(relePin,LOW);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement