Sommario:

Come costruire una stazione meteorologica usando XinaBox e Ubidots su HTTP: 7 passaggi
Come costruire una stazione meteorologica usando XinaBox e Ubidots su HTTP: 7 passaggi

Video: Come costruire una stazione meteorologica usando XinaBox e Ubidots su HTTP: 7 passaggi

Video: Come costruire una stazione meteorologica usando XinaBox e Ubidots su HTTP: 7 passaggi
Video: Stazione METEO connessa a Internet con ESP32 - FAI da TE 2024, Luglio
Anonim
Come costruire una stazione meteorologica usando XinaBox e Ubidots su HTTP
Come costruire una stazione meteorologica usando XinaBox e Ubidots su HTTP

Scopri come creare la tua stazione meteorologica su Ubidots, utilizzando XinaBox xChips (IP01, CW01 e SW01)

Immagine
Immagine

Il modulo ESP8266 Core e Wi-Fi (xChip CW01) consente agli utenti di inviare dati dagli xChips modulari di XinaBox al cloud. Questi dati possono essere monitorati da remoto in Ubidots, dove gli utenti possono sfruttare la loro gamma di strumenti IoT.

Il sensore meteorologico avanzato xChip SW01 (Bosch BME280) misura la temperatura, l'umidità e la pressione atmosferica, da cui è possibile calcolare anche l'altitudine, la base delle nuvole e il punto di rugiada.

In questo tutorial utilizziamo il protocollo HTTP per inviare i dati del sensore a Ubidots. Questo potrebbe essere fatto anche utilizzando il protocollo MQTT.

Alla fine di questa guida, sarai in grado di monitorare e misurare le condizioni meteorologiche sul tuo dispositivo XinaBox da qualsiasi luogo in remoto utilizzando Ubidots.

Passaggio 1: requisiti

  • 1x CW01 - Nucleo WiFi (ESP8266/ESP-12F)
  • 1x IP01 - Interfaccia di programmazione USB (FT232R)
  • 1x SW01 - Sensore meteorologico avanzato (BME280)
  • 1x XC10 - connettori xBUS da 10 pezzi
  • Arduino IDE
  • Conto Ubidots

Passaggio 2: configurazione hardware

Collegare CW01, SW01 e IP01 insieme utilizzando i connettori XC10 xBUS. Puoi collegarlo come mostrato nello schema qui sotto. Si prega di consultare questa guida su come assemblare xChips in generale.

Immagine
Immagine

Quindi, collega il dispositivo e il PC tramite l'USB dell'IP01. Per questo, dovrai utilizzare il software xFlasher per eseguire il flashing del codice una volta pronto. Vedi questa guida sull'uso di xFlasher.

Passaggio 3: configurazione dell'IDE Arduino

1. Installa Arduino IDE 1.8.8

2. Installa queste librerie su Arduino: ESP8266 Arduino, Ubidots ESP8266, xCore, xSW01.

NOTA: se non si ha familiarità con l'installazione delle librerie, fare riferimento al collegamento: Installazione delle librerie Arduino

3. Con la piattaforma ESP8266 installata, seleziona il dispositivo ESP8266 con cui stai lavorando. Nel caso, stiamo lavorando con un "CW01 (modulo ESP12F)". Per selezionare la tua scheda dall'IDE Arduino, seleziona Strumenti > Scheda "NodeMCU 1.0 (modulo ESP12E)".

NOTA: ESP12F ed ESP12E sono intercambiabili per questo scopo.

Passaggio 4: comprensione del codice

Comprese le librerie:

#include "UbidotsMicroESP8266.h"

#include #include

Inserisci le tue credenziali Wi-Fi e Ubidots:

#define TOKEN "Your-Token" // Metti qui il tuo TOKEN Ubidots

#define WIFISSID "Your-SSID" // Inserisci qui il tuo SSID Wi-Fi #define PASSWORD "password-of-ssid" // Inserisci qui la tua password Wi-Fi

Il tuo TOKEN Ubidots unico è ottenuto dal tuo account Ubidots. Fai riferimento al seguente link per sapere dove trovare il tuo TOKEN Ubidots.

Configurazione una tantum, vedere i commenti per l'auto-esplicazione:

