Inhoudsopgave:

Een weerstation bouwen met XinaBox en Ubidots via HTTP: 7 stappen
Een weerstation bouwen met XinaBox en Ubidots via HTTP: 7 stappen

Video: Een weerstation bouwen met XinaBox en Ubidots via HTTP: 7 stappen

Video: Een weerstation bouwen met XinaBox en Ubidots via HTTP: 7 stappen
Video: Bouw een weerstation Met LEGO Education Spike Prime 2024, Juli-
Anonim
Een weerstation bouwen met XinaBox en Ubidots via HTTP
Een weerstation bouwen met XinaBox en Ubidots via HTTP

Leer hoe u uw eigen weerstation maakt bij Ubidots, met behulp van XinaBox xChips (IP01, CW01 en SW01)

Afbeelding
Afbeelding

Met de ESP8266 Core en Wi-Fi-module (xChip CW01) kunnen gebruikers gegevens van XinaBox's modulaire xChips naar de cloud verzenden. Deze gegevens kunnen op afstand worden gecontroleerd in Ubidots, waar gebruikers kunnen profiteren van hun reeks IoT-tools.

De xChip SW01 Advanced Weather Sensor (Bosch BME280) meet temperatuur, vochtigheid en atmosferische druk, van waaruit ook hoogte, wolkenbasis en dauwpunt kan worden berekend.

In deze tutorial gebruiken we het HTTP-protocol om sensorgegevens naar Ubidots te sturen. Dit kan ook worden gedaan met behulp van het MQTT-protocol.

Aan het einde van deze handleiding kun je de weersomstandigheden op je XinaBox-apparaat overal op afstand volgen en meten met behulp van Ubidots.

Stap 1: Vereisten

  • 1x CW01 - WiFi-kern (ESP8266/ESP-12F)
  • 1x IP01 - USB-programmeerinterface (FT232R)
  • 1x SW01 - Geavanceerde weersensor (BME280)
  • 1x XC10 - 10-pack xBUS-connectoren
  • Arduino IDE
  • Ubidots-account

Stap 2: Hardware-installatie

Verbind CW01, SW01 en IP01 met elkaar met behulp van de XC10 xBUS-connectoren. U kunt het aansluiten zoals weergegeven in het onderstaande schema. Raadpleeg deze handleiding over hoe u xChips in het algemeen in elkaar zet.

Afbeelding
Afbeelding

Verbind vervolgens uw apparaat en pc via de USB van de IP01. Hiervoor moet u de xFlasher-software gebruiken om de code te flashen zodra deze klaar is. Zie deze handleiding over het gebruik van de xFlasher.

Stap 3: De Arduino IDE instellen

1. Installeer Arduino IDE 1.8.8

2. Installeer deze bibliotheken op Arduino: ESP8266 Arduino, Ubidots ESP8266, xCore, xSW01.

OPMERKING: Als u niet bekend bent met het installeren van bibliotheken, raadpleeg dan de link: Arduino-bibliotheken installeren

3. Selecteer met het ESP8266-platform geïnstalleerd het ESP8266-apparaat waarmee u werkt. In dit geval werken we met een “CW01(ESP12F module)”. Om uw bord uit de Arduino IDE te selecteren, selecteert u Tools > Board "NodeMCU 1.0 (ESP12E module)".

OPMERKING: ESP12F en ESP12E zijn voor dit doel uitwisselbaar.

Stap 4: De code begrijpen

Inclusief bibliotheken:

#include "UbidotsMicroESP8266.h"

#include #include

Voer uw wifi- en Ubidots-referenties in:

#define TOKEN "Your-Token" // Plaats hier uw Ubidots TOKEN

#define WIFISSID "Your-SSID" // Plaats hier uw Wi-Fi SSID #define PASSWORD "password-of-ssid" // Zet hier uw Wi-Fi-wachtwoord

Uw unieke Ubidots TOKEN wordt verkregen van uw Ubidots-account. Raadpleeg de volgende link om te zien waar u uw Ubidots TOKEN kunt vinden.

Eenmalige setup, zie de opmerkingen voor zelfverklaring:

ongeldige setup() {

//Foutopsporing op 115200 met seriële monitor Serial.begin (115200); // Maak verbinding met de Access Point-client.wifiConnection (WIFISSID, PASSWORD); // I2C-communicatie begint Wire.begin(); // Start de SW01-sensor SW01.begin (); // Introductie van wat vertraging, 2-3 seconden vertraging (DELAY_TIME); }

Loop de bewerking door om deze continu te laten werken en bij te werken:

lege lus() {

// Maak een variabele om de gegevens op te slaan die zijn gelezen van SW01 float tempC, vochtigheid, druk, alt; // Apparaatvariabelen maken tempC = 0; vochtigheid = 0; druk = 0; alt=0; // Poll-sensor voor het verzamelen van gegevens SW01.poll(); // Gegevens opslaan in apparaatvariabelen tempC = SW01.getTempC (); // Temperatuur in Celsius Serial.println ("Temperatuur: "); Serial.print(tempC); Serieel.println(" *C"); Serieel.println(); vochtigheid = SW01.getHumidity(); Serial.println("Vochtigheid: "); Seriële.afdruk (vochtigheid); Serieel.println(" %"); Serieel.println(); druk = SW01.getPressure(); Serial.println("Druk: "); Serieafdruk(druk); Serial.println("Pa"); Serieel.println(); alt=SW01.getAltitude (101325); Serial.println("Hoogte: "); Serial.print(alt); Serieel.println("m"); Serieel.println(); //Maak ubidots-variabelen client.add ("Temperatuur (*C)", tempC); vertraging (500); client.add ("Vochtigheid (%)", vochtigheid); vertraging (500); client.add ("Druk (Pa)", druk); vertraging (500); client.add ("Hoogte (m)", alt); //Stuur alle punten client.sendAll (true); // vertraging tussen sensorlezingen om vertraging te stabiliseren (DELAY_TIME); }

De volledige code:

#include "UbidotsMicroESP8266.h"

#include #include #define TOKEN "Your-Token" // Plaats hier uw Ubidots TOKEN #define WIFISSID "Your-SSID" // Plaats hier uw Wi-Fi SSID #define PASSWORD "password-of-ssid" // Plaats hier uw wifi-wachtwoord Ubidots-client (TOKEN); const int DELAY_TIME = 2000; xSW01 SW01; // Object maken van SW01 sensor void setup () {Serial.begin (115200); client.wifiConnection (WIFISSID, PASWOORD); Draad.begin(); // Start de SW01-sensor SW01.begin (); vertraging (DELAY_TIME); } void loop () { // Maak een variabele om de gegevens op te slaan die zijn gelezen van SW01 float tempC, vochtigheid, druk, alt; tempC = 0; vochtigheid = 0; druk = 0; alt=0; // Poll-sensor voor het verzamelen van gegevens SW01.poll(); // Gegevens opslaan in variabelengeheugen tempC = SW01.getTempC (); // Temperatuur in Celsius Serial.println ("Temperatuur: "); Serial.print(tempC); Serieel.println(" *C"); Serieel.println(); vochtigheid = SW01.getHumidity(); Serial.println("Vochtigheid: "); Seriële.afdruk (vochtigheid); Serieel.println(" %"); Serieel.println(); druk = SW01.getPressure(); Serial.println("Druk: "); Serieafdruk(druk); Serial.println("Pa"); Serieel.println(); alt=SW01.getAltitude (101325); Serial.println("Hoogte: "); Serial.print(alt); Serieel.println("m"); Serieel.println(); //Maak ubidots-variabelen client.add ("Temperatuur (*C)", tempC); vertraging (500); client.add ("Vochtigheid (%)", vochtigheid); vertraging (500); client.add ("Druk (Pa)", druk); vertraging (500); client.add ("Hoogte (m)", alt); //Stuur alle punten client.sendAll (true); // vertraging tussen sensorlezingen om vertraging te stabiliseren (DELAY_TIME); }

Stap 5: Log in op Ubidots

1. Open uw Ubidots-account. U ziet een apparaat met de naam "ESP8266" met 4 variabelen (zie afbeelding hieronder).

Apparaatvisualisatie

Afbeelding
Afbeelding

Variabelen visualisatie

Afbeelding
Afbeelding

Als u de naam van het apparaat wilt wijzigen, gebruikt u de code:

client.setDataSourceName("Nieuwe_naam");

Stap 6: Dashboards maken in Ubidots

Dashboards (statisch en dynamisch) zijn gebruikersinterfaces om de gegevens van een apparaat en de daaruit afgeleide inzichten te ordenen en te presenteren. Dashboards bevatten widgets die de gegevens weergeven als grafieken, indicatoren, besturingselementen, tabellen, grafieken en andere formaten, vormen en formulieren.

Raadpleeg de volgende Ubidots-zelfstudie om te leren hoe u dit moet doen om een nieuw dashboard in uw Ubidots-account te maken.

Ter referentie: zodra uw Ubidots-dashboard is gemaakt, zou u iets moeten hebben dat lijkt op de onderstaande afbeelding:

Afbeelding
Afbeelding

TIP VOOR EXPERTS: Er is ook een reeks grafische en rapportagetools. Als je hier meer over wilt weten, raden we je aan deze handleiding te raadplegen.

Afbeelding
Afbeelding

Stap 7: Samenvatting

In deze tutorial hebben we laten zien hoe je een XinaBox Weerstation codeert en verbindt met Ubidots. Dit maakt monitoring op afstand mogelijk en kan binnen 10-15 minuten worden voltooid.

Andere lezers hebben ook nuttig gevonden …

  • UbiFunctions: integreer data van het AmbientWeather Platform naar Ubidots
  • Analyse: basisprincipes van synthetische variabelen
  • Temperatuurregeling met Ubidots MQTT en NodeMcu

Aanbevolen: