IOT

Relógio e automação residencial usando STONE Display

Conteúdo

  1. Descrição
  2. Design GUI

3. Diagrama de Circuito

  1. Code
  2. Vídeo

Descrição

Neste projeto vamos desenhar um relógio e um sistema de automação com esta ajuda podemos LIGAR ou DESLIGAR a luz da casa e também há um relógio que mostrará a hora e a data.

Para isso estamos usando Visor TFT (STONE-HMI), este display possui um software que é um software GUI com esta ajuda vamos projetar uma interface que conterá tanto o relógio da seção quanto a automação. Baixe o software GUI clique aqui

Projeto de peças de relógio: -

Vamos primeiro desenhar a parte do relógio, primeiro temos que adicionar todas as imagens que são fornecidas na pasta clique Aqui .

Relógio e automação residencial usando STONE Display IOT PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Como você pode ver no lado esquerdo todas as imagens foram adicionadas na seção do arquivo de imagem. Agora clique na imagem '14' você obterá esta interface como você vê na imagem. Agora selecione 'RTC' na configuração de toque para definir a hora e data e faça toda a configuração para isso primeiro adicione a imagem 'na página' como imagem número 6 que será usada no momento da configuração. Agora vá para a imagem número 6 e adicione todos os botões e seus valores de chaves. estar neste formato.

Relógio e automação residencial usando STONE Display IOT PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Para '1' — 0031

Para '2' — 0031

Para '3' — 0031

Para '4' — 0031

Para '5' — 0031

Para '6' — 0031

Para '7' — 0031

Para '8' — 0031

Para '9' — 0031

Para '0' — 0030

Para 'OK' – 00F1

Depois disso, adicione o efeito de botão como imagem nimber-7 para todos os botões, então nesta parte será feito o ajuste do relógio. Vamos prosseguir para criar os ponteiros do relógio.

Da mesma forma, adicione Dial clock de cima e adicione todos os ponteiros de horas, minutos e segundos para isso, primeiro temos que fazer um ícone para esses ponteiros, então para isso vá até o gerador de ícones e selecione essas imagens, você encontrará uma nova pasta na seção do 'arquivo de ícone' a partir daqui você deve selecionar todos os ícones de acordo com os requisitos dos ponteiros. Depois disso, selecione todos os ícones de acordo com os requisitos dos ponteiros do relógio, e não se esqueça de selecionar o centro de cada ponteiro para o relógio, com este procedimento isso será feito agora temos que ir para a parte de automação e para isso adicionamos um símbolo de automação como você pode ver na imagem acima, para este botão selecione e coloque esse botão na área deste ícone do autômato e então selecione o ' page switch' como image-1 porque esta é a imagem para automação, depois selecione image-1 para design adicional.

Projeto de peças de automação: -

Relógio e automação residencial usando STONE Display IOT PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Vamos projetar a parte de automação para isso, exigimos que o Arduino envie um valor de chave específico através de um endereço, aqui estamos usando '0001' para todo o valor da chave. Para o botão Fan (ON), estamos enviando o valor da chave '0001' e para o Fan (OFF ) estamos enviando o valor da chave '0002' da mesma forma que estamos enviando para todos os valores específicos para todos os dispositivos. Aqui também adicionamos um botão para alternar para a GUI do relógio, o que ajudará a passar desta interface para a interface do relógio.

Para a troca de página estamos usando o 'botão' que é colocado no canto superior esquerdo e para o botão de automação estamos usando a função 'return press key value' que tem dois parâmetros primeiro é o valor do endereço e outro é o valor da chave como mencionamos acima estamos usando valores-chave diferentes para cada botão de automação.

Diagrama de circuito

Relógio e automação residencial usando STONE Display IOT PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Como você pode ver na conexão, existem três LEDs light-1, light-2 e para Fan aqui estamos usando apenas LEDs, mas você pode conectar aparelhos reais a isso. Light-1 conecte ao pino -D6 do Arduino, light- 2 conecte ao pino D7 do Arduino, ventilador semelhante conecte com D5 com Arduino. E faça a conexão para Rx e Tx conforme o diagrama de circuito. de acordo com o código do Arduino. Vamos prosseguir com o funcionamento do código.

Existem diferentes tipos de comunicações seriais. Ao usar uma placa Arduino em um projeto você pode escolher os pinos seriais padrão como software Arduino serial Rx Tx, do UART dentro da placa Arduino, por isso é chamado de Serial TTL. Nesse caso, estamos usando a biblioteca Hardware serial.h, mas alguns pinos adicionais podem funcionar como Rx ou Tx. Por exemplo, os pinos de comunicação SPI podem funcionar como MISO, MOSI e Select (SC), mas também são pinos que podem funcionar como entrada ou saída digital, ou se precisar, você pode usar esses pinos como Rx, Tx usando o software serial .h Biblioteca. 

Vamos prosseguir para saber como o código está funcionando. 

Código: - 

#incluir //biblioteca serial do software

SoftwareSerial max232(2,3);

dados de caracteres; 

String minhastring;

int f = 5; // Pin para fã

int l1 = 6; // Pino para light-1

intl2 = 7; // Pino para light-2

configuração vazia ()

{

Serial.begin(115200); //Aqui a taxa de transmissão é 115200

max232.begin(115200);

pinMode(f, SAÍDA);     

digitalWrite(f, BAIXO); 

pinMode(l1, SAÍDA);    

digitalWrite(l1, BAIXO);

pinMode(l2, SAÍDA);    

digitalWrite(l2, BAIXO);

}

void loop ()

{

se (max232.disponível()>0)

 {

   dados = max232.read();

   minhastring = minhastring + byte(dados); 

   atraso (10);

 }

else if (mystring.endsWith(“101”)) //condição para Fan ON

  {

    minhastring = “”; 

   digitalWrite(f,ALTO);

  }

else if (mystring.endsWith(“102”)) //condição para Fan OFF

  {

   minhastring = “”; 

   digitalWrite(f,BAIXO);

  }

senão if (mystring.endsWith(“103”)) //condição para Light-1 ON

  {

  minhastring = “”; 

  digitalWrite(l1,ALTO);

  }

else if (mystring.endsWith(“104”)) //condição para Light-1 OFF

  {

   minhastring = “”; 

   digitalWrite(l1,BAIXO);

  }

senão if (mystring.endsWith(“105”)) //condição para Light-2 ON

  {

  minhastring = “”; 

  digitalWrite(l2,ALTO);

  }

else if (mystring.endsWith(“106”)) //condição para Light-2 OFF

  {

   minhastring = “”; 

   digitalWrite(l2,BAIXO);

  }

else if (mystring.endsWith(“107”)) //condição para todos os dispositivos LIGADOS

  {

   minhastring = “”; 

   digitalWrite(l1,ALTO);

   digitalWrite(l2,ALTO);

   digitalWrite(f,ALTO);

  }

else if (mystring.endsWith(“108”)) //condição para todos os aparelhos DESLIGADOS

  {

   minhastring = “”; 

   digitalWrite(l1,BAIXO);

   digitalWrite(l2,BAIXO);

   digitalWrite(f,BAIXO);

  }

}

Trabalhando :-

Como discutimos, estamos usando uma biblioteca serial de software para transferir o valor da chave através de um endereço, para isso adicionamos neste código, isso fornece a interface para conectar o Arduino e o display STON-HMI. Depois disso, declaramos todos os pinos de saída, independentemente do que estivermos usando para os LEDs e o ventilador, para esses dispositivos, declaramos esses pinos como SAÍDA e, em seguida, definimos a taxa de transmissão para a biblioteca serial de software.tudo feito na parte de configuração do void agora vamos fazer a condição para os dispositivos que estamos usando, esta parte é adicionada no loop void porque isso vai se repetir muitas vezes enquanto pressionamos o botão no display.

Na seção de loop vazio, há quatro condições para os dispositivos. A primeira condição é para ligar e desligar o ventilador. Aqui estamos enviando o valor da chave '0001' para a condição LIGADO e '0002' para a condição desligado no endereço '0001', este endereço é o mesmo para todos os dispositivos. Para o segundo dispositivo que é para light-1, estamos enviando '0003' para condição ON e '0004' para condição off, da mesma forma para light-2 '0005' para ON e '0006' para condição off, então desta forma, essas condições funcionam para dispositivos individuais.

Há mais uma condição para desligar ou ligar todos os dispositivos de uma vez, para isso estamos usando '0007' para ON e '0008' para OFF.

Vídeo de saída: -

Relógio e automação residencial usando STONE Display IOT PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Este é o vídeo de saída deste projeto neste vídeo mostrando primeiro a configuração do relógio e o funcionamento da automação como você pode ver no vídeo.

Este é o vídeo de saída que você pode baixar clicando naquele vídeo. Adicionamos todos os dados relacionados a isso. Se você tiver alguma dúvida sobre o design da GUI, você pode baixar o arquivo do projeto e abri-lo diretamente, neste caso você não precisa projete qualquer GUI, você obterá o design que construímos. Mas se você quiser criar uma GUI diferente, terá que seguir todas as etapas.

Code

//Para mais informações sobre este projeto visite:- wwww.electrocircuit.net //

#incluir

SoftwareSerial max232(2,3);

dados de caracteres; 

String minhastring;

int f = 5; 

int l1 = 6; 

int l2 = 7;  

configuração vazia ()

{

Serial.begin (115200); 

max232.begin(115200);

pinMode(f, SAÍDA); /////////VERMELHO////////

digitalWrite(f, BAIXO); 

pinMode(l1, SAÍDA); ////////VERDE///////

digitalWrite(l1, BAIXO);

pinMode(l2, SAÍDA); ///////AZUL/////////

digitalWrite(l2, BAIXO);

}

void loop ()

{

se (max232.disponível()>0)

 {

   dados = max232.read();

   minhastring = minhastring + byte(dados); 

   atraso (10);

 }

senão if (mystring.endsWith(“101”))

  {

    minhastring = “”; 

   digitalWrite(f,ALTO);

  }

senão if (mystring.endsWith(“102”))

  {

   minhastring = “”; 

   digitalWrite(f,BAIXO);

  }

senão if (mystring.endsWith(“103”))

  {

  minhastring = “”; 

  digitalWrite(l1,ALTO);

  }

senão if (mystring.endsWith(“104”))

  {

   minhastring = “”; 

   digitalWrite(l1,BAIXO);

  }

senão if (mystring.endsWith(“105”))

  {

  minhastring = “”; 

  digitalWrite(l2,ALTO);

  }

senão if (mystring.endsWith(“106”))

  {

   minhastring = “”; 

   digitalWrite(l2,BAIXO);

  }

senão if (mystring.endsWith(“107”))

  {

   minhastring = “”; 

   digitalWrite(l1,ALTO);

   digitalWrite(l2,ALTO);

   digitalWrite(f,ALTO);

  }

senão if (mystring.endsWith(“108”))

  {

   minhastring = “”; 

   digitalWrite(l1,BAIXO);

   digitalWrite(l2,BAIXO);

   digitalWrite(f,BAIXO);

  }

}

Fonte: Plato Data Intelligence