You are on page 1of 37

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN


VÀ TRUYỀN THÔNG VIỆT – HÀN

HỆ THỐNG NHÚNG
NGHIÊN CỨU VÀ TRIỂN KHAI HỆ THỐNG XE GIÁM
SÁT MÔI TRƯỜNG BẰNG CẢM BIẾN ỨNG DỤNG CƠ
SỞ DỮ LIỆU CASSANDRA CLOUD ASTRADB

Sinh viên thực hiện : Trần Viết An


Lê Đức Nhật
Lê Thiện Nhân
Nguyễn Văn Hiếu
Đinh Gia Bảo

Giảng viên hướng dẫn : TS. Nguyễn Vũ Anh Quang


Lớp : 19CE

Đà Nẵng, tháng 12 năm 2022


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT – HÀN

HỆ THỐNG NHÚNG
NGHIÊN CỨU VÀ TRIỂN KHAI HỆ THỐNG XE GIÁM
SÁT MÔI TRƯỜNG BẰNG CẢM BIẾN ỨNG DỤNG
CƠ SỞ DỮ LIỆU CASSANDRA CLOUD ASTRADB

Đà Nẵng, tháng 10 năm 2022


LỜI CẢM ƠN
Nhóm chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Vũ Anh Quang –
giảng viên hướng dẫn môn Hệ thống nhúng trong Khoa Kỹ thuật máy tính và Điện tử
đã nhiệt tình chỉ dạy, hỗ trợ nhóm chúng em trang bị những kiến thức, kỹ năng cơ bản
để có thể hoàn thành đề tài “Nghiên cứu và triển khai hệ thống xe giám sát môi trường
bằng cảm biến ứng dụng cơ sở dữ liệu Cassandra Cloud AstraDb” này một cách tốt
nhất.

Trong quá trình tìm hiểu, thiết kế và thực hiện đề tài, do kiến thức chuyên ngành
còn hạn chế nên vẫn còn nhiều thiếu sót trong việc tìm hiểu, nghiên cứu, trình bày về
đề tài cũng như tạo được một sản phẩm hoàn thiện. Nhóm chúng em mong sẽ nhận
được sự đóng góp, đánh giá của các quý thầy, cô về kết quả thực hiện đề tài của nhóm.
Đó là những kiến thức quý giá để cả nhóm cũng như từng thành viên chúng em có thể
hoàn thiện và phát triển đề tài này cũng như cho các đề tài sau này.

Xin chân thành cảm ơn.

Nhóm sinh viên thực hiện

Trần Viết An

Lê Đức Nhật

Lê Thiện Nhân

Nguyễn Văn Hiếu

Đinh Gia Bảo


NHẬN XÉT
(Của giảng viên hướng dẫn)
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................

Đà Nẵng, ngày … tháng … năm 2022


Giảng viên hướng dẫn

TS. Nguyễn Vũ Anh Quang


MỤC LỤC
LỜI CẢM ƠN..............................................................................................................3
NHẬN XÉT..................................................................................................................4
MỤC LỤC.................................................................................................................... 5
DANH MỤC HÌNH ẢNH............................................................................................7
BẢNG PHÂN CÔNG NHIỆM VỤ.............................................................................8
MỞ ĐẦU....................................................................................................................... 9
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI....................................................................10
1.1. Tổng quan đề tài................................................................................................10
1.2. Phương pháp thực hiện......................................................................................10
1.3. Đối tượng và phạm vi thực hiện........................................................................11
1.4. Nội dung thực hiện............................................................................................11
CHƯƠNG 2 XÂY DỰNG MÔ HÌNH HỆ THỐNG...........................................13
2.1. Mô hình hệ thống điều khiển động cơ...............................................................13
2.2. Mô hình hệ thống kết nối truyền tải dữ liệu cảm biến môi trường.....................13
CHƯƠNG 3 TRIỂN KHAI THỰC HIỆN ĐỀ TÀI............................................14
3.1. Chuẩn bị phần cứng...........................................................................................14
3.1.1. ESP8266NodeMCU....................................................................................14
3.1.2. Module điều khiển động cơ L298N.............................................................14
3.1.3. Module Bluetooth HC05.............................................................................15
3.1.4. Module cảm biến DHT11............................................................................16
3.1.5. Module cảm biến độ ẩm đất........................................................................16
3.1.6. Động cơ.......................................................................................................17
3.2. Phần mềm và cơ sở dữ liệu................................................................................18
3.2.1. Phần mềm....................................................................................................18
3.2.2. Cơ sở dữ liệu...............................................................................................19
3.3. Sơ đồ lắp đặt......................................................................................................21
3.4. Lưu đồ thuật toán...............................................................................................21
3.5. Tạo cơ sở dữ liệu với AstraDb...........................................................................23
3.5.1. Đăng ký hoặc đăng nhập tài khoản DataStax AstraDB...............................23
3.5.2. Tạo cơ sở dữ liệu.........................................................................................24
3.5.3. Tạo bảng cơ sở dữ liệu và trường dữ liệu....................................................25
3.6. Spring boot........................................................................................................30
3.7. Kết nối astra với spring boot..............................................................................31
CHƯƠNG 4 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN........................................33
4.1 Kết quả thực hiện đề tài......................................................................................33
4.1.1. Sản phẩm đạt được......................................................................................33
4.1.2. Kết quả đạt được và những hạn chế............................................................34
4.2. Hướng phát triển................................................................................................35
TÀI LIỆU THAM KHẢO.........................................................................................36
DANH MỤC HÌNH ẢNH
Hình 2.1: Mô hình hệ thống điều khiển động cơ..........................................................13
Hình 2.2: Mô hình hệ thống kết nối truyền trải dữ liệu xảm biến môi trường..............13
Hình 3.1: ESP8266NodeMCU.....................................................................................14
Hình 3.2: Module điều khiển động cơ L298N.............................................................14
Hình 3.3: Module Bluetooth HC05..............................................................................15
Hình 3.4: Module cảm biến DHT11............................................................................16
Hình 3.5: Module cảm biến độ ẩm đất.........................................................................16
Hình 3.6: Động cơ DC.................................................................................................17
Hình 3.7: Động cơ Servo SG90...................................................................................17
Hình 3.8: Phần mềm Arduio IDE.................................................................................18
Hình 3.9: Phần mềm Android Studio...........................................................................19
Hình 3.10: Logo phần mềm Fritzing............................................................................19
Hình 3.11: Cassandra Cloud AstraDb..........................................................................20
Hình 3.12: Sơ đồ lắp đặt..............................................................................................21
Hình 3.13: Lưu đồ thuật toán.......................................................................................21
Hình 3.14: Trang chủ AstraDb.....................................................................................23
Hình 3.15: Tạo tài khoản AstraDb...............................................................................23
Hình 3.16: Đăng nhập vào AstraDb.............................................................................24
Hình 3.17: Đăng nhập thành công vào AstraDb..........................................................24
Hình 3.18: Tạo Database (1)........................................................................................24
Hình 3.19: Tạo Database (2)........................................................................................25
Hình 3.20: Tạo Database thành công...........................................................................25
Hình 3.21: Trag làm việc với database vừa tạo............................................................25
Hình 3.22: Database mẫu.............................................................................................26
Hình 3.23:Tab Connect................................................................................................26
Hình 3.24: Tạo token key............................................................................................26
Hình 3.25: Select role..................................................................................................26
Hình 3.26: Tạo Token key thành công.........................................................................27
Hình 3.27: Swagger UI................................................................................................27
Hình 3.28: Tạo các trường Database với Swagger UI..................................................28
Hình 3.29: Truy vấn cơ sở dữ liệu vừa tạo...................................................................30
Hình 3.30: Spring Boot................................................................................................30
Hình 3.31: Download bundle file.................................................................................31
Hình 4.1: Giao diện khởi động ứng dụng điều khiển...................................................33
Hình 4.2: Giao diện kết nối, điều khiển.......................................................................33
Hình 4.3: Giao diện ứng hiển thị dữ liệu......................................................................33
Hình 4.4:Data display..................................................................................................34
Hình 4.5: Data through graphs.....................................................................................34
Hình 4.6: Mô hình hệ thống xe....................................................................................34
BẢNG PHÂN CÔNG NHIỆM VỤ
Tỉ Lệ Hoàn
STT Họ Và Tên Nhiệm Vụ
Thành (%)
- Thiết kế mô hình hoạt động hệ thống.
- Xây dựng ứng điều khiển thông qua
1 Trần Viết An Bluetooth trên hệ điều hành Android.
- Lập trình Arduino/ESP và Kotlin.
- Chỉnh sửa nội dung báo cáo và slide
- Thiết kế mô hình kết nối, giao tiếp giữa
Server và ứng dụng hiển thị dữ liệu thu
thập được từ vi điều khiển ESP.
2 Lê Đức Nhật - Xây dựng ứng dụng Android kết nối với
Server và DataStax AstraDb.
- Lập trình Anduino/ESP và Kotlin.
- Chỉnh sửa nội dung báo cáo và slide
- Tìm hiểu lý thuyết về giao thức mạng
HTTP.
- Tìm hiểu, thực hiện kết nối, giao tiếp
3 Lê Thiện Nhân
giữa ESP8266 với Server
- Lập trình ESP8266
- Thiết kế hoàn thiện slide báo cáo.
- Tìm hiểu về cơ sở dữ liệu Cassandra
Cloud AstraDb.
4 Nguyễn Văn Hiếu - Thực hiện tạo cơ sở dữ liệu với AstraDb
- Lập trình ESP8266
- Hoàn thiện cuốn báo cáo.
- Tìm hiểu về các linh kiện, cảm biến.
- Lắp đặt hệ thống xe.
5 Đinh Gia Bảo - Lập trình ESP8266 đọc dữ liệu từ các
cảm biến và điều khiển động cơ.
- Làm báo cáo
MỞ ĐẦU
Hệ thống nhúng là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng
vào trong một môi trường hay một hệ thống mẹ. Đó là các hệ thống tích hợp cả phần
cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công
nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống
nhúng là hoạt động ổn định và có tính năng tự động hoá cao.

Hiện nay hệ thống nhúng có mặt trong rất nhiều các sản phẩm gần gũi với cuộc
sống con người như các hệ thống dẫn đường trong không lưu, hệ thống định vị toàn
cầu, vệ tinh; các thiết bị gia dụng: tủ lạnh, lò vi sóng, lò nướng,… hay các thiết bị kết
nối mạng: router, hub, gateway,… và cả các thiết bị mà chúng ta sử dụng hằng ngày
như điện thoại, máy tính, đồng hồ thông minh, ngay cả trên các phương tiện giao
thông hiện đại.

Nhận thấy tình hình biến đổi khí hậu ở nước ta có nhiều biến động, đặt biệt là trong
mùa mưa bão, nhiều khu vực vùng núi có nguy cơ bị sạt lỡ, gây ảnh hưởng đến cuộc
sống, sinh hoạt của người dân ở đây mà việc thực hiện kiểm tra địa chất với đại hình
vùng núi khá khó khăn, tìm ẩn nguy cơ mất an toàn trong khi thực hiện vì không biết
tình hình khu vực đó thế nào. Vì vậy nhóm chúng em sẽ thực hiện đề tài “Nghiên cứu
và triển khai hệ thống xe giám sát môi trường bằng cảm biến ứng dụng cơ sở dữ liệu
Cassandra Cloud AstraDb”. Với đề tài lần này mà chúng em sẽ xây dựng được một hệ
thống nhúng cơ bản hoàn thiện, có sự kết hợp giữa công nghệ IoT và cơ sở dữ liệu
AstraDb. Sản phầm của đề tài này sẽ giúp ích rất nhiều trong việc thực hiện kiểm ta
địa chất hay khi hậu từ xa tại khu vực có nguy cơ bị sạt lỡ đất, những nơi có địa hình
phức tạp mà con người khó có thể đi đến được, đây là một biện pháp an toàn để bảo vệ
cho con người cũng như tạo điều kiện thuận lời nhất để thu thập dữ liệu môi trường để
phục vụ cho việc phân tích dữ liệu, dự đoán thiên tai.

10
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1. Tổng quan đề tài
Với đề tài “Nghiên cứu và triển khai hệ thống xe giám sát môi trường bằng cảm
biến ứng dụng cơ sở dữ liệu Cassandra Cloud AstraDB” khi hoàn thiện có thể sẽ giúp
ích rất nhiều trong việc thực hiện kiểm ta địa chất hay khi hậu từ xa tại khu vực có
nguy cơ bị sạt lỡ đất, những nơi có địa hình phức tạp mà con người khó có thể đi đến
được, đây là một biện pháp an toàn để bảo vệ cho con người cũng như tạo điều kiện
thuận lời nhất để thu thập dữ liệu môi trường để phục vụ cho việc phân tích dữ liệu,
dự đoán thiên tai.

Mục tiêu cụ thể thực hiện đề tài như sau:

- Nắm kiến thức căn bản về hệ thống nhúng, công nghệ IoT.

- Thiết kế mô hình hoạt động của hệ thống.

- Thiết kế, mô hình hóa các chức năng cần có của hệ thống.

- Nắm nguyên lý hoạt động của các linh kiện cảm biến, module được sử dụng
trong hệ thống.

- Thiết kế, xây dựng ứng dụng điều khiển, hiển thị dữ liệu thu thập được trên
nền tảng Android.

- Tìm hiều, phân tích, ứng dụng được cơ sở dữ liệu AstraDb vào trong đề tài để
lưu trữ dữ liệu.

- Thử nghiệm hoạt động và cách sử dụng của các linh kiện điện tử như các cảm
biến, module Bluetooth nhận tín hiệu điều khiển từ ứng dụng Android, truyền
dữ liệu thu thập được từ cảm biến thông qua Internet.

- Ứng dụng các kiến thức về lập trình nhúng để lập trình cho hệ thống.

Mục tiêu lớn nhất của đề tài là nhằm nâng cao trình độ hiểu biết của bản thân về
chuyên ngành kỹ thuật điện tử, lập trình nhúng, công nghệ IoT, tự tạo cho bản thân
các thử thách khó, đặt ra và tự bản thân vượt qua để hoàn thiện mình.

1.2. Phương pháp thực hiện


Về mặt lý thuyết:

11
- Nguyên cứu tổng quan về các vấn đề thực tế gặp phải của đề tài.

- Nguyên cứu tổng quan về nguyên lý hoạt động của từng thiết bị, từng module
cảm biến, vi điều khiển ESP8266.

- Nguyên cứu cách thức truyền nhận dữ liệu thu thập từ cảm biến đến Server và
cơ sở dữ liệu AstraDB.

Về mặt thực nghiệm:

- Tích hợp các thiết bị thành một hệ thống, thực hiện lắp đặt và chạy thử
nghiệm.

- Thiết kế, xây dựng ứng dụng điều khiển chạy trên nền tảng Android.

- Xử lý dữ liệu truyền nhận , hiển thị lên giao diện và điều khiển được các thiết
bị thông qua giao diện đó.

