https://www.arduino.cc/en/Main/Software e crie uma pasta PORTABLE dentro da pasta de instalação do ARDUINO.
e digite
https://dl.espressif.com/dl/package_esp32_index.json e click OK
O IFTTT e o Adafruit IO são duas plataformas de nuvem populares para criar projetos baseados em IoT (Internet of Things) com facilidade e rapidez. Também usamos outro aplicativo Android popular "Blynk" para controlar o NINA W102 GPIO usando o telefone inteligente. Com algumas pequenas alterações no hardware, você pode substituir o LED por qualquer eletrodoméstico CA para controlá-lo remotamente de qualquer lugar usando a Internet.
Usaremos o Google Assistant com Adafruit IO para controlar um LED com NINA W102. Aqui usamos o IFTTT para acessar o Google Assistant e controlar o LED por comandos de voz. O NINA W102 foi programado usando o Arduino IDE.
Componentes necessários
- Dispositivo ativado pelo assistente do Google.
- Conta no Adafruit IO
- Conta no IFTTT
- Conta do Google - a mesma conta para a qual você está usando o Google Assistant.
Passo1: Configurando a conta Adafruit IO para LED controlado por IOT
- Agora clique em Ações e crie um novo feed. Em seguida, ele solicitará que você dê um nome ao seu feed. Estou dando a ele LED_Control, você pode fornecer de acordo com você e depois criar e seu feed é criado.
- Agora vá para "Painéis" no menu à esquerda. Clique em Ações e, em seguida, clique em criar um novo painel, dê o nome que desejar; Estou dando "LEDSwitch" e, em seguida, clique em Criar e seu painel será criado.
- Agora abra seu novo painel clicando nele e você será direcionado para uma página em branco. Clicar no botão azul + permitirá adicionar novos componentes de interface do usuário ao painel.
- Para este projeto, só preciso de um botão; portanto, selecione a primeira opção; ele solicitará que você selecione o feed; selecione o que você acabou de criar e mantenha os padrões para o restante das configurações.
- Depois de selecionar a janela do painel, ficará assim:
- Durante a programação, você precisará da sua chave AIO exclusiva, portanto, para isso, clique no botão de chave no canto direito da sua janela.
- Durante a programação, você precisará da sua chave AIO exclusiva, portanto, para isso, clique no botão de chave no canto direito da sua janela.
Passo 2. Conectando-se ao Google Assistant através do IFTTT
Nesta etapa, conectaremos nosso Assistente do Google ao Adafruit IO MQTT Broker para permitir o controle das luzes com comandos de voz. Para fazer isso, estou usando a plataforma IFTTT (If This Then That).
Para fazer isso, você precisa seguir o seguinte procedimento:
Vá para o site www.IFTTT.com e crie uma nova conta, se ainda não o tiver. Você também pode se inscrever usando sua conta do Google.
Depois de criar uma conta, clique no seu nome de usuário no canto direito da janela e clique no botão "Novo Applet".
- Depois de clicar em Novo miniaplicativo, você encontrará uma janela que pergunta "Se isso, então aquilo". O termo "SE ESTE ENTÃO QUER" significa que algo acontece no "Isso", então nós fazemos algo no "Isso".
- Clique no botão + azul e pesquise "Assistente do Google" e selecione "Diga uma frase simples" no menu de gatilhos específicos. Isso solicitará alguns detalhes, preencha de acordo com você e crie um gatilho.
- Agora você deve executar a ação. Clique no botão + de "Isso", procure Adafruit e clique em "Enviar dados para o Adafruit IO"
- Agora, ele solicitará que você selecione o nome do Feed; portanto, selecione o feed que você criou anteriormente para este projeto e, em Dados a serem salvos, enviaremos ON para esse applet e clique na ação Criar.
- Depois de criar este applet, você deve criar outro applet para desligar o LED. Você precisa seguir as mesmas etapas para criar outro applet.
- Após criar os dois applets, vá para "Meus Applets" e você pode ver os dois applets aqui.
Depois de instalar esta biblioteca, você estará pronto para usar o Adafruit IO com o NINA W102.
O código completo para este projeto é dado no final deste artigo, explicarei brevemente sobre o código e dirá onde você deve fazer as modificações.
No início do programa, você deve adicionar as seguintes bibliotecas:
#include <WiFi.H>
#include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h"
#include <avr/dtostrf.h> //incluir em WString.h
Agora você precisa definir o SSID da rede, a senha, o nome de usuário do Adafruit e a chave AIO que você obteve durante a instalação do Adafruit IO.
#define WLAN_SSID "xxxxxx" #define WLAN_PASS "xxxxxxxxxxxx" #define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #define AIO_KEY "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Agora você precisa definir o LED para o qual está levando sua saída.
int output=8; // NINA W102 23, PAD 1
Agora, crie os objetos WiFiClient e Adafruit_MQTT_Client como variáveis globais e instancie o feed do seu LED_Control.
WiFiClient client; Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); Adafruit_MQTT_Subscribe LED_Control = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/LED_Control");
Agora, na função de configuração , definiremos nosso pino de LED, taxa de transmissão e nos conectaremos ao WiFi e ao MQTT Server.
void setup() { Serial.begin(115200); delay(10); pinMode(8,OUTPUT); Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(WLAN_SSID); WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); mqtt.subscribe(&LED_Control); }
Agora, na função Loop, precisamos verificar se nossa assinatura foi atualizada e agir em conformidade.
void loop() { MQTT_connect(); Adafruit_MQTT_Subscribe *subscription; while ((subscription = mqtt.readSubscription(5000))) { if (subscription == &LED_Control) { Serial.print(F("Got: ")); Serial.println((char *)LED_Control.lastread); if (!strcmp((char*) LED_Control.lastread, "ON")) { digitalWrite(23, HIGH); } else { digitalWrite(23, LOW); } } } }
Por fim, inclua a função MQTT Connect para que a conexão MQTT seja estabelecida.
void MQTT_connect() { int8_t ret; if (mqtt.connected()) { return; } Serial.print("Connecting to MQTT... "); uint8_t retries = 3; 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!"); }
Quando seu código estiver pronto para as modificações, você estará pronto para carregá-lo no NINA W102 a partir do IDE do Arduino.
Testando o controle do LED com o Google Assistant
Após o upload do código, abra seu monitor serial e seu monitor serial deverá ficar assim:
Agora abra o assistente do Google no seu Android e dê um comando de voz como "Ligar o LED" ou "Desligar o LED" e ele responderá como você definiu anteriormente e também observará a alteração do estado do LED.
suporte@smartcore.com.br
Nenhum comentário:
Postar um comentário