Páginas

Arduino Editable 18 channels BT






Youtube: https://www.youtube.com/watch?v=Ajk9AcQjOj4&t=4s
Google Play: https://play.google.com/store/apps/details?id=appinventor.ai_antoniosergiosouzaalmeida.Arduino_Automation_18_channels_BT
Icone:




























Não contém propagandas.


Caracteristicas:


TOTAL 18 canais com todos os botões/chaves EDITÁVEIS e SALVOS no banco de dados do App. Automação utiliza Arduino Uno comunicação via Bluetooth HC6; 16 CHAVES ON/OFF(ON/OFF 110/220V); 02 BOTÕES DE PULSO PARA PORTA COM TRAVA ELÉTRICA(12V/24V OU 110V/220V) Controle ON/OFF 110V/220V de até 18(Dezoito) Dispositivos todos Editáveis: Através do smartphone Android com App. instalado, podemos fazer uma conexão via Bluetooth com o Arduino Uno R3. Programa Arduino está disponível no Blog: Aplicativo passo a passo no Blog: Esquema de ligações, Funcionamento, Lista de Materiais, fotos e vídeo no Blog: SWITCHES AND BUTTONS PULSE MODE: - 16 Chaves Editáveis controle ON/OFF Modo Relé 110/220V; - 02 Botões Editáveis de Pulso(2 segundos) para abertura de Porta com Trava Elétrica; - 18 Status das portas IO do Arduino Uno R3.






APP.: Arduino Editable 18 channels BT:

Automação Comunicação de dados(RX-TX) via Bluetooth de baixo custo


com Reles 110V/220V;Código Arduino Uno Gratuito;

Esquema de ligações, lista de materiais e instruções passo a passo;






Não contém propagandas.






Neste projeto utilizamos todas as saídas disponíveis no Arduino Uno R3,


totalizando 18 canais de controle, mais o uso de um módulo Bluetooth.


BUTTON LOCK/UNLOCK: Bloqueia/desbloqueia modo de Edição para nome dos dispositivos EDITÁVEIS. BUTTON SAVE: Salva a Edição com novo nome dos dispositivos EDITÁVEIS. BUTTON REFRESH: Atualizar página, quando necessário; Exemplo quando você faz alguns acionamentos(Luz do quarto, Luz da sala...) e em seguida voce desliga ou sai do Aplicativo; Neste caso o Arduino continua trabalhando e mantendo ligado, no exemplo as lampadas de sala e quarto; Na próxima vez que você entrar no Aplicativo e pressionar o botão de Refresh, o App. mostrará todos os acionamentos no caso luzes correspondentes a sala e quarto.
Como funciona:


Passo a passo:


Ligar o Bluetooth do smartphone, entrar em configurações e parear o dispositivo bluetooth.

Será pedido uma senha para parear o BT, normalmente "0000" ou "1234" e pressione OK.














Neste exemplo meu HC-6 está pareado.












O celular Android e o Arduino conectam-se através do Bluetooth HC6, nos pinos de saída do Arduino, temos ligado uma placa de relés(TOTAL ATÉ 18 RELÉS)que por sua vez está ligada à rede elétrica(110/220V) ligados aos dispositivos que se deseja controlar. Exemplo de acionamento dispositivos ON/OFF: Lâmpadas de leds(sala, cozinha, quarto, quintal, jardim...), Ventilador, Ar condicionado, TV, Rádio, Cafeteira, Torradeira, Aquário... Exemplo de acionamento BOTÕES de PULSO ON/OFF(2 segundos): Porta ou portão com trava elétrica; Quando por exemplo pressionarmos um botão para ligarmos um dispositivo, o APP. Android envia dados à placa ESP8266, esta recebe estes dados processa e toma decisão de enviar comandos para ligar/desligar o relé correspondente; O Arduino retorna os dados das portas analógicas e digitais para o APP. Android que irá mostrar as chaves e botões de pulso com a indicação do status correspondente.






Como funciona o App. Arduino Editable 18 channels BT:



Funcionamento do App. após a montagem do dispositivo com programa Arduino carregado(explicaremos detalhes da montagem logo adiante).




1)- Nesta tela inicial pressionar o botão MAC, abrirá outra tela com uma lista para que seja selecionado o MAC de seu Bluetooth.

























2)- Selecionar o MAC correspondente ao seu Bluetooth, no exemplo HC-06.




















3)- Em seguida aparecerá uma notificação "MAC is selected."










4)- Agora pressione o Botão Bluetooth então em alguns segundos o led do Bluetooth HC-06 para de piscar e o Botão muda para cor Azul com uma notificação "Bluetooth is connected."






5)- Neste instante o Bluetooth do smatphone está conectado com seu Bluetooth HC-06;

Pronto agora você já pode acionar todos os 18 canais, para isso monte o circuito proposto para que possa ser visualizado através de leds ou relés.















6)- EDIÇÃO dos nomes dos dispositivos:

Pressionar o botão cadeado verde para desbloquear e entrar no modo de edição, um cadeado vermelho aparece(modo e edição desbloqueado) então clique no Device que deseja editar; Um teclado aparece, digite o novo nome do dispositivo e clique em ok.














7)- Clique no botão cadeado vermelho para bloquear o modo de edição.









8)- Agora vamos salvar a edição do banco de dados do APP., para isso pressione o botão disquete azul e pronto!




























Diagrama de Conexões(Pinagem Arduino - Led/Relé e HC-06):






pinA0 = Led/Relé1




pinA1 = Led/Relé2




pinA2 = Led/Relé3




pinA3 = Led/Relé4




pinA4 = Led/Relé5




pinA5 = Led/Relé6




pinD0 = Bluetooth HC-06 - TX




pinD1 = Bluetooth HC-06 - RX




pinD2 = Led/Relé7




pinD3 = Led/Relé8




pinD4 = Led/Relé9




pinD5 = Led/Relé10




pinD6 = Led/Relé11




pinD7 = Led/Relé12




pinD8 = Led/Relé13




pinD9 = Led/Relé14


pinD10 = Led/Relé15


pinD11 = Led/Relé16


pinD12 = Led/Relé17


pinD13 = Led/Relé18
















Obs.: Atenção evitar conflito entre as seriais(Arduino e HC-06) carregar o programa Arduino sem a placa(desconectada) de bluetooth HC-06 pois a conexão RX -TX do HC-06 está na mesma pinagem RX - TX do Arduino(D0 e D1).




Após carregar o programa ligar o bluetooth HC-06(Vcc, GND, RX e TX), evitando conflito com a serial.











Esquema de ligações utilizando Leds:
























Obs.: Atenção evitar conflito entre as seriais(Arduino e HC-06) carregar o programa Arduino sem a placa(desconectada) de bluetooth HC-06 pois a conexão RX -TX do HC-06 está na mesma pinagem RX - TX do Arduino(D0 e D1).




Após carregar o programa ligar o bluetooth HC-06(Vcc, GND, RX e TX), evitando conflito com a serial.












Exemplo de ligações com relés:


Repetir estas ligações utilizando 18 Relés entre os terminais Arduino:


A0, A1,A2, A3, A4, A5, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13.










Obs.: Se necessário utilizar 2 fontes de alimentação:

Uma fonte de 5V/1000mA para o Arduino e outra fonte de alimentação de 5VDC/2000mA para alimentação dos relés, conectar os "GND´s" em comum(GND do Arduino com GND da Fonte) e aplicar a alimentação 5V diretamente na placa módulo de relé.




Desta forma não estaremos sobrecarregando o regulador de tensão de 5V do Arduino, então desfaça a ligação de 5V entre o Arduino e módulo relé e ligue apenas o 5V da fonte no módulo relé.






Exemplo de ligações utilizando módulo de relés na rede elétrica:




O módulo relé possui uma lógica invertida quando desejamos acionar ou energizar a bobina no relé precisamos colocar nível "0V' na entrada do módulo relé(lógica invertida) com isso um contato normalmente aberto é fechado de forma correta.









Exemplo ligação com uma Lâmpada em rede de 110V:
































Obs.: Atenção evitar conflito entre as seriais(Arduino e HC-06) carregar o programa Arduino sem a placa(desconectada) de bluetooth HC-06 pois a conexão RX -TX do HC-06 está na mesma pinagem RX - TX do Arduino(D0 e D1).




Após carregar o programa ligar o bluetooth HC-06(Vcc, GND, RX e TX), evitando conflito com a serial.



Programa - Arduino Editable 18 channels BT :












#include <SoftwareSerial.h>//Biblioteca Serial--------------------------
SoftwareSerial mySerial(0, 1);//Biblioteca para serial bluetooth
//Arduino D0(Bluetooth-TX), Arduino D1(Bluetooth-RX)--------------------

//------Declaração das variáveis para os pinos A0--A5 e D2--D13 Arduino-
int pinA0 = A0;//A0
int pinA1 = A1;//A1
int pinA2 = A2;//A2
int pinA3 = A3;//A3
int pinA4 = A4;//A4
int pinA5 = A5;//A5
int pinD2 = 2;//D2
int pinD3 = 3;//D3
int pinD4 = 4;//D4
int pinD5 = 5;//D5
int pinD6 = 6;//D6
int pinD7 = 7;//D7
int pinD8 = 8;//D8
int pinD9 = 9;//D9
int pinD10 = 10;//D10
int pinD11 = 11;//D11
int pinD12 = 12;//D12
int pinD13 = 13;//D13
//----------------------------------------

void setup() {

  mySerial.begin(9600);//Velocidade da serial em 9600bps-----------
//Obs.: Bluetooth também deve estar na mesma veloc. 9600bps;

//-----------------Pinos Arduino, saída para acionamentos----------
  pinMode(pinA0,  OUTPUT);
  pinMode(pinA1,  OUTPUT);
  pinMode(pinA2,  OUTPUT);
  pinMode(pinA3,  OUTPUT);
  pinMode(pinA4,  OUTPUT);
  pinMode(pinA5,  OUTPUT);
  pinMode(pinD2,  OUTPUT);
  pinMode(pinD3,  OUTPUT);
  pinMode(pinD4,  OUTPUT);
  pinMode(pinD5,  OUTPUT);
  pinMode(pinD6,  OUTPUT);
  pinMode(pinD7,  OUTPUT);
  pinMode(pinD8,  OUTPUT);
  pinMode(pinD9,  OUTPUT);
  pinMode(pinD10, OUTPUT);
  pinMode(pinD11, OUTPUT);
  pinMode(pinD12, OUTPUT);
  pinMode(pinD13, OUTPUT);

//-----------------Pinos Arduino, inicia em nível alto(desligado)--------
//Obs.: Desliga em nível alto(HIGH==OFF) e Liga em nível baixo(LOW==ON)--
  digitalWrite(pinA0,  HIGH);
  digitalWrite(pinA1,  HIGH);
  digitalWrite(pinA2,  HIGH);
  digitalWrite(pinA3,  HIGH);
  digitalWrite(pinA4,  HIGH);
  digitalWrite(pinA5,  HIGH);
  digitalWrite(pinD2,  HIGH);
  digitalWrite(pinD3,  HIGH);
  digitalWrite(pinD4,  HIGH);
  digitalWrite(pinD5,  HIGH);
  digitalWrite(pinD6,  HIGH);
  digitalWrite(pinD7,  HIGH);
  digitalWrite(pinD8,  HIGH);
  digitalWrite(pinD9,  HIGH);
  digitalWrite(pinD10, HIGH);
  digitalWrite(pinD11, HIGH);
  digitalWrite(pinD12, HIGH);
  digitalWrite(pinD13, HIGH); 
  }

  //---------------------------
  void loop() {
  char caracter = mySerial.read();//Variavel para leitura da serial;
  delay(3);
  /*************************************************************************************
  Acionamento dos 18 canais(ON/OFF);
  APP envia caracteres(via Bluetooth) correspondentes aos pinos de saída do Arduino;
  Arduino faz uma leitura da serial e compara o caracter recebido e
  liga ou desliga a saída correspondente;
  *************************************************************************************/
  if (caracter == 'A')
  {   
    digitalWrite(pinA0, LOW);   
  }
  if (caracter == 'a')
  { 
    digitalWrite(pinA0, HIGH); 
  }
  //----------------------------
  if (caracter == 'B')
  {   
    digitalWrite(pinA1, LOW);
  }
  if (caracter == 'b')
  {   
    digitalWrite(pinA1, HIGH);
  }
  //---------------------------
 if (caracter == 'C')
  { 
    digitalWrite(pinA2, LOW);
  }
  if (caracter == 'c')
  { 
    digitalWrite(pinA2, HIGH);
  }
  //---------------------------
 if (caracter == 'D')
  {
    digitalWrite(pinA3, LOW);
  }
  if (caracter == 'd')
  {
    digitalWrite(pinA3, HIGH);
  }
  //---------------------------
 if (caracter == 'E')
  {
    digitalWrite(pinA4, LOW);
  }
  if (caracter == 'e')
  {
    digitalWrite(pinA4, HIGH);
  }
  //---------------------------
 if (caracter == 'F')
  {
    digitalWrite(pinA5, LOW);
  }
  if (caracter == 'f')
  {
    digitalWrite(pinA5, HIGH);
  }
  //---------------------------
 if (caracter == 'G')
  {
    digitalWrite(pinD2, LOW);
  }
  if (caracter == 'g')
  {
    digitalWrite(pinD2, HIGH);
  }
  //---------------------------
 if (caracter == 'H')
  {
    digitalWrite(pinD3, LOW);
  }
  if (caracter == 'h')
  {
    digitalWrite(pinD3, HIGH);
  }
  //---------------------------
 if (caracter == 'I')
  {
    digitalWrite(pinD4, LOW);
  }
  if (caracter == 'i')
  {
    digitalWrite(pinD4, HIGH);
  }
  //---------------------------
 if (caracter == 'J')
  {
    digitalWrite(pinD5, LOW);
  }
  if (caracter == 'j')
  {
    digitalWrite(pinD5, HIGH);
  }
  //---------------------------
 if (caracter == 'K')
  {
    digitalWrite(pinD6, LOW);
  }
  if (caracter == 'k')
  {
    digitalWrite(pinD6, HIGH);
  }
  //---------------------------
 if (caracter == 'L')
  {
    digitalWrite(pinD7, LOW);
  }
  if (caracter == 'l')
  {
    digitalWrite(pinD7, HIGH);
  }
  //---------------------------
 if (caracter == 'M')
  {
    digitalWrite(pinD8, LOW);
  }
  if (caracter == 'm')
  {
    digitalWrite(pinD8, HIGH);
  }
  //---------------------------
 if (caracter == 'N')
  {
    digitalWrite(pinD9, LOW);
  }
  if (caracter == 'n')
  {
    digitalWrite(pinD9, HIGH);
  }
  //---------------------------
 if (caracter == 'O')
  {
    digitalWrite(pinD10, LOW);
  }
  if (caracter == 'o')
  {
    digitalWrite(pinD10, HIGH);
  }
  //---------------------------
 if (caracter == 'P')
  {
    digitalWrite(pinD11, LOW);
  }
  if (caracter == 'p')
  {
    digitalWrite(pinD11, HIGH);
  }
  //---------------------------
 if (caracter == 'Q')
  {
    digitalWrite(pinD12, LOW);
    delay(2000);
    digitalWrite(pinD12, HIGH);
  }
  //---------------------------
 if (caracter == 'T')
  {
    digitalWrite(pinD13, LOW);
    delay(2000);
    digitalWrite(pinD13, HIGH); 
  }
  //---------------------------

/*******************************************************************************************
Aualização da pagina do APP(Status ON/OFF));
APP envia para o Arduino uma string caracter"S";
Arduino recebe(via bluetooth serial) uma solicitação para leituradas portas;
Arduino retorna para o APP o novo status(leitura atualizada do estado das portas ON/OFF)
******************************************************************************************/ 
  if(caracter == 'S'){

  if(digitalRead(pinA0)==LOW){
  mySerial.println("LA");
  }
   if(digitalRead(pinA0)==HIGH){
  mySerial.println("La");
  }
  delay(25);
  //-------------------------------------- 
  if(digitalRead(pinA1)==LOW){
  mySerial.println("LB");
  }
   if(digitalRead(pinA1)==HIGH){
  mySerial.println("Lb");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinA2)==LOW){
  mySerial.println("LC");
  }
   if(digitalRead(pinA2)==HIGH){
  mySerial.println("Lc");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinA3)==LOW){
  mySerial.println("LD");
  }
  if(digitalRead(pinA3)==HIGH){
  mySerial.println("Ld");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinA4)==LOW){
  mySerial.println("LE");
  }
  if(digitalRead(pinA4)==HIGH){
  mySerial.println("Le");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinA5)==LOW){
  mySerial.println("LF");
  }
  if(digitalRead(pinA5)==HIGH){
  mySerial.println("Lf");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD2)==LOW){
  mySerial.println("LG");
  }
  if(digitalRead(pinD2)==HIGH){
  mySerial.println("Lg");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD3)==LOW){
  mySerial.println("LH");
  }
  if(digitalRead(pinD3)==HIGH){
  mySerial.println("Lh");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD4)==LOW){
  mySerial.println("LI");
  }
  if(digitalRead(pinD4)==HIGH){
  mySerial.println("Li");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD5)==LOW){
  mySerial.println("LJ");
  }
  if(digitalRead(pinD5)==HIGH){
  mySerial.println("Lj");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD6)==LOW){
  mySerial.println("LK");
  }
  if(digitalRead(pinD6)==HIGH){
  mySerial.println("Lk");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD7)==LOW){
  mySerial.println("LL");
  }
  if(digitalRead(pinD7)==HIGH){
  mySerial.println("Ll");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD8)==LOW){
  mySerial.println("LM");
  }
  if(digitalRead(pinD8)==HIGH){
  mySerial.println("Lm");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD9)==LOW){
  mySerial.println("LN");
  }
  if(digitalRead(pinD9)==HIGH){
  mySerial.println("Ln");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD10)==LOW){
  mySerial.println("LO");
  }
  if(digitalRead(pinD10)==HIGH){
  mySerial.println("Lo");
  }
  delay(25);
  //--------------------------------------
  if(digitalRead(pinD11)==LOW){
  mySerial.println("LP");
  }
  if(digitalRead(pinD11)==HIGH){
  mySerial.println("Lp");
  }
  delay(25);
 
  }//if
  delay(10);
  }//loop















Obs.: Atenção evitar conflito entre as seriais(Arduino e HC-06) carregar o programa Arduino sem a placa(desconectada) de bluetooth HC-06 pois a conexão RX -TX do HC-06 está na mesma pinagem RX - TX do Arduino(D0 e D1).





Após carregar o programa ligar o bluetooth HC-06(Vcc, GND, RX e TX), evitando conflito com a serial.




























Lista de Materiais:


Fonte de Alimentação 9VDC/2000mA com saída P4

Devido a alimentação de 18 Relés, sujerimos uma fonte com 2A para suprir essa demanda de corrente.


















Arduino Uno R3.

























Módulo Bluetooth HC-06 ou JY-MCU:













Módulo de Relés:













Resistores de 220 ohms e Leds.









Protoboard.





















Jumper Wire - Cabos para ligações:


Macho - Fêmea.










Macho - Macho




Um comentário:

  1. Muito bacana seu projeto o link para baixa o app não funciona existe uma outra forma de baixá-lo.

    ResponderExcluir