Com o aprimoramento da tecnologia, a automação tornou-se uma necessidade, seja em casa, no escritório ou em algum outro lugar. Em casa encontramos muitos eletrodomésticos, sejam ventiladores, AC, TV, luzes, etc. E se você pudesse operar todos eles com o telefone Android que está segurando na mão.
Figura 1: Protótipo de sistema de automação residencial controlado por Android Mobile
O módulo HC-05 é um módulo Bluetooth SPP (Serial Port Protocol) fácil de usar, projetado para configuração transparente de conexão serial sem fio. Ele contém 6 pinos rotulados na parte traseira, mas a maioria dos módulos possui apenas 4 deles preenchidos com pinos pogo. KEY & STATE não são necessários, pois KEY é usado para fazer o flash do dispositivo e STATE simplesmente indica se o dispositivo está ativo ou não. Então isso deixa apenas GND, VCC, TXD, RXD.
Figura 2: Imagem típica do Módulo Bluetooth HC-05
Para conectar o módulo com Arduínoprecisamos usar os pinos seriais (Tx e Rx) fornecidos na placa.
Conexões e Trabalho
Fazendo conexões com HC-05:
Alguns módulos possuem etiqueta VCC para tensões de trabalho de até ~6 volts. Esses módulos NÃO gostam de nada exceto 3,3 volts na linha VCC. Devemos usar um conversor de nível para 3,3V na linha RXD. Use dois resistores, como divisor de tensão simples para fazer a conversão do nível TTL. Conecte um resistor de 2,2k ohm ao terra e outro resistor de 1k ohm à linha TXD no MCU. Conecte o pino RXD entre os dois resistores para obter uma saída de aproximadamente 3,4 volts. Conecte o pino RXD do módulo ao TXD do Arduino (Pino Digital 1), através da configuração do divisor de tensão mostrada abaixo:Figura 3: Imagem mostrando as conexões do circuito do Arduino Uno e do Módulo Bluetooth HC-05
Agora conecte o TXD do módulo ao RXD do Arduino (Pino Digital 0). Para operar os aparelhos, não podemos conectá-los diretamente ao Arduino. Precisamos de algo chamado RELAY, que é acionado com a ajuda de um circuito driver baseado em transistor.Figura 4: Diagrama de circuito do driver de relé baseado em transistor
A 'entrada' é do pino de E/S do Arduino. RB é o resistor limitador de corrente na base do transistor. Seu valor é normalmente 10K Ohm. 'VS' é a tensão de alimentação necessária para acionar a bobina do relé (depende da classificação do relé). Um diodo é conectado em sentido reverso em paralelo ao relé. Isso é feito para evitar a fem traseira gerada pela bobina que pode danificar o transistor ou o Arduino.
Um diagrama de blocos simplificado do sistema completo é mostrado abaixo:
Figura 5: Diagrama de blocos do sistema de automação residencial controlado por Android Mobile
Depois de fazer as conexões acima, você verá o LED piscando no módulo. Isso apenas garante que seu dispositivo esteja ligado corretamente. Depois disso, escolha seu telefone Android e obtenha o aplicativo- “Terminal Bluetooth Arduino”Da Google Play Store. Este aplicativo está disponível gratuitamente e é fácil de usar.
Figura 6: Captura de tela do aplicativo Android usado para controlar eletrodomésticos
Após a instalação, ligue o Bluetooth do telefone. Agora procure por dispositivos até encontrar HC-05 e então comece a emparelhar com ele. Digite a senha 1234quando perguntado.
Se emparelhado corretamente, o LED piscando no módulo Bluetooth irá parar. Caso contrário, verifique as conexões novamente. Volte para o aplicativo que você acabou de baixar. Ele encontrará automaticamente o dispositivo, corresponderá à tecla exibida e iniciará uma conversa. Certifique-se de que o Bluetooth do telefone permaneça ligado.Figura 7: Imagem mostrando o protótipo completo do sistema de automação residencial controlado por telefone Android baseado em Arduino
Operação de sistema:
Quando enviamos '1' para o Arduino, o aparelho 1 conectado ao Arduino liga e quando '2' é enviado, o aparelho 2 liga. Os dados seriais são lidos pelo Arduino, através Serial.read função e é armazenado no estado da variável do tipo inteiro declarado no programa. Depois disso no loop , apenas comparamos estado valor com 1, 2, 3 e assim por diante até 8 para verificar a condição ON de 8 Eletrodomésticos. Então comparamos estado valor com a, b, c e assim por diante até h para verificar o estado de DESLIGADO dos aparelhos e realizar a respectiva operação.
Além disso também podemos monitorar o estado físico como temperatura, pressão, etc., através do telefone Android. Digamos que precisamos monitorar a temperatura da sala. Conectamos o sensor de temperatura LM35 ao Arduino. Agora leia o valor do sensor e envie-o para o telefone via link serial estabelecido via Bluetooth entre o telefone e o Arduino.Código fonte do projeto
### int led1 = 2; int led2 = 3; int led3 = 4; int led4 = 5; int led5 = 6; int led6 = 7; int led7 = 8; int led8 = 9; int state; int flag=0; void setup { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(led7, OUTPUT); pinMode(led8, OUTPUT); Serial.begin(9600); } void loop { if(Serial.available > 0) { state = Serial.read ; flag=0; } if (state == '1') { digitalWrite(led1, HIGH); if(flag == 0){ Serial.println("Appliance 1 is ON"); flag=1; } } else if (state == '2') { digitalWrite(led2, HIGH); if(flag == 0){ Serial.println("Appliance 2 is ON"); flag=1; } } else if (state == '3') { digitalWrite(led3, HIGH); if(flag == 0){ Serial.println("Appliance 3 is ON"); flag=1; } } else if (state == '4') { digitalWrite(led4, HIGH); if(flag == 0){ Serial.println("Appliance 4 is ON"); flag=1; } } else if (state == '5') { digitalWrite(led5, HIGH); if(flag == 0){ Serial.println("Appliance 5 is ON"); flag=1; } } else if (state == '6') { digitalWrite(led6, HIGH); if(flag == 0){ Serial.println("Appliance 6 is ON"); flag=1; } } else if (state == '7') { digitalWrite(led7, HIGH); if(flag == 0){ Serial.println("Appliance 7 is ON"); flag=1; } } else if (state == '8') { digitalWrite(led8, HIGH); if(flag == 0){ Serial.println("Appliance 8 is ON"); flag=1; } } else if (state == 'a') { digitalWrite(led1, LOW); if(flag == 0){ Serial.println("Appliance 1 is OFF"); flag=1; } } else if (state == 'b') { digitalWrite(led2, LOW); if(flag == 0){ Serial.println("Appliance 2 is OFF"); flag=1; } } else if (state == 'c') { digitalWrite(led3, LOW); if(flag == 0){ Serial.println("Appliance 3 is OFF"); flag=1; } } else if (state == 'd') { digitalWrite(led4, LOW); if(flag == 0){ Serial.println("Appliance 4 is OFF"); flag=1; } } else if (state == 'e') { digitalWrite(led5, LOW); if(flag == 0){ Serial.println("Appliance 5 is OFF"); flag=1; } } else if (state == 'f') { digitalWrite(led6, LOW); if(flag == 0){ Serial.println("Appliance 6 is OFF"); flag=1; } } else if (state == 'g') { digitalWrite(led7, LOW); if(flag == 0){ Serial.println("Appliance 7 is OFF"); flag=1; } } else if (state == 'h') { digitalWrite(led8, LOW); if(flag == 0){ Serial.println("Appliance 8 is OFF"); flag=1; } } } ###
Diagramas de circuito
Diagrama de circuito-sistema de automação residencial controlado por Android baseado em Arduino |