- Tạo mới, sử dụng cơ sở dữ liệu AstraDb với tài khoảng dùng thử.

1.3. Đối tượng và phạm vi thực hiện


Đối tượng nghiên cứu:

- Hệ thống nhúng trong điều khiển xe không dây.

- Linh kiện điện tử, nguyên lý hoạt động của các cảm biến.

- Giải pháp, thiết lập điều khiển hoạt động của xe thông qua sóng Bluetooth.
Giao diện ứng dụng giám sát môi trường.

- Phương thức giao tiếp dữ liệu giữa hệ thống nhà thông minh và không gian
mạng.

Phạm vi nghiên cứu:

- Mô hình hệ thống xe giám sát môi trường dựa trên kiến thức về hệ thống
nhúng, vi điều khiển các giao thức kết nối thông qua mạng dựa trên nền tảng
Internet of Things và nền tảng Android.

1.4. Nội dung thực hiện


Xây dựng hệ thống gồm:

- Cảm biến nhiệt độ, độ ẩm môi trường DHT11

12
- Cảm biến biến độ ẩm đất

- Giao tiếp điều khiển không dây thông qua module bluetooth.

- Điều khiển chiều xoay, tốc độ của động cơ DC.

- Dùng động cơ servo để thay đổi vị trí cảm biến đất khi đo đạt, lấy giữ liệu.

Thiết kế sơ đồ mô hình tổng thể.

Thi công phần cứng, lắp đặt mô hình hệ thống xe.

Lập trình, thiết lập và kết nối ESP8266 vào mạng, liên kết server và AstraDb.

Lập trình, xây dựng ứng dụng điều khiển, ứng dụng hiển thị dữ kiệu trên Android.

Kiểm thử, đánh giá, hiệu chỉnh hệ thống.

13
CHƯƠNG 2 XÂY DỰNG MÔ HÌNH HỆ THỐNG
2.1. Mô hình hệ thống điều khiển động cơ

Hình 2.1: Mô hình hệ thống điều khiển động cơ

Mô tả hoạt động:

- Tại Android app Control car sẽ kết nối với xe thông qua sóng Bluetooth và sẽ
truyền các giá trị điều khiển dưới dạng các ký tự.

- ESP8266 được sử dụng làm trung tâm xử lý hoạt động. Kết nối với module
Bluetooh với chuẩn giao tiếp UART nhận tín hiệu điều khiển từ app. Đồng
thời xử lý, cấu hình điều khiển động cơ theo tín hiệu nhận được thông qua
module L298N.

2.2. Mô hình hệ thống kết nối truyền tải dữ liệu cảm biến môi trường

Hình 2.2: Mô hình hệ thống kết nối truyền trải dữ liệu xảm biến môi trường

Mô tả hoạt động:

- ESP8266 được sử dụng làm trung tâm xử lý.

- ESP đọc giá trị từ các cảm biến thông qua các chân GPIO. Kết nối với server
thông qua giao thức HTTP để đưa dữ liệu lên theo dạng các chuổi json.

- Server sẽ tiếp nhận dữ liệu từ ESP8266 đưa lên và sẽ lưu vào cơ sở dữ liệu
AstraDB để lưu trữ, đồng thời sẽ kết nối với Android app Display collected
data để hiển thị các giá trị thu thập được từ các cảm biến ở trên xe.

14
CHƯƠNG 3 TRIỂN KHAI THỰC HIỆN ĐỀ TÀI
3.1. Chuẩn bị phần cứng
3.1.1. ESP8266NodeMCU
NodeMCU ESP8266 được phát triển dựa trên Chip WiFi ESP8266EX bên trong
Module ESP-12E dễ dàng kết nối WiFi với một vài thao tác. Board còn tích hợp IC
CP2102, giúp dễ dàng giao tiếp với máy tính thông qua Micro USB để thao tác với
board. Và có sẳn nút nhấn, Led để tiện trong quá trình học, nghiên cứu. ESP8266
được sử dụng rộng rãi trong các dự án IOT, ESP8266 Blynk.

Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi
để tạo thành project, sản phẩm mẫu một cách nhanh chóng.

Hình 3.1: ESP8266NodeMCU

3.1.2. Module điều khiển động cơ L298N


Module điều khiển motor sử dụng IC điều khiển L298N có thể điều khiển 2 động
cơ một chiều hoặc 1 động cơ bước 4 pha, có thể điều khiển với dòng đỉnh đạt 2A. IC
L298N được gắn với các đi ốt trên board giúp bảo vệ vi xử lý chống lại các dòng điện
cảm ứng từ việc khởi động/ tắt động cơ.

Hình 3.2: Module điều khiển động cơ L298N


15
Thông số kỹ thuật:

- Driver: L298N tích hợp hai mạch cầu H.

- Điện áp điều khiển: +5 V ~ +12 V

- Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)

- Điện áp của tín hiệu điều khiển: +5 V ~ +7 V

- Dòng của tín hiệu điều khiển: 0 ~ 36mA

- Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃)

3.1.3. Module Bluetooth HC05


Mạch thu phát Bluetooth HC-05 đã ra chân được thiết kế nhỏ gọn ra chân tín hiệu
giao tiếp cơ bản và nút bấm để vào chế độ AT COMMAND, mạch được thiết kế để
có thể cấp nguồn và giao tiếp qua 3.3VDC hoặc 5VDC, thích hợp cho nhiều ứng
dụng khác nhau: Robot Bluetooth, điều khiển thiết bị qua Bluetooth,....

Hình 3.3: Module Bluetooth HC05

Thông số kĩ thuật

- Điện áp hoạt động: 3V3-5V DC

- Dòng điện tiêu thụ: 20-30mA

- Sử dụng chip: CSR Bluetooth V2.0

- Kích thước: 28x15x2,35mm

- Giao tiếp: UART (TX, RX)

- Cấu hình Slave mặc định, không thay đổi được.

- Mật khẩu: 1234


16
3.1.4. Module cảm biến DHT11
DHT11 Là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu
thông qua giao tiếp one-wire (giao tiếp digital one-wire truyền dữ liệu duy nhất).
Cảm biến được tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về được chính xác
mà không cần phải qua bất kỳ tính toán nào.

Hình 3.4: Module cảm biến DHT11

Thông số kỹ thuật:

- Điện áp hoạt động: 3V - 5V (DC)

- Dải độ ẩm hoạt động: 20% - 90% RH, sai số ±5%RH

- Dải nhiệt độ hoạt động: 0°C ~ 50°C, sai số ±2°C

- Khoảng cách truyền tối đa: 20m

3.1.5. Module cảm biến độ ẩm đất.


Cảm biến đo độ ẩm đất hay còn được gọi là máy đo độ ẩm đất. Nó chủ yếu được
sử dụng để đo hàm lượng thể tích nước của đất, theo dõi độ ẩm của đất, tưới tiêu
nông nghiệp và bảo vệ lâm nghiệp.

Hình 3.5: Module cảm biến độ ẩm đất

Thông số kỹ thuật:

- Điện áp hoạt động: 3.3V-5V


17
- Kích thước PCB: 3cm * 1.6cm
- Led đỏ báo nguồn vào, Led xanh báo độ ẩm.
- IC so sánh: LM393
- VCC: 3.3V-5V
- GND: 0V
- D0: Đầu ra tín hiệu số
- A0: Đầu ra Analog

3.1.6. Động cơ.


Động cơ DC tốc độ cao được sử dụng rộng rãi cho các loại ô tô đồ chơi nhỏ. Có
thể sử dụng động cơ siêu nhỏ để làm mô hình ô tô, tàu thuyền, hệ thống làm mát, khá
dễ dàng và tiện lợi

Hình 3.6: Động cơ DC

Thông số kỹ thuật:

- Điện áp hoạt động: 3-5V

- Tốc độ quay: 1700 vòng / phút ~ 3600 vòng / phút

Động cơ Servo SG90 là động phổ biến dùng trong các mô hình điều khiển nhỏ và
đơn giản. Động cơ có tốc độ phản ứng nhanh, được tích hợp sẵn Driver điều khiển
động cơ, dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM.
Công dụng chính của động cơ servo là đạt được góc quay chính xác trong khoảng từ
90o – 180o.

Hình 3.7: Động cơ Servo SG90

18
Thông số kỹ thuật:

- Điện áp hoạt động: 4.2 – 6V

- Nhiệt độ hoạt động: 0ºC – 55ºC

- Tốc độ hoạt động: 60o trong 0.1 giây

- Momen xoắn: 1.8kg/cm

3.2. Phần mềm và cơ sở dữ liệu


3.2.1. Phần mềm
Arduino IDE:

- Để viết chương trình điều khiển cho ESP, ta dùng phần mềm Arduino IDE

- Arduino IDE (Arduino Integrated Development Environment) là một trình


soạn thảo văn bản, giúp viết code và nạp vào bo mạch.

Hình 3.8: Phần mềm Arduio IDE

Android Studio:

- Để viết chương trình tạo ứng dụng điều khiển, ta dùng phần mềm Android
Studio.

- Android Studio là môi trường phát triển tích hợp (IDE) chính thức cho việc
phát triển ứng dụng Android với ngôn ngữ lập trình java và kotlin.

19
Hình 3.9: Phần mềm Android Studio

Phần mềm Fritzing

- Fritzing dùng để vẽ sô đồ lắp đặt hệ thống một cách trực quan hơn.

- Fritzing là phần mềm tự động hóa thiết kế điện tử, được phát triển nhằm hỗ trợ
thiết kế dự án và xây dựng ý tưởng. Bên cạnh đó, Fritzing còn được sử dụng
làm công cụ hỗ trợ giáo dục, cung cấp tất cả các kiến thức tạo và xử lý các
bảng mạch in PCB và các thành phần điện tử khác.

Hình 3.10: Logo phần mềm Fritzing

3.2.2. Cơ sở dữ liệu
Cassandra là một cơ sở dữ liệu phân tán kết hợp mô hình dữ liệu của Google
Bigtable với thiết kế hệ thống phân tán như bản sao của Amazon Dynamo. Tất cả
được thực hiện bởi Java và được cung cấp trong ASL 2 (Giấy phép Phần mềm
Apache Phiên bản 2).

Các tính năng ưu việt của Cassandra bao gồm 9 điểm sau:

- Thích hợp để sử dụng thực tế

- Khả năng chịu lỗi cao

20
- Kiến trúc không có SPOF (một điểm gây tổn hại)

- Mức độ tự do kiểm soát nhất quán

- Mô hình dữ liệu phong phú

- Có thể tăng cường cải thiện thông lượng cho tuyến tính

- Tính khả dụng cao

- Hỗ trợ các ngôn ngữ khác nhau dưới dạng client code

- Dễ dàng nắm bắt trạng thái bên trong của máy chủ bằng JMX/Dễ giám sát

Hình 3.11: Cassandra Cloud AstraDb

Không có SPOF vì kiến trúc của Cassandra không có nút chính. Kết quả là, toàn
bộ hệ thống sẽ không dừng lại do một phần nào đó bị thất bại, service vẫn tiếp tục
được vận hành, vì vậy có thể nói rằng khả năng chịu lỗi là rất cao.

Cassandra thu thập dữ liệu bằng framework có tên là Thrift. Thrift có một cơ chế
để giao tiếp với nhiều các ngôn ngữ khác nhau, vì vậy khách hàng Cassandra có thể
đối ứng với nhiều ngôn ngữ khác nhau ví dụ như C ++, Java, Python, PHP, Ruby,
Erlang, Perl, C #, Objective-C, Smalltalk, OCaml...

21
3.3. Sơ đồ lắp đặt

Hình 3.12: Sơ đồ lắp đặt

3.4. Lưu đồ thuật toán

Hình 3.13: Lưu đồ thuật toán


22
Hệ thống sử dụng hai khối hoạt động riêng lẻ cùng trên một xe nên lưu đồ sẽ có
hai phần cùng bắt đầu:

- Control Car:

 Đầu tiên, khai báo thư viện, các chân của vi điều khiển cần sử dụng và khởi
tạo các biến ban đầu

 Tiếp theo, trong hàm void setup(), cấu hình chức năng hoạt động của các
chân, gọi các hàm bất đầu sử dụng của thư viện.

 Trong hàm void loop() – [khối while(1)] sẽ là 1 vòng lặp vô hạn, là phần
chương trình chính để xe hoạt động. Trong hàm này, bất đầu cấu hình kết nối
Bluetooth thông qua module Bluetooth HC05. Nếu kết nối thất bại sẽ phải
cấu hình kết nối lại. Nếu kết nối thành công sẽ nhận tín hiệu điều khiển thông
qua bluetooth, và gán cho mỗi ký hiệu nhận được với các hàm chức năng như
điều chỉnh tốc độ động cơ, điều chỉnh hướng duy chuyển của xe, và góc quay
của động cơ servo.

- Connect Server:

 Đầu tiên, khai báo các thư viện, các chân của vi điều khiển cần sử dụng và
khởi tạo các biến ban đầu dùng để kết nối WiFi, kết nối với Server.

 Tiếp theo, trong hàm void setup(), cấu hình chức năng hoạt động của các
chân, gọi các hàm bất đầu sử dụng của thư viện. Thiết lập kết nối mạng thông
qua WiFi, vòng lặp while(WiFi connect) chỉ dừng khi đã kết nối được với
WiFi.

 Trong hàm void loop() – [khối while(1)] sẽ là 1 vòng lặp vô hạn, là phần
chương trình chính để kết nối và gửi dữ liệu cảm biến thu tập được lên
Server. Trong hàm này, bất đầu sẽ kiểm tra trạng thái kết nối với WiFi và
thực hiện kết nối với Server, đóng gói dữ liệu đọc từ các cảm biến thành 1
chuổi json. Sau đó sẽ gửi lên Server, nếu gửi lên thất bại thì sẽ nhân được
thông báo lỗi kết nối, kết thúc kết nối với Server và thực hiện lại việc kết nối
ở trên. Nếu kết nối thành công, Server sẽ gửi phản hồi đã nhận được gói tin,
dừng kết nối và lặp lại quá trình kết nối và gửi dữ liệu lên Server.

23
3.5. Tạo cơ sở dữ liệu với AstraDb
3.5.1. Đăng ký hoặc đăng nhập tài khoản DataStax AstraDB
Truy cập theo đường dẫn sau: https://auth.cloud.datastax.com/

Hình 3.14: Trang chủ AstraDb

Nếu chưa có tài khoản, nhấn Sign Up và điền các thông tin để tạo tài khoản:

Hình 3.15: Tạo tài khoản AstraDb

Bạn có thể đăng nhập bằng tài khoản Google hoặc Github của mình hoặc bằng tài
khoản bạn đã đăng ký ở bước trên

24
Hình 3.16: Đăng nhập vào AstraDb

Sau khi đăng nhập thành công, bạn sẽ được chuyển đến trang làm việc của mình.

Hình 3.17: Đăng nhập thành công vào AstraDb

3.5.2. Tạo cơ sở dữ liệu

Hình 3.18: Tạo Database (1)

Tại: Quick Access -> chọn Create Database

Sau đó điền Database name, Keyspace name và Select the provider and region.
(Ở đây đang sử dụng tài khoản dùng thử nên sẽ bị giới hạn một số nhà cung cấp và
khu vực, nếu bạn muốn trải nghiệm tốt hơn vui lòng đăng ký Unlock all regions).
Sau đó nhấn Create Database và đợi trong giây lát để khởi tạo cơ sở dữ liệu.
25
Hình 3.19: Tạo Database (2)

Tiếp theo nhấn Go To Database để sử dụng cơ sở dữ liệu trên Datastax AstraDB.

Hình 3.20: Tạo Database thành công

Hình 3.21: Trag làm việc với database vừa tạo

Hoàn thành bước 2

3.5.3. Tạo bảng cơ sở dữ liệu và trường dữ liệu


Dưới đây là cơ sở dữ liệu mẫu được sử dụng cho việc dùng thử AstraDb
26
Hình 3.22: Database mẫu

Để kết nối và gửi dữ liệu từ Server đến DataStax AstraDB sẽ thông qua REST
API, phần Connect và chọn {REST:API}.

Hình 3.23:Tab Connect

Tiếp theo chúng ta sẽ tạo token để phục vụ trong kết nối giữa Server và AstraDB
bằng cách nhấn vào Application Token, và tạo bảng cơ sở dữ liệu trong Swagger UI
(click vào liên kết trong phần 2.Lauchn Swagger UI)
Tạo Token: Sau khi click vào Application Token sẽ đến trang quản lý token. Trong vai trò được chọn,
chọn Administrator User rồi chọn Generate Token.

Hình 3.24: Tạo token key

Hình 3.25: Select role

27
Hình 3.26: Tạo Token key thành công

Tạo bảng cơ sở dữ liệu trong Swagger UI: Sau khi nhấp vào liên kết trong Lauchn
Swagger UI, bạn sẽ được chuyển đến giao diện làm việc của Swagger UI.

Hình 3.27: Swagger UI

Trong phần Schemas chọn dòng: POST /v2/schemas/keyspace/…..

Bấm chọn Try it out.

28
Nhập không gian phím được cơ sở dữ liệu sử dụng trong trường keyspaceName

Hình 3.28: Tạo các trường Database với Swagger UI

Ở phần body, chúng ta sẽ tạo bảng cơ sở dữ liệu ở dạng chuỗi json. tạo một cơ sở
dữ liệu như Hình 3.22 sau:

{
"name": "collection",
"primaryKey": {
"partitionKey": [ "id" ],
"clusteringKey": [ ]
},
"columnDefinitions": [ {
"name": "id",
"typeDefinition": "text",
"static": false
}, {
"name": "position",
"typeDefinition": "text",
"static": false
}, {
"name": "temprature",
"typeDefinition": "text",
"static": false
}, {
"name": "humility",
"typeDefinition": "text",
"static": false
29
}, {
"name": "amount_of_rain",
"typeDefinition": "text",
"static": false
} ],
"ifNotExists": true,
"tableOptions": {
"defaultTimeToLive": 0,
"clusteringExpression": [ ]
}
}
Bạn có thể thay đổi chuỗi json trên cho phù hợp với cơ sở dữ liệu mà bạn muốn
tạo như tên bảng, khóa chính, tên các trường dữ liệu, kiểu dữ liệu đầu vào.

Nhấn Execute để thực hiện việc tạo.

Để kiểm tra bảng cơ sở dữ liệu đã được tạo thành công hay chưa, bạn thực hiện
các bước sau: Quay lại Dashboard -> CQL Console -> chạy lệnh USE key19ce;
(key19ce là keyspacename của cơ sở dữ liệu); chạy lệnh DESC TABLES; (dùng để
hiển thị tất cả các bảng cơ sở dữ liệu đã tạo). Bạn thấy rằng bảng thu thập đã được
tạo thành công. Chạy lệnh chọn * từ bộ sưu tập; để xem các trường cơ sở dữ liệu của
bảng bộ sưu tập.

30
Hình 3.29: Truy vấn cơ sở dữ liệu vừa tạo

3.6. Spring boot


Spring Boot giúp dễ dàng tạo các Ứng dụng dựa trên Spring cấp độ sản xuất, độc
lập mà bạn có thể "chỉ cần chạy".

Cơ sở dữ liệu Apache Cassandra NoSQL cung cấp nhiều khả năng mới cho các
nhóm đang tìm kiếm giải pháp để xử lý các luồng dữ liệu có tốc độ cao, khối lượng
lớn và biến đổi. Cách suy nghĩ mới này giới thiệu các khái niệm mới và một lộ trình
học tập có thể gây sợ hãi cho các thành viên trong nhóm và người quản lý nhóm. Dữ
liệu mùa xuân cho Apache Cassandra cung cấp một giao diện quen thuộc cho những
người đã sử dụng các mô-đun Dữ liệu mùa xuân khác trong quá khứ.

- Thời gian học tập để phát triển ứng dụng với Apache Cassandra giảm đáng kể
khi sử dụng Dữ liệu mùa xuân cho Apache Cassandra. Với khả năng duy trì ở mức
cao với các POJO được chú thích hoặc ở mức thấp với khả năng nhập dữ liệu hiệu
suất cao, các mẫu Spring Data cho Apache Cassandra chắc chắn sẽ đáp ứng mọi nhu
cầu của ứng dụng.

Hình 3.30: Spring Boot

31
Đặc trưng

- Xây dựng kho lưu trữ dựa trên các giao diện Spring Data phổ biến

- Hỗ trợ cho các hoạt động dữ liệu đồng bộ, phản ứng và không đồng bộ

- Hỗ trợ tạo Keyspace dựa trên XML và tạo Bảng CQL

- Hỗ trợ JavaConfig và XML cho tất cả các khả năng của cụm và phiên

- Dịch ngoại lệ sang cấu trúc phân cấp Spring DataAccessException quen thuộc

- QueryBuilders thuận tiện để loại bỏ nhu cầu học CQL

- Tự động triển khai các giao diện Kho lưu trữ bao gồm hỗ trợ các phương thức
truy vấn tùy chỉnh

- Phiên bản 2.x dựa trên Trình điều khiển Java CQL DataStax 3.x, phiên bản 3.x
sử dụng Trình điều khiển Java DataStax 4.x

3.7. Kết nối astra với spring boot


Download bundle file

Hình 3.31: Download bundle file

32
Thêm drive spring-data-cassandra 

Khai báo các thông số của database và add file bundle vừa tải về

Khai báo entity cần tạo 

33
CHƯƠNG 4 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN
4.1 Kết quả thực hiện đề tài.
4.1.1. Sản phẩm đạt được
Sau thời gian tìm hiểu và triển khai thực hiện thì đề tài “Nghiên cứu và triển khai
hệ thống xe giám sát môi trường bằng cảm biến ứng dụng cơ sở dữ liệu Cassandra
cloud AstraDb ” đã được hoàn thành với những kết quả đạt được như sau:

Ứng dụng điều khiển xe thông qua Bluetooth:

Hình 4.1: Giao diện khởi động ứng dụng điều khiển

Hình 4.2: Giao diện kết nối, điều khiển

Ứng dụng hiển thị dữ liệu từ cảm biến thông qua cơ sở dữ liệu AstraDb

Hình 4.3: Giao diện ứng hiển thị dữ liệu

34
Hình 4.4:Data display Hình 4.5: Data through graphs

Sản phẩm mô hình hệ thống xe:

Hình 4.6: Mô hình hệ thống xe

4.1.2. Kết quả đạt được và những hạn chế


Kết quả đạt được:

- Hoàn thiện đề tài theo đúng mô hình đã đề ra ban đầu.

- Mô hình sản phẩm đã căn bản hoàn thiện.

- Các chức năng hoạt động tốt.

- Ứng dụng Android: các chức năng căn bản hoàn thiện, hoạt động tốt trên
nhiều phiên bản Android, có thể điều khiển ở mọi nơi.

- Kết nối, sử dụng được cơ sở dử liệu AstraDb vào trong đề tài.

35
Hạn chế :

- Sản phẩm dừng lại ở dạng mô hình chưa ứng dụng, giải quyết được các vấn đề
trong thực tế.

- Nhiều cảm biến có chất lượng chưa được tốt.

- Ứng dụng Android: ứng dụng điều khiển và hiển thị tách biệt nhau chưa thống
nhất lại thành một, chỉ điều khiển hoạt động cho một hệ thống duy nhất, chức
năng không nhiều.

- Do sử dụng tài khoản dùng thử nên chưa thể khai thách hết được những ưu
điểm của Cassandra Cloud AstraDb.

4.2. Hướng phát triển


Hiện nay, nhiều công nghệ mới, sản phẩm robot được tạo ra nhằm phục vụ cho đời
sống của con người cũng như hỗ trợ trong nhiều lĩnh vực, đặt biệt là thay thế con
người làm những công việc có mức độ nguy hiểu cao, những nơi mà con người
không thể trực tiết đến được.

Từ những ưu nhược điểm của dự án lần này cùng với xu hướng hiện nay, hướng
phát triển của đề tài là có thể tạo nên một hệ thống nhúng hoàn chỉnh hơn. Tích hợp
thêm các cảm biến chuyên dụng vào mạch cũng như sản phẩm để cập nhật đầy đủ
nhất các thông số môi trường như chất lượng không khí. Tối ưu hóa việc lựa chọn
thiết bị phần cứng cũng như thuật toán lập trình phù hợp. Mở rộng việc cập nhật dữ
liệu như phát triển App hiển thị đầy đủ hơn và mở rộng các phương tiện cập nhật như
Website. Phối hợp với các chuyên gia môi trường để cập nhật và có biện pháp điều
chỉnh, làm trong sạch môi trường.

36
TÀI LIỆU THAM KHẢO
Bài báo – sách:

[1]

[2]

[3]

[4]

Website:

[1]

[2]

[3]

[4]

37

You might also like