Spisu treści:

Jak zbudować stację pogodową za pomocą XinaBox i Ubidots przez HTTP: 7 kroków
Jak zbudować stację pogodową za pomocą XinaBox i Ubidots przez HTTP: 7 kroków

Wideo: Jak zbudować stację pogodową za pomocą XinaBox i Ubidots przez HTTP: 7 kroków

Wideo: Jak zbudować stację pogodową za pomocą XinaBox i Ubidots przez HTTP: 7 kroków
Wideo: Jak zbudować stację pogodową Arduino na DHT11. 2024, Listopad
Anonim
Jak zbudować stację pogodową za pomocą XinaBox i Ubidots przez HTTP
Jak zbudować stację pogodową za pomocą XinaBox i Ubidots przez HTTP

Dowiedz się, jak stworzyć własną stację pogodową w Ubidots, używając XinaBox xChips (IP01, CW01 i SW01)

Obraz
Obraz

Moduł ESP8266 Core i Wi-Fi (xChip CW01) umożliwia użytkownikom wysyłanie danych z modułowych xChips XinaBox do chmury. Dane te mogą być monitorowane zdalnie w Ubidots, gdzie użytkownicy mogą korzystać ze swoich narzędzi IoT.

Zaawansowany czujnik pogody xChip SW01 (Bosch BME280) mierzy temperaturę, wilgotność i ciśnienie atmosferyczne, na podstawie których można również obliczyć wysokość, podstawę chmur i punkt rosy.

W tym samouczku używamy protokołu HTTP do wysyłania danych z czujników do Ubidots. Można to również zrobić za pomocą protokołu MQTT.

Pod koniec tego przewodnika będziesz mógł zdalnie monitorować i mierzyć warunki pogodowe na swoim urządzeniu XinaBox z dowolnego miejsca za pomocą Ubidots.

Krok 1: Wymagania

  • 1x CW01 - rdzeń WiFi (ESP8266/ESP-12F)
  • 1x IP01 - Interfejs programowania USB (FT232R)
  • 1x SW01 - zaawansowany czujnik pogody (BME280)
  • 1x XC10 - 10-pakowe złącza xBUS
  • IDE Arduino
  • Konto Ubidot

Krok 2: Konfiguracja sprzętu

Połącz ze sobą CW01, SW01 i IP01 za pomocą złączy XC10 xBUS. Możesz go podłączyć tak, jak pokazano na poniższym schemacie. Proszę zapoznać się z tym przewodnikiem, jak ogólnie składać xChips.

Obraz
Obraz

Następnie połącz swoje urządzenie i komputer przez USB IP01. W tym celu będziesz musiał użyć oprogramowania xFlasher, aby sflashować kod, gdy będzie gotowy. Zobacz ten przewodnik na temat korzystania z xFlasher.

Krok 3: Konfiguracja Arduino IDE

1. Zainstaluj Arduino IDE 1.8.8

2. Zainstaluj te biblioteki na Arduino: ESP8266 Arduino, Ubidots ESP8266, xCore, xSW01.

UWAGA: Jeśli nie wiesz, jak zainstalować biblioteki, skorzystaj z linku: Instalowanie bibliotek Arduino

3. Po zainstalowaniu platformy ESP8266 wybierz urządzenie ESP8266, z którym pracujesz. W tym przypadku pracujemy z „CW01 (moduł ESP12F)”. Aby wybrać swoją płytkę z Arduino IDE, wybierz Narzędzia > Płytka „NodeMCU 1.0 (moduł ESP12E)”.

UWAGA: W tym celu ESP12F i ESP12E są wymienne.

Krok 4: Zrozumienie Kodeksu

W tym biblioteki:

#include "UbidotsMicroESP8266.h"

#włącz #włącz

Wprowadź swoje dane uwierzytelniające Wi-Fi i Ubidots:

#define TOKEN „Twój-token” // Umieść tutaj swój TOKEN Ubidot

#define WIFISSID "Your-SSID" // Wpisz tutaj swój identyfikator SSID Wi-Fi #define PASSWORD "password-of-ssid" // Wpisz tutaj swoje hasło Wi-Fi

Twój unikalny TOKEN Ubidots jest uzyskiwany z Twojego konta Ubidots. Skorzystaj z poniższego linku, aby dowiedzieć się, gdzie znaleźć swój TOKEN Ubidots.

Jednorazowa konfiguracja, zobacz komentarze do samodzielnego wyjaśnienia:

pusta konfiguracja () {

//Debugowanie w 115200 przy użyciu monitora szeregowego Serial.begin(115200); //Połącz z punktem dostępowym client.wifiConnection(WIFISSID, PASSWORD); // Rozpoczyna się komunikacja I2C Wire.begin(); // Uruchom czujnik SW01 SW01.begin(); //Wprowadzamy opóźnienie, 2-3 sekundy opóźnienia(DELAY_TIME); }

Zapętl operację, aby działała i aktualizowała się w sposób ciągły:

pusta pętla () {

// Utwórz zmienną do przechowywania danych odczytanych z SW01 float tempC, wilgotność, ciśnienie, alt; //Tworzenie zmiennych urządzenia tempC = 0; wilgotność = 0; ciśnienie = 0; alt=0; // Sonda do zbierania danych SW01.poll(); //Zapisywanie danych do zmiennych urządzenia tempC = SW01.getTempC(); // Temperatura w stopniach Celsjusza Serial.println("Temperatura: "); Serial.print(tempC); Serial.println("*C"); Serial.println(); wilgotność = SW01.getHumidity(); Serial.println("Wilgotność: "); Serial.print(wilgotność); Serial.println("%"); Serial.println(); ciśnienie = SW01.getPressure(); Serial.println("Ciśnienie: "); druk.seryjny(ciśnienie); Serial.println("Pa"); Serial.println(); alt=SW01.getAltitude(101325); Serial.println("Wysokość: "); Serial.print(alt); Serial.println(" m"); Serial.println(); //Utwórz zmienne ubidots client.add("Temperatura (*C)", tempC); opóźnienie (500); client.add("Wilgotność (%)", wilgotność); opóźnienie (500); client.add("Ciśnienie (Pa)", ciśnienie); opóźnienie (500); client.add("Wysokość (m)", alt); //Wyślij wszystkie kropki client.sendAll(true); // opóźnienie między odczytami czujnika w celu ustabilizowania opóźnienia(DELAY_TIME); }

Pełny kod:

#include "UbidotsMicroESP8266.h"

#include #include #define TOKEN "Your-Token" // Umieść tutaj swój TOKEN Ubidots #define WIFISSID "Your-SSID" // Umieść tutaj swój identyfikator SSID Wi-Fi #define HASŁO "password-of-ssid" // Umieść tutaj twoje hasło Wi-Fi klient Ubidots (TOKEN); const int DELAY_TIME = 2000; xSW01 SW01; //Tworzenie obiektu czujnika SW01 void setup() { Serial.begin(115200); klient.wifiConnection(WIFISSID, HASŁO); Wire.początek(); // Uruchom czujnik SW01 SW01.begin(); opóźnienie(DELAY_TIME); } void loop() { // Utwórz zmienną do przechowywania danych odczytanych z SW01 float tempC, wilgotność, ciśnienie, alt; tempC = 0; wilgotność = 0; ciśnienie = 0; alt=0; // Sonda do zbierania danych SW01.poll(); //Zapis danych do zmiennych pamięci tempC = SW01.getTempC(); // Temperatura w stopniach Celsjusza Serial.println("Temperatura: "); Serial.print(tempC); Serial.println("*C"); Serial.println(); wilgotność = SW01.getHumidity(); Serial.println("Wilgotność: "); Serial.print(wilgotność); Serial.println("%"); Serial.println(); ciśnienie = SW01.getPressure(); Serial.println("Ciśnienie: "); druk.seryjny(ciśnienie); Serial.println("Pa"); Serial.println(); alt=SW01.getAltitude(101325); Serial.println("Wysokość: "); Serial.print(alt); Serial.println(" m"); Serial.println(); //Utwórz zmienne ubidots client.add("Temperatura (*C)", tempC); opóźnienie (500); client.add("Wilgotność (%)", wilgotność); opóźnienie (500); client.add("Ciśnienie (Pa)", ciśnienie); opóźnienie (500); client.add("Wysokość (m)", alt); //Wyślij wszystkie kropki client.sendAll(true); // opóźnienie między odczytami czujnika w celu ustabilizowania opóźnienia(DELAY_TIME); }

Krok 5: Zaloguj się do Ubidots

1. Otwórz swoje konto Ubidots. Zobaczysz urządzenie o nazwie „ESP8266” z 4 zmiennymi (patrz obrazek poniżej).

Wizualizacja urządzenia

Obraz
Obraz

Wizualizacja zmiennych

Obraz
Obraz

Jeśli chcesz zmienić nazwę urządzenia, użyj kodu:

client.setDataSourceName("Nowa_nazwa");

Krok 6: Tworzenie Dashboardów w Ubidots

Pulpity nawigacyjne (statyczne i dynamiczne) to interfejsy użytkownika służące do organizowania i prezentowania danych urządzenia oraz spostrzeżeń wynikających z danych. Pulpity nawigacyjne zawierają widżety, które wyświetlają dane w postaci wykresów, wskaźników, kontrolek, tabel, wykresów i innych rozmiarów, kształtów i formularzy.

Aby utworzyć nowy pulpit nawigacyjny na swoim koncie Ubidots, zapoznaj się z poniższym samouczkiem Ubidots, aby dowiedzieć się, jak to zrobić.

Jako odniesienie, po utworzeniu pulpitu nawigacyjnego Ubidots powinieneś mieć coś podobnego do poniższego obrazu:

Obraz
Obraz

PRO RADA: Istnieje również szereg narzędzi do tworzenia wykresów i raportowania. Jeśli chcesz dowiedzieć się więcej na ten temat, zalecamy zapoznanie się z tym przewodnikiem.

Obraz
Obraz

Krok 7: Podsumowanie

W tym samouczku pokazaliśmy, jak zakodować i podłączyć stację pogodową XinaBox do Ubidots. Umożliwia to zdalne monitorowanie i może zostać zakończone w ciągu 10-15 minut.

Inni czytelnicy również uznali za przydatne…

  • UbiFunctions: Zintegruj dane z platformy AmbientWeather z Ubidots
  • Analityka: podstawy zmiennych syntetycznych
  • Kontrola temperatury za pomocą Ubidots MQTT i NodeMcu

Zalecana: