Một số phương thức trao đổi dữ liệu trong hệ thống IoT

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu xây dựng hệ thống IOT phục vụ giám sát cảnh báo cháy cho hộ gia đình (Trang 44)

2.4.1 Giao thức Mysensor

Các thiết bị MySensors tạo ra một mạng vô tuyến ảo của các nút tự động tạo thành cấu trúc. Mỗi nút có thể chuyển tiếp tin nhắn cho các nút khác để tăng phạm vi bằng cách sử dụng các bộ thu phát ngắn đơn giản. Mỗi nút có thể có một vài cảm biến

35

gắn vào và có thể tương tác với các nút khác trong mạng. Mạng vô tuyến có thể bao gồm lên đến 254 nút, một nút có thể hoạt động như một cổng vào Internet hoặc bộ điều khiển tự động hóa tại nhà. Bộ điều khiển bổ sung chức năng cho mạng vô tuyến như phân công id và nhận biết về thời gian.

Giao thức mysensor tổ chức theo một sơ đồ hình cây với nút (S) sẽ gửi dữ liệu trực tiếp tới gateway (GW). Nếu mạng cảm biến lớn thì sẽ cần thêm một số nút chạy chế độ repeater (R) để chuyển tiếp dữ liệu từ các nút ở xa tới gateway.

Hình 2.10: Định dạng giao thức Mysensor

Nút (S): liên tục đọc dữ liệu của các cảm biến và gữi dữ liệu qua mạng tới cho gateway và có thể ngủ hầu hết thời gian nếu ta muốn nó chạy với pin.

Nút chuyển tiếp (R): Phải luôn hoạt động để chuyển tiếp các bản tin từ các nút con tới gateway. (R) cũng có thể có một vài cảm biến và hoạt động như (S). Trừ khi chúng ta cần các mạng lớn với bán kính > 60m thì (R) mới cần thiết.

Gateway (GW): Gửi dữ liệu từ mạng cảm biến tới giao diện điều khiển cũng như từ giao diện điều khiển trở lại mạng. Chúng ta cũng có thể thêm các cảm biến vào (GW).

Chúng ta cũng có thể gửi gói tin trực tiếp giữa hai nút trong mạng mà không cần qua gateway. Ví dụ một cảm biến nhiệt độ có thể gửi dữ liệu trực tiếp tới một cảm biến ở nhà bếp gắn với đèn. Mỗi nút được gán với một định dạng sensorID hoặc địa chỉ được dùng để gửi dữ liệu điểm - điểm. Chúng ta có thể gán sensorID tĩnh hoặc để bộ điều khiển (controller) gán cho chúng ta. Ở chế độ Auto mysensor sẽ gửi yêu cầu sensorID từ bộ điều khiển. Bộ điều khiển sẽ ghi các giá trị này vào bộ nhớ để chắc chắn rằng giá trị ID này không bị mất dù mất điện. GW luôn có sensorID = 0.

36

Khi mà một nút khởi động nó sẽ quyết định tuyến đường tới gateway bằng một bản tin đặc biệt. Các nút chuyển tiếp (R) và GW lắng nghe những gói tin này và trả lời. R và GW sẽ trả về khoảng cách cho S để nó quyết định xem đường nào ngắn nhất để tới GW. GW là R sẽ duy trì một mảng định tuyến nhỏ để biết được những S xung quanh nó. Bảng định tuyến sẽ được xây dựng và cập nhật mỗi khi R và GW nhận gói tin. Một mạng Mysensor có thể chứa tới 254 nút và mỗi nút có thể gửi dữ liệu từ 254 nút khác.

Như vậy theo lý thuyết ta có thể có 64516 nút tại một mạng riêng biệt. Gateway của mạng mysensor sẽ được kết nối tới bộ điều khiển, nhiệm vụ của bộ điều khiển là: - Gửi các tham số cấu hình cho mạng cảm biến (time và ID).

- Lưu trữ các dữ liệu được gửi đến từ sensor.

- Cung cấp thông tin về trạng thái hiện tại của các cảm biến và cơ cấu chấp hành ví dụ như đèn đang sáng/ tắt.

- Cung cấp giao diện điều khiển cho người dùng.

- Tổ chức và lên lịch các ngữ cảnh cho mạng ví dụ như trời sáng thì tắt đèn sân…

2.4.2 Giao thức MQTT

Đây là thức truyền thông điệp dạng message theo mô hình xuất bản/theo dõi publish/subscribe phù hợp với đường truyền băng thông thấp, nhưng có độ tin cậy khá cao và có khả năng hoạt động trong điều kiện đường truyền không ổn định.

Broker và Clients là hai thành phần chính của MQTT ở kiến trúc mức cao. Nhận bản tin mesage từ publisher là nhiệm vụ của broker, đồng thời broker xếp các message theo hàng đợi sau đó truyền tới địa chỉ định trước. Publisher và subscriber là hai nhóm chính của Client, Client có nhiệm vụ đẩy các bản tin lên một topic cụ thể, đăng kí một subscribe topic bất kì để nhận bản tin từ topic đó. Với một Publisher chúng ta có thể đáp ứng cho nhiều Subcriber khác nhau, giúp cho việc chia sẻ dữ liệu được đơn giản hóa.

37

Giao thức MQTT là phương thức truyền tải dữ liệu chính trong lĩnh vực IoT. Với ưu điểm là truyền tải dữ liệu một cách dễ dàng, đảm bảo an toàn MQTT ngày càng được phát triển và áp dụng ở nhiều thiết bị đầu cuối IoT.

2.4.3 Giao thức Domoticz

Domiticz là một hệ thống webserver hỗ trợ cho việc điều khiển và theo dõi các thiết bị trong nhà với giao diện chuyên nghiệp và đẹp, do đó đề tài sẽ sử dụng webserver này để giao tiếp với Gateway và từ đó giao tiếp, điều khiển các thiết bị trong mạng cảm biến (Tham khảo: https://github.com/domoticz/domoticz).

Hình 2.12: Giao diện điều khiển của Domoticz

Hệ thống này được thiết kế hoạt động trong các hệ điều hành khác nhau, có thể tương thích nhiều trình duyệt web. Giao diện người dùng là một giao diện viết trên nên tảng HTML5 có thể mở rộng và được tự động điều chỉnh cho thiết bị máy tính và điện thoại di động. Có điều lưu ý như sau đối với người dùng Internet explorer ta cần phải có phiên bản 10+.

2.5 Nền tảng xây dựng ứng dụng Node RED

Trong quá trình tìm hiểu để xây dựng đề cương cho luận văn, học viện nhận thấy việc cần xây một ứng dụng để hiển thị các dữ liệu thu thập được từ các cảm biến môi trường và điều khiển một số cơ cấu đơn giản của hệ thống giám sát cảnh báo cháy cho hộ gia đình. Ứng dụng sẽ có định dạng đơn giản, chạy trên web và hỗ trợ giao thức vận chuyển dữ liệu phổ biến như MQTT, và Node RED là một nền tảng khá phù hợp cho yêu cầu này. Đây là một công cụ lập trình dùng để kết nối các thiết bị phần cứng, API và các dịch vụ trực tuyến với nhau, có thể thấy rằng Node RED là một công cụ trực quan được thiết kế cho hệ thống IOT nói chung và nhà thông minh nói riêng.

38

Hình 2.13: Ứng dụng của Node RED trong IoT

Node RED cung cấp cho lập trình viên một trình soạn thảo dựa trên trình duyệt giúp dễ dàng kết nối các luồng với nhau bằng cách sử dụng một loạt các node trong palette. Bản thân học viên không chuyên sâu về các ngôn ngữ lập trình gần với ngôn ngữ máy, cách lập trình trên nền kéo thả của Node RED sẽ giúp giảm đáng kể thời gian xây dựng ứng dụng. Chương trình phần mềm của Node RED cũng rất dễ dàng nhúng các API, các thư viện mở của bên thứ ba như API phục vụ đẩy dữ liệu lên MongoDB hay các thư viện kết hợp với Watson IoT để nâng cao trải nghiệm điều khiển của người sử dụng. Nhờ các yếu tố kể trên mà ứng dụng của luận văn có thể được mở rộng sau này mà không gặp quá nhiều khó khăn.

Để thiết lập hoạt động của Node RED cần chuẩn bị môi trường có hệ điều hành Ubuntu để khởi chạy hệ thống. Đây là một hệ điều hành mã nguồn mở với rất nhiều tiện ích và là hệ điều hành thích hợp để phát triển các tính năng của hệ thống IoT nói chung và nhà thông minh trên nền tảng Node RED nói riêng. Ubuntu hoàn toàn miễn phí, và được chia sẻ rộng rãi trên trang chủ của Ubuntu với bản cập nhật mỗi sáu tháng một lần và luôn tăng cường bảo mật. Cách cài đặt Ubuntu vào máy tính cũng tương đối dễ dàng. Ngoài ra, người dùng cũng có thể chỉnh sửa tùy ý, sao chép hoặc cải tiến nó với giấy phép từ GNU GPL. Ubuntu hoạt động khá hiệu quả và tiêu tốn cực ít dung lượng phần cứng, đây là một điểm then chốt khi phát triển các thiết bị trong nhà thông minh bởi cần sự nhỏ gọn và tiết kiệm năng lượng. Điều này sẽ gia tăng tốc độ hoạt động của các máy tính đồng thời tăng hiệu suất hệ thống. Theo nhận định của nhiều chuyên gia về công nghệ thì cơ chế bảo mật của Ubuntu cao hơn so với Windows.

39

$ sudo apt-get install node.js –y #cai dat node.js# $ sudo apt-get install nodejs-legacy #legacy

$ sudo apt-get install git -y

$ git clone https://github.com/node-red/node-red.git $ cd node-red

$ sudo npm install n -g $ sudo n stable

$ cd ..

$ sudo npm install -g grunt-cli $ cd node-red

$ grunt build $ node red

Sau khi gói cài đặt được thiết lập, màn hình sẽ đưa ra thông báo sau:

Hình 2.14: Cài đặt thành công gói Node RED

Khi cài đặt thành công có thể truy cập vào Node RED ở đường dẫn http://127.0.0.1:1880/#, tiếp theo cần tiến hành thiết lập đăng nhập và khởi động Node RED tự động, đây là một tùy chọn khi cài trên ubuntu 16.04, người sử dụng cần tạo một service Node RED với với lệnh:

$ sudo nano /etc/systemd/system/node-red.service Tiếp theo tiến hành cấu hình các trường khi làm việc trong Node RED [Unit]

Description=Node-RED

After=syslog.target network.target [Service]

40

ExecStart=/usr/local/bin/node-red-pi--max-old-space- size=128 -v

Restart=on-failure KillSignal=SIGINT

# log output to syslog as 'node-red' SyslogIdentifier=node-red

StandardOutput=syslog # non-root user to run as WorkingDirectory=/home/sammy/ User=PhuongHN

Group=PhuongHN [Install]

WantedBy=multi-user.target

Thực hiện lệnh sau để tự động khởi chạy Node RED: $ sudo systemctl enable node-red

$ sudo systemctl start node-red #auto run# Nếu muốn dừng chạy tự động khởi động thì thực hiện lệnh:

$ sudo systemctl stop node-red #stop node red# Thiết lập tài khoản và mật khẩu đăng nhập.

$ nano ~/.node-red/settings.js Thiết lập tài khoản đăng nhập:

adminAuth: { type: "credentials", users: [{ username: "admin", password: "admin", permissions: "*" }] },

41

Hình 2.15: Màn hình làm việc chính của Node RED

Khi các thiết lập đã hoàn tất truy cập vào địa chỉ của Node RED là đã có thể tiến hành sử dụng.

2.6 Kết luận

Chương 2 của luận văn học viên đã trình bày được các đặc điểm của hệ thống IoT và xu hướng phát triển của hệ thống, đồng thời cũng giới thiệu được hai chuẩn thiết bị IoT theo IEC và ITU-T. Cũng trong chương này học viên đã trình bày được đặc điểm của mô hình hệ thống IoT các kết nối chính trong hệ thống, đặc biệt là các giao thức trao đổi dữ liệu gồm có mysensor, MQTT, domoticz cùng với một số chuẩn giao tiếp không dây nổi bật gồm bluetooth, wifi, lora. Cuối cùng là giới thiệu về Node RED, cách thức cài đặt cũng như cấu hình của trình xây dựng ứng dụng này.

42

CHƯƠNG 3: THIẾT KẾ CHẾ TẠO THỬ NGHIỆM HỆ THỐNG IOT PHỤC VỤ GIÁM SÁT CẢNH BÁO CHÁY CHO HỘ GIA

ĐÌNH

Chương 3 sẽ trình bày về thiết kế chế tạo thử nghiệm hệ thống giám sát cảnh báo cháy dựa trên công nghệ giao tiếp không dây wifi và các cảm biến thu thập dữ liệu môi trường, với ứng dụng người dùng sẽ được xây dựng trên nền tảng Node RED. Cũng trong chương này học viên sẽ tiến hành thử nghiệm và đánh giá khả năng hoạt động của hệ thống.

3.1Thiết kế hệ thống

Mô hình thiết kế hệ thống và triển khai thực hiện thiết kế các thành phần của hệ thống với các công việc chính: Xây dựng mô hình thiết kế, thiết kế phần cứng, phần mềm hệ thống (cho IoT node, IoT gateway), triển khai webserver,… đảm bảo hai yếu tố là tính thời gian thực, khả năng đưa ra các cảnh báo sớm tới người dùng.

Hình 3.1: mô hình hệ thống IoT thời gian thực ứng dụng trong giám sát, cảnh báo cháy tại hộ gia đình

Diễn giải:

Khối cảm biến: gồm cảm biến nhiệt độ, độ ẩm và cảm biến khói khí gas để thu thập dữ liệu từ môi trường.

Khối IoT node và IoT gateway tích hợp trên một module ESP8266, vừa có nhiệm vụ xử lý dữ liệu thu thập được từ cảm biến môi trường và vận chuyển dữ liệu bằng giao tiếp wifi lên server MQTT.

Khối Node RED: giao diện dashboard để người sử dụng có thể quan sát các thông số hệ thống môi trường, giao diện có thể truy cập từ điện thoại và cả máy tính.

3.1.1 Lựa chọn cảm biến môi trường

43

Cảm biến khói được hiểu là thiết bị điện tử có thể cảm nhận sự tồn tại của khói trong môi trường, chuyển đổi thành tín hiệu điện tử rồi gửi về trung tâm báo cháy để kích hoạt báo động. Cảm biến được sử dụng tại hộ gia đình cần đảm bảo nhận biết đa dạng các loại khói và có giá thành phù hợp.

Hiện nay, trên thị trường có 2 dòng sản phẩm cảm biến cảnh báo khói chính là:  Đầu cảm biến cảnh báo khói Ion hóa

 Cảm biến thông báo có khói dạng quang điện

Cảm biến MQ135 là cảm biến khí hoạt động dựa trên nguyên lý độ dẫn điện (cảm biến bán dẫn). Thiết bị này sử dụng vật liệu chính là Thiếc-oxit (SnO2) có độ dẫn điện thấp trong không khí sạch.

Hình 3.2: Cảm biến MQ135

Lợi dụng sự thay đổi về độ dẫn điện của màng bán dẫn (1) SnO2 khi phản ứng với chất khí ở nhiệt độ cao. Nhiệt lượng này sẽ được cung cấp bởi thanh đốt bằng hợp kim Ni-Cr (4) và ống nung gốm Al2O3 (5). Các bộ phận này được bảo vệ bởi một lớp lưới sắt (6) và được cố định vào một lớp đế bằng nhựa và thép không rỉ (7) (8).

44

Khi có khí phản ứng với lớp SnO2 với xúc tác là nhiệt độ, điện trở của lớp bán dẫn này sẽ giảm xuống tỷ lệ thuận với nồng độ khí. Cảm biến này được sử dụng rất nhiều trong các thiết bị giám sát chất lượng môi trường không khí, phù hợp khi muốn phát hiện các khí như NH3, NOx, cồn, Benzene, khói, CO2,… Vì vậy, việc lựa chọn cảm biến này phục vụ việc phát hiện khói/khí gas là hoàn toàn phù hợp, tuy nhiên cần phải khảo sát thực tế để xác định được các ngưỡng cảnh báo thông qua nồng độ khói/khí. Khối cảm biến MQ135 được sử dụng trong đề tài có các thông số kỹ thuật chung như sau:

 Khoảng phát hiện: 10ppm – 1000ppm  GND (G): Chân nối đất

 D0: đầu ra Digital  A0: đầu ra Analog.  Vcc (+): điện áp vào 5V

 Biến trở điều chỉnh độ nhạy 10K ohm b) Cảm biến nhiệt độ độ ẩm DHT11

DHT11 là một cảm biến nhỏ gọn, chi phí rẻ được sử dụng rộng rãi trong các ứng dụng IoT hiện nay. Sử dụng cảm biến này, có khả năng đọc được nhiệt độ, độ ẩm, truyền dữ liệu một cách đơn giản.

Hình 3.4: Module đo nhiệt độ độ ẩm DHT11

Thông số:

 Dải đo: Độ ẩm: 20 – 90% ± 5%  Dải nhiệt độ đo: 0 – 500 C ± 20 C  Điện áp hoạt động: 3 – 5V

45

Để sử dụng hai loại cảm biến này trong thực tế cần thêm một số linh kiện phụ trợ như IC khuếch đại thuật toán, transistor.

3.1.2 Vi điều khiển ESP8266

Module giao tiếp Wifi ESP8266 kết hợp lập trình là module được xây dựng trên nền chip Wifi SoC ESP8266, các dòng ESP đều có thể dùng Arduino hinhđể lập trình và nạp code, điều này khiến việc sử dụng và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản. ESP12 là bản ra chân thu gọn của ESP8266

Hình 3.5: Kit phát triển wifi ESP12

Thông số kĩ thuật:

 IC chính: ESP8266 Wifi

 Phiên bản firmware: Node MCU.  Phiên bản ra chân của ESP12

 GPIO tương thích hoàn toàn với firmware Node MCU.  Cấp nguồn: 5VDC MicroUSB hoặc Vin.

 GIPO giao tiếp mức 3.3VDC

 Tích hợp Led báo trạng thái, nút Reset, Flash.  Tương thích hoàn toàn với trình biên dịch Arduino.

3.1.3 Lập trình phần mềm hệ thống

46

Để có thể giám sát và đưa ra cảnh báo sớm cho các hộ gia đình về khả năng phát sinh cháy, học viên sử dụng bản thu gọn ESP12 để kết nối với cảm biến

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu xây dựng hệ thống IOT phục vụ giám sát cảnh báo cháy cho hộ gia đình (Trang 44)