ESP8266 và IOT (Part 5): Gửi Email và SMS thông báo khi bị trigger từ dữ liệu cảm biến

download

Email Thông báo

Node-RED hỗ trợ một email output node,  nó rất tiện lợi cho việc gửi email thông báo. Chúng ta sẽ kết nối node này với IoT node để set email thông báo rằng bị trigger bởi dữ liệu cảm biến của thiết bị publish. Cuộn xuống dưới trên node catalog và chọn email out node.

5_1
Email out node

Để bắt đầu, bạn có thể thêm vào một inject node để xác nhận rằng bạn đang nhận các email.

Simple flow with email node
Simple flow with email node

Thiết lập email out node. Tôi đang sử dụng Gmail account. Đặt địa chỉ của bạn muốn để gửi tin nhắn tới, và UserID và password của tài khoản bạn muốn gửi tin nhắn đi.

 

 Edit email out node
Edit email out node

Lúc đầu, tôi có vấn đề về việc nhận email. Nhưng sau khi tìm kiếm một ít cho vấn đề này, tôi phát hiện ra rằng nó hoạt động nếu tôi set Gmail passowrd với 8 ký tự hoặc nhỏ hơn, và nó hoạt động. Bạn cũng có thể phải bật “Access to less secure apps” trên tài khoản Gmail của bạn.

Nếu bạn có thể nhạn email sau khi click vào inject node, bạn đã có thể thay thế inject node với IoT In node. Chũng ta sẽ không kết nối chúng trực tiếp, bởi vì chúng ta không muốn gửi một email mỗi lần payload được thiết bị gửi đến. Thay vào đó, chúng ta sẽ đặt một switch node để thông kê các parameter cụ thể và quyết định có nên gửi email hay không.

Flow with IoT and email nodes
Flow with IoT and email nodes

Tôi sửa dụng chung một payload giống bài tutoria trước.

Switch node được dụng để dẫn (route) tin nhắn dựa trên dữ liệu property. Nó nhận toàn bộ payload và chung ta set một rule là nếu nhiệt độ cao hơn 30, thì nó sẽ gửi payload đến ouput đầu tiên, còn không, khóa nó. Bạn có thể set nhiều rule trong một switch node.

Edit switch node
Edit switch node

Đừng quên sửa IoT node cho đúng (giải thích ở bài bài 3)

Trước email node, đặt một function node đinh dạng của tin nhăn để gửi đi với giá trị nhiệt độ và deviceID.

var temperature = msg.payload.d.temperature;

var Name = msg.payload.d.Name;

msg.payload = "Temperature at device " + Name + " is " + temperature + " degrees!";

return msg;

Nếu bạn muốn giới hạn số lượng email gửi trên một khoảng thời gian nhất định, bạn có thể đặt một delay node trước email node.

Bạn có thể làm tất cả các bước trên cho giá trị độ ẩm.

SMS Thông báo với Twilio Service

Điều gì xảy ra trong trường hợp khẩn cấp, như nhiệt độ tăng trên 40 và chung ta muốn gửi SMS thông báo? Thật may mắn, Twillio node có thể cho phép chung ta làm nó dễ dàng. Twilio là một dịch vụ cho phép các nhà phát  triển có thể lập trình việc nhận cuộc gọi và gửi nhận một text mesage sử dụng Web service APIs. Dịch vụ của Twilion được truy cập thông qua HTTP và chúng được trả phí dựa trên lượng sử dụng. Vào https://www.twilio.com và đăng ký. Trong console, click vào # để xem số mà bạn có thể gửi tin nhắn đi. Để sửa dụng tài khoản Twilio từ Node-RED, bạn sẽ cần ACCOUNT SID và AUTH TOKEN.

Chúng ta sẽ mở rộng flow vừa build. Thêm vào một rule trong switch node.

Add a new rule to switch node
Add a new rule to switch node

Copy function node cho việc tạo tin nhắn và nếu bạn muốn, bạn có thể thêm delay node để giới hạn số lượng gửi tin nhắn

Extended flow with Twilio node
Extended flow with Twilio node

 

Edit delay node
Edit delay node

Click vào Twilio node và click vào Add new Twilio-api. Điền những trường thông tin với số Twilio, account SID và token (lấy từ tài khoản Twilion). Sau đó, thêm một số điên thoại bạn muốn gửi tin nhắn tới. Nếu bạn dùng tài khoản trail, bạn chỉ có thể gửi tin nhắn tới một số đã đăng ký. Chạy app của bạn và khi nhiệt độ vượt ngưỡng 40 độ, bạn sẽ nhận tin nhắn SMS thông báo.

Bạn vừa biết cách có thể nhanh chóng và dễ dang set email và SMS thông báo trên Node-RED. Bạn có thể chỉnh sửa những flow và payload để tạo một hệ thông thông báo riêng 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