Hướng dẫn giám sát nhiệt độ độ ẩm từ xa bằng Kit bSmart

Nhiệt độ và độ ẩm là hai yếu tố quan trọng trong nhiều lĩnh vực như nông nghiệp, chăn nuôi, y tế và sản xuất. Việc giám sát nhiệt độ độ ẩm có thể giúp người dùng phát hiện và giải quyết các vấn đề kịp thời, đồng thời cải thiện chất lượng sản phẩm và tăng hiệu quả hoạt động. Bài viết này sẽ hướng dẫn sử dụng Kit bSmart để giám sát nhiệt độ độ ẩm chính xác.

Vật dụng chuẩn bị 

Như vậy chúng ta sẽ cần những thứ sau để cài đặt thiết bị giám sát nhiệt độ độ ẩm:

kit-phat-trien-bsmart-giam-sat-nhiet-do-do-am

Kit phát triển bSmart giám sát nhiệt độ độ ẩm

Hướng dẫn lắp đặt

Phần cứng

Để kết nối cảm biến giám sát nhiệt độ độ ẩm DHT21, bạn sẽ cần một vài linh kiện đơn giản. Sơ đồ pin để kết nối cảm biến này khá đơn giản.

Sơ đồ pin

Bạn sẽ cần kết nối chân GND và VCC của cảm biến với chân GND và 5V trên board Arduino hoặc mạch điều khiển tương tự. Tiếp theo, hãy kết nối chân data của cảm biến với chân số 2 trên board.

Sau khi kết nối thành công, bạn có thể lấy được dữ liệu giám sát nhiệt độ độ ẩm từ cảm biến thông qua việc lập trình trên board hoặc mạch điều khiển.

Thiết lập phần mềm giám sát nhiệt độ độ ẩm

1. bSmart thu thập nhiệt độ độ ẩm và gửi lên MQTT Broker:

Để đọc và giám sát nhiệt độ độ ẩm từ DHT21, cần nén hai giá trị này thành một chuỗi JSON và gửi chuỗi JSON này đến MQTT Broker. Chuỗi JSON này có cấu trúc như sau

Cấu trúc chuỗi JSON:

{

    “t”: <nhiệt độ>,

    “h”: <độ ẩm>

}

Sau đó, publish chuỗi JSON này đến topic “farm/t_and_h”. Xem Code hàm setup() và hàm loop() tại đây: https://github.com/loc4atnt/bsmart_tutorial_2/

void setup() {
  Serial.begin(115200);

  if (initModemSIM()) {
   while(!connectToGPRS()) delay(100);
  }

  gsmMqtt.setServer(broker, PORT_MQTT);

  dht.begin();
}

void loop() {
  if (modem.isGprsConnected()) {
    getSensorData();
    mqttLoopWithGPRS();
  } else {
    Serial.println("Khong co ket noi GRPS!");
    delay(2000);
  }
}

2. Tạo bot & kênh báo động trên Telegram:

Để tạo một chat bot trên Telegram, bạn có thể bắt đầu bằng cách tìm kiếm “BotFather” và bắt đầu chat với nó. Sau đó, sử dụng các lệnh hỗ trợ để tạo một bot mới và nhập tên và tên người dùng cho bot của bạn. 

Khá nhiều lệnh hỗ trợ việc tạo chat bot

    Gõ /newbot để tạo một bot mới, sau đó nhập tên của bot

Tên của Bot

    Nhập username cho bot

Chú ý tên username phải kết thúc bằng _bot

Rất nhanh chóng, ta đã có môt con bot, các bạn chú ý lưu lại và giữ cẩn thận đoạn token truy cập mình tô đỏ trong ảnh để sử dụng điều khiển con bot. Các bạn có thể tùy chỉnh nhiều hơn cho con bot như viết mô tả, thay avatar,… thông qua BotFather

/help để xem các lệnh khác

    Bot có thể thực hiện rất nhiều chức năng, trong phạm vi bài viết này mình cần nó thông báo báo động nhiệt độ, độ ẩm vượt ngưỡng cho mình. Do đó mình cần có một kênh thông tin để người dùng đăng ký nhận tin (báo động), và cho con bot nắm quyền gửi tin lên kênh này. Trong Telegram, kênh thông tin ấy được gọi là Channel.

Các bạn nhấn vào nút Tab bên cạnh thanh search, sau đó chọn New Channel.

Tạo kênh thông tin mới

    Nhập tên, mô tả cho Channel, sau đó ấn Create.

Ngoài ra còn có thể chọn ảnh đại diện cho kênh

    Chọn chế độ Công khai hay riêng tư cho kênh tin. Nếu là Private thì sẽ cần Invite Link để một người khác truy cập vào kênh, mình sẽ hướng dẫn lấy Invite Link ở bên dưới. Tiếp tục nhấn Save.

Để thêm thành viên vào Kênh tin, hãy thêm con bot vừa tạo phía trên bằng cách tìm kiếm tên của nó và nhấp vào nó để thêm. Sau đó, nhấp vào “Thêm” để tiếp tục. Hãy cấp quyền Admin kênh tin cho bot. Tiếp theo, để lấy chat id của kênh tin, hãy gửi một tin nhắn bất kỳ vào kênh để khởi tạo chat cho kênh.

    Cấp quyền Admin kênh tin cho bot.

Tiếp theo, chúng ta cần lấy được chat id của kênh tin này. Bạn cần gửi một tin nhắn bất kỳ vào kênh để khởi tạo chat cho kênh.

    Sau đó truy cập vào đây, kéo xuống mục “Get Telegram Chat ID”, nhập token truy cập lúc nãy vào ô “HTTP API Token”, rồi nhấn Get Chat ID.

    Một số thông tin sẽ hiện ra, chú ý đến mục “chat”, và chat id chính là id ở mục “chat” này (Lưu ý lấy cả dấu âm), các bạn lưu lại.

  HTTP API Telegram Bot:

Để bot có thể gửi tin nhắn đến kênh tin bất kỳ, chúng ta sẽ gửi một POST reuqest đến url sau:

https://api.telegram.org/bot<bot_token>/sendMessage

<bot_token> chính là token truy cập

Body của request có cấu trúc như sau:

{

“chat_id”: <chat id của kênh tin>,

“text”: <tin nhắn muốn gửi đến kênh tin>

}

3. Thiết lập webapp trên NodeRed để nhận nhiệt độ độ ẩm và xử lý báo động:

Để hiển thị thông tin giám sát nhiệt độ độ ẩm, trước tiên chúng ta cần tạo một dashboard đơn giản với các bước sau:

  • Thiết lập node mqtt để nhận dữ liệu từ bSmart kit.
  • Thiết lập node Gauge Nhiệt độ (msg.payload chính là JSON đã gửi dưới bSmart kit).
  • Thiết lập node Gauge Độ ẩm (msg.payload chính là JSON đã gửi dưới bSmart kit).
  • Hoàn thành, Deploy và có giao diện hiển thị nhanh chóng.

Để xử lý cảnh báo, chúng ta sẽ thêm hai node switch để xét điều kiện nhiệt độ độ ẩm có vượt ngưỡng không.

  • Thiết lập node switch cho nhiệt độ, nếu nhiệt độ lớn hơn 30 độ thì flow sẽ tiếp tục.
  • Sau đó, thêm một node function để chỉnh lại payload theo cấu trúc JSON API gửi đến bot ở phía trên.

Code cho node function như sau:

Sơ đồ flow hiển thị dashboard

Setup node mqtt in

Setup node Gauge Nhiệt độ (msg.payload chính là JSON chúng ta đã gửi dưới bSmart kit)

Setup node Gauge Độ ẩm (msg.payload chính là JSON chúng ta đã gửi dưới bSmart kit)

Hoàn thành, Deploy và có được giao diện nhanh chóng

    Để xử lý báo động, chúng ta sẽ thêm 2 node switch để xét điều kiện nhiệt độ, độ ẩm vượt ngưỡng.

Setup cho node switch xử lý nhiệt độ, nếu lớn hơn 30 thì dòng flow sẽ đi tiếp

    Sau đó, chúng ta sẽ thêm 1 node function, để code chỉnh lại payload theo cấu trúc JSON API gửi đến bot ở phía trên.

    Source code phía trên:

var notifyJson = {};
notifyJson.chat_id = -1001202537012;
notifyJson.text = "Nhiet do vuot nguong! " + msg.payload.t + "°C";
msg.payload = notifyJson;
return msg;

Và sau cùng là 1 node gọi HTTP request, nhập url và chọn method POST.

     Các bạn làm tương tự cho nhánh độ ẩm, sơ đồ flow tổng quát cuối cùng.

Node http request có thể dùng chung

V. Demo:

Chúng ta đã hoàn thành sản phẩm rồi, bao gồm 2 phần dashboard webapp và bot báo động.

Dashboard hiển thị nhiệt độ, độ ẩm

Thông báo báo động

…..loading video…..

Cuối cùng, thêm một node HTTP request, nhập URL và chọn method POST. Các bước tương tự cũng được áp dụng cho độ ẩm. Node HTTP request có thể được sử dụng chung cho cả hai nhánh.

Trên đây là hướng dẫn giám sát nhiệt độ độ ẩm bằng Kit bSmart, giúp bạn dễ dàng theo dõi các chỉ số này trong kinh doanh. Với việc kết nối đơn giản và sử dụng các công nghệ hiện đại, giải pháp giám sát nhiệt độ độ ẩm này sẽ giúp tiết kiệm thời gian và công sức cho việc giám sát và quản lý. Nếu bạn cần hỗ trợ thêm, vui lòng liên hệ với chúng tôi theo:

Thông tin liên hệ

Văn phòng: 373-375 Nguyễn Trọng Tuyển, P. 2, Q.Tân Bình, TP. Hồ Chí Minh

IoT Lab: Phòng C4, Khu công nghệ phần mềm, Đại học Quốc Gia, TP Hồ Chí Minh

Điện thoại: (+84) 868 963 967

Email: [email protected]

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *