Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Aprenda a fazer sua própria estação meteorológica em Ubidots, usando XinaBox xChips (IP01, CW01 e SW01)
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.
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
Visualização de variáveis
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:
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.
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