1

Hướng dẫn này chi tiết cách thực hiện kiểm soát nhiệt độ với Ubidots. Ngoài ra, chúng tôi sẽ chỉ cho bạn cách tạo các sự kiện khác nhau thông báo cho bạn qua email hoặc SMS khi "biến số" của bạn (trong trường hợp này là nhiệt độ) thay đổi giá trị của nó.

Chúng tôi sẽ sử dụng một phiên bản có dây và chống nước của cảm biến DS18B20 (cảm biến nhiệt độ OneWire). Thật tiện dụng khi bạn cần đo một thứ gì đó ở xa hoặc trong điều kiện ẩm ướt. Cảm biến nhiệt độ OneWire có các phiên bản khác nhau; một trong số chúng có điện trở được tích hợp và những cái khác thì không, vì vậy hãy đảm bảo phiên bản bạn đang sử dụng là chính xác trước khi bắt đầu với dự án. Để kiểm soát, chúng tôi sẽ sử dụng NodeMcu bằng pin kỹ thuật số. 

Yêu cầu

Thiết lập

1. Đầu tiên, chúng ta nên chọn một phiên bản. Nếu cảm biến của bạn có điện trở được tích hợp, chỉ cần kết nối nó với NodeMcu như thế này:

DÂY ĐEN - GND
DÂY ĐIỆN MÀU ĐỎ - Vin
VÀNG DÂY - D3


Nếu không, bạn phải cấp nguồn cho chân DATA thông qua điện trở 4,7kΩ và các chân Vin và GND nên được kết nối với nhau và mặt đất. 


2. Truy cập Arduino IDE, nhấp vào Tệp -> Tùy chọn và nhập http://arduino.esp8266.com/ sóng / pack_esp8266com_index.json vào trường "URL Trình quản lý bảng bổ sung". Bạn có thể thêm nhiều URL, phân tách chúng bằng dấu phẩy.

3. Mở "Trình quản lý bảng" từ Công cụ -> Menu bảng và cài đặt nền tảng Esp8266 (và đừng quên chọn bảng NodeMCU 1.0 từ menu Công cụ> Bảng sau khi cài đặt).

4. Tải thư viện UbidotsESPMQTT , OneWire Thư viện , và DallasTemperature Thư viện  sử dụng các siêu liên kết.

5. Bây giờ, nhấp vào Phác thảo -> Bao gồm Thư viện -> Thêm Thư viện .ZIP .

6. Chọn các tệp ZIP của Ubidots ESPMQTT, OneWire và DallasTem Nhiệt độ và sau đó là Chấp nhận Chấp nhận hoặc Tải xuống Chọn cho tất cả các thư viện. Nếu bạn không thể thêm các thư viện, hãy thử thủ công: giải nén rar / zip đã tải xuống và sao chép thư mục từ thư viện vào đường dẫn C: \ Users \ ubidots \ Documents \ Arduino \ library .

7. Đóng Arduino IDE và mở lại.

Lập trình ESP NodeMcu

Khi mọi thứ được kết nối chính xác, chúng tôi sẽ đến IDE và viết mã sau đây:

/****************************************
 * Include Libraries
 ****************************************/
#include "UbidotsESPMQTT.h"
#include <OneWire.h>
#include <DallasTemperature.h>
/****************************************
 * Define Constants
 ****************************************/
#define TOKEN "....." // Your Ubidots TOKEN
#define WIFINAME "....." //Your SSID
#define WIFIPASS "....." // Your Wifi Pass
#define MQTTCLIENTNAME "....." // Your MQTT Client Name, it must be unique so we recommend to choose a random ASCCI name
#define Pin D3

int temp;
OneWire ourWire(Pin);
DallasTemperature sensors(&ourWire);

Ubidots client(TOKEN, MQTTCLIENTNAME);
/****************************************
 * Auxiliar Functions
 ****************************************/
void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i=0;i<length;i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();
}
/****************************************
 * Main Functions
 ****************************************/
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  client.wifiConnection(WIFINAME, WIFIPASS);
  sensors.begin();
  client.begin(callback);
  }
void loop() {
  // put your main code here, to run repeatedly:
  if(!client.connected()){
      client.reconnect();
      }
  
  sensors.requestTemperatures();       //Prepare the sensor for reading
  
  temp = sensors.getTempCByIndex(0);
  
  Serial.print(sensors.getTempCByIndex(0)); //Read and print the temperature in Celsius
  client.add("temperature", temp); //Insert your variable Labels and the value to be sent
  delay(1000);
  Serial.println("Grados Centigrados");
  client.ubidotsPublish("control");
  
  client.loop();
  }


Các kết quả

Bây giờ, hãy mở tài khoản Ubidots của bạn và đi đến Nguồn . Bạn sẽ thấy một Nguồn dữ liệu mới có tên là "control". Nhấn vào nó.


Sau đó, bạn sẽ thấy giá trị nhiệt độ. 

Ngoài ra, bạn có thể tạo một Sự kiện  thông báo cho bạn khi nhiệt độ không đều. Chuyển đến Sự kiện , nhấp vào Thêm sự kiện và chọn Nguồn dữ liệu biến .  

Sự kiện có thể thông báo cho bạn qua email, SMS, Telegram hoặc WebHook. Bạn cũng có thể đặt một biến:

Khi sự kiện của bạn đã sẵn sàng, bạn sẽ thấy các cửa sổ này:

Trong ví dụ này, nếu giá trị nhiệt độ > =  28 ,  Ubidots sẽ gửi cho bạn một email như được định cấu hình trước đó, như sau:

Nó rất đơn giản! Chỉ với một vài dây cáp, bạn có thể quan sát hành vi nhiệt độ trong nhà của bạn, cho dù bạn ở trong hay ngoài. Bạn thậm chí có thể kích hoạt cảnh báo qua email / SMS trong trường hợp hỏa hoạn.

Bây giờ bạn thử! Nếu bạn chưa đăng ký với Ubidots, hãy đến đây .

|