blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Materiais Necessários para o Projeto Utilizando o Google Assistente com o NodeMCU
  • Dashboard na Internet
  • Criação dos Comandos
  • Montagem do projeto
  • Conclusão
  • Sobre o Autor
Automação Residencial

Utilizando o Google Assistente com o NodeMCU

Eletrogate 9 de março de 2023Atualizado em: 21 mar 2023

Introdução

Neste post, você aprenderá a desenvolver um sistema capaz de receber e interpretar dados do Google Assistente, que se aplica a vários projetos de IoT (Internet das Coisas) e automações residenciais, utilizando a ferramenta da Adafruit, com a tecnologia do Google Assistente, usando o IFTTT (Se Isso Então Aquilo) que intermediará a conexão do Google Assistente com a Adafruit.


Materiais Necessários para o Projeto Utilizando o Google Assistente com o NodeMCU

Para este tutorial você precisará dos seguintes componentes eletrônicos:

  • Módulo WiFi ESP8266 NodeMcu v3 – Lolin
  • Cabo Micro USB para Arduino Leonardo, Micro, DUE e Raspberry Pi – Azul
  • Módulo Relé 1 Canal 3V 10A com Borne KRE para ESP32
  • Mini Protoboard 170 Pontos
  • Led Difuso 5mm Vermelho
  • Resistor 220R 1/4W (10 Unidades)
  • Jumpers Macho/Fêmea – 20 Unidades de 20cm
  • Jumpers Macho/Macho – 20 Unidades de 20cm

cta_cart

Também será necessário ter:

  • Uma conta FREE da io.adafruit.com;
  • Uma conta da Google;
  • Uma conta da IFTTT;

Mais abaixo, será detalhado o processo de criação das contas.


Dashboard na Internet

Para controlar as cargas via Internet é necessário ter uma plataforma da internet para gerenciar os dados de nosso Arduino. Iremos utilizar a plataforma da Adafruit IO. Para isso é necessário criar uma conta da Adafruit.

  • Acesse o site io.adafruit.com e clique no botão “Get Started for Free”, localizado na parte direita superior da página.

Clique em Get Started for Free

  • Insira seus dados para realização do cadastro e em seguida clique em CREATE ACCOUNT.

Insira seus Dados para o Cadastro

  • Será solicitado selecionar o Fuso Horário em que você está. Após selecionar, clique em SAVE SETTINGS para salvar as configurações.

Selecione o Fuso Horário

  • Após a criação da conta, teremos que criar o dashboard, para que o IFTTT consiga ativar e desativar a carga, então acesse o site io.adafruit.com  e clique no menu

  • Depois que o menu abrir você deve clicar em Dashboard

  • Assim que você for redirecionado clique em “+ Dashboard”

  • Insira os dados, como o nome e a descrição e para criá-lo basta clicar em “Create”

  • Acesse o Dashboard clicando no nome do seu dashboard, como eu coloquei o meu de “Nome do projeto” eu irei clicar em “Nome do projeto”

  • Isto fará o seu dashboard abrir, e então clique no ícone de configurações (Canto Superior Direito).

  • Em seguida irá aparecer o menu de configurações do dashboard, então basta você clicar em “Create Block”

  • Abrindo o menu com todas as possibilidades de botões, mapas, sliders, nós iremos utilizar o botão do tipo “Toggle Button”. Para selecionar ele clique no 1º bloco

  • E então irá abrir um menu onde você deve colocar o nome do feed (Lista de conteúdo atualizada: Ou simplificando a variável que armazena o estado do botão)

  • Preenchido, selecione o feed e clique em “Next Step” para passar para o próximo passo

  • Em seguida preencha os dados do botões, mas o título pode ser como você quiser (Eu escolhi “Relé 1”), já as outras opções preencha do jeito que está na imagem, e em seguida clique em “Create Block”.

  • Agora, que terminamos a criação do dashboard, teremos que pegar os nossos dados do dashboard, para substituirmos no código

  • Isso fará que um menu se abra, e então role e clique em “View AdaFruit IO Key”

  • Caso não tenha aparecido o menu para você, basta clicar no botão da chave (Canto Superior Direito)

  • Ambos irão abrir esse menu (Imagem abaixo) e lá que estarão todas as suas credenciais que você deve substituir no seu código, para fazer isto basta substituir o “Username” pelo valor da variável “AIO_USERNAME” e substituir a “Active Key” pelo valor da variável “AIO_KEY”

Agora que já fizemos a criação do dashboard e a configuração das credenciais, vamos passar para o próximo passo que é criar os comandos, configurar o IFTTT e o Google Assistente


Criação dos Comandos

Para o google assistente conseguir comunicar com o Dashboard (Criado no passo anterior) ele precisará que alguém intermedie essa comunicação, ou seja, por isso que nós iremos utilizar o IFTTT (Se Isso Então Aquilo), então para utilizarmos teremos que criar uma conta na IFTTT

  • Para começarmos acesse o site da ifttt.com/join para a criação da sua conta

  • Depois de você ter feito o registro no IFTTT e ter preenchido as perguntas, você deverá clicar em “Create” para criar um Applet (Mini aplicativo)

  • Selecione o bloco do “Google Assistant V2” e clique em “Continue”

  • E clique em “Not now” para ignorar o teste grátis e clique em “Get Started”

  • Depois clique em “Create” novamente

  • Em seguida, basta você ignorar o aviso clicando em “Got It Thanks”

  • Agora, clique em “Add” para criar um comando “If This” (Se isso)

  • E procuramos por “Google Assistant” e selecionamos o bloco do Google Assistente

  • Proceda clicamos em “Active Scene”

  • Agora temos que sincronizar o Google Assistente com o IFTTT, basta clicar em “Connect” (Conectar)

  • Para conectarmos o Google Assistente ao IFTTT devemos acessar o Google Home pelo celular (Que pode ser encontrado na Google Play ou na Appstore), após baixar e acessar o “Google Home”, nós iremos criar uma nova “Casa”, selecione sua conta Google e clique em “Vamos começar”

  • Depois de ter clicado, clique para avançar clicando em “Próxima” e permita o Google Home acessar a sua localização clicando em “Durante o uso do app”

  • Ative o bluetooth clicando em “Ligar” e depois clique em “Permitir”

  • E defina que você não está configurando novos dispositivos, para isso, clique em “Agora não”

  • Após a criação da “Casa” acesse as Configurações através das engrenagens (No centro da tela)

  • Role até encontrar o botão “Compatíveis com o google” e clique nele

  • Agora procure pelo serviço do IFTTT e clique nele

  • Clique em continuar para proceder

  • Depois de clicar você será redirecionado para o site deles para que você entre com sua conta da IFTTT

  • Após você ter entrado com sua conta, você entrará em uma pagina para você autorizar o acesso do IFTTT para integra-lo com o Google Assistente, então clique em “Authorize”.

  • Agora voltando para o computador, você vai escrever o nome do seu comando (Eu nomeie o meu de: ligar relé) e clique em “Create Trigger” para criar o “If this” (Se Isso).

  • Novamente iremos clicar em “Add” para adicionar um Then That “Então isso”

  • Procure por Adafruit e selecione o bloco da Adafruit

  • Selecione a caixa “Send data to Adafruit IO”

  • Assim como fazemos com o google iremos conectar com a AdaFruit

  • Role até encontrar o botão de autorização (“Authorize”)

  • Agora basta selecionar o feed que colocamos no botão e colocar o valor como (1), ou seja, ligar (HIGH), e enviar clicando no botão “Create Action” (Criar Ação)

  • Depois de ter feito o Applet temos que finalizar ele, para isso clique em “Finish” (Finalizar)

  • Para desligarmos o relé devemos fazer o mesmo que fizemos para ligar, mas trocando o valor para (0) desligar, ou seja, LOW, como a imagem abaixo :

Depois de ter terminado a configuração do IFTTT, iremos para a configuração do Google Assistente

  • Agora novamente no celular, nós devemos  adicionar os comandos para que quando falarmos “Ligar relé” ou “Desligar relé” o google assistente executar o comando corretamente, para fazer isso devemos ir no google assistente, e clicar na sua foto de perfil e ir em “Configurações”

  • Depois de entrar nas configurações, nós devemos entrar rolar até encontrar por “Rotinas”

  • Após clicar em “Rotinas” nós devemos criar uma nova rotina em clicando em “Nova”

  • O tipo da rotina será do tipo “Pessoal”

  • Depois de sermos redirecionados para a página de criar uma ação nós devemos criar uma condição de início (Você falar: Ligar relé), e uma ação que ele deverá fazer.

  • Primeiramente eu editei o nome da rotina para “Ligar relé” e cliquei em concluído (Canto superior direito)

 

  • Clique em Concluir (Canto superior direito), depois cliquei para adicionar uma condição de ínicio da rotina, clicando em “Quando eu falar com o Google Assistente”

  • Depois cliquei para adicionar uma condição de ínicio da rotina, clicando em “Quando eu falar com o Google Assistente”

  • Depois disso somente configurei o que eu devia falar para que a ação ligasse o relé e clicar em “Adicionar condição de início”

  • Agora é só adicionar a ação que ele deveria executar, clicando em “Adicionar ação”

  • Clique em “Ajustar os dispositivos de casa”

  • Clique em “Adicionar cenas” e selecione o comando que você quer que ele execute, ou seja, ligar o relé.

  • Agora basta você salvar essa rotina e fazer o mesmo para o comando de desligar o relé.

Já com tudo pronto vamos para a configuração do ambiente, explicação do código e a montagem do circuito


Montagem do projeto

A montagem e a programação do projeto é bastante simples, a parte mais complicada foi a criação do dashboard e dos comandos.

Então siga o diagrama abaixo, que mostra todas as ligações do projeto:

 

  • Para continuarmos será necessário instalar a biblioteca ‘Adafruit MQTT Library’
  • Abra o software Arduino IDE. Na guia Ferramentas, clique na opção Gerenciar Bibliotecas.

  • Em seguida, na barra de pesquisa digite: ‘Adafruit MQTT Library’. O primeiro resultado que aparecer, com o autor Adafruit, clique em Instalar.

  • Na janela que abrirá, clique em ‘Install all’.

Já com tudo instalado coloque o seguinte código na IDE da Arduino, mas não se esqueça de selecionar a porta “COM” correta e selecionar a placa NodeMCU assim como mostra neste blog

// Importação das bibliotecas
#include <ESP8266WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

// Definição do pino do relé
#define relay D0

// Definição das configurações de Wifi
#define ssid "Nome do seu WiFi"
#define password "Senha do seu Wifi"

// Definição das configurações da AdaFruit
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883

// Substitua sua credencial da AdaFruit Aqui:

// Seu Username
#define AIO_USERNAME "Seu usuário adafruit"
// Sua Active Key
#define AIO_KEY "Sua key adafruit"

// Instanciação das classes do Wifi e da AdaFruit
WiFiClient client;

Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

// Lembre de trocar com o nome do feed que você colocou no botão
Adafruit_MQTT_Subscribe relayOne = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/relay");

// Instanciação da função de conectar ao servidor da AdaFruit
void MQTT_connect();

void setup() {
  // Iniciação do Serial na porta 9600 (Baud Rate: taxa de transferência em bits por segundo)
  Serial.begin(9600);

  // Definição do pino do relé como SAÍDA
  pinMode(relay, OUTPUT);
  
  Serial.print("Connecting to ");
  Serial.println(ssid);

  // Tentar a conexão ao Wifi
  WiFi.begin(ssid, password);

  // Esperar a conexão ao Wifi
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  
  Serial.println();

  Serial.println("WiFi connected");
  Serial.println("IP address: "); 
  Serial.println(WiFi.localIP());

  // Inscrever o feed do relé
  mqtt.subscribe(&relayOne);
}

void loop() {
  // Conectar ao servidor da AdaFruit e a instânciação da classe Adafruit_MQTT_Subscribe para pegar os dados do relé
  MQTT_connect();
  Adafruit_MQTT_Subscribe *subscription;
  
  while ((subscription = mqtt.readSubscription(20000))) {
    // Quando a inscrição do relé mudar
    if (subscription == &relayOne) {
      // Pegando o ultimo estado do relé
      uint8_t relayOne_State = *(relayOne.lastread) - '0';

      // Mostrar no monitor serial o estado do relé
      Serial.print(F("Got: "));
      Serial.println(relayOne_State);

      // Se for '0' desliga, se for '1' liga
      digitalWrite(relay, relayOne_State);
    }
  }
}

void MQTT_connect() {
  int8_t ret;

  // Se já estiver conectado não executar a função
  if (mqtt.connected()) {
    return;
  }

  Serial.print("Connecting to MQTT... ");

  // Definição da quantidade de tentativas para conectar ao servidor da Adafruit
  uint8_t retries = 3;

  // Se não estiver conectado ele irá tentar 3 (retries) vezes, se não conseguir conectar ele entrará em um loop infinito
  while ((ret = mqtt.connect()) != 0) {
    Serial.println(mqtt.connectErrorString(ret));
    Serial.println("Retrying MQTT connection in 5 seconds...");
    mqtt.disconnect();
    delay(5000); 
    retries--;
    if (retries == 0) {
      while (1);
    }
  }
  
  Serial.println("MQTT Connected!");
}

Depois de ter terminado você terá um resultado como esse :

https://blog.eletrogate.com/wp-content/uploads/2023/01/VID-20230124-WA0000_001.mp4

Conclusão

Com este exemplo de controle de relés pela internet e pelo Google Assistente abrem-se portas para projetos mais complexos, e você pode fazer como eu implementei, adicionando respostas ao falar um comando e fazendo novas coisas. Caso ficou alguma dúvida, nos contate através dos comentários. Espero que o tenha ajudado e até a próxima.


Sobre o Autor


Dhaniel Brandão

Estudante do Ensino Médio, Hobbyista e Entusiasta em projetos com arduino e IoT. Com experiências em robótica, IoT e desenvolvimento web.


Eletrogate

9 de março de 2023 Atualizado em: 21 mar 2023

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Projetos

Utilizando Sensores I₂C com o Mesmo Endereço

Eletrogate26 de setembro de 2023

No post de hoje, nós aprenderemos a usar dois sensores I₂C com o mesmo endereço, utilizando o CI Demultiplexador CD4051.

Projetos

Utilizando Sensores I₂C com o Mesmo Endereço

Eletrogate26 de setembro de 2023

No post de hoje, nós aprenderemos a usar dois sensores I₂C com o mesmo endereço, utilizando o CI Demultiplexador CD4051.

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

[email protected]


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.