Inhaltsverzeichnis:

So bauen Sie eine Wetterstation mit XinaBox und Ubidots über HTTP - Gunook
So bauen Sie eine Wetterstation mit XinaBox und Ubidots über HTTP - Gunook

Video: So bauen Sie eine Wetterstation mit XinaBox und Ubidots über HTTP - Gunook

Video: So bauen Sie eine Wetterstation mit XinaBox und Ubidots über HTTP - Gunook
Video: Netzwerkfähige Arduino Wetterstation selber bauen mit Datenauswertung, Serversoftware und Gehäuse 2024, Juli
Anonim
So bauen Sie eine Wetterstation mit XinaBox und Ubidots über HTTP
So bauen Sie eine Wetterstation mit XinaBox und Ubidots über HTTP

Erfahren Sie, wie Sie mit XinaBox xChips (IP01, CW01 und SW01) Ihre eigene Wetterstation bei Ubidots erstellen.

Bild
Bild

Das ESP8266 Core- und Wi-Fi-Modul (xChip CW01) ermöglicht es Benutzern, Daten von den modularen xChips von XinaBox in die Cloud zu senden. Diese Daten können in Ubidots aus der Ferne überwacht werden, wo Benutzer ihr Angebot an IoT-Tools nutzen können.

Der xChip SW01 Advanced Weather Sensor (Bosch BME280) misst Temperatur, Luftfeuchtigkeit und Luftdruck, woraus auch Höhe, Wolkenuntergrenze und Taupunkt berechnet werden können.

In diesem Tutorial verwenden wir das HTTP-Protokoll, um Sensordaten an Ubidots zu senden. Dies könnte auch über das MQTT-Protokoll erfolgen.

Am Ende dieses Handbuchs können Sie die Wetterbedingungen auf Ihrem XinaBox-Gerät von überall aus mit Ubidots überwachen und messen.

Schritt 1: Anforderungen

  • 1x CW01 - WLAN-Kern (ESP8266/ESP-12F)
  • 1x IP01 - USB-Programmierschnittstelle (FT232R)
  • 1x SW01 - Erweiterter Wettersensor (BME280)
  • 1x XC10 - 10er-Pack xBUS-Anschlüsse
  • Arduino-IDE
  • Ubidots-Konto

Schritt 2: Hardware-Setup

Verbinden Sie CW01, SW01 und IP01 mit den XC10 xBUS-Anschlüssen. Sie können es wie in der Abbildung unten gezeigt anschließen. Bitte lesen Sie diese Anleitung zur allgemeinen Montage von xChips.

Bild
Bild

Verbinden Sie dann Ihr Gerät und Ihren PC über den USB-Anschluss des IP01. Dazu müssen Sie die xFlasher-Software verwenden, um den Code zu flashen, sobald er fertig ist. Lesen Sie diese Anleitung zur Verwendung des xFlasher.

Schritt 3: Einrichten der Arduino-IDE

1. Installieren Sie Arduino IDE 1.8.8

2. Installieren Sie diese Bibliotheken auf Arduino: ESP8266 Arduino, Ubidots ESP8266, xCore, xSW01.

HINWEIS: Wenn Sie nicht mit der Installation von Bibliotheken vertraut sind, lesen Sie bitte den Link: Arduino-Bibliotheken installieren

3. Wählen Sie bei installierter ESP8266-Plattform das ESP8266-Gerät aus, mit dem Sie arbeiten. In diesem Fall arbeiten wir mit einem „CW01(ESP12F-Modul)“. Um Ihr Board aus der Arduino IDE auszuwählen, wählen Sie Tools > Board „NodeMCU 1.0 (ESP12E-Modul)“.

HINWEIS: ESP12F und ESP12E sind zu diesem Zweck austauschbar.

Schritt 4: Den Code verstehen

Inklusive Bibliotheken:

#include "UbidotsMicroESP8266.h"

#einschließen #einschließen

Geben Sie Ihre WLAN- und Ubidots-Anmeldeinformationen ein:

#define TOKEN "Dein-Token" // Lege hier deine Ubidots TOKEN

#define WIFISSID "Ihre-SSID" // Geben Sie hier Ihre WLAN-SSID ein #define PASSWORD "password-of-ssid" // Geben Sie hier Ihr WLAN-Passwort ein

Ihr einzigartiges Ubidots-TOKEN erhalten Sie von Ihrem Ubidots-Konto. Unter folgendem Link erfahren Sie, wo Sie Ihr Ubidots-TOKEN finden.

Einmalige Einrichtung, siehe die Kommentare zur Selbsterklärung:

Leere Einrichtung () {

// Debuggen bei 115200 mit dem seriellen Monitor Serial.begin (115200); //Mit dem Access Point verbinden client.wifiConnection(WIFISSID, PASSWORD); // I2C-Kommunikation beginnt Wire.begin(); // Starten Sie den SW01-Sensor SW01.begin (); // Einführung einer Verzögerung, 2-3 Sekunden Verzögerung (DELAY_TIME); }

Wiederholen Sie den Vorgang, um ihn am Laufen zu halten und kontinuierlich zu aktualisieren:

Leere Schleife () {

// Erstellen Sie eine Variable zum Speichern der von SW01 gelesenen Daten float tempC, Luftfeuchtigkeit, Druck, alt; // Gerätevariablen erstellen tempC = 0; Feuchtigkeit = 0; Druck = 0; alt=0; // Poll Sensor zum Sammeln von Daten SW01.poll (); //Daten in Gerätevariablen speichern tempC = SW01.getTempC(); // Temperatur in Celsius Serial.println ("Temperatur: "); Serial.print (tempC); Serial.println(" *C"); Serial.println(); Feuchtigkeit = SW01.getHumidity(); Serial.println ("Luftfeuchtigkeit: "); Serial.print (Luftfeuchtigkeit); Serial.println("%"); Serial.println(); Druck = SW01.getPressure(); Serial.println ("Druck: "); Serial.print (Druck); Serial.println("Pa"); Serial.println(); alt=SW01.getAltitude(101325); Serial.println ("Höhe: "); Serial.print (alt); Serial.println("m"); Serial.println(); //Erzeuge ubidots-Variablen client.add("Temperature (*C)", tempC); Verzögerung (500); client.add("Luftfeuchtigkeit (%)", Feuchtigkeit); Verzögerung (500); client.add("Druck (Pa)", Druck); Verzögerung (500); client.add("Höhe (m)", alt); //Alle Punkte senden client.sendAll(true); // Verzögerung zwischen den Sensorlesungen, um die Verzögerung zu stabilisieren (DELAY_TIME); }

Der komplette Code:

#include "UbidotsMicroESP8266.h"

#include #include #define TOKEN "Ihr-Token" // Geben Sie hier Ihr Ubidot-TOKEN ein #define WIFISSID "Ihre-SSID" // Geben Sie hier Ihre WLAN-SSID ein #define PASSWORD "password-of-ssid" // Hier einfügen Ihr WLAN-Passwort Ubidots-Client (TOKEN); const int DELAY_TIME = 2000; xSW01 SW01; // Objekt des SW01-Sensors erstellen void setup () { Serial.begin (115200); client.wifiConnection(WIFISSID, PASSWORT); Wire.begin(); // Starten Sie den SW01-Sensor SW01.begin (); Verzögerung(DELAY_TIME); aufrechtzuerhalten. Void Schleife () {// Erstellen Sie eine Variable zum Speichern der von SW01 gelesenen Daten float tempC, Feuchtigkeit, Druck, alt; tempC = 0; Feuchtigkeit = 0; Druck = 0; alt=0; // Poll Sensor zum Sammeln von Daten SW01.poll (); //Daten im Variablenspeicher speichern tempC = SW01.getTempC(); // Temperatur in Celsius Serial.println ("Temperatur: "); Serial.print (tempC); Serial.println(" *C"); Serial.println(); Feuchtigkeit = SW01.getHumidity(); Serial.println ("Luftfeuchtigkeit: "); Serial.print (Luftfeuchtigkeit); Serial.println("%"); Serial.println(); Druck = SW01.getPressure(); Serial.println ("Druck: "); Serial.print (Druck); Serial.println("Pa"); Serial.println(); alt=SW01.getAltitude(101325); Serial.println ("Höhe: "); Serial.print (alt); Serial.println("m"); Serial.println(); //Erzeuge ubidots-Variablen client.add("Temperature (*C)", tempC); Verzögerung (500); client.add("Luftfeuchtigkeit (%)", Feuchtigkeit); Verzögerung (500); client.add("Druck (Pa)", Druck); Verzögerung (500); client.add("Höhe (m)", alt); //Alle Punkte senden client.sendAll(true); // Verzögerung zwischen den Sensorlesungen, um die Verzögerung zu stabilisieren (DELAY_TIME); }

Schritt 5: Melden Sie sich bei Ubidots an

1. Öffnen Sie Ihr Ubidots-Konto. Sie sehen ein Gerät namens „ESP8266“mit 4 Variablen (siehe Abbildung unten).

Gerätevisualisierung

Bild
Bild

Variablenvisualisierung

Bild
Bild

Wenn Sie den Gerätenamen ändern möchten, verwenden Sie den Code:

client.setDataSourceName("Neuer_Name");

Schritt 6: Dashboards in Ubidots erstellen

Dashboards (statisch und dynamisch) sind Benutzeroberflächen zum Organisieren und Präsentieren der Daten eines Geräts und der daraus gewonnenen Erkenntnisse. Dashboards enthalten Widgets, die die Daten als Diagramme, Indikatoren, Steuerelemente, Tabellen, Grafiken und andere Größen, Formen und Formulare anzeigen.

Um ein neues Dashboard in Ihrem Ubidots-Konto zu erstellen, lesen Sie das folgende Ubidots-Tutorial, um zu erfahren, wie es geht.

Als Referenz sollten Sie nach der Erstellung Ihres Ubidots-Dashboards etwas Ähnliches wie in der folgenden Abbildung haben:

Bild
Bild

EXPERTENTIPP: Es gibt auch eine Reihe von Grafik- und Berichtstools. Wenn Sie mehr darüber erfahren möchten, empfehlen wir Ihnen, diese Anleitung zu lesen.

Bild
Bild

Schritt 7: Zusammenfassung

In diesem Tutorial haben wir gezeigt, wie Sie eine XinaBox-Wetterstation codieren und mit Ubidots verbinden. Dies ermöglicht eine Fernüberwachung und kann innerhalb von 10-15 Minuten abgeschlossen werden.

Auch andere Leser fanden es hilfreich…

  • UbiFunctions: Integrieren Sie Daten von der AmbientWeather-Plattform in Ubidots
  • Analytics: Grundlagen zu synthetischen Variablen
  • Temperaturkontrolle mit Ubidots MQTT und NodeMcu

Empfohlen: