Páginas

Monitor LM35 LDR Program Switches

16 channels Eitable Device Names and Programable Setup:

- 14 Switches ON/OFF;
- 2 Sensor Input(LM35 && LDR);
- APP. Memory Data Bank;
- EEPROM Memory Arduino;
- Bluetooth Client and Server;
- Get Status Switches;
- Protection against power failure Arduino EEPROM Memory and App. Data Bank.
- Timer on A4 Output: 15s, 30s, 60s, 5m, 15m, 30m, 1h, 2h, 4h, 6h,
8h;
PRONTO! Controle temporizado para ligar e desligar dispositivos 110V/220V conectados a energia elétrica residencial com uso do módulo de relé: TV, Som, Ventilador, Luminária, Torradeira, Cafeteira, etc;

Monitor LM35 LDR Program Switches



Google Play: 



Veja no meu canal Youtube:


Icone de Apresentação:




Conteúdo:

1)- Descrição de Funcionamento;

2)- Comandos utilizados e pinagem do Arduino;

3)- Fotos do aplicativo;

3.1)- Fotos do aplicativo funcionando com tablet Samsung;

4)- Código Arduino: Monitor LM35 LDR Program Switches

5)- Lista de Materiais;

6)- Esquema de ligações;




1)- DESCRIÇÃO DE FUNCIONAMENTO:

TELA MONITOR: Monitorar e Controla a Temperatura e Iluminação através de sensores LM35 e LDR com 14 Chaves Switches, Editável Programável conectados ao Arduino;
TODOS OS 14 BOTÕES SÃO EDITÁVEIS PROGRAMÁVEIS!

FUNÇÃO BLUETOOTH CLIENT AND SERVER: App. Android Transceiver: Envia e recebe dados do Arduino;

TELA CONTROL LM35: Programar o Setup, valor que você deseja controlar a Temperatura; Atua sobre o Arduino utilizando uma saída para relé;
Editar o nome do dispositivo a ser controlado, exemplo ventilador do quarto;
OBS.: Fazer o Sincronismo entre App. Android e Arduino: Pressionar o botão vermelho central do setup que faz o sincronismo entre o Android e Arduino, setando os valores de Temperatura em 25°C inicial.(Como o App está "limpo" sem nenhuma programação, então da primeira vez torna-se necessário esta sincronização onde valores defaults serão gravados.

TELA CONTROL LDR: Programar o Setup, valor que você deseja controlar a Iluminação; Atua  sobre o Arduino utilizando uma saída para relé;
Editar o nome do dispositivo a ser controlado, exemplo luminária do quarto;
OBS.: Fazer o Sincronismo entre App. Android e Arduino: Pressionar o botão vermelho central do setup que faz o sincronismo entre o Android e Arduino, setando os valores de iluminação em 250 Lux inicial.(Como o App está "limpo" sem nenhuma programação, então da primeira vez torna-se necessário esta sincronização onde valores defaults serão gravados.

TELA SWITCHES: Controle ON/OFF de 12 chaves, acionamento liga e desliga de 12 relés conectados aos dispositivos
Editar o Nome dos  12 Dispositivos a serem controlados, exemplo quarto da frente, sala, Cozinha, motor da caixa dágua, ON/OFF TV e som, cafeteira , ventilador do closet, etc;

BOTÃO TIMER: Mostra tela do timer, onde podemos escolher os intervalos de tempos para o temporizador que fará o acionamento do dispositivo a ser temporizado com intervalos selecionáveis:
- Timer on A4 Output: 15s, 30s, 60s, 5m, 15m, 30m, 1h, 2h, 4h, 6h,
8h;
Aplicação: Controle temporizado para ligar e desligar dispositivos 110V/220V conectados a energia elétrica residencial com uso do módulo de relé: TV, Som, Ventilador, Luminária, Torradeira, Cafeteira, etc;


GET STATUS SWITCHES: Recuperar o ultimo Status das 12 chaves; Assim que você liga o App. pressione este botão para resgatar todas as posições das chaves, assim você saberá quais dispositivos estão ligados ou desligados no momento;

PROTEÇÃO CONTRA QUEDA DE ENERGIA: Quando a energia for restabelecida todos os valores de Setup da Temperatura ou Iluminação ou Posição das Chaves serão automaticamente recuperados ou restaurados com os últimos valores que você programou; Isto é muito importante no caso se você estiver ausente, viajando e você deixou tudo programado então se houver uma queda de energia que são frequentes, tudo funcionará normalmente pois todos os dados serão salvos na EEPROM do Arduino!


MENU DE FUNÇÕES E PROGRAMAÇÕES: 

BOTÃO MONITOR: Mostra a tela que monitora valores de LM35 e LDR;

BOTÃO TECLADO: Mostra tela das chave Switches acionamento de 12 canais com botões editáveis programáveis e sistema GET STATUS SWITCHES, que recupera as ultimas alterações feitas que ficaram salvas na EEPROM do Arduino.
TODOS OS 14 BOTÕES SÃO EDITÁVEIS PROGRAMÁVEIS!

BOTÃO TIMER: Mostra tela do timer onde podemos escolher os intervalos de tempos para o temporizador que fará o acionamento do dispositivo a ser temporizado com intervalos selecionáveis:
- Timer on A4 Output: 15s, 30s, 60s, 5m, 15m, 30m, 1h, 2h, 4h, 6h,
8h;
Aplicação: Controle temporizado para ligar e desligar dispositivos 110V/220V conectados a energia elétrica residencial com uso do módulo de relé: TV, Som, Ventilador, Luminária, Torradeira, Cafeteira, etc;

BOTÃO "TERMÔMETRO": Mostra valor do LM35, Programar Setup UP e DOWN; Controla a temperatura ambiente, acionando por exemplo ventiladores ou exaustores;  Editar o nome do Dispositivo;
Antes de sair programando não se esqueça de pressionar o botão vermelho central do Setup que faz o sincronismo entre o Android e Arduino, setando os valores de temperatura em 25C inicial.

BOTÃO  "LUZ - SOL": BOTÃO": Mostra valor do LDR, Programar Setup UP e DOWN; Controla a Iluminação ambiente, acionando por exemplo abatjour, lâmpada ou luminária, de forma a acender ou apagar conforme valores que voçê programou;
Exemplo controlar a iluminação dos corredores ou quintal da frente ou fundos da casa quando a iluminação natural atingir valor que você programou então o acionamento será automático de desligará automaticamente quando a iluminação natural voltar para valores programados.
Exemplo quando você sai de casa e antes deixa programado para quando chegar a noite acender uma lâmpada da sala, etc.
Editar o nome do Dispositivo;
Antes de sair programando não se esqueça de pressionar o botão vermelho central do setup que faz o sincronismo entre o Android e Arduino, setando os valores de iluminação em 250 Lux inicial.

BOTÃO "LUPA": Mostra todas as telas simultaneamente: Tela Monitor, Tela Control LM35, Tela Control LDR e Tela Switches.

BOTÃO "SALVAR": Não se esqueça de pressionar este botão para gravar  todos os dados configurados dos Setups, LM35, LDR, Switches e Nomes dos Dispositivos;
Estes dados serão gravados no Banco de Dados do App. e na EEPROM do Arduino.

BOTÃO "CADEADO": Pressione este botão para abrir o cadeado(Desbloqueado) e Permitir que você Edit os Nomes dos Dispositivos e faça suas programações; Terminada a Edição Programação, feche o cadeado(Bloqueado);

         
OBS1.: Desbloquear o Sistema para programação(Abrir o cadeado).
OBS2.: Bloquear o Sistema para programação indesejada(Fechar o cadeado).
OBS3.: Fazer o Sincronismo entre o App. Android e Arduino: Pressionar o botão vermelho central do setup(somente da primeira vez, pois o App. e Arduino estão com a memória "limpa" sem nada gravado);
OBS4.: Pressionar o botão SALVAR ANTES DE SAIR DO APP.

 VEJA TAMBÉM:

PROGRAMA CÓDIGO ARDUINO COMPLETO;
ESQUEMA DE LIGAÇÕES COM LEDS;
ESQUEMA DE LIGAÇÕES COM MÓDULOS DE RELÉS;
LISTA DE MATERIAIS;
FOTOS E VÍDEOS;
DESCRIÇÃO DE FUNCIONAMENTO;
DESCRIÇÃO DE TODOS OS COMANDOS E PINAGENS DO ARDUINO;
EXEMPLOS DE LIGAÇÕES DOS SENSORES, LEDS E MÓDULOS RELÉS PARA ACIONAMENTO DE DISPOSITIVOS LIGADOS A REDE ELÉTRICA 110/220VCA.

2)- COMANDOS UTILIZADOS E PINAGEM ARDUINO:

TELA DO APP. E PINAGEM DO ARDUINO:


TELA MONITOR:
A0 = Input Entrada Sensor LM35(temperatura);
A1 = Input Entrada Sensor LDR(luminosidade);

TELA CONTROL LM35:
A2 = Output Saída Controle ON/OFF de temperatura(exemplo relé do ventilador)Dispositivo 13;

TELA CONTROL LDR:
A3 = Output Saída Controle ON/OFF de luminosidade(exemplo relé do abatjour)Dispositivo 14;

TELA SWITCHES:
A4 = Output Saída Controle ON/OFF Dispositivo 1;
A5 = Output Saída Controle ON/OFF Dispositivo 2;
D4 = Output Saída Controle ON/OFF Dispositivo 3;
D5 = Output Saída Controle ON/OFF Dispositivo 4;
D6 = Output Saída Controle ON/OFF Dispositivo 5;
D7 = Output Saída Controle ON/OFF Dispositivo 6;
D8 = Output Saída Controle ON/OFF Dispositivo 7;
D9 = Output Saída Controle ON/OFF Dispositivo 8;
D10 = Output Saída Controle ON/OFF Dispositivo 9;
D11 = Output Saída Controle ON/OFF Dispositivo 10;
D12 = Output Saída Controle ON/OFF Dispositivo 11;
D13 = Output Saída Controle ON/OFF Dispositivo 12;

TELA TIMER:
A4 = Output Saída Controle ON/OFF Dispositivo 1 on Timer;

D0 = N/C(não utilizado);
D1 = N/C(não utilizado);

D2 = TX do Módulo Bluetooth(JY-MCU);
D3 = RX do Módulo Bluetooth(JY-MCU);

COMUNICAÇÃO - COMANDOS ENTRE ANDROID && ARDUINO:


APP. ANDROID ENVIA: ARDUINO RECEBE: ARDUINO EXECUTA: ARDUINO ENVIA: APP. ANDROID RECEBE: APP. ANDORID EXECUTA:
Button1 OFF Caracter = a A4 = HIGH = 5V Caracter: A4ON Button1 ON Dispositivo 1: A4 OUT 5V
Button1 ON Caracter = b A4 = LOW = 0V Caracter: A4OFF Button1 OFF Dispositivo 1: A4 OUT 0V
Button2 OFF Caracter = c A5 = HIGH = 5V Caracter: A5ON Button2 ON Dispositivo 2: A5 OUT 5V
Button2 ON Caracter = d A5 = LOW = 0V Caracter: A5OFF Button2 OFF Dispositivo 2: A5 OUT 0V
Button3 OFF Caracter = e D4 = HIGH = 5V Caracter: D4ON Button3 ON Dispositivo 3: D4 OUT 5V
Button3 ON Caracter = f D4 = LOW = 0V Caracter: D4OFF Button3 OFF Dispositivo 3: D4 OUT 0V
Button4 OFF Caracter = g D5 = HIGH = 5V Caracter: D5ON Button4 ON Dispositivo 4: D5 OUT 5V
Button4 ON Caracter = h D5 = LOW = 0V Caracter: D5OFF Button4 OFF Dispositivo 4: D5 OUT 0V
Button5 OFF Caracter = i D6 = HIGH = 5V Caracter: D6ON Button5 ON Dispositivo 5: D6 OUT 5V
Button5 ON Caracter = j D6 = LOW = 0V Caracter: D6OFF Button5 OFF Dispositivo 5: D6 OUT 0V
Button6 OFF Caracter = k D7 = HIGH = 5V Caracter: D7ON Button6 ON Dispositivo 6: D7 OUT 5V
Button6 ON Caracter = l D7 = LOW = 0V Caracter: D7OFF Button6 OFF Dispositivo 6: D7 OUT 0V
Button7 OFF Caracter = m D8 = HIGH = 5V Caracter: D8ON Button7 ON Dispositivo 7: D8 OUT 5V
Button7 ON Caracter = n D8 = LOW = 0V Caracter: D8OFF Button7 OFF Dispositivo 7: D8 OUT 0V
Button8 OFF Caracter = o D9 = HIGH = 5V Caracter: D9ON Button8 ON Dispositivo 8: D9 OUT 5V
Button8 ON Caracter = p D9 = LOW = 0V Caracter: D9OFF Button8 OFF Dispositivo 8: D9 OUT 0V
Button9 OFF Caracter = q D10 = HIGH = 5V Caracter: D10ON Button9 ON Dispositivo 9: D10 OUT 5V
Button9 ON Caracter = r D10 = LOW = 0V Caracter: D10OFF Button9 OFF Dispositivo 9: D10 OUT 0V
Button10 OFF Caracter = s D11 = HIGH = 5V Caracter: D11ON Button10 ON Dispositivo 10: D11 OUT 5V
Button10 ON Caracter = t D11 = LOW = 0V Caracter: D11OFF Button10 OFF Dispositivo 10: D11 OUT 0V
Button11 OFF Caracter = u D12 = HIGH = 5V Caracter: D12ON Button11 ON Dispositivo 11: D12 OUT 5V
Button11 ON Caracter = v D12 = LOW = 0V Caracter: D12OFF Button11 OFF Dispositivo 11: D12 OUT 0V
Button12 OFF Caracter = x D13 = HIGH = 5V Caracter: D13ON Button12 ON Dispositivo 12: D13 OUT 5V
Button12 ON Caracter = y D13 = LOW = 0V Caracter: D13OFF Button12 OFF Dispositivo 12: D13 OUT 0V
Get Status Switches Caracter =  A Arduino Verifica Caracter: A4ON Button1 ON Dispositivo 1: A4 OUT 5V
qual é o Status Caracter: A4OFF Button1 OFF Dispositivo 1: A4 OUT 0V
das saídas digitais Caracter: A5ON Button2 ON Dispositivo 2: A5 OUT 5V
e  envia para o  Caracter: A5OFF Button2 OFF Dispositivo 2: A5 OUT 0V
comando para o Caracter: D4ON Button3 ON Dispositivo 3: D4 OUT 5V
App. Android. Caracter: D4OFF Button3 OFF Dispositivo 3: D4 OUT 0V
Caracter: D5ON Button4 ON Dispositivo 4: D5 OUT 5V
Caracter: D5OFF Button4 OFF Dispositivo 4: D5 OUT 0V
Caracter: D6ON Button5 ON Dispositivo 5: D6 OUT 5V
Caracter: D6OFF Button5 OFF Dispositivo 5: D6 OUT 0V
Caracter: D7ON Button6 ON Dispositivo 6: D7 OUT 5V
Caracter: D7OFF Button6 OFF Dispositivo 6: D7 OUT 0V
Caracter: D8ON Button7 ON Dispositivo 7: D8 OUT 5V
Caracter: D8OFF Button7 OFF Dispositivo 7: D8 OUT 0V
Caracter: D9ON Button8 ON Dispositivo 8: D9 OUT 5V
Caracter: D9OFF Button8 OFF Dispositivo 8: D9 OUT 0V
Caracter: D10ON Button9 ON Dispositivo 9: D10 OUT 5V
Caracter: D10OFF Button9 OFF Dispositivo 9: D10 OUT 0V
Caracter: D11ON Button10 ON Dispositivo 10: D11 OUT 5V
Caracter: D11OFF Button10 OFF Dispositivo 10: D11 OUT 0V
Caracter: D12ON Button11 ON Dispositivo 11: D12 OUT 5V
Caracter: D12OFF Button11 OFF Dispositivo 11: D12 OUT 0V
Caracter: D13ON Button12 ON Dispositivo 12: D13 OUT 5V
Caracter: D13OFF Button12 OFF Dispositivo 12: D13 OUT 0V
LM35 Setup = UP Caracter = U LM35Ca<>LM35Se A2ON/A2OFF Button13 ON/OFF Dispositivo LM35:A2 0V/5V
LM35 Setup = DOWN Caracter = V LM35Ca<>LM35Se A2ON/A2OFF Button13 ON/OFF Dispositivo LM35:A2 0V/5V
LM35 Setup = Restart Caracter = X LM35Setup = 25°C LM35Setup = 25°C LM35Setup = 25°C
LDR Setup = UP Caracter = R LDRCa<>LDRSe A3ON/A3OFF Button14 ON/OFF Dispositivo LDR:A3 0V/5V
LDR Setup = DOWN Caracter = T LDRCa<>LDRSe A3ON/A3OFF Button14 ON/OFF Dispositivo LDR:A3 0V/5V
LDR Setup = Restart Caracter = S LDRSetup=250Lux LDRSetup=250Lux
LDRSetup=250Lux

TIMER1-A4 = ON     Caracter = K        TIMER1-A4 = ON
TIMER1-A4 = OFF   Caracter = L         TIMER1-A4 = OFF
Button Forward          Caracter = B        TIMER1-A4 = Forward
Button Timing(Sync) Caracter = C         TIMER1-A4 = 15s(Sync)



3)- Fotos do aplicativo:



















3.1)- Fotos do aplicativo funcionando com tablet Samsung:


                                                                       













4)- Código Arduino: Monitor LM35 LDR Program Switches:

//***********************************************************************//
//   MONITOR receve valores LM35 e LDR via bluetooth para o App. Android //
//   Botões Editáveis com os nomes a escoller para cada um dos 14 canais //
//   Os nomes dos dispositivos são gravados em banco de dados no App.    //
//   Controle de 14 canais sendo dois canais no modo automático          //
//   Função Bluetooth Server:Arduino envia dados LM35 e LDR a cada 1000ms//                                              //
//   Os valores dos setups de LM35 e LDR são gravados na EEPROM          //
//   Os setups e acionamentos são recuperados pela EEPROM em queda de    //
//   Energia ou reset do Arduino                                         //
//   Sistema Get Status Switches recupera a posição ON/OFF de 14 canais  //
//   O App. e Celular podem ser desligados que o Arduino mantém tudo     //
//   Funcionando conforme configurações.                                 //
//***********************************************************************//

//Bibliotecas;
#include <SoftwareSerial.h>//Biblioteca para Serial Monitor IDE;
SoftwareSerial mySerial(2, 3);//Biblioteca para serial bluetooth;
//Arduino D2(Bluetooth-TX), Arduino D3(Bluetooth-RX);
#include <EEPROM.h>

//Declaração das variáveis de programa;

int device1 = 0;
int device2 = 0;
int device3 = 0;
int device4 = 0;
int device5 = 0;
int device6 = 0;
int device7 = 0;
int device8 = 0;
int device9 = 0;
int device10 = 0;
int device11 = 0;
int device12 = 0;

char caracter;

int AA2 = A2;//Arduino analogica A2;
int AA3 = A3;//Arduino analogica A3;
int AA4 = A4;//Arduino analogica A4;
int AA5 = A5;//Arduino analogica A5;

int D4 = 4;//Arduino digital D4;
int D5 = 5;//Arduino digital D5;
int D6 = 6;//Arduino digital D6;
int D7 = 7;//Arduino digital D7;
int D8 = 8;//Arduino digital D8;
int D9 = 9;//Arduino digital D9;
int D10 = 10;//Arduino digital D10;
int D11 = 11;//Arduino digital D11;
int D12 = 12;//Arduino digital D12;
int D13 = 13;//Arduino digital D13;

int pinSensorA0 = 0;//Analógica A0 conectado ao LM35;
int valueA0 = 0;//Variável para leitura LM35;
int pinSensorA1 = 1;//Analógica A1 conectado ao LDR;
float LM35 = 0;//Variável calcula e armazena valorlido do LM35;
float LDR = 0;//Variável calcula e armazena valorlido do LDR;
int  cont = 0;//Variável para contagem do numero de leituras LM35 e LDR;
float LM35Calc = 0;//Variável tira a média de 100 leituras do LM35;
float LDRCalc = 0;//Variável tira a média de 100 leituras do LDR;
float LM35Setup;
float LDRSetup;
int LDRSetupEEprom;
int addressLDR1;
int addressLDR2;

int address1;
int address2;
int address3;
int address4;

int Divide1;
int Divide2;
int RestoDivisao;
int Resultado1;
int Resultado2;
int Resultado3;
int Resultado4;
int Res2;
int Res3;
int contSwitches12=0;

//int ContTimer1;
int ContTimerB;
int IncCont;
//int ContTimer1ONOFF;//ON/OFF
unsigned long ContTimer1ONOFF;//ON/OFF
unsigned long ContTimer1;
int Timer1IncSeg;//Contagem de segundos;
int Timer1IncMin;//Contagem de minutos;

int contSetupTimer1=0;//Contagem para setup das variáveis de controle de tempo;

void setup() {
  mySerial.begin(9600);//Velocidade serial em 9600bps pinos D2 e D3;
  //Bluetooth também deve estar na mesma veloc. 9600bps;
   Serial.begin(9600);//Velocidade serial em 9600bps pinos D0 e D1;
   //Serial Monitor IDE também deve estar na mesma veloc. 9600bps;

 //Recupera o valor do LM35 gravado na EEPROM na queda de energia ou reset do Arduino;
 LM35Setup=(EEPROM.read(0));//Inicializa a variável(LM35Setup)
 //com o ultimo valor gravado na posição 0 da EEPROM;

 Resultado1=(EEPROM.read(1));//Inicializa a variável(LDRSetup)
 //com o ultimo valor gravado na posição 1 da EEPROM;

 Res2=(EEPROM.read(2));//Inicializa a variável(LDRSetup)
 //com o ultimo valor gravado na posição 2 da EEPROM;

 Res3=(EEPROM.read(3));//Inicializa a variável(LDRSetup)
 //com o ultimo valor gravado na posição 3 da EEPROM;

 //Recupera o valor do LDR gravado na EEPROM na queda de energia ou reset do Arduino;
 LDRSetupEEprom = ((EEPROM.read(1)*1000)+(EEPROM.read(2)*100)+(EEPROM.read(3)*10));
 LDRSetup = LDRSetupEEprom;


 IncCont =1;
 //ContTimerB=4000;//Contagem para 1 minuto 60.000ms/15ms(loop);
 ContTimer1ONOFF =2;//Desativa a contagem de tempo;
 ContTimer1 =0;//Inicia a contagem em zero;
 Timer1IncSeg =0;//Inicia contagem de segundos em zero;
 Timer1IncMin =0;//Inicia contagem de minutos em zero;

//-----------------------Define porta como saída-----------------------
  pinMode(AA2, OUTPUT);
  pinMode(AA3, OUTPUT);
  pinMode(AA4, OUTPUT);
  pinMode(AA5, OUTPUT);
  pinMode(D4, OUTPUT);
  pinMode(D5, OUTPUT);
  pinMode(D6, OUTPUT);
  pinMode(D7, OUTPUT);
  pinMode(D8, OUTPUT);
  pinMode(D9, OUTPUT);
  pinMode(D10, OUTPUT);
  pinMode(D11, OUTPUT);
  pinMode(D12, OUTPUT);
  pinMode(D13, OUTPUT);
//-----------------------Inicializa porta em 0V-----------------------
digitalWrite(AA2, LOW);
digitalWrite(AA3, LOW);
digitalWrite(AA4, LOW);
digitalWrite(AA5, LOW);
digitalWrite(D4, LOW);
digitalWrite(D5, LOW);
digitalWrite(D6, LOW);
digitalWrite(D7, LOW);
digitalWrite(D8, LOW);
digitalWrite(D9, LOW);
digitalWrite(D10, LOW);
digitalWrite(D11, LOW);
digitalWrite(D12, LOW);
digitalWrite(D13, LOW);
 }

void loop() {
  char caracter = mySerial.read();//Variavel para leitura da serial;

  if (caracter == 'a')//Arduino recebe caracter do Android;
 {
  digitalWrite(AA4, HIGH);//Coloca o pino A4 em 5V;
  //Serial.println("A4ON");//Mostra valores no Serial Monitor Arduino;
  mySerial.println("A4ON");
  EEPROM.write(5,1);//Gravar no endereço 5 da EEPROM o dado = 1;
 
 }
  if (caracter == 'b')//Arduino recebe caracter do Android;
 {
  digitalWrite(AA4, LOW);//Coloca o pino A4 em 0V;
  //Serial.println("A4OFF");//Mostra valores no Serial Monitor Arduino;
  mySerial.println("A4OFF");
  EEPROM.write(5,0);//Gravar no endereço 5 da EEPROM o dado = 0;

 }

//---------------------------------------------------------
  if (caracter == 'c')//Arduino recebe caracter do Android;
 {
  digitalWrite(AA5, HIGH);//Coloca o pino A5 em 5V;
  //Serial.println("A5ON");
  mySerial.println("A5ON");
  EEPROM.write(6,1);
 }
  if (caracter == 'd')//Arduino recebe caracter do Android;
 {
  digitalWrite(AA5, LOW);//Coloca o pino A5 em 0V;
  //Serial.println("A5OFF");
  mySerial.println("A5OFF");
  EEPROM.write(6,0);
 }
//----------------------------------------------------------
  if (caracter == 'e')//Arduino recebe caracter do Android;
 {
  digitalWrite(D4, HIGH);//Coloca o pino D4 em 5V;
  //Serial.println("D4ON");
  mySerial.println("D4ON");
  EEPROM.write(7,1);
 }
  if (caracter == 'f')//Arduino recebe caracter do Android;
 {
  digitalWrite(D4, LOW);//Coloca o pino D4 em 0V;
  //Serial.println("D4OFF");
  mySerial.println("D4OFF");
  EEPROM.write(7,0);
 }
//----------------------------------------------------------
  if (caracter == 'g')//Arduino recebe caracter do Android;
 {
  digitalWrite(D5, HIGH);//Coloca o pino D5 em 5V;
  //Serial.println("D5ON");
  mySerial.println("D5ON");
  EEPROM.write(8,1);
 }
  if (caracter == 'h')//Arduino recebe caracter do Android;
 {
  digitalWrite(D5, LOW);//Coloca o pino D5 em 0V;
  //Serial.println("D5OFF");
  mySerial.println("D5OFF");
  EEPROM.write(8,0);
 }
//----------------------------------------------------------
  if (caracter == 'i')//Arduino recebe caracter do Android;
 {
  digitalWrite(D6, HIGH);//Coloca o pino D6 em 5V;
  //Serial.println("D6ON");
  mySerial.println("D6ON");
  EEPROM.write(9,1);
 }
  if (caracter == 'j')//Arduino recebe caracter do Android;
 {
  digitalWrite(D6, LOW);//Coloca o pino D6 em 0V;
  //Serial.println("D6OFF");
  mySerial.println("D6OFF");
  EEPROM.write(9,0);
 }
//----------------------------------------------------------
  if (caracter == 'k')//Arduino recebe caracter do Android;
 {
  digitalWrite(D7, HIGH);//Coloca o pino D7 em 5V;
  //Serial.println("D7ON");
  mySerial.println("D7ON");
  EEPROM.write(10,1);
 }
  if (caracter == 'l')//Arduino recebe caracter do Android;
 {
  digitalWrite(D7, LOW);//Coloca o pino D7 em 0V;
  //Serial.println("D7OFF");
  mySerial.println("D7OFF");
   EEPROM.write(10,0);
 }
//----------------------------------------------------------
  if (caracter == 'm')//Arduino recebe caracter do Android;
 {
  digitalWrite(D8, HIGH);//Coloca o pino D8 em 5V;
  //Serial.println("D8ON");
  mySerial.println("D8ON");
   EEPROM.write(11,1);
 }
  if (caracter == 'n')//Arduino recebe caracter do Android;
 {
  digitalWrite(D8, LOW);//Coloca o pino D8 em 0V;
  //Serial.println("D8OFF");
  mySerial.println("D8OFF");
   EEPROM.write(11,0);
 }
//----------------------------------------------------------
  if (caracter == 'o')//Arduino recebe caracter do Android;
 {
  digitalWrite(D9, HIGH);//Coloca o pino D9 em 5V;
  //Serial.println("D9ON");
  mySerial.println("D9ON");
   EEPROM.write(12,1);
 }
  if (caracter == 'p')//Arduino recebe caracter do Android;
 {
  digitalWrite(D9, LOW);//Coloca o pino D9 em 0V;
  //Serial.println("D9OFF");
  mySerial.println("D9OFF");
   EEPROM.write(12,0);
 }
//----------------------------------------------------------
  if (caracter == 'q')//Arduino recebe caracter do Android;
 {
  digitalWrite(D10, HIGH);//Coloca o pino D10 em 5V;
  //Serial.println("D10ON");
  mySerial.println("D10ON");
   EEPROM.write(13,1);
 }
  if (caracter == 'r')//Arduino recebe caracter do Android;
 {
  digitalWrite(D10, LOW);//Coloca o pino D10 em 0V;
  //Serial.println("D10OFF");
  mySerial.println("D10OFF");
   EEPROM.write(13,0);
 }
//----------------------------------------------------------
  if (caracter == 's')//Arduino recebe caracter do Android;
 {
  digitalWrite(D11, HIGH);//Coloca o pino D11 em 5V;
  //Serial.println("D11ON");
  mySerial.println("D11ON");
   EEPROM.write(14,1);
 }
  if (caracter == 't')//Arduino recebe caracter do Android;
 {
  digitalWrite(D11, LOW);//Coloca o pino D11 em 0V;
  //Serial.println("D11OFF");
  mySerial.println("D11OFF");
   EEPROM.write(14,0);
 }
//----------------------------------------------------------
  if (caracter == 'u')//Arduino recebe caracter do Android;
 {
  digitalWrite(D12, HIGH);//Coloca o pino D12 em 5V;
  //Serial.println("D12ON");
  mySerial.println("D12ON");
   EEPROM.write(15,1);
 }
  if (caracter == 'v')//Arduino recebe caracter do Android;
 {
  digitalWrite(D12, LOW);//Coloca o pino D12 em 0V;
  //Serial.println("D12OFF");
  mySerial.println("D12OFF");
   EEPROM.write(15,0);
 }
//----------------------------------------------------------
  if (caracter == 'x')//Arduino recebe caracter do Android;
 {
  digitalWrite(D13, HIGH);//Coloca o pino D13 em 5V;
  //Serial.println("D13ON");
  mySerial.println("D13ON");
   EEPROM.write(16,1);
 }
  if (caracter == 'y')//Arduino recebe caracter do Android;
 {
  digitalWrite(D13, LOW);//Coloca o pino D13 em 0V;
  //Serial.println("D13OFF");
  mySerial.println("D13OFF");
   EEPROM.write(16,0);
 }
//----------------------------------------------------------
 device1 = digitalRead(AA4);
 device2 = digitalRead(AA5);
 device3 = digitalRead(D4);
 device4 = digitalRead(D5);
 device5 = digitalRead(D6);
 device6 = digitalRead(D7);
 device7 = digitalRead(D8);
 device8 = digitalRead(D9);
 device9 = digitalRead(D10);
 device10 = digitalRead(D11);
 device11 = digitalRead(D12);
 device12 = digitalRead(D13);



  cont++;//Incrementa a contagem na variável cont;
  valueA0 =  analogRead(pinSensorA0);//Leitura do LM35;

  //Para melhorar a precisão do valor lido da temperatura
  //selecione o cálculo correspondente em função da tensão
  //de alimentação do LM35(se possível use um voltímetro
  //entre(VCC e GND do LM35);
  //Este valor depende da fonte utilizada;
  //Selecione apenas um cálculo por vez
  //e o restante deixe como "//" comentário, conforme segue abaixo:

  //LM35 = (valueA0 * 0.00488);// Alimentação LM35=5,0V;
  //LM35 = (valueA0 * 0.00478);// Alimentação LM35=4,9V;
  //LM35 = (valueA0 * 0.00469);// Alimentação LM35=4,8V;
  //LM35 = (valueA0 * 0.00459);// Alimentação LM35=4,7V;
  //LM35 = (valueA0 * 0.00449);// Alimentação LM35=4,6V;
  //LM35 = (valueA0 * 0.00439);// Alimentação LM35=4,5V;
    LM35 = (valueA0 * 0.00430);// Alimentação LM35=4,4V(exemplo);

  LM35 = (LM35 * 100);
  LM35Calc =(LM35Calc + LM35);
  LDR = analogRead(pinSensorA1);
  LDRCalc =(LDRCalc + LDR);
  //comtém Somatória de 100 valores do LM35 e LDR

  if(cont==100)//Cálculo e ajuste do valor médio LM35 e LDR;
 {
  cont=0;//Zera contagem;
  LM35Calc = (LM35Calc/100);//Calcula o valor médio;
  //LM35Calc = (LM35Calc*0.95);//Ajusta o valor;
  mySerial.println("Y");
  mySerial.println(LM35Calc, 1);//Envia para App. o Android;

  LDRCalc = (LDRCalc/100);//Calcula o valor médio;
  mySerial.println("Z");
  mySerial.println(LDRCalc, 0);//Envia para o App. Android;

  //Mostra valor LM35 e LDR no Serial Monitor na IDE Arduino;

  //Serial.print("LM35:  ");//Mostra valores no Serial Monitor Arduino;
  //Serial.println(LM35Calc, 1);//Mostra valores no Serial Monitor Arduino;
  //Serial.print("LDR:  ");//Mostra valores no Serial Monitor Arduino;
  //Serial.println(LDRCalc, 0);//Mostra valores no Serial Monitor Arduino;

 //--------------Compara LM35Calc com LM35Setup-------------------
 if (LM35Calc >= LM35Setup){
 digitalWrite(AA2, HIGH);//Coloca o pino A2 em 5V, FAN ON;
  //Serial.println("A2ON");
  mySerial.println("A2ON");
 }
 if (LM35Calc <= LM35Setup){
 digitalWrite(AA2, LOW);//Coloca o pino A2 em 0V, FAN OFF;
  //Serial.println("A2OFF");
  mySerial.println("A2OFF");
 }
//----------------Compara LDRCalc com LDRSetup-------------------
 if (LDRCalc <= LDRSetup){
 digitalWrite(AA3, HIGH);//Coloca o pino A3 em 5V, LIGHT ON;
  //Serial.println("A3ON");
  mySerial.println("A3ON");
 }
 if (LDRCalc >= LDRSetup){
 digitalWrite(AA3, LOW);//Coloca o pino A3 em 0V, LIGHT OFF;
  //Serial.println("A3OFF");
  mySerial.println("A3OFF");
 }
//------------------------------------------------------------------

 }
  delay(15);
  //Como são executados 100 leituras x 15ms e tirado a média,
  //o valor da temperatura e luminosidade será apresentado no
  //Smartphone Android a cada 1500 ms.
  //Com isso teremos um valor real e estabilidade nas leituras.


 //-------------------Get New Status Switches----------------------
 if (caracter == 'A')//Arduino recebe caracter do Android;
 {
   if (device1 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("A4ON");//Mostra valores no Serial Monitor Arduino;
   mySerial.println("A4ON");//Arduino envia para Serial Bluetooth do Android;
 }
 if (device1 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("A4OFF");//Mostra valores no Serial Monitor Arduino;
   mySerial.println("A4OFF");//Arduino envia para Serial Bluetooth do Android;
 }
 //----------------------------------------------------------------
  if (device2 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("A5ON");
   mySerial.println("A5ON");
 }
 if (device2 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("A5OFF");
   mySerial.println("A5OFF");
 }
 //----------------------------------------------------------------
  if (device3 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D4ON");
   mySerial.println("D4ON");
 }
 if (device3 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D4OFF");
   mySerial.println("D4OFF");
 }
 //----------------------------------------------------------------
  if (device4 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D5ON");
   mySerial.println("D5ON");
 }
 if (device4 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D5OFF");
   mySerial.println("D5OFF");
 }
 //----------------------------------------------------------------
  if (device5 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D6ON");
   mySerial.println("D6ON");
 }
 if (device5 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D6OFF");
   mySerial.println("D6OFF");
 }
 //----------------------------------------------------------------
  if (device6 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D7ON");
   mySerial.println("D7ON");
 }
 if (device6 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D7OFF");
   mySerial.println("D7OFF");
 }
 //----------------------------------------------------------------
  if (device7 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D8ON");
   mySerial.println("D8ON");
 }
 if (device7 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D8OFF");
   mySerial.println("D8OFF");
 }
 //----------------------------------------------------------------
  if (device8 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D9ON");
   mySerial.println("D9ON");
 }
 if (device8 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D9OFF");
   mySerial.println("D9OFF");
 }
 //----------------------------------------------------------------
  if (device9 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D10ON");
   mySerial.println("D10ON");
 }
 if (device9 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D10OFF");
   mySerial.println("D10OFF");
 }
 //----------------------------------------------------------------
  if (device10 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D11ON");
   mySerial.println("D11ON");
 }
 if (device10 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D11OFF");
   mySerial.println("D11OFF");
 }
 //----------------------------------------------------------------
  if (device11 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D12ON");
   mySerial.println("D12ON");
 }
 if (device11 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D12OFF");
   mySerial.println("D12OFF");
 }
 //----------------------------------------------------------------
  if (device12 == HIGH) {//Verificar se a entrada é HIGH;
   //Serial.println("D13ON");
   mySerial.println("D13ON");
 }
 if (device12 == LOW) {//Verificar se a entrada é LOW;      
   //Serial.println("D13OFF");
   mySerial.println("D13OFF");
 }



 }

 //--------------------Setup LM35--------------------------------
  if (caracter == 'U')//Arduino recebe caracter do Android;
{
 LM35Setup++;
 EEPROM.write(0,LM35Setup);
if (LM35Setup >= 100){
 LM35Setup =100;
}
}
if (caracter == 'V')//Arduino recebe caracter do Android;
{
 LM35Setup--;
 EEPROM.write(0,LM35Setup);
if (LM35Setup <= 0){
 LM35Setup = 0;
}
}
//--------------------Setup LDR--------------------------------

 if (caracter == 'R')//Arduino recebe caracter do Android;
{
 LDRSetup = (LDRSetup +10);

Divide1 = LDRSetup;
Divide2 = Divide1;
Resultado1 = (Divide1/1000);
Resultado2 = (Divide2%1000);//Separa resto da divisão; Exemplo: 250
Res2 = (Resultado2/100);
Resultado3 = (Resultado2%100);//250/100 = 2,50 => resto =50
Res3 = (Resultado3/10);
EEPROM.write(1,Resultado1);
   EEPROM.write(2,Res2);
    EEPROM.write(3,Res3);
if (LDRSetup >= 1000){
 LDRSetup =1000;

}

}

//-------------------------------------------------
if (caracter == 'T')//Arduino recebe caracter do Android;
{
 LDRSetup = (LDRSetup -10);

Divide1 = LDRSetup;
Divide2 = Divide1;
Resultado1 = (Divide1/1000);
Resultado2 = (Divide2%1000);//Separa resto da divisão; Exemplo: 250
Res2 = (Resultado2/100);
Resultado3 = (Resultado2%100);//250/100 = 2,50 => resto =50
Res3 = (Resultado3/10);
  EEPROM.write(1,Resultado1);
   EEPROM.write(2,Res2);
    EEPROM.write(3,Res3);
 
     
 if (LDRSetup <= 0){
 LDRSetup = 0;

}

}

//----------Valores Defaults LM35=25C e LDR=250Lux-------------
if (caracter == 'X')//Arduino recebe caracter do Android;
{
 LM35Setup = 25;
 EEPROM.write(0,LM35Setup);
}
if (caracter == 'S')//Arduino recebe caracter do Android;
{
  LDRSetup = 250;

Divide1 = LDRSetup;
Divide2 = Divide1;
Resultado1 = (Divide1/1000);
Resultado2 = (Divide2%1000);//Separa resto da divisão;250
Res2 = (Resultado2/100);
Resultado3 = (Resultado2%100);//250/100 = 2,50 => resto =50
Res3 = (Resultado3/10);
  EEPROM.write(1,Resultado1);
   EEPROM.write(2,Res2);
    EEPROM.write(3,Res3);
 
}

//Recupera SWITCHES, dados gravados na EEPROM durante desligamento ou reset;
if(contSwitches12<=1){
contSwitches12++;
if( (EEPROM.read(5))==1){
  digitalWrite(AA4, HIGH);
}
if( (EEPROM.read(5))==0){
  digitalWrite(AA4, LOW);
}
if( (EEPROM.read(6))==1){
  digitalWrite(AA5, HIGH);
}
if( (EEPROM.read(6))==0){
  digitalWrite(AA5, LOW);
}
if( (EEPROM.read(7))==1){
  digitalWrite(D4, HIGH);
}
if( (EEPROM.read(7))==0){
  digitalWrite(D4, LOW);
}
if( (EEPROM.read(8))==1){
  digitalWrite(D5, HIGH);
}
if( (EEPROM.read(8))==0){
  digitalWrite(D5, LOW);
}
if( (EEPROM.read(9))==1){
  digitalWrite(D6, HIGH);
}
if( (EEPROM.read(9))==0){
  digitalWrite(D6, LOW);
}
if( (EEPROM.read(10))==1){
  digitalWrite(D7, HIGH);
}
if( (EEPROM.read(10))==0){
  digitalWrite(D7, LOW);
}
if( (EEPROM.read(11))==1){
  digitalWrite(D8, HIGH);
}
if( (EEPROM.read(11))==0){
  digitalWrite(D8, LOW);
}
if( (EEPROM.read(12))==1){
  digitalWrite(D9, HIGH);
}
if( (EEPROM.read(12))==0){
  digitalWrite(D9, LOW);
}
if( (EEPROM.read(13))==1){
  digitalWrite(D10, HIGH);
}
if( (EEPROM.read(13))==0){
  digitalWrite(D10, LOW);
}
if( (EEPROM.read(14))==1){
  digitalWrite(D11, HIGH);
}
if( (EEPROM.read(14))==0){
  digitalWrite(D11, LOW);
}
if( (EEPROM.read(15))==1){
  digitalWrite(D12, HIGH);
}
if( (EEPROM.read(15))==0){
  digitalWrite(D12, LOW);
}
if( (EEPROM.read(16))==1){
  digitalWrite(D13, HIGH);
}
if( (EEPROM.read(16))==0){
  digitalWrite(D13, LOW);
}

}

//-------Timer1: Temporizador/Contagem de tempo de 15s a 8h------------//

if(contSetupTimer1<=1){
 contSetupTimer1++;
ContTimer1ONOFF =2;//Desativa a contagem de tempo;
 ContTimer1 =0;//Inicia a contagem em zero;
}

//ContTimerB=3996;//Botão incrementa valor do Timer para 1 minuto;
if (caracter == 'B'){
   IncCont++;}
 
  if (IncCont == 1){//15seg;
  ContTimerB=1000;}
 
 if (IncCont == 2){//30seg;
  ContTimerB=2000;}

 if (IncCont == 3){//60seg;
  ContTimerB=4000;}

  if (IncCont == 4){//5min;
  ContTimerB=20000;}

  if (IncCont == 5){//15min;
  ContTimerB=60000;}

  if (IncCont == 6){//30min;
  ContTimerB=120000;}

  if (IncCont == 7){//1h;
  ContTimerB=240000;}

  if (IncCont == 8){//2h;
  ContTimerB=480000;}

  if (IncCont == 9){//4h;
  ContTimerB=960000;}

  if (IncCont == 10){//6h;
  ContTimerB=1440000;}

  if (IncCont == 11){//8h;
  ContTimerB=1920000;}

  if (IncCont == 12){//15seg;
  IncCont = 1;}

//------------------------  
 if (caracter == 'C')//Arduino recebe caracter do Android Sync(setup 15seg);
{
   IncCont = 1;  
}
//------------------------    
if (caracter == 'K') //Arduino recebe caracter do Android ligar Timer1ON;
{
  digitalWrite(AA4, HIGH);
  mySerial.println("A4ON");//Arduino envia para Serial Bluetooth do Android;
  ContTimer1ONOFF=1;//ON
}
if (ContTimer1 >= ContTimerB){
   ContTimer1=0;//Seta a contagem em zero;
   ContTimer1ONOFF=2;//OFF Para a contagem do ContTimer1;

  mySerial.println("A4OFF");//Arduino envia para Serial Bluetooth do Android;
  digitalWrite(AA4, LOW);
  mySerial.println("Timer1OFF");//Arduino envia para Serial Bluetooth do Android;
 //---------------------------------------
 //1 min. = 3996=> 1 seg. = 66.5
 //Timer1IncSeg = ContTimer1;//Encontra divizões para segundos;
 //---------------------------------------
}

if (caracter == 'L')//Arduino recebe caracter do Android Timer1OFF;
{
   digitalWrite(AA4, LOW);
   mySerial.println("A4OFF");//Arduino envia para Serial Bluetooth do Android;
   ContTimer1=0;//Seta a contagem em zero;
   ContTimer1ONOFF=2;//OFF Para a contagem do ContTimer1;
 
}
//-------------------------------------------------------------------------
if ((ContTimer1ONOFF ==1)&&((IncCont==1)||(IncCont==2)||(IncCont==3)))
{
ContTimer1++;  //Contagem de tempo;
Timer1IncSeg++;//Contagem de segundos;
}

if((ContTimer1ONOFF ==1)&&((IncCont==4)||(IncCont==5)||(IncCont==6)
||(IncCont==7)||(IncCont==8)||(IncCont==9)||(IncCont==10)||(IncCont==11)))
{
ContTimer1++;  //Contagem de tempo;
Timer1IncMin++;//Contagem de minutos;
}
//------------------------------------------------------------------------
if (ContTimer1ONOFF ==2)
{
ContTimer1 =0;//Contagem de tempo;
}
//----------------------------Timer1 para 1 segundo-----------------
 //1 min. = 3996=> 1 seg. = 66,5
 //Timer1IncSeg = ContTimer1;//Encontra divizões para segundos;
 if (Timer1IncSeg == 66){
 mySerial.println("Timer1IncSeg");//Arduino envia CMD para Android;
 Timer1IncSeg = 0;
  }
 //----------------------------Timer1 para 1 minuto-----------------
 //1 min. = 3996
 if (Timer1IncMin == 3996){
 mySerial.println("Timer1IncMin");//Arduino envia CMD para Android;
 Timer1IncMin = 0;
  }
 //------------------------------------------------------------------

 }//Loop



5)- Lista de Materiais;




Escolha uma fonte de alimentação ou bateria de sua preferencia:





Fonte de Alimentação de 9V/500mA com plug J4:




Utilizada para Alimentação do Arduino com sensores lm35, LDR e leds.


 


 


 


 


 


 


 















 

 

 

 

 

 

 

Fonte de Alimentação de 5V/500mA com plug J4 ou fios para protoboard:


Utilizada para alimentação dos relés(fonte independente mas conectadas através dos GND´s).
















Outro exemplo: Fonte de alimentação 5V/1000mA com saída cabo USB:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Outro exemplo: Bateria de 9V com conector cabo e plug J4:

 

 

 

 

 

 


Placa Arduino Uno R3:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sensor de Temperatura LM35:


 

 




 

 

 

 


LDR  Light Sensor



                                                    LDR Componente

        Leds Coloridos para representar o acionamento das saídas Arduino

Resistores de 220 ohms para interligar com os leds para as saídas Arduino


Resistor de 1k ohms para fazer ajuste da luminosidade do LDR

Potenciometro linear de 2k2 ohms para fazer ajuste ou calibração da luminosidade do LDR





  Placa Módulo Bluetooth JY-MCU:

 

 

 

 

 

 

 

 

 

                      







Exemplo de módulos de relés:






 Exemplo de Protoboard/Breadboard:















Jumpers Macho Macho:
























Cabo USB comunicação para carregar o programa Arduino / Fonte
Alimentação 5V:

 

 

5)- Esquema de ligações: Utilizando apenas leds para representar os acionamentos.

 


 

5.1)- Esquema de ligações: Utilizando relés  para acionamento dos dispositivos.



Exemplo de ligação utilizando relé:
Ligar a Fase da tomada no comum do relé;
Ligar o Neutro da tomada na lâmpada e saída da lâmpada no N/A ou N/F do relé;
Obs1.: Algums módulos de relés possuem uma lógica de acionamento invertida, ou seja:
Caso 1: Relé recebe sinal +5V  e energiza a bobina contatos N/A fecha e N/F abre.
Caso 2: Relé recebe sinal +0V  e energiza a bobina contatos N/A fecha e N/F abre.
Verificar qual é seu modelo simplesmente ligando VCC e GND e sinal do Arduino conforme demonstra figura abaixo então altere suas lidações de N/A ou N/F conforme sua necessidade de acionamento.
Veja que será melhor você deixar como está demonstrado no vídeo onde no aplicativo botão acionado ON VERDE saída do relé dispositivo ligado ou LÂMPADA LIGADA.

SINAL ARDUINO:  A2, A3, A4, A5, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13(14 CANAIS).
VCC = 5V;
GND = 0V;

Capacidade máxima de utilização com 14 relés;

Atenção: Para utilização com relés é necessário ligar uma fonte de 5V/500mA independente da fonte de alimentação do Arduino.

Então a fonte de 9V/500mA do Arduino alimenta: A placa Arduino + Sensores LM35 e LDR + leds.

Fonte de alimentação de 5V/500mA para os Relés: Apenas para os Módulos de relés.

Obs.: As duas fontes são interligadas apenas com os GND´s. Não se esqueça de fazer a ligação entre os
 GND´s comum entre as fontes com o GND da placa Arduino.

* Fontes independentes: Melhora a estabilidade para leitura e controle dos sensores além de não sobrecarregar o sistema por excesso de corrente!

                    





Utilize uma fonte independente para alimentação dos módulos de Relés.









Exemplo de ligação com 3 relés independentes:


 


Exemplo Módulo com 2 relés: IN1, IN2 sinal  ligado ao Arduino: A2...D13


Exemplo Módulo com 4 Relés:



Exemplo de módulo com 8 Relés:

Atenção: Para utilização com relés é necessário ligar uma fonte de 5V/500mA independente da fonte de alimentação do Arduino.

Então a fonte de 9V do Arduino alimenta: A placa Arduino + Sensores LM35 e LDR + leds.

Fonte de alimentação de 5V/500mA para Módulos de relés alimenta: Apenas módulos de relés.

Obs.: As duas fontes são interligadas apenas com os GND´s com o GND da placa Arduino. Não se esqueça de fazer a ligação entre os
 GND´s comum entre as fontes com o GND da placa Arduino.



Monitor LM35 LDR Program Switches


Google Play: 




Veja no meu canal Youtube:

https://www.youtube.com/watch?v=bEPPTxmoLsY&list=PL70c1gJPe5BrNQyUWaICfJDYxwL6fJfZB


 


Nenhum comentário:

Postar um comentário