Arduino Monitor Serial Bluetooth
Arduino Monitor Serial Bluetooth Automação mensagem texto LCD 16x2 ON/OFF 110/220V
You Tube: https://www.youtube.com/watch?v=HznPDN4-R7w
APP.: Arduino Monitor Serial Bluetooth - Display LDC 16x2:
Automação com Sensores Analógicos/Digitais - Reles 110V/220V.
Código Arduino Uno Gratuito:
Esquema de ligações, lista de materiais e instruções passo a passo:
Automação - Comunicação de dados(RX-TX) via Bluetooth de baixo custo!
Não contém propagandas.
Neste projeto utilizamos todas as saídas disponíveis no Arduino Uno R3, totalizando 8 canais de controle, mais o uso de um módulo Bluetooth e Display LCD 16X2 que fará a leitura dos SMS ou comando enviados ou recebidos(Celular Android ou Arduino LCD 16X2 e Monitor Serial IDE) para Automação.
Todos os comandos e as mensagens são editáveis e serão mostradas no:
- Display LCD 16x02;
- Aplicativo - Arduino Serial Monitor BT: Usando Serial RX-TX Arduino D2 e D3(via Bluetooth);
- PC Monitor Serial IDE: Usando Serial RX-TX Arduino D0 e D1;
Este aplicativo Android trabalha como um Monitor Serial(RX-TX) e Sistema e Automação, com ele nos podemos:
1- Enviar mensagens de texto SMS para o Arduino que será lida no Display LCD 16x02 ou IDE Arduino;
2- Estas mensagens podem executar comandos para Automação acionando relés 110/2220V;
3- O APP. pode Enviar uma mensagem:Digitar um texto e pressionar botão SEND;
4- O APP. pode Receber uma mensagem: Pressionar o botão RECEIVE;
5- O APP. pode Receber informações e sensores: LM35, LDR, Potenciômetro, DHT-11, GPS, Relógio RTC, Ultrassônico, status de relés e muitos outros...
6- Mensagens enviadas ou recebidas e leituras de sensores ou status de relés serão mostradas no APP., LCD e PC Monitor Serial IDE
7- O APP. pode Enviar uma mensagem de comando acionando relés e dispositivos de controle - Automação;
8- A conexão é via Bluetooth e você pode escolher um Bluetooth de uma lista;
- Enviar e receber mensagens de texto SMS ou comandos para Automação que serão lidas em um display LCD 16X2 e mensagens de respostas do Arduino serão mostradas no Monitor Serial do APP., ou no PC Monitor Serial IDE;
Aprender a trabalhar com:
- Arduino Uno R3:
- Display de LCD 16x02:
- Bluetooth HC5, HC6 ou JY-MCU;
- Sensores analógicos/Digitais ou módulo de relés que acionam cargas
ligadas à rede elétrica 110V/220V.
- Serial RS232 RX / TX enviar receber dados pelo Monitor Serial do App.;
- Esquema elétrico e código Arduino fornecidos gratuitamente;
Veja também:
1- Descrição de funcionamento e instalações.
2- Pinagens utilizadas com o Arduino, LCD, Bluetooth, leds ou relés.
3- Programa código para Arduino completo para o App.: SMS Terminal Automation.
4- Esquema de ligações.
5- Lista de Materiais.
Como funciona:
O App. instalado no smartphone funciona como um Terminal Serial de Mensagens(SMS), e Automação.
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.
Entrar no App.: e pressione o botão "MAC"
Escolha seu módulo bluetooth, no meu caso HC-06.
Agora pressione o botão Bluetooth, aguarde até sua conexão:
O botão Bluetooth fica com fundo azul e o módulo Bluetooth para de piscar e fica aceso direto.
Nesta tela o App está pronto para enviar dados mensagem para o LCD e também comandos para acionamentos ou controle Automação; Basta digitar o testo e pressionar o botão "Send".
Logo após nesta tela se pressionarmos o botão RECEIVE "Nuvem Verde >> Nuvem Verde", o Arduino irá enviar informações sobre status das portas de saída, neste caso foram selecionadas 3 entradas analógicas e 1 saída digital(A1, A2, A3 e A5) para acionamentos de léds forma didática ou relés(ON - OFF) conectados à rede elétrica 110/220V que irá por sua vez comandar dispositivos, lâmpadas, Luminárias, TV, Som, Ventilador, Eletrodomésticos... e sensores LM35, LDR e Potenciômetro, veja em esquema elétrico.
Aqui está um exemplo do App.: Arduino Monitor Serial Bluetooth trabalhando, temos o Arduino uno, montado com o LCD Shield, Módulo Bluetooth HC-06 sensores e led montados em um protoboard;
Veja que você pode usar o sensor que desejar, basta incluir sua biblioteca e alterar o código Arduino.
Leitura de Temperatura:°C, Potenciômetro:% e Luminosidade:Lux;
Com funciona o envio de Mensagem SMS Texto:
Quando pressionamos na tela que representa o Display LCD 16x02, um teclado virtual se abre e podemos digitar um texto, veja que este texto deve conter no máximo 16 caracteres.
Agora pressione o botão SEND, este botão envia sua mensagem para o Arduino via bluetooth;
Esta mensagem será escrita e mostrada no Display LCD, ao mesmo tempo o Arduino irá interpretar sua mensagem e efetuar um comando;
Esta mensagem poderá servir apenas para escrita no LCD como exemplo "HELLOW WORLD";
Mensagem para verificação do sistema, resposta a sua mensagem enviada e outros;
Mensagem(SMS) utilizada para Efetuar um Comando para Automação, conforme está demonstrado na figura abaixo:
Pressione o botão (receive) "Nuvem Azul >> Nuvem Verde": Receber SMS no Monitor Serial; As informações são enviadas pelo Arduino via Bluetooth.
Como Editar Novas Mensagens para Controle ou Automação:
Logo abaixo temos o programa Arduino, onde iremos alterar ou Editar a mensagem de texto SMS que irá servir para controle ou automação.
Com essa mensagem o Arduino será capaz de interpretar, tomar uma decisão e enviar um SMS para o Aplicativo:
Veja onde você deverá fazer sua Edição:
//-----Verifica qual foi o SMS recebido e toma decisão de ligar/Desligar;
if (readString == "frente luz on")
{
digitalWrite(ledA1, LOW);
}
if (readString == "frente luz off")
{
digitalWrite(ledA1, HIGH);
}
//----------------------------
Note que por praticidade de digitação eu escolhi deixar o SMS em letras minúsculas ex: ("frente luz on") mas poderia ser qualquer caracter maiúsculo ou minusculo, numérico ou alfanumérico.
Apenas digite no App. exatamente o SMS que você escolheu e envie para o Arduino!
Faça isso para todos os dispositivos que você quiser controlar em sua Automação.
Exemplos:
led1, led vermelho, rele4, quarto rele2, sala rele3, ventilador sala2, SalaLuzTetoRele005, a edição é toda sua!
Pinagem Arduino Uno R3: EXEMPLO DEMONSTRAÇÃO
A0- N/C
A1- PINO ANALÓGICO CANAL 1 LM35
A2- PINO ANALÓGICO CANAL 2 POTENCIÔMETRO
A3- PINO ANALÓGICO CANAL 3 LDR
A4- N/C
A5- PINO DIGITAL - SAÍDA COMANDO CANAL 5
D0- N/C- RESERVADO IDE SERIAL
D1- N/C- RESERVADO IDE SERIAL
D2- PINO DIGITAL - BLUETOOTH TX
D3- PINO DIGITAL - BLUETOOTH RX
D4- PINO DIGITAL - LCD DB4
D5- PINO DIGITAL - LCD DB5
D6- PINO DIGITAL - LCD DB6
D7- PINO DIGITAL - LCD DB7
D8- PINO DIGITAL - LCD RS
D9- PINO DIGITAL - LCD ENABLE
D10- PINO DIGITAL - LCD BACK LIGHT CONTROL
D11- PINO DIGITAL - SAÍDA COMANDO CANAL 6
D12- PINO DIGITAL - SAÍDA COMANDO CANAL 7
D13- PINO DIGITAL - SAÍDA COMANDO CANAL 8
Programa Arduino Uno R3 completo: EXEMPLO DEMONSTRAÇÃO
LM35 + LDR + Potenciometro + Relé
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>//Biblioteca Display LCD16x02.
#define TxD 2//Bluetooth TX pin D2 Arduino-RX.
#define RxD 3//Bluetooth RX pin D3 Arduino-TX.
SoftwareSerial Blue(TxD,RxD);//Arduino pin D2-RX, pin D3-TX.
LiquidCrystal lcd(8,9,4,5,6,7);//LCD Pinos(RS-EN-DB4-DB5-DB6-DB7).
int LM35;//Sensor de temperatura.
int POT;//Potenciometro.
int LDR;//Sensor de luminosidade.
int LedA5=A5;//Acionamento ON-OFF;
String readString;//Variável para escrita no Display------------------
const int BACK_LIGHT=10; //LCD Back Light ligado ao pino 10 do Arduino
void setup(){
Blue.begin(9600);//Serial Bluetooth-Arduino(D2-RX,D3-TX).
Serial.begin(9600);//Serial Arduino(D0-RX,D1-TX).
//------Back Light pino 10 do Arduino como saída: Inicio ON-OFF-ON-----
pinMode(BACK_LIGHT, OUTPUT);
digitalWrite(BACK_LIGHT, LOW);
delay(500);
pinMode(BACK_LIGHT, OUTPUT);
digitalWrite(BACK_LIGHT, HIGH);
delay(300);
digitalWrite(BACK_LIGHT, LOW);
delay(500);
digitalWrite(BACK_LIGHT, HIGH);
//-----------------Inicia o Display LCD 16x2---------------------------
lcd.begin(16,2);
lcd.clear();
delay(500);
lcd.setCursor(0,0);//C/L
lcd.print(" Serial Monitor");
lcd.setCursor(0,1);//C/L
lcd.print("Waiting Message");
delay(3000);
//-------------------
pinMode(LedA5, OUTPUT);
//Obs.: Desliga em nível alto(HIGH==OFF) e Liga em nível baixo(LOW==ON)---
digitalWrite(LedA5, HIGH);
}
void loop(){
//--------------------
LM35 = analogRead(A1);//Analogico A1.
LM35 = ((LM35*5*100)/1023);
//--------------------
POT = analogRead(A2);//Analogico A2.
POT = (POT/10.21);
//--------------------
LDR = analogRead(A3);//Analogico A3.
//--------------------
//Arduino escreve no Monitor Serial IDE PC------
Serial.print(" LM-35 - Temperature: ");
Serial.print(LM35);
Serial.print("C");
Serial.println();
delay(150);
Serial.print(" Potentiometer: ");
Serial.print(POT);
Serial.print("%");
Serial.println();
delay(150);
Serial.print(" LDR - Light: ");
Serial.print(LDR);
Serial.print(" Lux");
Serial.println();
//-------------------------
char comando = Blue.read();
while (Blue.available()) {
delay(3);
char c =Blue.read();
readString += c;//Leitura da strinh seial via Bluetooth.
}
//--------------------------
if (readString.length() >0) {
lcd.clear();
lcd.setCursor(0,0);//C/L
lcd.print(readString);//Escreve no Display o SMS enviado pelo celular;
}
//---------------------------
switch(comando){//Escreve no APP. Arduino Serial Monitor Bluetooth Android.
case '.':
Blue.print(" LM-35 - Temperature: ");
Blue.print(LM35);
Blue.print("°C");
Blue.println();
Blue.print("");
//---------------
Blue.print(" Potenciometro: ");
Blue.print(POT);
Blue.println("%");
Blue.print("");
//---------------
Blue.print(" LDR: ");
Blue.print(LDR);
Blue.println(" Lux");
Blue.print("");
//--------Arduino escreve no Display LCD Linha 1.
lcd.setCursor(0,0);//C/L
lcd.print("T:");
lcd.setCursor(2,0);//C/L
lcd.print(LM35);
//------------------------
lcd.setCursor(5,0);//C/L
lcd.print("P:");
lcd.setCursor(7,0);//C/L
lcd.print(POT);
//-------------------------
lcd.setCursor(11,0);//C/L
lcd.print("L:");
lcd.setCursor(13,0);//C/L
lcd.print(LDR);
delay(200);
break;
}
//--------------------------
switch(comando){//Arduino escreve no Display LCD Linha 2.
case '.':
lcd.setCursor(0,1);//C/L
lcd.print("T:");
lcd.setCursor(2,1);//C/L
lcd.print(LM35);
//------------------------
lcd.setCursor(5,1);//C/L
lcd.print("P:");
lcd.setCursor(7,1);//C/L
lcd.print(POT);
//-------------------------
lcd.setCursor(11,1);//C/L
lcd.print("L:");
lcd.setCursor(13,1);//C/L
lcd.print(LDR);
delay(300);
break;
}
//Recebe a mensagem(string), Liga/Desliga Dispositivos.
if (readString == "led on")
{
digitalWrite(LedA5, LOW);//Liga com nivel 0V.
}
if (readString == "led off")
{
digitalWrite(LedA5, HIGH);//Desliga com nivel 5V.
}
//Escreve no no APP. Arduino Serial Monitor Bluetooth Android.
if(digitalRead(LedA5)==LOW){//Arduino verifica o status de A5.
Blue.print(" Rele Pin A5 ON");//Arduino envia para APP. Android.
Blue.println();
Serial.print(" Rele Pin A5 ON");//Arduino envia para Monitor Serial PC.
Serial.println();
}
if(digitalRead(LedA5)==HIGH){//Arduino verifica o status de A5.
Blue.print(" Rele Pin A5 OFF");//Arduino envia para APP. Android.
Blue.println();
Serial.print(" Rele Pin A5 OFF");//Arduino envia para Monitor Serial PC.
Serial.println();
}
//---------------------------
readString="";//Limpa a string;
}
//-------------------Final de programa-----------------------
//------------------Exemplo - DHT-11 Sensor de Temperatura e Umidade.
Programa Arduino: Arduino Monitor Serial Bluetooth DHT-11
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>//Biblioteca Display LCD16x02.
#define TxD 2//Bluetooth TX pin D2 Arduino-RX.
#define RxD 3//Bluetooth RX pin D3 Arduino-TX.
#include <dht.h>
#define dht_dpin A1 //Pino DATA do Sensor ligado na porta Analogica A1
dht DHT; //Inicializa o sensor
SoftwareSerial Blue(TxD,RxD);//Arduino pin D2-RX, pin D3-TX.
LiquidCrystal lcd(8,9,4,5,6,7);//LCD Pinos(RS-EN-DB4-DB5-DB6-DB7).
int LedA5=A5;//Acionamento ON-OFF;
String readString;//Variável para escrita no Display------------------
const int BACK_LIGHT=10; //LCD Back Light ligado ao pino 10 do Arduino
void setup(){
Blue.begin(9600);//Serial Bluetooth-Arduino(D2-RX,D3-TX).
Serial.begin(9600);//Serial Arduino(D0-RX,D1-TX).
//------Back Light pino 10 do Arduino como saída: Inicio ON-OFF-ON-----
pinMode(BACK_LIGHT, OUTPUT);
digitalWrite(BACK_LIGHT, LOW);
delay(500);
pinMode(BACK_LIGHT, OUTPUT);
digitalWrite(BACK_LIGHT, HIGH);
delay(300);
digitalWrite(BACK_LIGHT, LOW);
delay(500);
digitalWrite(BACK_LIGHT, HIGH);
//-----------------Inicia o Display LCD 16x2---------------------------
lcd.begin(16,2);
lcd.clear();
delay(500);
lcd.setCursor(0,0);//C/L
lcd.print(" Serial Monitor");
lcd.setCursor(0,1);//C/L
lcd.print("Waiting Message");
delay(3000);
//-------------------
pinMode(LedA5, OUTPUT);
//Obs.: Desliga em nível alto(HIGH==OFF) e Liga em nível baixo(LOW==ON)---
digitalWrite(LedA5, HIGH);
}
void loop(){
//Arduino escreve no Monitor Serial IDE PC------
DHT.read11(dht_dpin); //Lê as informações do sensor
Serial.print(" Umidade = ");
Serial.print(DHT.humidity,0);
delay(150);//150
Serial.println(" %");
Serial.print(" Temperatura = ");
Serial.print(DHT.temperature,0);
Serial.println(" Celsius ");
delay(150);
//-------------------------
char comando = Blue.read();
while (Blue.available()) {
delay(3);
char c =Blue.read();
readString += c;//Leitura da strinh seial via Bluetooth.
}
//--------------------------
if (readString.length() >0) {
lcd.clear();
lcd.setCursor(0,0);//C/L
lcd.print(readString);//Escreve no Display o SMS enviado pelo celular;
}
//---------------------------
switch(comando){//Escreve no APP. Arduino Serial Monitor Bluetooth Android.
case '.':
Blue.print(" Umidade: ");
Blue.print(DHT.humidity,0);
Blue.print("%");
Blue.println();
Blue.print("");
Blue.print(" Temperatura: ");
Blue.print(DHT.temperature,0);
Blue.print("C");
Blue.println();
Blue.print("");
//---------------
//Arduino escreve no Display LCD Linha 1.
lcd.setCursor(0,0);//C/L
lcd.print("Umidade:");
lcd.setCursor(8,0);//C/L
lcd.print(DHT.humidity,0);
lcd.print("%");
lcd.setCursor(0,1);//C/L
lcd.print("Temperatura:");
lcd.setCursor(12,1);//C/L
lcd.print(DHT.temperature,0);
lcd.print("C");
//------------------------
delay(150);
break;
}
//--------------------------
//Recebe a mensagem(string), Liga/Desliga Dispositivos.
if (readString == "led on")
{
digitalWrite(LedA5, LOW);//Liga com nivel 0V.
}
if (readString == "led off")
{
digitalWrite(LedA5, HIGH);//Desliga com nivel 5V.
}
//Escreve no no APP. Arduino Serial Monitor Bluetooth Android.
if(digitalRead(LedA5)==LOW){//Arduino verifica o status de A5.
Blue.print(" Rele Pin A5 ON");//Arduino envia para APP. Android.
Blue.println();
Serial.print(" Rele Pin A5 ON");//Arduino envia para Monitor Serial PC.
Serial.println();
}
if(digitalRead(LedA5)==HIGH){//Arduino verifica o status de A5.
Blue.print(" Rele Pin A5 OFF");//Arduino envia para APP. Android.
Blue.println();
Serial.print(" Rele Pin A5 OFF");//Arduino envia para Monitor Serial PC.
Serial.println();
}
//---------------------------
readString="";//Limpa a string;
}
Imagens: Arduino Monitor Serial Bluetooth DHT-11
Esquema de Ligações:
Arduino Uno R3:
Display LCD 16x02 - LcdKeypadShieldv2.0:
Módulo Bluetooth JY-MCU, HC-05 ou HC-06.
1ª - Opção de montagem sem o LCD Shield, você pode também fazer a montagem com os componentes separados, basta fazer as ligações em protoboard, placa de circuito impresso ou mesmo soldando e interligando os componentes.
Exemplo de controle automação 8 canais;
Exemplo com leitura de 3 canais analógicos e 5 digitais;
2ª - Opção de montagem com o LCD Shield:
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:
Outro exemplo:
Pinagem de saída Arduino:A1-A2-A3-A4-A5.
Veja a figura exemplo abaixo, não se esqueça da Pinagem de saída Arduino: A1-A2-A3-A4-A5.
Repita estas ligações para os 5 Dispositivos a serem acionados através dos Relés(IN1-IN2-IN3-IN4-IN5).
Pinagem de saída Arduino:A1-A2-A3-A4-A5.
Atenção para o risco de choque elétrico, utilize cabos dimensionados pela capacidade de corrente;
Utilize sempre Disjuntores ou fusíveis para cada Dispositivo a ser acionado.
Pinagem de saída Arduino:A1-A2-A3-A4-A5.
Atenção para o risco de choque elétrico, utilize cabos dimensionados pela capacidade de corrente;
Utilize sempre Disjuntores ou fusíveis para cada Dispositivo a ser acionado.
Arduino Uno R3.
Módulo Bluetooth JY-MCU, HC-05 ou HC-06.
LcdKeypadShieldv2.0. Este foi o modelo usado neste exemplo, mas poderá ser usado qualquer outro LCD Sshield ou mesmo apenas LCD montado em protoboard;
Módulo relé com 1, 2 ou 4 relés.
Fonte de Alimentação:
1ª- Opção: Fonte de alimentação para o Arduino 5V/2A com saída USB:
Obs1.: Corrente de 2A devido à alimentação do Arduino e Módulo de relés.
Obs2.: Aquecimento reduzido pois 5V da fonte já está na tensão de operação do sistema todo.
2ª- Opção:Fonte de alimentação para o Arduino 9V/2A com saída P4:
Obs1.: Corrente de 2A devido à alimentação do Arduino e Módulo de relés.
Obs2.: Esta opção gera um Aquecimento maior na placa Arduino devido à tenão da fonte de 9V passar por um regulador de tensão de 5V existente na placa Arduino para alimentar todo o sistema.
Protoboard para montagens:
Leds para montagem didática e verificação de funcionamento:
Resistores de 220R para ligar aos leds e limitar a corrente em 20mA:
Fios Jumpers - Macho/Macho, Fêmea/Fêmea e Macho/Fêmea:
Cabo USB - tipo A/tipo B para ligação entre Arduino e PC:
Como fez essa tela a ler o código para baixo? no App Inventor o meu fica no mesmo sítio e vai atualizando.
ResponderExcluir