void setup() {

//Debug a 115200 utilizzando il monitor seriale Serial.begin(115200); //Connettiti all'Access Point client.wifiConnection(WIFISSID, PASSWORD); // Inizia la comunicazione I2C Wire.begin(); // Avvia il sensore SW01 SW01.begin(); // Introducendo un po' di ritardo, 2-3 secondi di ritardo (DELAY_TIME); }

Ripeti l'operazione, per mantenerla in esecuzione e aggiornarsi continuamente:

ciclo vuoto() {

// Crea una variabile per memorizzare i dati letti da SW01 float tempC, umidità, pressione, alt; //Creazione delle variabili del dispositivo tempC = 0; umidità = 0; pressione = 0; alt=0; // Poll Sensor per la raccolta dei dati SW01.poll(); //Salvataggio dei dati nelle variabili del dispositivo tempC = SW01.getTempC(); // Temperatura in gradi Celsius Serial.println("Temperature: "); Serial.print(tempC); Serial.println("*C"); Serial.println(); umidità = SW01.getHumidity(); Serial.println("Umidità: "); Serial.print(umidità); Serial.println("%"); Serial.println(); pressione = SW01.getPressure(); Serial.println("Pressione: "); Serial.print(pressione); Serial.println("Pa"); Serial.println(); alt=SW01.getAltitude(101325); Serial.println("Altitudine: "); Serial.print(alt); Serial.println("m"); Serial.println(); //Crea variabili ubidot client.add("Temperatura (*C)", tempC); ritardo (500); client.add("Umidità (%)", umidità); ritardo (500); client.add("Pressione (Pa)", pressione); ritardo (500); client.add("Altitudine (m)", alt); //Invia tutti i punti client.sendAll(true); // ritardo tra le letture del sensore per stabilizzare il ritardo (DELAY_TIME); }

Il codice completo:

#include "UbidotsMicroESP8266.h"

#include #include #define TOKEN "Your-Token" // Inserisci qui il tuo TOKEN Ubidots #define WIFISSID "Your-SSID" // Inserisci qui il tuo SSID Wi-Fi #define PASSWORD "password-of-ssid" // Inserisci qui la tua password Wi-Fi client Ubidots (TOKEN); const int DELAY_TIME = 2000; xSW01 SW01; //Creazione oggetto del sensore SW01 void setup() { Serial.begin(115200); client.wifiConnection(WIFISSID, PASSWORD); Wire.begin(); // Avvia il sensore SW01 SW01.begin(); ritardo(DELAY_TIME); } void loop() { // Crea una variabile per memorizzare i dati letti da SW01 float tempC, umidità, pressione, alt; tempC = 0; umidità = 0; pressione = 0; alt=0; // Poll Sensor per la raccolta dei dati SW01.poll(); //Salvataggio dei dati nella memoria delle variabili tempC = SW01.getTempC(); // Temperatura in gradi Celsius Serial.println("Temperature: "); Serial.print(tempC); Serial.println("*C"); Serial.println(); umidità = SW01.getHumidity(); Serial.println("Umidità: "); Serial.print(umidità); Serial.println("%"); Serial.println(); pressione = SW01.getPressure(); Serial.println("Pressione: "); Serial.print(pressione); Serial.println("Pa"); Serial.println(); alt=SW01.getAltitude(101325); Serial.println("Altitudine: "); Serial.print(alt); Serial.println("m"); Serial.println(); //Crea variabili ubidot client.add("Temperatura (*C)", tempC); ritardo (500); client.add("Umidità (%)", umidità); ritardo (500); client.add("Pressione (Pa)", pressione); ritardo (500); client.add("Altitudine (m)", alt); //Invia tutti i punti client.sendAll(true); // ritardo tra le letture del sensore per stabilizzare il ritardo (DELAY_TIME); }

Passaggio 5: accedi a Ubidots

1. Apri il tuo account Ubidots. Vedrai un dispositivo chiamato "ESP8266" con 4 variabili (vedi immagine sotto).

Visualizzazione del dispositivo

Immagine
Immagine

Visualizzazione delle variabili

Immagine
Immagine

Se vuoi cambiare il nome del dispositivo, usa il codice:

client.setDataSourceName("Nuovo_nome");

Passaggio 6: creazione di dashboard in Ubidots

I dashboard (statici e dinamici) sono interfacce utente per organizzare e presentare i dati di un dispositivo e gli insight derivati dai dati. I dashboard contengono widget che visualizzano i dati come grafici, indicatori, controlli, tabelle, grafici e altre dimensioni, forme e moduli.

Per creare una nuova Dashboard nel tuo account Ubidots, fai riferimento al seguente tutorial Ubidots per imparare come farlo.

Solo come riferimento, una volta creata la tua Dashboard Ubidots dovresti avere qualcosa di simile all'immagine qui sotto:

Immagine
Immagine

SUGGERIMENTO: È disponibile anche una gamma di strumenti grafici e di reportistica. Se vuoi saperne di più, ti consigliamo di consultare questa guida.

Immagine
Immagine

Passaggio 7: riepilogo

In questo tutorial, abbiamo mostrato come codificare e connettere una stazione meteo XinaBox a Ubidots. Ciò consente il monitoraggio remoto e può essere completato entro 10-15 minuti.

Anche altri lettori hanno trovato utile…

  • UbiFunctions: integra i dati dalla piattaforma AmbientWeather a Ubidots
  • Analisi: nozioni di base sulle variabili sintetiche
  • Controllo della temperatura con Ubidots MQTT e NodeMcu

Consigliato: