Mục lục:

Cách xây dựng Trạm thời tiết bằng XinaBox và Ubidots qua HTTP: 7 bước
Cách xây dựng Trạm thời tiết bằng XinaBox và Ubidots qua HTTP: 7 bước

Video: Cách xây dựng Trạm thời tiết bằng XinaBox và Ubidots qua HTTP: 7 bước

Video: Cách xây dựng Trạm thời tiết bằng XinaBox và Ubidots qua HTTP: 7 bước
Video: ESP32 Based IoT Weather Station | How To Make | Complete Guide 2024, Tháng bảy
Anonim
Cách xây dựng Trạm thời tiết bằng XinaBox và Ubidots qua HTTP
Cách xây dựng Trạm thời tiết bằng XinaBox và Ubidots qua HTTP
Tìm hiểu cách tạo Trạm thời tiết của riêng bạn tại Ubidots, sử dụng XinaBox xChips (IP01, CW01 và SW01)

Hình ảnh
Hình ảnh

Mô-đun Wi-Fi và lõi ESP8266 (xChip CW01) cho phép người dùng gửi dữ liệu từ xChips mô-đun của XinaBox lên đám mây. Dữ liệu này có thể được theo dõi từ xa trong Ubidots, nơi người dùng có thể tận dụng hàng loạt công cụ IoT của họ.

Cảm biến thời tiết nâng cao xChip SW01 (Bosch BME280) đo nhiệt độ, độ ẩm và áp suất khí quyển, từ đó cũng có thể tính được độ cao, nền mây và điểm sương.

Trong hướng dẫn này, chúng tôi sử dụng giao thức HTTP để gửi dữ liệu cảm biến tới Ubidots. Điều này cũng có thể được thực hiện bằng giao thức MQTT.

Đến cuối hướng dẫn này, bạn sẽ có thể theo dõi và đo lường điều kiện thời tiết tại thiết bị XinaBox của mình từ bất kỳ đâu bằng cách sử dụng Ubidots.

Bước 1: Yêu cầu

  • 1x CW01 - lõi WiFi (ESP8266 / ESP-12F)
  • 1x IP01 - Giao diện lập trình USB (FT232R)
  • 1x SW01 - Cảm biến thời tiết nâng cao (BME280)
  • 1x XC10 - 10 gói kết nối xBUS
  • Arduino IDE
  • Tài khoản ubidots

Bước 2: Thiết lập phần cứng

Kết nối CW01, SW01 và IP01 với nhau bằng đầu nối XC10 xBUS. Bạn có thể kết nối nó như thể hiện trong sơ đồ bên dưới. Vui lòng xem hướng dẫn này về cách lắp ráp xChips nói chung.

Hình ảnh
Hình ảnh

Sau đó, kết nối thiết bị và PC của bạn thông qua USB của IP01. Đối với điều này, bạn sẽ cần sử dụng phần mềm xFlasher để flash mã khi đã sẵn sàng. Xem hướng dẫn này về cách sử dụng xFlasher.

Bước 3: Thiết lập Arduino IDE

1. Cài đặt Arduino IDE 1.8.8

2. Cài đặt các thư viện này vào Arduino: ESP8266 Arduino, Ubidots ESP8266, xCore, xSW01.

LƯU Ý: Nếu bạn chưa biết cách Cài đặt thư viện, vui lòng tham khảo liên kết: Cài đặt thư viện Arduino

3. Với nền tảng ESP8266 được cài đặt, hãy chọn thiết bị ESP8266 mà bạn đang làm việc. Trong trường hợp này, chúng tôi đang làm việc với “CW01 (mô-đun ESP12F)”. Để chọn bảng của bạn từ Arduino IDE, hãy chọn Công cụ> Bảng “NodeMCU 1.0 (mô-đun ESP12E)”.

LƯU Ý: ESP12F và ESP12E có thể hoán đổi cho nhau cho mục đích này.

Bước 4: Tìm hiểu mã

Bao gồm các thư viện:

#include "UbidotsMicroESP8266.h"

#include #include

Nhập thông tin đăng nhập Wi-Fi và Ubidots của bạn:

#define TOKEN "Your-Token" // Đặt ở đây TOKEN Ubidots của bạn

#define WIFISSID "Your-SSID" // Đặt tại đây Wi-Fi SSID của bạn #define PASSWORD "password-of-ssid" // Đặt ở đây mật khẩu Wi-Fi của bạn

Ubidots TOKEN duy nhất của bạn được lấy từ tài khoản Ubidots của bạn. Tham khảo liên kết sau để biết nơi tìm Ubidots TOKEN của bạn.

Thiết lập một lần, hãy xem các nhận xét để tự giải thích:

void setup () {

// Gỡ lỗi tại 115200 bằng cách sử dụng màn hình nối tiếp Serial.begin (115200); // Kết nối với Access Point client.wifiConnection (WIFISSID, PASSWORD); // Giao tiếp I2C bắt đầu Wire.begin (); // Khởi động SW01 Sensor SW01.begin (); // Giới thiệu một số độ trễ, độ trễ 2-3 giây (DELAY_TIME); }

Lặp lại hoạt động, để giữ cho nó chạy và cập nhật liên tục:

void loop () {

// Tạo một biến để lưu dữ liệu đọc được từ SW01 float tempC, ẩm độ, áp suất, alt; // Tạo biến vùng nhớ tempC = 0; độ ẩm = 0; áp suất = 0; alt=0; // Cảm biến thăm dò để thu thập dữ liệu SW01.poll (); // Lưu dữ liệu vào biến vùng nhớ tempC = SW01.getTempC (); // Nhiệt độ tính bằng độ C Serial.println ("Nhiệt độ:"); Serial.print (tempC); Serial.println ("* C"); Serial.println (); độ ẩm = SW01.getHumidity (); Serial.println ("Độ ẩm:"); Serial.print (độ ẩm); Serial.println ("%"); Serial.println (); áp suất = SW01.getPressure (); Serial.println ("Áp suất:"); Serial.print (áp suất); Serial.println ("Pa"); Serial.println (); alt=SW01.getAltitude (101325); Serial.println ("Cao độ:"); Serial.print (alt); Serial.println ("m"); Serial.println (); // Tạo biến ubidots client.add ("Nhiệt độ (* C)", tempC); chậm trễ (500); client.add ("Độ ẩm (%)", độ ẩm); chậm trễ (500); client.add ("Áp suất (Pa)", áp suất); chậm trễ (500); client.add ("Cao độ (m)", alt); // Gửi tất cả các dấu chấm client.sendAll (true); // độ trễ giữa các lần đọc cảm biến để ổn định độ trễ (DELAY_TIME); }

Mã hoàn chỉnh:

#include "UbidotsMicroESP8266.h"

#include #include #define TOKEN "Your-Token" // Đặt Ubidots TOKEN của bạn #define WIFISSID "Your-SSID" // Đặt tại đây Wi-Fi SSID #define PASSWORD "password-of-ssid" // Đặt ở đây ứng dụng khách Ubidots mật khẩu Wi-Fi của bạn (TOKEN); const int DELAY_TIME = 2000; xSW01 SW01; // Tạo đối tượng của cảm biến SW01 void setup () {Serial.begin (115200); client.wifiConnection (WIFISSID, MẬT KHẨU); Wire.begin (); // Khởi động SW01 Sensor SW01.begin (); chậm trễ (DELAY_TIME); } void loop () {// Tạo một biến để lưu dữ liệu đọc được từ SW01 float tempC, Moisturiser, pressure, alt; tempC = 0; độ ẩm = 0; áp suất = 0; alt=0; // Cảm biến thăm dò để thu thập dữ liệu SW01.poll (); // Lưu dữ liệu vào biến bộ nhớ tempC = SW01.getTempC (); // Nhiệt độ tính bằng độ C Serial.println ("Nhiệt độ:"); Serial.print (tempC); Serial.println ("* C"); Serial.println (); độ ẩm = SW01.getHumidity (); Serial.println ("Độ ẩm:"); Serial.print (độ ẩm); Serial.println ("%"); Serial.println (); áp suất = SW01.getPressure (); Serial.println ("Áp suất:"); Serial.print (áp suất); Serial.println ("Pa"); Serial.println (); alt=SW01.getAltitude (101325); Serial.println ("Cao độ:"); Serial.print (alt); Serial.println ("m"); Serial.println (); // Tạo biến ubidots client.add ("Nhiệt độ (* C)", tempC); chậm trễ (500); client.add ("Độ ẩm (%)", độ ẩm); chậm trễ (500); client.add ("Áp suất (Pa)", áp suất); chậm trễ (500); client.add ("Cao độ (m)", alt); // Gửi tất cả các dấu chấm client.sendAll (true); // độ trễ giữa các lần đọc cảm biến để ổn định độ trễ (DELAY_TIME); }

Bước 5: Đăng nhập vào Ubidots

1. Mở tài khoản Ubidots của bạn. Bạn sẽ thấy một thiết bị có tên “ESP8266” với 4 biến (xem hình bên dưới).

Hình ảnh hóa thiết bị

Hình ảnh
Hình ảnh

Hình ảnh hóa các biến

Hình ảnh
Hình ảnh

Nếu bạn muốn thay đổi tên của thiết bị, hãy sử dụng mã:

client.setDataSourceName ("Tên_mới");

Bước 6: Tạo Trang tổng quan trong Ubidots

Trang tổng quan (tĩnh và động) là giao diện người dùng để tổ chức và trình bày dữ liệu của thiết bị cũng như thông tin chi tiết thu được từ dữ liệu. Trang tổng quan chứa các tiện ích con hiển thị dữ liệu dưới dạng biểu đồ, chỉ báo, điều khiển, bảng, đồ thị và các kích thước, hình dạng và biểu mẫu khác.

Để tạo Trang tổng quan mới trong tài khoản Ubidots của bạn, hãy tham khảo hướng dẫn Ubidots sau đây để tìm hiểu cách thực hiện.

Chỉ như một tài liệu tham khảo, khi Trang tổng quan Ubidots của bạn được tạo, bạn sẽ có một cái gì đó tương tự như hình ảnh bên dưới:

Hình ảnh
Hình ảnh

MẸO CHUYÊN NGHIỆP: Ngoài ra còn có một loạt các công cụ lập đồ thị và báo cáo. Nếu bạn muốn tìm hiểu thêm về điều này, chúng tôi khuyên bạn nên xem hướng dẫn này.

Hình ảnh
Hình ảnh

Bước 7: Tóm tắt

Trong hướng dẫn này, chúng tôi đã chỉ ra cách viết mã và kết nối trạm Thời tiết XinaBox với Ubidots. Điều này cho phép giám sát từ xa và có thể hoàn thành trong vòng 10-15 phút.

Những người đọc khác cũng thấy hữu ích…

  • UbiFunctions: Tích hợp dữ liệu từ Nền tảng AmbientWeather vào Ubidots
  • Analytics: Khái niệm cơ bản về biến tổng hợp
  • Kiểm soát nhiệt độ với Ubidots MQTT và NodeMcu

Đề xuất: