- Componentes necessários
- Diagrama de circuito
- Configuração Thinger.io para Registrador de Temperatura ESP8266
- Configuração IFTTT para NodeMCU Data Logger
- NodeMCU de programação para registro de dados
- Registrando dados em Thinger.io de NodeMCU
- Criando Endpoint no Thinger.io para enviar Alerta de Email
Anteriormente, usamos o NodeMCU para registrar dados de temperatura na planilha do Google. Agora, aqui vamos enviar dados para a nuvem IoT Thinger.io e exibi-los em um formato gráfico atraente. Um sensor BMP180 é conectado ao NodeMCU ESP8266 para coletar os dados de temperatura, umidade e altitude, que serão enviados para a plataforma Thinger.io. Neste tutorial, aprenderemos como gerenciar diferentes recursos da plataforma thinger.io, como dispositivos, terminais, depósitos de dados ou tokens de acesso.
Componentes necessários
- NodeMCU ESP8266
- Sensor de pressão BMP180
- Jumper Wires
- Tábua de pão
Diagrama de circuito
O diagrama de circuito para este registrador de dados ESP8266 é muito simples, aqui apenas o sensor BMP180 tem interface com o NodeMCU.
O sensor BMP180 usa o protocolo de comunicação I2C. Portanto, você precisa conectar os pinos SCL e SDA do BMP180 aos pinos SCL e SDA (D1 e D2) do NodeMCU. Além disso, conecte o V IN e o pino GND do BMP180 a 3,3V e o GND do NodeMCU. Não conecte o sensor diretamente a 5 V, pois isso pode danificar o sensor permanentemente.
Para saber mais sobre o NodeMCU, verifique vários projetos IoT com base no NodeMCU ESP8266.
Configuração Thinger.io para Registrador de Temperatura ESP8266
Thinger.io é uma plataforma de código aberto para a Internet das coisas. Ele fornece todas as ferramentas necessárias para prototipar, dimensionar e gerenciar produtos conectados de uma maneira muito simples. Thinger.io fornece três ferramentas essenciais, ou seja, Data Bucks, Dashboard e Endpoint para trabalhar com dados de dispositivos; essas ferramentas podem ser usadas para visualizar os dados do dispositivo e estender a interoperabilidade dos dispositivos.
Data Bucks: a ferramenta Data Bucks pode ser usada para armazenar dados de dispositivos de forma escalonável, programando diferentes intervalos de amostragem ou gravando eventos gerados por dispositivos.
Dashboard: a ferramenta Dashboard possui alguns painéis com widgets personalizáveis que podem ser criados em minutos usando a tecnologia de arrastar e soltar para visualizar os dados em tempo real e armazenados.
Endpoints: Endpoints podem ser usados para integrar a plataforma a outros serviços como IFTTT, serviços da Web personalizados, e-mails ou ligar para outros dispositivos.
Neste registro ESP8266, vamos explorar essas ferramentas.
Para enviar dados para Thinger.io, você precisa criar uma conta gratuita na plataforma Thinger.io e seguir os passos abaixo para conectar seu dispositivo.
Etapa 1: a primeira etapa é criar um novo dispositivo. Para criar um novo dispositivo, clique em Dispositivos na guia do menu e depois clique no botão Adicionar Dispositivo.
Em seguida, preencha o formulário com o ID do dispositivo, descrição e credenciais ou gere credenciais aleatórias para o seu dispositivo e clique em ' Adicionar dispositivo '.
Isso é tudo; seu dispositivo está pronto para se conectar. Na próxima etapa, programaremos o NodeMCU para enviar os dados para a plataforma Thinger.io.
Configuração IFTTT para NodeMCU Data Logger
Aqui, estamos usando o IFTTT para enviar avisos por e-mail quando a temperatura ultrapassar um limite. IFTTT (If This Then That) é um serviço baseado na web pelo qual podemos criar cadeias de instruções condicionais, chamadas de miniaplicativos. Usando esses miniaplicativos, podemos enviar notificações de Emails, Twitter, Facebook.
Para usar o IFTTT, faça login na conta IFTTT se já tiver uma ou crie uma conta.
Agora pesquise ' Webhooks ' e clique na seção Webhooks em serviços.
Em seguida, na janela Webhooks, clique em 'Documentação' no canto superior direito para obter a chave privada. Copie esta chave, esta chave será usada ao criar Endpoint no Thinger.io.
Depois disso, crie um miniaplicativo usando Webhooks e serviços de e-mail . Para criar um miniaplicativo, clique no seu perfil e depois em ' Criar. '
Agora na próxima janela, clique no ícone ' Este '. Agora procure Webhooks na seção de pesquisa e clique em ' Webhooks '.
Agora escolha o gatilho ' Receber uma solicitação da Web' e insira o nome do evento como temporário e clique em criar um gatilho.
Depois disso, clique em ' Then That' e, em seguida, clique em Email.
Agora no email, clique em 'envie-me um email' e insira o assunto e o corpo do email e clique em criar ação. Na última etapa, clique em ' Concluir ' para concluir a configuração do miniaplicativo.
NodeMCU de programação para registro de dados
O código completo para envio de dados para Thinger.io é fornecido no final da página. Aqui, estamos explicando algumas partes importantes.
Inicie o código incluindo todas as bibliotecas necessárias. O ThingerESP8266.h é usado para estabelecer uma conexão entre a plataforma IoT e o NodeMCU, enquanto o Adafruit_BMP085.h é usado para ler os dados do sensor BMP. Você pode instalar a biblioteca ThingerESP8266.h a partir do gerenciador de biblioteca de IDEs do Arduino.
#incluir
Em seguida, insira as credenciais no código, para que o dispositivo possa ser reconhecido e associado à sua conta.
#define USERNAME "Seu nome de usuário de conta" #define DEVICE_ID "NodeMCU" // Seu nome de dispositivo #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Em seguida, insira o nome do seu terminal. O endpoint é usado para integrar a plataforma com serviços externos como IFTTT, solicitação de HTTTP, etc.
#define EMAIL_ENDPOINT "IFTTT"
Defina as variáveis para armazenar os dados de pressão, temperatura e altitude.
int Pressão, Temperatura, Altitude;
Dentro do loop void (), leia os dados do sensor. O tipo de dados pson pode conter diferentes tipos de dados. Portanto, o tipo de dados Pson é usado para receber vários valores ao mesmo tempo.
coisa >> (pson & out) {out = bmp.readPressure () / 100; out = bmp.readAltitude (); out = bmp.readTemperature (); };
Use a condição if para chamar o Endpoint se o valor da temperatura passar de 15 graus. Aqui, os dados são o nome do Endpoint.
if (Temperatura> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "dados");} Serial.print ("Enviando dados");
Registrando dados em Thinger.io de NodeMCU
Agora conecte o sensor BMP ao NodeMCU e carregue o código. O NodeMCU usará as credenciais da sua conta para se conectar ao dispositivo que você criou anteriormente. Se ele se conectar com sucesso, ele aparecerá conectado, conforme mostrado na imagem abaixo:
Você pode verificar as estatísticas do seu dispositivo, como dados transmitidos, dados recebidos, endereço IP, tempo de conexão, etc., apenas clicando no nome do dispositivo no menu Dispositivos.
Como agora estamos recebendo os dados, criaremos um painel para visualizar os dados usando os widgets.
Para criar um painel, clique em Painéis na guia do menu e, a seguir, clique em ' Adicionar painel '.
Agora, na próxima janela, insira os detalhes do painel, como nome, ID e descrição do painel, e clique em Painel.
Após isso, acesse o novo painel clicando no nome do painel. Por padrão, o painel aparecerá vazio. Para adicionar os Widgets, primeiro você precisa ativar o modo de edição clicando no botão superior direito do painel. Em seguida, clique no botão ' Adicionar widget' .
Ao clicar no botão ' Adicionar widget' , será exibido um pop-up onde você pode selecionar o tipo de widget, cor de fundo, etc. No meu caso, selecionei o widget de medidor.
Quando você clica em salvar, você vai para a próxima tela onde você precisa selecionar o valor da fonte, dispositivo, recurso, valor e modo de atualização. Selecione todos os valores e clique no botão Salvar.
Agora repita o mesmo procedimento para o resto das variáveis. Meu painel era assim:
Criando Endpoint no Thinger.io para enviar Alerta de Email
Agora vamos criar um Endpoint para integrar o Thinger.io com o IFTTT. Um endpoint pode ser chamado pelo dispositivo para realizar qualquer ação, como enviar um e-mail, enviar um SMS, chamar uma API REST, interagir com IFTTT, chamar um dispositivo de uma conta diferente ou chamar qualquer outro endpoint
Para criar um Endpoint, clique na opção 'Endpoint' nas guias do menu e então clique em 'Adicionar Endpoint.'
Agora na próxima janela, insira os detalhes necessários. Os detalhes são:
Id do endpoint: identificador único para o seu endpoint.
Descrição do Endpoint: Escreva uma descrição ou informações detalhadas sobre o seu Endpoint.
Tipo de terminal: selecione o tipo de terminal a partir das opções fornecidas.
Nome do evento do fabricante: Digite o nome do miniaplicativo IFTTT.
Chave do canal do Maker: a chave secreta de seus Webhooks.
Depois disso, clique em Test Endpoint para verificar se tudo está funcionando. Ele deve enviar a você um e-mail com um aviso sobre os dados de temperatura.
Em vez de usar o IFTTT Webhook Trigger, você pode enviar um e-mail ou mensagem de telegrama ou pode enviar uma solicitação HTTP usando os recursos do Endpoint.
É assim que um NodeMCU ESP8266 pode ser usado para registrar dados de temperatura, pressão e altitude do sensor BMP180 para a Internet.
Um vídeo funcional e o código completo são fornecidos no final da página.