Índice:

Como construir uma estação meteorológica usando XinaBox e Ubidots sobre HTTP: 7 etapas
Como construir uma estação meteorológica usando XinaBox e Ubidots sobre HTTP: 7 etapas

Vídeo: Como construir uma estação meteorológica usando XinaBox e Ubidots sobre HTTP: 7 etapas

Vídeo: Como construir uma estação meteorológica usando XinaBox e Ubidots sobre HTTP: 7 etapas
Vídeo: Tutorial: Construa uma estação meteorológica com Arduino 2024, Novembro
Anonim
Como construir uma estação meteorológica usando XinaBox e Ubidots sobre HTTP
Como construir uma estação meteorológica usando XinaBox e Ubidots sobre HTTP

Aprenda a fazer sua própria estação meteorológica em Ubidots, usando XinaBox xChips (IP01, CW01 e SW01)

Imagem
Imagem

O módulo ESP8266 Core e Wi-Fi (xChip CW01) permite que os usuários enviem dados dos xChips modulares da XinaBox para a nuvem. Esses dados podem ser monitorados remotamente em Ubidots, onde os usuários podem tirar proveito de sua gama de ferramentas de IoT.

O sensor meteorológico avançado xChip SW01 (Bosch BME280) mede a temperatura, umidade e pressão atmosférica, a partir da qual a altitude, a base da nuvem e o ponto de orvalho também podem ser calculados.

Neste tutorial, usamos o protocolo HTTP para enviar dados do sensor para Ubidots. Isso também pode ser feito usando o protocolo MQTT.

No final deste guia, você será capaz de monitorar e medir as condições meteorológicas em seu dispositivo XinaBox de qualquer lugar remotamente usando Ubidots.

Etapa 1: Requisitos

  • 1x CW01 - núcleo WiFi (ESP8266 / ESP-12F)
  • 1x IP01 - Interface de Programação USB (FT232R)
  • 1x SW01 - Sensor meteorológico avançado (BME280)
  • 1x XC10 - Conectores xBUS 10-Pack
  • IDE Arduino
  • Conta Ubidots

Etapa 2: configuração do hardware

Conecte CW01, SW01 e IP01 juntos usando os conectores XC10 xBUS. Você pode conectá-lo conforme mostrado no diagrama abaixo. Por favor, consulte este guia sobre como montar xChips em geral.

Imagem
Imagem

Em seguida, conecte seu dispositivo e PC através do USB do IP01. Para isso, você precisará usar o software xFlasher para fazer o flash do código quando estiver pronto. Consulte este guia sobre como usar o xFlasher.

Etapa 3: Configurando o IDE do Arduino

1. Instale o Arduino IDE 1.8.8

2. Instale essas bibliotecas no Arduino: ESP8266 Arduino, Ubidots ESP8266, xCore, xSW01.

NOTA: Se você não está familiarizado com a instalação de bibliotecas, consulte o link: Instalando bibliotecas do Arduino

3. Com a plataforma ESP8266 instalada, selecione o dispositivo ESP8266 com o qual está trabalhando. No caso, estamos trabalhando com um “CW01 (módulo ESP12F)”. Para selecionar sua placa no IDE do Arduino, selecione Ferramentas> Placa “NodeMCU 1.0 (módulo ESP12E)”.

NOTA: ESP12F e ESP12E são intercambiáveis para esta finalidade.

Etapa 4: Compreendendo o Código

Incluindo bibliotecas:

#include "UbidotsMicroESP8266.h"

#include #include

Insira suas credenciais de Wi-Fi e Ubidots:

#define TOKEN "Your-Token" // Coloque aqui seu TOKEN Ubidots

#define WIFISSID "Your-SSID" // Coloque aqui seu SSID de Wi-Fi #define PASSWORD "password-of-ssid" // Coloque aqui sua senha de Wi-Fi

Seu TOKEN Ubidots exclusivo é obtido de sua conta Ubidots. Consulte o link a seguir para saber onde encontrar seu TOKEN Ubidots.

Configuração única, consulte os comentários para autoexplicação:

void setup () {

// Depuração em 115200 usando monitor serial Serial.begin (115200); // Conectar ao Ponto de Acesso client.wifiConnection (WIFISSID, PASSWORD); // A comunicação I2C começa Wire.begin (); // Iniciar o sensor SW01 SW01.begin (); // Apresentando algum atraso, atraso de 2-3 segundos (DELAY_TIME); }

Faça um loop da operação, para mantê-la em execução e atualizando-se continuamente:

void loop () {

// Cria uma variável para armazenar os dados lidos de SW01 float tempC, umidade, pressão, alt; // Criando variáveis de dispositivo tempC = 0; umidade = 0; pressão = 0; alt=0; // Sensor de pesquisa para coletar dados SW01.poll (); // Salvando dados nas variáveis do dispositivo tempC = SW01.getTempC (); // Temperatura em Celsius Serial.println ("Temperatura:"); Serial.print (tempC); Serial.println ("* C"); Serial.println (); umidade = SW01.getHumidity (); Serial.println ("Umidade:"); Serial.print (umidade); Serial.println ("%"); Serial.println (); pressão = SW01.getPressure (); Serial.println ("Pressão:"); Serial.print (pressão); Serial.println ("Pa"); Serial.println (); alt=SW01.getAltitude (101325); Serial.println ("Altitude:"); Serial.print (alt); Serial.println ("m"); Serial.println (); // Criar variáveis ubidots client.add ("Temperature (* C)", tempC); atraso (500); client.add ("Umidade (%)", umidade); atraso (500); client.add ("Pressão (Pa)", pressão); atraso (500); client.add ("Altitude (m)", alt); // Envie todos os pontos client.sendAll (true); // atraso entre as leituras do sensor para estabilizar o atraso (DELAY_TIME); }

O código completo:

#include "UbidotsMicroESP8266.h"

#include #include #define TOKEN "Your-Token" // Coloque aqui seu TOKEN Ubidots #define WIFISSID "Your-SSID" // Coloque aqui seu SSID de Wi-Fi #define PASSWORD "password-of-ssid" // Coloque aqui seu cliente Ubidots de senha de Wi-Fi (TOKEN); const int DELAY_TIME = 2000; xSW01 SW01; // Criando objeto do sensor SW01 void setup () {Serial.begin (115200); client.wifiConnection (WIFISSID, PASSWORD); Wire.begin (); // Iniciar o sensor SW01 SW01.begin (); atraso (DELAY_TIME); } void loop () {// Cria uma variável para armazenar os dados lidos de SW01 float tempC, umidade, pressão, alt; tempC = 0; umidade = 0; pressão = 0; alt=0; // Sensor de pesquisa para coletar dados SW01.poll (); // Salvando dados na memória de variáveis tempC = SW01.getTempC (); // Temperatura em Celsius Serial.println ("Temperatura:"); Serial.print (tempC); Serial.println ("* C"); Serial.println (); umidade = SW01.getHumidity (); Serial.println ("Umidade:"); Serial.print (umidade); Serial.println ("%"); Serial.println (); pressão = SW01.getPressure (); Serial.println ("Pressão:"); Serial.print (pressão); Serial.println ("Pa"); Serial.println (); alt=SW01.getAltitude (101325); Serial.println ("Altitude:"); Serial.print (alt); Serial.println ("m"); Serial.println (); // Criar variáveis ubidots client.add ("Temperature (* C)", tempC); atraso (500); client.add ("Umidade (%)", umidade); atraso (500); client.add ("Pressão (Pa)", pressão); atraso (500); client.add ("Altitude (m)", alt); // Envie todos os pontos client.sendAll (true); // atraso entre as leituras do sensor para estabilizar o atraso (DELAY_TIME); }

Etapa 5: Faça login no Ubidots

1. Abra sua conta Ubidots. Você verá um dispositivo chamado “ESP8266” com 4 variáveis (veja a imagem abaixo).

Visualização do dispositivo

Imagem
Imagem

Visualização de variáveis

Imagem
Imagem

Se você quiser alterar o nome do dispositivo, use o código:

client.setDataSourceName ("New_name");

Etapa 6: Criação de painéis em Ubidots

Painéis (estáticos e dinâmicos) são interfaces de usuário para organizar e apresentar os dados de um dispositivo e os insights derivados dos dados. Os painéis contêm widgets que exibem os dados como gráficos, indicadores, controles, tabelas, gráficos e outros tamanhos, formas e formulários.

Para criar um novo painel em sua conta Ubidots, consulte o seguinte tutorial Ubidots para aprender como fazê-lo.

Apenas como referência, uma vez que seu painel Ubidots é criado, você deve ter algo semelhante à imagem abaixo:

Imagem
Imagem

DICA PRO: Há também uma variedade de ferramentas de gráficos e relatórios. Se você quiser saber mais sobre isso, recomendamos que você verifique este guia.

Imagem
Imagem

Etapa 7: Resumo

Neste tutorial, mostramos como codificar e conectar uma estação meteorológica XinaBox a Ubidots. Isso permite o monitoramento remoto e pode ser concluído em 10-15 minutos.

Outros leitores também acharam útil …

  • UbiFunctions: Integre dados da plataforma AmbientWeather aos Ubidots
  • Analytics: Noções Básicas de Variáveis Sintéticas
  • Controle de temperatura com Ubidots MQTT e NodeMcu

Recomendado: