Оглавление:

Как построить метеостанцию с помощью XinaBox и Ubidots через HTTP: 7 шагов
Как построить метеостанцию с помощью XinaBox и Ubidots через HTTP: 7 шагов

Видео: Как построить метеостанцию с помощью XinaBox и Ubidots через HTTP: 7 шагов

Видео: Как построить метеостанцию с помощью XinaBox и Ubidots через HTTP: 7 шагов
Видео: NodeMCU обмен данными через интернет по MQTT. НТИ.Junior урок 7. 2024, Июль
Anonim
Как построить метеостанцию с помощью XinaBox и Ubidots через HTTP
Как построить метеостанцию с помощью XinaBox и Ubidots через HTTP

Узнайте, как создать собственную метеостанцию в Ubidots, используя XinaBox xChips (IP01, CW01 и SW01)

Изображение
Изображение

Ядро ESP8266 и модуль Wi-Fi (xChip CW01) позволяют пользователям отправлять данные из модульных xChips XinaBox в облако. Эти данные можно отслеживать удаленно в Ubidots, где пользователи могут воспользоваться своим набором инструментов IoT.

Расширенный датчик погоды xChip SW01 (Bosch BME280) измеряет температуру, влажность и атмосферное давление, по которым также можно рассчитать высоту, нижнюю границу облачности и точку росы.

В этом руководстве мы используем протокол HTTP для отправки данных датчиков в Ubidots. Это также можно было сделать с помощью протокола MQTT.

К концу этого руководства вы сможете отслеживать и измерять погодные условия на своем устройстве XinaBox из любого места удаленно с помощью Ubidots.

Шаг 1. Требования

  • 1x CW01 - ядро WiFi (ESP8266 / ESP-12F)
  • 1x IP01 - интерфейс программирования USB (FT232R)
  • 1x SW01 - усовершенствованный датчик погоды (BME280)
  • 1x XC10 - комплект из 10 разъемов xBUS
  • IDE Arduino
  • Аккаунт Ubidots

Шаг 2: Настройка оборудования

Соедините CW01, SW01 и IP01 вместе с помощью разъемов XC10 xBUS. Вы можете подключить его, как показано на схеме ниже. Пожалуйста, прочтите это руководство о том, как собрать xChips в целом.

Изображение
Изображение

Затем подключите устройство к ПК через USB-порт IP01. Для этого вам нужно будет использовать программное обеспечение xFlasher, чтобы прошить код, когда он будет готов. См. Это руководство по использованию xFlasher.

Шаг 3: Настройка IDE Arduino

1. Установите Arduino IDE 1.8.8.

2. Установите эти библиотеки на Arduino: ESP8266 Arduino, Ubidots ESP8266, xCore, xSW01.

ПРИМЕЧАНИЕ. Если вы не знакомы с тем, как устанавливать библиотеки, перейдите по ссылке: Установка библиотек Arduino.

3. Установив платформу ESP8266, выберите устройство ESP8266, с которым вы работаете. В данном случае мы работаем с «CW01 (модуль ESP12F)». Чтобы выбрать плату в среде Arduino IDE, выберите «Инструменты»> «Плата» «NodeMCU 1.0 (модуль ESP12E)».

ПРИМЕЧАНИЕ: ESP12F и ESP12E для этой цели взаимозаменяемы.

Шаг 4: понимание кода

Включая библиотеки:

#include "UbidotsMicroESP8266.h"

#include #include

Введите свои учетные данные Wi-Fi и Ubidots:

#define TOKEN "Your-Token" // Поместите сюда свой ТОКЕН Ubidots

#define WIFISSID "Your-SSID" // Введите здесь свой SSID Wi-Fi #define PASSWORD "password-of-ssid" // Введите здесь свой пароль Wi-Fi

Ваш уникальный ТОКЕН Ubidots получен из вашей учетной записи Ubidots. Перейдите по следующей ссылке, чтобы узнать, где найти свой ТОКЕН Ubidots.

Одноразовая установка, см. Комментарии для пояснений:

void setup () {

// Отладка на 115200 с использованием последовательного монитора Serial.begin (115200); // Подключение к точке доступа client.wifiConnection (WIFISSID, PASSWORD); // начинается коммуникация I2C Wire.begin (); // Запускаем датчик SW01 SW01.begin (); // Вводим задержку, задержку 2-3 секунды (DELAY_TIME); }

Зациклить операцию, чтобы она работала и постоянно обновлялась:

void loop () {

// Создаем переменную для хранения данных, считанных из SW01 float tempC, влажность, давление, alt; // Создание переменных устройства tempC = 0; влажность = 0; давление = 0; alt=0; // Датчик опроса для сбора данных SW01.poll (); // Сохранение данных в переменных устройства tempC = SW01.getTempC (); // Температура в градусах Цельсия Serial.println ("Temperature:"); Serial.print (tempC); Serial.println ("* C"); Serial.println (); влажность = SW01.getHumidity (); Serial.println ("Влажность:"); Серийный отпечаток (влажность); Serial.println ("%"); Serial.println (); давление = SW01.getPressure (); Serial.println ("Давление:"); Serial.print (давление); Serial.println ("Па"); Serial.println (); alt=SW01.getAltitude (101325); Serial.println ("Высота:"); Serial.print (alt); Serial.println ("м"); Serial.println (); // Создание переменных ubidots client.add ("Temperature (* C)", tempC); задержка (500); client.add («Влажность (%)», влажность); задержка (500); client.add ("Давление (Па)", давление); задержка (500); client.add ("Высота (м)", alt); // Отправляем все точки client.sendAll (true); // задержка между чтениями датчика для стабилизации задержки (DELAY_TIME); }

Полный код:

#include "UbidotsMicroESP8266.h"

#include #include #define TOKEN "Your-Token" // Поместите сюда свой ТОКЕН Ubidots #define WIFISSID "Your-SSID" // Поместите сюда свой SSID Wi-Fi #define PASSWORD "password-of-ssid" // Поместите сюда ваш пароль Wi-Fi клиента Ubidots (TOKEN); const int DELAY_TIME = 2000; xSW01 SW01; // Создание объекта датчика SW01 void setup () {Serial.begin (115200); client.wifiConnection (WIFISSID, ПАРОЛЬ); Wire.begin (); // Запускаем датчик SW01 SW01.begin (); задержка (DELAY_TIME); } void loop () {// Создаем переменную для хранения данных, считанных из SW01 float tempC, влажность, давление, alt; tempC = 0; влажность = 0; давление = 0; alt=0; // Датчик опроса для сбора данных SW01.poll (); // Сохранение данных в памяти переменных tempC = SW01.getTempC (); // Температура в градусах Цельсия Serial.println ("Temperature:"); Serial.print (tempC); Serial.println ("* C"); Serial.println (); влажность = SW01.getHumidity (); Serial.println ("Влажность:"); Серийный отпечаток (влажность); Serial.println ("%"); Serial.println (); давление = SW01.getPressure (); Serial.println ("Давление:"); Serial.print (давление); Serial.println ("Па"); Serial.println (); alt=SW01.getAltitude (101325); Serial.println ("Высота:"); Serial.print (alt); Serial.println ("м"); Serial.println (); // Создание переменных ubidots client.add ("Temperature (* C)", tempC); задержка (500); client.add («Влажность (%)», влажность); задержка (500); client.add ("Давление (Па)", давление); задержка (500); client.add ("Высота (м)", alt); // Отправляем все точки client.sendAll (true); // задержка между чтениями датчика для стабилизации задержки (DELAY_TIME); }

Шаг 5: Войдите в Ubidots

1. Откройте свою учетную запись Ubidots. Вы увидите устройство с именем «ESP8266» с 4 переменными (см. Изображение ниже).

Визуализация устройства

Изображение
Изображение

Визуализация переменных

Изображение
Изображение

Если вы хотите изменить название устройства, используйте код:

client.setDataSourceName ("Новое_имя");

Шаг 6: Создание информационных панелей в Ubidots

Панели мониторинга (статические и динамические) - это пользовательские интерфейсы для организации и представления данных устройства и аналитических данных, полученных на основе этих данных. Панели мониторинга содержат виджеты, которые отображают данные в виде диаграмм, индикаторов, элементов управления, таблиц, графиков и других размеров, фигур и форм.

Чтобы создать новую панель инструментов в своей учетной записи Ubidots, обратитесь к следующему руководству по Ubidots, чтобы узнать, как это сделать.

В качестве справки, как только ваша панель управления Ubidots будет создана, у вас должно появиться что-то похожее на изображение ниже:

Изображение
Изображение

СОВЕТ ОТ ПРОФЕССИОНАЛА. Также имеется ряд инструментов для построения графиков и отчетов. Если вы хотите узнать об этом больше, мы рекомендуем вам ознакомиться с этим руководством.

Изображение
Изображение

Шаг 7: Резюме

В этом руководстве мы показали, как кодировать и подключать метеостанцию XinaBox к Ubidots. Это позволяет осуществлять удаленный мониторинг и может быть выполнено в течение 10-15 минут.

Другие читатели также сочли полезными…

  • UbiFunctions: интеграция данных из платформы AmbientWeather в Ubidots
  • Аналитика: основы синтетических переменных
  • Контроль температуры с помощью Ubidots MQTT и NodeMcu

Рекомендуемые: