ESP8266 và IOT (Part 4): Dùng Cloudant DB trong IBM Bluemix để lưu trữ dữ liệu

download

Cloudant Database

Trong bài tutorial trước bạn đã học cách sử dụng Node-RED editor để tạo IoT app trong IBM Bluemix. Trong bài tutorial ngắng này tôi sẽ chỉ ra cho bạn cách để dùng Cloundant Database để lưu trữ giá trị cảm biến đến từ thiết bị của bạn. Như đã thấy, khi tạo một app mới, một Cloudant DB service được tự động liên kết tới nó. Trong Node-RED flow editor, có 2 Cloud node, Cloundant in cho tìm kiếm database và  Cloundant out cho lưu trữ dữ liệu.

Từ main dashboard, vào Cloundant service và chạy dashboard. Click Creat Database và đặt tên cho nó.

List of all databases
List of all databases

Bây giờ, nó chưa có gì. Để bắt đầu nhập dữ liệu, vào Node-RED editor và kết nối IoT input node với Clounant out node. Đặt một function node giữa 2 node đó. Flow của bạn sẽ trông như thế này:

Flow
Flow

Configure Cloudant node, specify database name you want to write to, and check the box.

Thiết lập Cloudant node, chỉ định tên database mà bạn muốn viết vào, và check box.

Edit Cloudant out node
Edit Cloudant out node

Cho demo này, chúng ta sẽ gửi nhiệt độ và độ ẩm từ ESP8266. Payload như sau:

{ "d": { 
           "Name": "18FE34D81E46", 
           "temperature": 25, 
            "humidity": 40 
} }

Nêu bạn không có cảm biến nhiệt độ, độ ẩm, bạn có thể sử dụng cái khác, set một counter hoặc tạo ra những con số ngẫu nhiên mô phỏng độ ẩm, nhiệt độ:

 String payload = "{\"d\":{\"Name\":\"18FE34D81E46\"";
 payload += ",\"temperature\":";
 payload += temperature;
 payload += ",\"humidity\":";
 payload += humidity;
 payload += "}}";

Vì Cloundant out node lưu trữ msg.payload, để lưu mỗi parameter riêng biệt, trong function node nhập code sau:

msg.payload = msg.payload.d;

return msg;

Khi thiết bị của bạn bắt đầu việc publish dữ liệu cảm biến, bạn nên xem những record này trong database.

Database with new records
Database with new records

Nếu bạn không chỉ định ID cho một record, nó sẽ được tạo ra ngẫu nhiên. Cũng có thể cập nhật và xóa những recode đã tồn tại. Bạn có thể dùng Cloudant trong node để truy vấn database từ Node-RED editor.

Nếu bạn muốn thêm ngày, thời gian nhưng một cột mới trong database, bạn có thể chỉnh sử function node của bạn như sau:

msg.payload = msg.payload.d;
return msg;
Database with date column
Database with date column

Đó là tất cả, một cách dễ dàng để lưu trữ dữ liệu đến từ thiết bị của bạn.

Các bài cùng Series

(Part 1): Làm quen với ESP8266
(Part 2): ESP8266 với MQTT
(Part 3): Kết nối ESP8266 với IBM Bluemix
(Part 4): Dùng Cloudant DB trong IBM Bluemix để lưu trữ dữ liệu
(Part 5): Gửi Email và SMS thông báo khi bị trigger từ dữ liệu cảm biến
(Part 6): Hiển thị dữ liệu cảm biến với IBM Bluemix
(Part 7): Vị trí Devices trên Map
(Part 8): Nhận Motion Alarm Notifications trong Slack
(Part 9): Điều khiển thiết bị trong nhà bằng Slack

Tham khảo: Codingo

Comments

linhkienbachkhoa

Comments