Tuyn tp Hi ngh Khoa hc thường niên năm 2024. ISBN: 978-604-82-8175-5
300
XÂY DỰNG HỆ THỐNG THU THẬP DỮ LIỆU
CHUỖI THỜI GIAN
Lê Trung Dũng
Trường Đại hc Thy li, email: dung_lt@tlu.edu.vn
1. GIỚI THIỆU CHUNG
Hiện nay việc thu thập dữ liệu chuỗi thời
gian thường phải dùng hệ thống server trên
nền tảng điện toán đám mây để lưu trữ
giám sát dữ liệu. Ngoài ra người dùng cũng
thể tự xây dựng hệ thống server trong nhà
cùng với các thiết bị IoT.
Tuy nhiên, khi sử dụng nền tảng điện toán
đám mây, hệ thống thể phải đối mặt với
nguy cơ rò rỉ dữ liệu qua môi trường Internet.
nhiều dự án nguồn mở cho phép
người dùng tự phát triển thiết bị điều khiển
giám sát nhà thông minh, như Thinger.io [1],
openHAB [2], hay Home Assistant [3]. Tuy
nhiên khi dữ liệu phát triển nhanh chóng, hệ
thống có nhu cầu sủ dụng hệ thống lưu trữ dữ
liệu lớn. Điều này sẽ gặp khó khăn với các hệ
thống trên. Ngoài ra, khi phát triển hệ thống
này, người dùng gặp khó khăn khi hệ thống
địa chỉ IP thường xuyên thay đổi. Điều này
dẫn tới việc điều khiển từ xa qua Internet gặp
khó khăn khi xác định địa chỉ IP động của
ngôi nhà.
Bài báo đưa ra giải pháp thường xuyên cập
nhật địa chỉ IP vào địa chỉ tên miền đã được
xác định thông qua dịch vụ miễn phí của
Duck Duck DNS [4]. Đồng thời với giải pháp
tự xây dựng máy chủ chứa dữ liệu chuỗi thời
gian, tác giả đã xây dựng thành công hệ
thống điều khiển giám sát lưu trữ dữ liệu
lớn dựa trên nền tảng mã nguồn mở. Ngoài
ra, hệ thống không sử dụng dịch vụ điện toán
đám mây, đảm bảo tính riêng bảo mật
trên môi trường Internet.
2. HỆ THỐNG LƯU TRỮ DỮ LIỆU CHUỖI
THỜI GIAN THỰC
Hệ thống sử dụng InfluxDB [5], sở dữ
liệu nguồn mở phổ biến nhất dành cho các
nhà phát triển quản lý dữ liệu chuỗi thời gian.
InfluxDB có thể cài đặt mi môi trưng, từ
các thiết bị IoT, máy tính, hay các thiết bị
biên (edge computing).
2.1. Tổng quan cấu trúc của hệ thống
Hình 1 tả tổng quan cấu trúc của hệ
thống. Trong đó hệ thống được triển khai trên
3 phần: hệ thống sở dữ liệu chuỗi thời
gian; hệ thống cảm biến thông minh; hệ
thống giao diện giám sát. Các thành phần này
đều không nằm trên cùng một mạng máy tính
cục bộ. Mọi kết nối đều được thực thi qua
môi trường Internet. Người dùng thể truy
cập, giám sát các thông số của hệ thống
thông qua môi trường Internet. Hệ thống
không dùng nền tảng điện toán đám mây nên
thể tránh được nguy rỉ dữ liệu thông
qua dịch vụ của nhà cung cấp.
Hình 1. Tng quan cu trúc ca h thng
Tuyn tp Hi ngh Khoa hc thường niên năm 2024. ISBN: 978-604-82-8175-5
301
2.2. Cảm biến
Hệ thống cho phép giám sát, tự động thu
thập dữ liệu chuỗi thời gian như cảm biến
nhiệt độ, độ ẩm... từ các thiết bị IoT nhỏ gọn
như ESP8266 cảm biến DHT11. Dữ liệu
sẽ được gửi về máy chủ thông qua tên miền
được cấp bởi dịch vụ miễn phí.
2.3. Cơ sở dữ liệu
Máy chủ lưu trữ dữ liệu được triển khai
trên máy tính chạy hệ điều hành Linux hệ
thống cơ sở dữ liệu chuỗi thời gian. Điều này
cho phép hệ thống thể triển khai trên nền
tảng dữ liệu lớn. Không gian nhớ thể mở
rộng theo quy của bài toán không bị
giới hạn bởi cấu hình của thiết bị.
2.4. Giao diện giám sát
Giao diện giám sát được triển khai trên hệ
điều hành Home Assistant với tiện ích bổ sung
InfluxDB và phần cứng Raspberry Pi 4B.
3. KẾT QUẢ NGHIÊN CỨU
Hệ thống được xây dựng dựa trên thiết bị
IoT để thu thập dữ liệu gửi về máy chủ.
Trong đó, máy chủ được cài đặt hệ điều hành
Ubuntu 22.04 LTS, và hệ thống sở dữ liệu
InfluxDB. Hệ thống máy chủ web dùng để
hiển thị, giám sát dữ liệu được thực thi trên
máy tính nhúng Raspberry Pi 4B, 4GB Ram
với hệ điều hành Home Assistant.
3.1. Nút cảm biến
Cảm biến đo nhiệt độ, độ ẩm được thực thi
trên DHT11 ESP8266Wifi kích thước
nhỏ gọn. Lập trình trên bộ công cụ Adruino
IDE. Cảm biến tự động gửi dữ liệu về máy chủ
tại địa chỉ www.smarthomedhtl.duckdns.org
như hình 2 mô tả.
Hình 2. Giám sát d liu trên ESP8266
Ngoài khả năng gửi dữ liệu về hệ thống
lưu trữ sở dữ liệu chuỗi thời gian, cảm
biến được thực thi trên thiết bị IoT
ESP8266 thể được giám sát trực tiếp các
thông số thông qua WebServer triển khai trên
địa chỉ IP của thiết bị. Hình 2 tả các
thông số của cảm biến trên địa chỉ IP của
ESP8266 là 192.168.0.106.
3.2. Duck DNS
Duck DNS một dịch vụ miễn phí dùng
để trỏ DNS (tên miền phụ của duckdns.org)
đến một IP bất kì. Do vậy, nếu triển khai dịch
vụ này trên máy chủ thì máy chủ thu thập dữ
liệu có thể nhận dữ liệu từ cảm biến mà không
gặp trở ngại về việc địa chỉ IP của hệ thống
thay đổi. Hệ thống sẽ tự động cập nhật tên
miền đã đăng ký với địa chỉ IP của máy chủ.
Sau đây đoạn lệnh giúp cho hệ
thống Duck DNS cập nhật địa chỉ IP một
cách tự động.
Tạo file duck.sh tại đường dẫn
~/duckdns/duck.sh và chứa nội dung:
echo url="https://www.duckdns.org/update?
domains=smarthomedhtl&token=1800957a-
172b-4a2c-b829-1c3a67d1728c&ip=" | curl -k -o
~/duckdns/duck.log -K -
Cp nht đa ch IP tr ti bi tên min
http://homedhtl.duckdns.org bằng cách:
+ Chỉnh sửa dịch vụ cron bằng lệnh
crontab -e
+ Đưa nội dung sau vào phần cuối để
Duck DNS cập nhật địa IP sau mỗi 5 phút:
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
3.3. Home Assistant
Home Assistant được cài đặt trên phần
cứng IoT Raspberry pi 4B [6]. Phiên bản
Home Assistant: Home Assistant 2023.5.4.
Hình 3. Màn hình đăng nhp Home Assistant
Tuyn tp Hi ngh Khoa hc thường niên năm 2024. ISBN: 978-604-82-8175-5
302
Trên Hình 3, giao diện tả màn hình
đăng nhập hệ thống, Home Assistant, yêu cầu
đăng nhập theo tài khoản và mật khẩu của hệ
thống. Điều này giúp đảm bảo tính bảo mật
của hệ thống điều khiển giám sát nhà
thông minh.
3.4. Kết nối máy chủ dữ liệu
Trên h điều hành Home Assistant có hệ
thống quản lý cài đặt các tiện ích bổ sung.
Trong đó tiện ích InfluxDB, tiện ích này
giúp cho việc kết nối máy chủ dữ liệu
giám sát dữ liệu một cách dễ dàng.
Hình 4. Kết ni máy ch InfluxDB
Hình 4 mô tả cách khai báo cấu hình để truy
cập dữ liệu chuỗi thời gian trên máy chủ được
tại địa chỉ http://smarthomedhtl.duckdns.org.
Trên đó hệ thống sẽ phải khai báo Token để
đảm bảo vấn đề bảo mật.
Hình 5. Giao din giám sát d liu
Hình 5 tả giao diện giám sát dữ liệu
nhiệt độ độ ẩm. Giao diện này hoàn toàn
thể tả dữ liệu trong một khoảng thời
gian dài theo yêu cầu của người dùng. Điều
này không thể được nếu không triển khai
hệ thống lưu trữ dữ liệu như InfluxDB.
4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
4.1. Kết luận
Bài báo đã tự xây dựng được hệ thống
giám sát từ xa dựa trên hệ thống cơ sở dữ liệu
chuỗi thời gian. Hệ thống máy chủ thể tự
cu hình đ cp nht đa ch IP vi tên min
đã đăng ký với dịch vụ miễn phí DuckDNS.
Máy chủ dữ liệu được phát triển trên hệ
thống cơ sở dữ liệu chuỗi thời gian InfluxDB,
thể m rộng cấu hình một cách dễ dàng
theo công nghệ dữ liệu lớn.
Ngoài ra, bài báo xây dựng hệ thống giao
diện giám sát dựa trên tiện ích mở rộng
InfluxDB trên hệ điều hành Home Assistant
thiết bị nhúng Raspberry Pi 4B, điều này
giúp cho việc triển khai giao diện một cách
nhanh chóng.
Hệ thống hoàn toàn được triển khai trên
nền tảng nguồn mở, tự phát triển, không
dựa vào bất cứ dịch vụ điện toán đám mây
nào, điều này giúp cho việc tự chủ hệ thống,
giảm nguy rỉ dữ liệu từ phía nhà cung
cấp dịch vụ.
4.2. Hướng phát triển của đề tài
Hệ thống thể tiếp tục được mở rộng
triển khai trên diện rộng với nhiều hệ thống
sở dữ liệu hơn nhiều loại cảm biến từ
nhiều vị trí địa lý khác nhau.
5. TÀI LIỆU THAM KHẢO
[1] Thinger.io, 2023. [Trực tuyến]. Available:
https://thinger.io/.
[2] openHAB, 2023. [Trực tuyến]. Available:
https://www.openhab.org/.
[3] Home Assistant, 2023. [Trực tuyến].
Available: https://www.home-assistant.io/.
[4] Duck DNS, 2023. [Trực tuyến]. Available:
https://www.duckdns.org/.
[5] Influxdata, 2024. [Trực tuyến]. Available:
https://www.influxdata.com/.
[6] Raspberry Pi, 2023. [Trực tuyến]. Available:
https://www.raspberrypi.com/.