PHÂN TÍCH VÀ THIẾT KÉ HỆ THÓNG

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng hệ thống giám sát, điều khiển từ xa các thiết bị nhà thông minh Zigbee thông qua website và giọng nói (Trang 48 - 73)

TÓM TÁT KHÓA LUẬN

Chương 3. PHÂN TÍCH VÀ THIẾT KÉ HỆ THÓNG

3.1. Phân tích hệ thống

3.1.1. Mô hình hệ thống

Internet

Gateway

Mesa

Apache [Rhasspy

|

Client

Hình 3.1 Mô hình kiến trúc hệ thong 3.1.2. Phân tích mô hình hệ thống

Mạch công tắc sẽ bao gồm 04 công tắc để điều khiển tín hiệu trạng thái bật hay tất. Mạch được kết nói tới gateway thông qua Zigbee nhờ modulee E18-

MSIPA2-PCB. Mach sẽ gửi tín hiệu tới gateway khi người dùng tac động vao nút

cảm ứng để bật tắt và nhận tín hiệu từ gateway khi người dùng điều khiển nhấn nút

Mach đèn nhiệt độ màu sáng trắng được kết nói tới gateway thông qua module Zigbee E18-MS1-PCB và thực hiện các yêu cầu khi người dùng điều khiển thông qua ứng dụng bao gồm bật, tắt, điều chỉnh độ sáng, điều chỉnh nhiệt độ màu.

Mạch đèn màu RGB được kết nối tới gateway thông qua module Zigbee E18- MSI-PCB và thực hiện các yêu cầu khi người dùng điều khiển thông qua ứng dụng bao gồm bật, tắt, điều chỉnh độ sáng, điều chinh màu sắc, chạy hiệu ứng đặc biệt.

Mạch đèn cảm biến nhiệt độ, độ ẩm sẽ bao 01 cảm biến SHT20, 01 màn hình OLED SHI106 1.3inch, 01 khay pin chứa 02 viên pin AAA và 01 cảm biến PIR AM312, 01 nút bam được gắn tích hợp trên mạch. Đồng thời kết nối tới gateway thông qua module Zigbee dé gửi dữ liệu nhiệt độ, độ 4m không khí và phan trăm pin. Bên cạnh đó, màn hình OLED SH1106 sẽ hiền thị thông tin nhiệt độ, độ 4m không khí, phần trăm pin, trạng thái kết nối cho người dùng khi người dùng cử động trước cảm biến PIR hoặc nhắn nút.

Dich vụ Cognito AWS được dùng dé lưu trữ, xác thực thông tin người dùng như: tài khoản, mật khẩu, thông tin cá nhân, danh sách các gateway người đùng quản

lý, key của mỗi gateway người dùng quản lý. Dịch vụ IOT Core AWS còn được sử dụng dé làm MQTT broker dé kết nối tới gateway giúp người dùng có thể điều khiển thiết bị từ bat kì đâu khi được kết nối mang. Dịch vụ Lightsail AWS được dùng dé triển khai ứng dụng giao diện người dùng đề người dùng truy cập điều khiển và quản

lý thiết bị.

'Web online cung cấp cho người dùng giao diện trải nghiệm trên các trình đuyệt web như Internet Explorer, Microsoft Edge, Chrome, Cốc Cốc, FireFox. Chức năng chính của web online là có thể xác thực người dùng thông qua việc đăng ký và đăng nhập bằng tài khoản Google hay email, xóa, giám sát và điều khién, chỉnh sửa thông tin thiết bị từ xa, không nhất thiết phải ở chung mạng.

Web cục bộ cung cấp cho người ding giao điện trải nghiệm trên các trình duyệt web như Internet Explorer, Microsoft Edge, Chrome, Cốc Cốc, FireFox. Chức

năng chính của web cục bộ là xóa, giám sát và điều khiển, chỉnh sửa thông tin thiết

bị với tốc độ tốt hơn nhưng chỉ hoạt động trong mạng cục bộ.

Mosquitto đóng vai trò là broker MQTT cục bộ đề hệ thống có thé điều khiển thiết bị thông qua mạng cục bộ

Zigbee2MQTT là ứng dụng chính được chạy trong Raspberry Pi đề biến chiếc máy tính nhúng này thành một Zigbee Hub, ứng dụng sẽ chuyển đổi qua lại giữa gói tin MQTT từ internet và gói tin Zigbee từ mạng Zigbee dé có thé điều khiển các thiết

bị và quản lý cập nhật trạng thái thiết bị.

Apache là ứng dụng máy chủ web được chạy bên trong Raspberry Pi đề triển khai ứng dung web cục bộ giúp người dùng có thé điều khiển cục bộ.

Rhasspy là ứng dụng điều khiển bằng giọng nói có thể hoạt động offline, giúp người dùng có thé điều khiển các thiết bị thông qua giọng nói.

3.2. Phân tích thiết kế phần cứng

3.2.1. Gateway

Gateway (Zigbee Hub) đóng vai trò chuyển đổi dữ liệu nhận được từ Zigbee qua Ethernet hoặc WiFi và ngược lại để tạo sự liên kết giữa giao diện ứng dụng với các thiết bị phần cứng.

Phần cứng bao gồm một USB Zigbee CC2531 kết trực tiếp vào board Raspberry Pi B3+ thông qua cong USB.

3.2.2. Mach điều khiển đèn nhiệt độ mau và đèn RGB

T + T T + T T

Sheet_t Rev: LÔ

Company: Your Company Sheets 1/1

Date: 2022-03-02 Drawn By: Quốc Nguyễn

i

|@> EasyEDA|

T r T r = T

Hình 3.3 Sơ đồ nguyên lý mạch điều khiển đèn

Đèn nhiệt độ màu và đèn RGB sử dụng chung một mạch và chỉ khác chương

trình điều khiển.

So đồ nguyên ly mạch điều khiển đèn gồm các thành phan:

- Khối POWER: dùng nguồn 12V 1A từ module AC-DC dé cấp nguồn cho LED

DRIVER, và chuyền đổi từ 12V sang 3.3V đề sử dụng cho khối CC2530. Hình

3.3 là hình ảnh của module AC-DC được sử dụng trong mạch.

- Khối CC2530: chứa module Zigbee E18-MS1-PCB cùng với mạch phát hiện

mat nguồn đề lưu trạng thái hoạt động.

- Khối DEBUG: chứa các chân dùng dé kết nối với bộ gỡ lỗi dùng khi cập nhật

và gỡ lỗi chương trình phần mềm.

- Khối LED DRIVER: chứa mạch điều khiển LED dựa trên IC PT41 15 và mạch

phát hiện dòng điện dựa trên mạch khuếch đại vi sai dùng OP AMP LM6132.

- Khối LED OUT: các chân han kết nối với LED.

Hình 3.4 Hình anh module AC-DC 12V 1A

PCB Layout của mạch điều khiển đèn được thiết kế 2 lớp được thé hiện qua

Hình 3.5 (mặt trên) và Hình 3.6 (mặt dưới)

Hình 3.5 PCB Layout mặt trên mach điều khiển đèn

Hình 3.6 PCB Layout mặt dưới mạch điều khiển đèn Hình 3.7 và Hình 3.8 là hình ảnh 3D mặt trên va mặt đưới của mạch điều khién đèn được mô phỏng bởi EasyEDA. Mạch được cắt một khoảng trống to để chống nhiễu cho ăng ten của module E18-MS1-PCB và các lỗ nhỏ kích thước 3.0mm dé gắn vào dé tản nhiệt đèn LED.

Hình 3.7 Hình ánh 3D PCB mặt trên mạch điều khiển đèn

nk.quoc0810

Hình 3.8 Hình ảnh 3D PCB mặt dưới mạch điều khiển đèn

3.2.3. Mạch cam biến nhiệt độ, độ 4m

Esevec

SHT20

Shaet_ 1 Rev: 1.0

‘Company: Your Company Sheets 1/1

|eằ0eIrpA|

i 1

Dete: 2022-13-18 Drawn Gy: Quốc Nguyễn

Hinh 3.9 So do nguyén ly mach cam biến nhiệt độ, độ dm

Sơ đồ mạch cảm biến nhiệt độ, độ âm gồm các khối:

- Khối POWER: gồm chân hàn kết nối với khay pin, IC tăng áp NCP1402 để

ồn định nguồn 3.3V cung cấp nguồn cho mach.

- Khối CC2530: chứa module Zigbee E18-MS1-PCB.

- Khối POWER CONTROL: được dùng như các công tắc dé dong mở nguồn

cấp của các cảm biến trong mạch.

-_ Khối PIR SENSOR, LIGHT SENSOR, SHT20: bao gồm các cảm biến chuyền

động, cảm biến ánh sáng và cảm biến nhiệt độ độ âm dùng đề thu thập dữ liệu

từ môi trường.

- Kh6éi OLED: chứa màn hình OLED đề hiển thị thông tin nhiệt độ, độ 4m, trang

thái kết nối và pin cho người dùng.

- Khối I2C PULL UP: trở kéo cho các module dùng chuẩn giao tiếp I2C.

-_ Khối USER INTERFACE: nút nhắn dùng đề hiện thi OLED xem thông tin khi

nhấn nha, khi nhắn giữ 5s thiết bị sẽ đặt về trạng thái ban đầu của nhà sản xuất. PCB Layout của mạch cảm biến nhiệt độ, độ 4m được thiết kế 2 lớp được thé

hiện qua Hình 3.10 (mặt trên) và Hình 3.11 (mặt dưới)

Hình 3.10 PCB Layout mặt trên mạch cảm biến nhiệt độ, độ ẩm

Hình 3.11 PCB Layout mặt dưới mach cảm biến nhiệt độ, độ ẩm

Hình 3.12 và Hình 3.13 là hình ảnh 3D mặt trên và mặt dưới của mạch cảm

biến nhiệt độ, độ âm được mô phỏng bởi EasyEDA. Mạch được cắt một khoảng trồng

to để chống nhiễu cho ang ten của module E18-MSI-PCB và các lỗ nhỏ kích thước 3.0mm để gắn vào hộp khi đóng gói.

3.2.4. Mạch công tắc 4 nút

T T i ~ r

Ba

POWER OFF DETECT

LED INDICATOR)

RE 1.0

Sheets 1/2

Dete: 2022-11-25 Drawn Gy: Quốc Nguyễn

T T T x = T n

Hình 3.14 Sơ đồ nguyên lý mạch công tắc 4 nút Dựa theo Hình 3.14, có thể nhận thấy mạch công tắc 4 nút gồm các khối:

- Khối CC2530: chứa module Zigbee E18-MS1PA2-PCB với công suất truyền

tín hiệu cao giúp tín hiệu có thể ồn định khi mạch được lắp đặt.

- Khối POWER OFF DETECT: được dùng cho việc phát hiện mắt nguồn dé lưu

giữ trạng thái hoạt động.

- Khối KEY va KEY IC: gồm các miếng đồng to cảm ứng làm đầu vào cho IC

ADS TS04 dùng cho chức năng cảm ứng điện dung.

- KHÓI LED INDICATOR: gồm các LED nhận biết trạng thái hiện tại của công

tắc.

- Khối EXPANDER: chứa IC mở rộng I/O PCF8574 dùng để mở rộng chân

điều khiển.

- Khối DEBUG: dùng đề kết nối với mạch nap dùng dé nạp chương trình cho

module Zigbee và dùng dé gỡ lỗi khi chạy.

- Khối CONNECTOR: các chân kết nối dùng để kết nối với mạch điều khiển

relay.

PCB Layout mach công tắc 4 nút được thiết kế 2 lớp như Hình 3.15 (mặt trên) và

Hình 3.16 (mặt dưới).

Hình 3.15 PCB Layout mặt trên mạch công tac 4 nút

phỏng bởi EasyEDA.

Hình 3.16 Hình ảnh 3D mặt dưới mạch công tắc 4 nút

Để có thiết bị gọn gàng hơn, mạch tổng được tách ra làm 2 mạch công tắc 4 nút và mạch điều khiển relay. Hình 3.19 là sơ đồ nguyên lý mạch điều khiển relay.

Ba

CURRENT SENSOR

s4EtEtE | [DONINO

Le.

RELAY CONTROL

Rev: 1.0

BOARD CONNECTOR Company Sheets 1/2

202 awn By: Quốc Nguyễn.

r T L

Hình 3.19 Sơ đô nguyên lý mach công tắc điêu khiển relay Dựa vào Hình 3.19, sơ đồ nguyên lý được chia thành các khối như sau:

- Khối POWER: gồm module WX-DC12003 chuyền đổi từ nguồn AC sang

nguồn DC 5V 0.7A cung cấp nguồn cho relay và IC đo dòng AC712 rồi hạ áp xuống 3.3 nhờ IC AMS1117, ngoài ra còn bao gồm IC nguồn cách ly B0505S dùng dé cách ly giữa nguồn kích relay và nguồn cho mạch công tắc hoạt động.

- Khối RELAY CONTROL: gồm các opto PC817 cách ly tín hiệu kích từ vi

điều khiển và nguồn kích relay giúp mạch hoạt động trơn tru hơn.

- Khối DOMINO: là các chân hàn dé hàn chân đồng kết nối.

- Khối CURRENT SENSOR: gồm IC AS712 30A dùng dé tính toán dòng điện

AC được relay điều khiển cùng với bộ chia điện áp từ đầu ra IC từ 5V thành 3.3V dé hoạt động với vi điều khiển giúp phát hiện lỗi nếu xảy ra.

- Khối CONNECTOR: gồm các chân kết nối dùng dé kết nối với mạch công tắc

4 nút để nhận các tín hiệu điều khiển và cấp nguồn cho mạch công tắc 4 nút

hoạt động.

PCB của mạch điều khiển được thiết kế 2 lớp như Hình 3.20 (mặt trên) và Hình

3.21 (mặt dưới).

Hình 3.20 PCB Layout mặt trên mạch công tắc điều khiển relay

Hình 3.21 PCB Layout mặt dưới mạch công tắc điều khiển relay Hình 3.22 và Hình 3.23 là hình ảnh 3D của mạch điều khiển relay, mạch được thiết kế không phủ xanh tại các đường mạch dẫn dòng AC dé có thé mạ thêm chi tăng

khả năng tải của đường mạch.

3.3. Phân tích và lập trình phần cứng

3.3.1. Gateway

Phần mềm gateway được cấu thành từ nhiều ứng dụng khác nhau: Mosquitto,

Zigbee2MQTT, Apache, Rhasspy, ứng dụng Python.

Hình 3.24 Mô hình liên kết ứng dung trong gateway Các ứng dụng được liên kết với nhau thông qua MQTT với Mosquitto là

broker.

Mosquitto được cau hình như sau:

- “listener 1883”: sử dung port 1883.

- “allow_anonymous true”: giúp các thiệt bị bên ngoài có thé truy cập thông qua

IP cục bộ.

- “connection awsiot”: tạo một cầu MQTT.

- “address <IP>”: bắt cầu từ broker cục bộ tới broker có dia chi là “<IP>”.

- ‘topic zigbee2matt/# both 1 "" hubid0/°: cấu hình topic chuyển đổi giữa cục

bộ va cloud với số chiều là 2, QoS là 1 và tiền tố là “hubid0/°.

- “bridge_cafile .\ certs\Amazon-root-CA-1.pem”: chứng chi bao mat SSL.

- “bridge_certfile .\ certs\device.pem.crf”: chứng chi bảo mat SSL.

- “bridge_keyfile .\certs\private.pem.key”: chứng chi bao mat SSL.

Zigbee2MQTT được cấu hình kết nối tới địa chỉ “localhost:1883” dé kết nói tới

Mosquitto.

Ứng dung web cục bộ được biên dich tại máy host và chuyển vào thư mục

“/var/www/html” của Apache được cài đặt trên Raspberry đề triển khai.

Rhasspy được cấu hình kết nói tới Mosquitto thông qua giao diện.

5S siteld: master

~ MOTT

33

Host — rasp-test

Port 1883

Username

Password

TLS over MQTT (encryption) Documentation

Hình 3.25 Giao diện cấu hình MOTT Broker của Rhasspy Cấu hình các dịch vụ hồ trợ giọng nói của Rhasspy cũng thông qua giao diện.

siteld: | server

Hình 3.26 Giao diện cấu hình dich vụ hồ trợ giọng nói

Ở đây, chọn Audio là MQTT Hermes giúp ta có thể đưa âm thanh thu âm giọng nói với định dạng .wav thông qua giao thức MQTT để Rhasspy có thể xử lý, từ đó

dịch vụ Speech to text sẽ chuyền giọng nói thành văn bản và publish lên MQTT để ta

có thể lấy sự kiện và điều khién thiết bị.

Dé ứng dụng có thé phát hiện giọng nói tiếng việt và chuyên sang text ta cần thiết lập các câu lệnh cụ thé dé phần mềm xử lý và đưa ra các từ khóa cần thiết. Cấu

trúc câu lệnh như sau:

[ChangeLightState]

room_name = ((phòng (khách | ngủ | bếp)) | nha:phong bếp) {room}

light_state = (mở | tat) {state}

<light_state> đèn [số] (1..100){lightName} [trong] <room_name>

Trong đó:

Từ khóa nằm trong [] trong dòng đầu là tên topic sẽ được publish khi phát hiện câu nói phù hợp với câu lệnh được thiết lập bên dưới. Các từ khóa nằm bên trong [] không nằm ở dòng đầu tiên sẽ là các từ khóa tùy chọn có cũng

được, không có cũng được trong câu lệnh.

Từ khóa nằm trong <> là biến đại diện cho các từ khóa có thể có nằm tại vị tri nhất định trong một câu lệnh.

Từ khóa nằm trong () là các từ khóa khác nhau có thé có nằm cùng | vị trí trong câu lệnh. Vi dụ: (mở | tắt) sẽ tương ứng với từ “mở” hoặc “tắt” nằm trong

câu lệnh.

Từ khóa nằm trong {} là từ khóa trong gói tin có dạng “{từ khóa: giá trị} được

publish lên MQTT broker, từ khóa sẽ tương ứng với một trong các giá trị có

thể có nằm trong () trước nó. Ví dụ (mở | tắt) {state} sẽ publish {“state”: “mở” hoặc {“state”: “tất”}.

Dòng cuối củng trong cấu trúc câu lệnh là câu lệnh sẽ được phát hiện, nó sẽ tương ứng với một số câu ví dụ sau với từ in đậm là từ khóa được publish lên MOTT để xử lý điều khiển:

o “mở đèn số 3 phòng khách”

o “mở đèn 4 trong phòng bếp”

o_ “tắt đèn 5 nhà bếp”

o “tắt đèn 78 trong phòng ngú”

°

3.3.2. Mạch điều khiển đèn

Ứng dụng điều khiển đèn được phát triển dựa trên Z-Stack 3.0.2 do đó các hành động diễn ra theo từng sự kiện.

Khởi tạo thiết bị

2 Có mm

Tắt/mở đèn 7 Chay hiệu ứng

ằ Xỏc định sự kiện K

Điều ph đo Điều chỉnh màu

sáng

có loạt độn:

tốt A

Ỷ gKhôn

Gửi thông báo lỗi

Hình 3.27 Luu đỗ hoạt động của mạch điều khiển đèn

Ở đây các sự kiện là các yêu cầu từ người dùng được gửi thông qua Zigbee. Ngoài ra, còn có các sự kiện ngắt khi mat nguồn để lưu trạng thái hiện tại và khôi phục sau khi có nguồn trở lại.

3.3.3. Mạch cám biến nhiệt độ độ 4m

Khởi tạo thiết bị

>le

Ngủ

Có chuyển ¥

dong Qua 30 phut

vy

Hién thi OLED Cập nhật và gửi

dữ liệu cảm biên

Hình 3.28 Lưu đô hoạt động của mạch cảm biến Thiết bị sẽ ngủ ở hầu hết thời gian và chỉ được đánh thức bởi 2 sự kiện:

- Mỗi 30 phút: cập nhật và gửi dữ liệu cảm biến lên gateway.

- _ Có chuyên động: hiện thị màn hình OLED nhiệt độ, độ 4m cho người dùng

xem.

3.3.4. Mạch công tắc 4 nút

Khởi tạo thiết bị

\<

Nút 1 |&——{ Nút thứ bao nhiêu }—> Nút 2,3,4

Điều khiển đèn

tín hiệu và relay

Gửi thông báo lỗi

Hình 3.29 Lưu đô hoạt động của mạch công tắc 4 nút Các sự kiện có thể là sự kiện từ nút nhấn vật lý hoặc tín hiệu từ Zigbee. Nút thứ 1 có khả năng đưa thiết bị về trạng thái ban đầu và khởi tạo lại toàn bộ dữ liệu

như chưa từng hoạt động khi giữ trong hơn 5 giây.

3.4. Phân tích và lập trình Website

Website được xây dựng theo dạng Single page application bao gồm một trang chung và nhiều trang con khác.

Trang chính (trang chung) sẽ chứa thanh điều hướng và hiển thị cảnh báo khi người dùng nhận được thông báo mới, trang này sẽ xuất hiện xuyên suốt trong trải

nghiệm của người dùng, thanh điều hướng cho phép người dùng điều hướng đến các trang con đề thực hiện các chức năng.

Các trang con có các chức năng khác nhau nhằm đơn giản hóa giao diện và tạo

sự tiện lợi, dé thao tác, tránh gây khó hiéu cho người dùng. Các trang này sẽ bao gồm đường dẫn trang chính và phần mở rộng:

Bảng 3.1 Bảng đường dẫn thực hiện yêu cầu người dùng

Đường dẫn Chức năng /home Trang chu

/login Đăng nhập tài khoản

/registration Đăng ký tài khoản

/confirm-email Trang yêu câu xác nhận đăng ký tài khoản

/information-device Giám sát, điều khién tat cả các thiết bị

/short-cut Giám sát, điều khiên các thiết bị theo từng phòng

/about Giới thiệu, liên hệ

/personal-page Thông tin người dùng, trung tâm thông báo

Đối với các trang yêu cầu người dùng phải đăng nhập, trong trường hợp người dùng truy cập vào trang này trong khi chưa đăng nhập thì người dùng sẽ được chuyền đến trang đăng nhập một cách tự động.

3.4.1. Trang chủ và trang giới thiệu

Trang chủ sẽ hiền thị lời chào và tổng quan về hệ thống, trang giới thiệu sẽ hiển thị các thông tin liên hệ của nhà phát triển, timeline thực hiện hệ thống và một số

thông tin khác, ...

Tại 2 trang này, không yêu cầu người dùng phải đăng nhập.

3.4.2. Trang đăng nhập, đăng ký, xác nhận email Trang đăng nhập có chức năng cho phép người dùng nhập thông tin người dùng (email, password) mà người dùng đã đăng ký trước đó.

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng hệ thống giám sát, điều khiển từ xa các thiết bị nhà thông minh Zigbee thông qua website và giọng nói (Trang 48 - 73)

Tải bản đầy đủ (PDF)

(100 trang)