Terminal SMS Arduino Bluetooth Automação mensagem texto LCD 16x2 ON/OFF 110/220V
APP.: Terminal SMS Automação - Display LDC 16x2:
Código Arduino Uno - Gratuito:
Esquema de ligações, lista de materiais e instruções passo a passo:
Comunicação de dados via Bluetooth de baixo custo!
Google Play: https://play.google.com/store/apps/details?id=appinventor.ai_antoniosergiosouzaalmeida.SMS_Terminal_Automation
YouTube: https://www.youtube.com/edit?video_id=MmwItHmdYXA
Não contém propagandas.
Todos os comandos e as mensagens SMS são editáveis e serão mostradas no Display LCD 16x02 ou no APP.;
Este aplicativo Android se apresenta como um Terminal Serial 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;
2- Estas mensagens podem executar comandos para Automação acionando relés 110/2220V;
3- O APP. através do botão RX1 recebe as informações sobre status das portas do Arduino e ou qualquer outra operação que se faça necessária e mostra no Terminal de Recepção do APP.;
4- As cores do texto do Terminal podem ser selecionadas através dos botões F1, F2, F3, F4, F5, F6.
5- A conexão é via Bluetooth e você pode escolher um Bluetooth de uma lista;
6- Informações sobre o Arduino e conexões do Terminal serão apresentadas no momento da conexão Bluetooth.
- Enviar e receber mensagens de texto SMS que serão lidas em um display LCD 16X2 e mensagens de respostas do Arduino serão mostradas no Terminal Serial do APP.;
- Aprender a trabalhar com Display de LCD 16x02:
- Reconhecer todos seus pinos, através do esquema elétrico fornecido;
- Aprender comandos do Display LCD escrita e leitura;
- Posicionamento em linhas x colunas;
- Deslocar texto para esquerda ou direita;
- Acionar a luz Back Light, e muitas outras funções...
- Aprender a trabalhar com a serial RS232 RX / TX enviar receber dados pelo Terminal Serial do App.;
- Aprender a trabalhar com o Bluetooth HC5, HC6 ou JY-MCU;
- Aprender a trabalhar com leds para sinalização didática ou módulo de relés que acionam cargas
ligadas à rede elétrica 110/220V.
Não contém propagandas.
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.: SMS Terminal Automation e pressione o botão "Select BT Module"
Escolha seu módulo bluetooth, no meu caso HC-06.
Nesta tela aparece o ícone de conexão azul e o botão "Bluetooth Connected", indicando que o App. fez a conexão entre o bluetooth do smartphone com o módulo bluetooth HC-06.
Veja também a abertura inicial da pagina do Bluetooth Serial Terminal, mostrando informações sobre o Arduino, conexão via bluetooth e outros.
Logo após nesta tela se pressionarmos o botão RX1, o Arduino irá enviar informações sobre status das portas de saída, neste caso foram selecionadas 5 saídas digitais(A1, A2, A3, A4 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...
Aqui está um exemplo do App.: SMS Terminal Automation trabalhando, temos o Arduino uno, montado com o LCD Shield, Módulo Bluetooth HC-06 e léds montados em um protoboard.
App. com o módulo com 4 relés.
App. comandando leds no protoboard.
Vista completa com todo o sistema:
Com funciona o envio de Mensagem SMS:
Quando pressionamos na tela azul 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 RX1(receive): Receber SMS no Terminal Serial; As informações são enviadas pelo Arduino via Bluetooth.
Escolha a cor do texto do Terminal Serial, presione: F1, F2, F3, F4, F5 ou F6, veja abaixo:
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:
A0- N/C
A1- PINO DIGITAL - SAÍDA COMANDO CANAL 1
A2- PINO DIGITAL - SAÍDA COMANDO CANAL 2
A3- PINO DIGITAL - SAÍDA COMANDO CANAL 3
A4- PINO DIGITAL - SAÍDA COMANDO CANAL 4
A5- PINO DIGITAL - SAÍDA COMANDO CANAL 5
D0- PINO DIGITAL - BLUETOOTH TX
D1- PINO DIGITAL - BLUETOOTH RX
D2- N/C
D3- N/C
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- N/C
D12- N/C
D13- N/C
Programa Arduino Uno R3 completo:
#include <LiquidCrystal.h>//Biblioteca Display LCD16x02---------------
LiquidCrystal lcd(8,9,4,5,6,7);//LCD Pinos(RS-EN-DB4-DB5-DB6-DB7)-----
#include <SoftwareSerial.h>//Biblioteca Serial------------------------
SoftwareSerial mySerial(0, 1);//Biblioteca para serial bluetooth
//Arduino D0(Bluetooth-TX), Arduino D1(Bluetooth-RX)------------------
String readString;//Variável para escrita no Display------------------
const int BACK_LIGHT=10; //LCD Back Light ligado ao pino 10 do Arduino
char caracter;
//------Declaração das variáveis para os pinos A1 ao A5 Arduino-------
int ledA1 = A1;//A1
int ledA2 = A2;//A2
int ledA3 = A3;//A3
int ledA4 = A4;//A4
int ledA5 = A5;//A5
//-------Mensagem para exibição no LCD--------------------------------
String message = " SMS Bluetooth Automation, voce pode enviar e receber comandos de texto SMS do celular para o Arduino e controlar dispositivos ligados a rede 110/220V. Veja como funciona passo a passo no blog: sergioarduino.blogspot.com.br. Gratuito codigo Arduino, esquema de ligacoes e lista de materiais :) ";
int ii = 0;
int strLength;
String toShow;
//-----------------
void setup() {
//------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);
//-----------------Velocidade da serial em 9600bps-------------------------
mySerial.begin(9600);
//Obs.: Bluetooth também deve estar na mesma veloc. 9600bps;
//-----------------Pinos Arduino A1 ao A5 saída para acionamentos----------
pinMode(ledA1, OUTPUT);
pinMode(ledA2, OUTPUT);
pinMode(ledA3, OUTPUT);
pinMode(ledA4, OUTPUT);
pinMode(ledA5, OUTPUT);
//-----------------Pinos Arduino A1 ao A5 inicia em nível alto-------------
//Obs.: Desliga em nível alto(HIGH==OFF) e Liga em nível baixo(LOW==ON)---
digitalWrite(ledA1, HIGH);
digitalWrite(ledA2, HIGH);
digitalWrite(ledA3, HIGH);
digitalWrite(ledA4, HIGH);
digitalWrite(ledA5, HIGH);
//-----------------Inicia o Display LCD 16x2-------------------------------
lcd.begin(16,2);
lcd.clear();
delay(500);
//-----------------
strLength = message.length();
//Escreve no Display a mensagem, rolagem para a esquerda e direita;
lcd.print("Blog: sergioarduino.blogspot.com.br");//24
delay(500);
//Rolagem para a esquerda
for (int posicao = 0; posicao < 24; posicao++)//24
{
lcd.scrollDisplayLeft();
delay(300);
}
delay(500);
lcd.clear();
lcd.setCursor(1,0);//C/L
lcd.print("SMS Automation");
lcd.setCursor(1,1);//C/L
lcd.print("Waiting SMS...");
delay(500);
//Rolagem para a esquerda
for (int posicao = 0; posicao < 14; posicao++)
{
lcd.scrollDisplayLeft();
delay(300);
}
delay(500);
//Rolagem para a direita
for (int posicao = 0; posicao < 14; posicao++)
{
lcd.scrollDisplayRight();
delay(300);
}
delay(500);
}
int contText=0;
//------------------inicia o programa para enviar e receber SMS----
void loop() {
char caracter = mySerial.read();//Variavel para leitura da serial;
while (mySerial.available()) {
delay(3);
char c = mySerial.read();
readString += c;
}
//-----------------------------
if (readString.length() >0) {
lcd.clear();
lcd.setCursor(1,0);//C/L
lcd.print("SMS Automation");
lcd.setCursor(0,1);//C/L
lcd.print(readString);// Escreve no Display o SMS enviado pelo celular;
//-----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);
}
//----------------------------
if (readString == "sala luz on")
{
digitalWrite(ledA2, LOW);
}
if (readString == "sala luz off")
{
digitalWrite(ledA2, HIGH);
}
//---------------------------
if (readString == "sala tv on")
{
digitalWrite(ledA3, LOW);
}
if (readString == "sala tv off")
{
digitalWrite(ledA3, HIGH);
}
//--------------------------
if (readString == "quarto luz on")
{
digitalWrite(ledA4, LOW);
}
if (readString == "quarto luz off")
{
digitalWrite(ledA4, HIGH);
}
//--------------------------
if (readString == "torradeira on")
{
digitalWrite(ledA5, LOW);
}
if (readString == "torradeira off")
{
digitalWrite(ledA5, HIGH);
}
//--------------------------
readString="";//Limpa a string;
}
//-----------Escreve SMS Automation de forma temporizada-----------------
contText++;
if(contText <=160){
lcd.home();
toShow = message.substring(ii,ii+16);
lcd.print(toShow);
ii = ii + 2;
if(ii>(strLength-16)) {
ii = 0;
}
}
if((contText >=190)&&(contText <=300)){
//lcd.home();
lcd.setCursor(0,0);//C/L
lcd.print(" ");
lcd.setCursor(1,0);//C/L
lcd.print("SMS Automation");
}
if(contText >=301){
contText=0;
}
delay(300);
//Se for solicitado pelo App.(RX1)o Arduino envia SMS de status para o celular;
//Informações ou qualquer mensagem SMS será mostrada no terminal do App.-------
if(caracter == 'R'){
if(digitalRead(ledA1)==HIGH){
mySerial.println("A");
mySerial.println("Frente Luz OFF ");
}
if(digitalRead(ledA1)==LOW){
mySerial.println("A");
mySerial.println("Frente Luz ON ");
}
//---------------------
if(digitalRead(ledA2)==HIGH){
mySerial.println("B");
mySerial.println("Sala Luz OFF");
}
if(digitalRead(ledA2)==LOW){
mySerial.println("B");
mySerial.println("Sala Luz ON");
}
//---------------------
if(digitalRead(ledA3)==HIGH){
mySerial.println("C");
mySerial.println("Sala TV OFF");
}
if(digitalRead(ledA3)==LOW){
mySerial.println("C");
mySerial.println("Sala TV ON");
}
//---------------------
if(digitalRead(ledA4)==HIGH){
mySerial.println("D");
mySerial.println("Quarto Luz OFF");
}
if(digitalRead(ledA4)==LOW){
mySerial.println("D");
mySerial.println("Quarto Luz ON");
}
//---------------------
if(digitalRead(ledA5)==HIGH){
mySerial.println("E");
mySerial.println("Torradeira OFF");
}
if(digitalRead(ledA5)==LOW){
mySerial.println("E");
mySerial.println("Torradeira ON");
}
//---------------------
}//if
}//loop
//-------------------Final de programa-----------------------
Obs.: Atenção para esta parte do código que deve ficar tudo na mesma linha na IDE Arduino: String message escreve toda essa mensagem no Display LCD para evitar erro no código, toda essa informação deve ser escrita em uma unica linha na IDE:
INICIO String message = " ...... :) "; ...FINAL
//-------Mensagem para exibição no LCD--------------------------------
String message = " SMS Bluetooth Automation, voce pode enviar e receber comandos de texto SMS do celular para o Arduino e controlar dispositivos ligados a rede 110/220V. Veja como funciona passo a passo no blog: sergioarduino.blogspot.com.br. Gratuito codigo Arduino, esquema de ligacoes e lista de materiais :) ";
//-----------------
Toda essa mensagem acima deve estar na mesma linha quando você for transferir este código para a IDE Arduino ok.
Se você quiser alterar essa mensagem, colocar a sua mensagem personalizada fique a vontade, mas procure de inicio usar este numero exato de caracteres como está no exemplo acima; Posteriormente você poderá fazer alterações com o tamanho do texto e verificar qual é a melhor opção para apresentação no display ok.
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.
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:
oi ele envia em massa os sms
ResponderExcluir