Các nhà sản xuất đã làm ra những thiết bị thông minh cung cấp cho hệ thống nhà thông minh những sản phẩm với nhiều tiện ích, tiện lợi nhất, đảm bảo chất lượng cho người sử dụng và với mụ
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
ĐOÀN TẠ MINH TRIẾT
Trang 2
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
THIẾT KẾ HỆ THỐNG GIÁM SÁT, ĐIỀU KHIỂN THIẾT BỊ TRONG NHÀ THÔNG QUA TELEGRAM CHATBOT
MSSV: 17119050
ĐỖ CÔNG TIẾN MSSV: 17119047
TP HỒ CHÍ MINH – 07/2022
Trang 3
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
THIẾT KẾ HỆ THỐNG GIÁM SÁT, ĐIỀU KHIỂN THIẾT BỊ TRONG NHÀ THÔNG QUA TELEGRAM CHATBOT
MSSV: 17119050
ĐỖ CÔNG TIẾN MSSV: 17119047
TP HỒ CHÍ MINH – 07/2022
Trang 4Ngành: Công nghệ Kỹ thuật Máy tính Lớp: 17119CL2
Giảng viên hướng dẫn: ThS Nguyễn Ngô Lâm ĐT:
1 Tên đề tài: Thiết kế hệ thống giám sát, điều khiển thiết bị trong nhà thông qua Telegram Chatbot
2 Các số liệu, tài liệu ban đầu:
- Tìm hiểu các hệ thống điều khiển thiết bị, giám sát trên thị trường hiện nay
- Tìm hiểu các cảm biến thích hợp để sử dụng trong đề tài
- Đưa ra phương án, giải pháp thiết kế hệ thống phù hợp, tối ưu
- Xây dựng mô hình, bố trí các cảm biến hợp lý
3 Nội dung thực hiện:
- Thiết kế và thi công phần cứng:
● Lập trình các module cảm biến, giao tiếp với máy tính nhúng
● Thiết kế, thi công khối điều khiển
● Lập trình hệ thống phần cứng
- Thiết kế và thi công phần mềm:
● Thiết kế giao diện giám sát, điều khiển thiết bị
● Tích hợp Telegram API vào phần mềm điều khiển
- Chạy thử và chỉnh sửa, viết báo cáo luận văn
- Báo cáo đề tài tốt nghiệp
4 Sản phẩm: Mô hình nhà thông minh, các module được kết nối với bảng mạch in và phần mềm điều khiển, giám sát
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc ***
Trang 5MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
TÓM TẮT iii
DANH MỤC HÌNH ẢNH iv
DANH MỤC BẢNG vii
DANH MỤC CÁC TỪ VIẾT TẮT viii
Chương 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 1
1.3 NỘI DUNG NGHIÊN CỨU 2
1.4 GIỚI HẠN 2
1.5 BỐ CỤC 3
Chương 2 CƠ SỞ LÝ THUYẾT 4
2.1 THIẾT KẾ PHẦN CỨNG 4
2.2 CHUẨN GIAO TIẾP 9
2.3 THIẾT KẾ PHẦN MỀM 16
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ 19
3.2 YÊU CẦU VÀ SƠ ĐỒ KHỐI HỆ THỐNG 19
3.3 THIẾT KẾ HỆ THỐNG PHẦN CỨNG 21
Chương 4 THI CÔNG HỆ THỐNG 32
4.1 GIỚI THIỆU 32
4.2 THI CÔNG HỆ THỐNG 32
4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH 36
4.4 LẬP TRÌNH HỆ THỐNG 37
Trang 64.5 DỰ TOÁN MÔ HÌNH HỆ THỐNG GIÁM SÁT, ĐIỀU KHIỂN THIẾT BỊ
TRONG NHÀ THÔNG QUA TELEGRAM CHATBOT 51
Chương 5 KẾT QUẢ, NHẬN XÉT, ĐÁNH GIÁ 53
5.1 KẾT QUẢ THI CÔNG PHẦN CỨNG 53
5.2 KẾT QUẢ HOẠT ĐỘNG 55
5.3 NHẬN XÉT VÀ ĐÁNH GIÁ 61
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 62
6.2 KẾT LUẬN 62
6.2 HƯỚNG PHÁT TRIỂN 62
PHỤ LỤC 63
TÀI LIỆU THAM KHẢO 68
Trang 7i
LỜI CẢM ƠN
Chúng tôi xin gửi lời cảm ơn đến Thầy Nguyễn Ngô Lâm đã hướng dẫn và giúp đỡ tận tình, tạo điều kiện, chia sẻ và góp ý nhiều kinh nghiệm để chúng tôi hoàn thành đề tài thật tốt
Chúng tôi xin chân thành gửi lời cảm ơn các thầy cô trong Khoa Điện-Điện Tử của trường Đại Học Sư Phạm Kỹ Thuật đã cung cấp những kiến thức chuyên môn nền tảng và chuyên sâu cho chúng tôi cũng như đã tạo điều kiện tốt nhất cho chúng tôi hoàn thành đề tài
Chúng tôi cũng gửi lời đồng cảm ơn đến các bạn sinh viên Khoa Điện - Điện
Tử đã trao đổi, chia sẻ kiến thức cũng như kinh nghiệm quý báu trong thời gian thực hiện đề tài
Cảm ơn gia đình, bạn bè, người thân đã động viên, ủng hộ, tạo điều kiện để chúng tôi thực hiện đề tài này
Xin chân thành cảm ơn!
Tp Hồ Chí Minh, tháng 07 năm 2022 Nhóm sinh viên thực hiện Đoàn Tạ Minh Triết – Đỗ Công Tiến
Trang 8LỜI CAM ĐOAN
Tên đề tài: “Thiết kế hệ thống giám sát, điều khiển thiết bị trong nhà thông qua
Telegram Chatbot”
GVHD: ThS Nguyễn Ngô Lâm
Họ và tên sinh viên 1: Đoàn Tạ Minh Triết
sự cho phép Nếu có một vi phạm nào xảy ra trong quá trình thực hiện đề tài này, chúng tôi xin chịu hoàn toàn mọi trách nhiệm”
Nhóm thực hiện đề tài
Đoàn Tạ Minh Triết – Đổ Công Tiến
Trang 9iii
TÓM TẮT
Sự ra đời của thiết bị thông minh đã đóng góp những thành tựu vô cùng to lớn đặc biệt đối với người sử dụng nhà thông minh Các nhà sản xuất đã làm ra những thiết bị thông minh cung cấp cho hệ thống nhà thông minh những sản phẩm với nhiều tiện ích, tiện lợi nhất, đảm bảo chất lượng cho người sử dụng và với mục tiêu đưa được những sản phẩm nhà thông minh đến gần nhất, nhanh nhất với các gia đình giúp cuộc sống ngày càng được hiện đại hóa, tự động hóa phổ biến hơn
Đề tài “Thiết kế hệ thống giám sát, điều khiển thiết bị trong nhà thông qua Telegram Chatbot” sử dụng máy tính nhúng Orange Pi Lite để làm bộ điều khiển trung tâm Hệ thống có thể giám sát, điều khiển thiết bị thông qua ứng dụng chat Telegram hay điều khiển trực tiếp trên màn hình giám sát Ngoài ra ta cũng có thể quan sát hình ảnh trực tiếp từ camera giám sát
Hệ thống cảm biến của mô hình gồm cảm biến khói để phát hiện khí gas, khói, cảnh báo nếu có hỏa hoạn xảy ra; các cảm biến nhiệt độ, độ ẩm cho mỗi phòng; bên ngoài có cảm biến nhiệt độ và cảm biến ánh sáng Cửa chính ngôi nhà cũng được lắp đặt thêm công tắt chốt cửa để điều khiển mở cửa từ xa; trong nhà và cửa trước đều lắp đặt camera để giám sát trực tiếp
Trang 10DANH MỤC HÌNH ẢNH
Hình 2 1 Máy tính nhúng Orange Pi Lite và ký hiệu 4
Hình 2 2 Kit thu phát WiFi ESP8266 NodeMCU và ký hiệu 4
Hình 2 3 Module đọc thẻ RFID MFRC522 và ký hiệu 5
Hình 2 4 Module cảm biến chất lượng không khí MQ-135 và ký hiệu 5
Hình 2 5 Module cảm biến nhiệt độ, độ ẩm DHT11 và ký hiệu 5
Hình 2 6 Cảm biến cường độ sáng BH1750 và ký hiệu 6
Hình 2 7 Module relay có opto cách ly và ký hiệu 6
Hình 2 8 Động cơ servo MG996R và ký hiệu 6
Hình 2 9 IC 74HC595 và ký hiệu 7
Hình 2 10 Module hạ áp XL4015 và ký hiệu 8
Hình 2 11 Module hạ áp AMS1117 và ký hiệu 8
Hình 2 12 Tổng quan bus I2C 9
Hình 2 13 Khung dữ liệu được truyền trong I2C 9
Hình 2 14 Master gửi điều kiện khởi động đến slave trong I2C 10
Hình 2 15 Master gửi cho slave địa chỉ nó muốn giao tiếp trong I2C 10
Hình 2 16 Master gửi hoặc nhận khung dữ liệu trong I2C 11
Hình 2 17 Slave gửi bit ACK cho master khi nhận khung thành công trong I2C 11
Hình 2 18 Master gửi điều kiện dừng đến slave trong I2C 11
Hình 2 19 Sơ đồ khối SPI 12
Hình 2 20 SPI ở chế độ nhiều slave song song 13
Hình 2 21 SPI ở chế độ nhiều slave nối tiếp 13
Hình 2 22 Sơ đồ khối OneWire 14
Hình 2 23 Biểu đồ dạng sóng truyền theo thời gian trong OneWire 14
Hình 3 1 Sơ đồ khối hệ thống đóng/mở cửa 19
Hình 3 2 Sơ đồ khối hệ thống chính 20
Hình 3 3 Khối xử lý trung tâm của Hệ thống đóng/mở cửa 21
Hình 3 4 Khối tín hiệu vào của Hệ thống đóng/mở cửa 22
Hình 3 5 Khối chấp hành của Hệ thống đóng/mở cửa 23
Hình 3 6 Khối nguồn của Hệ thống đóng/mở cửa 23
Trang 11v
Hình 3 7 Khối xử lý trung tâm của Hệ thống chính 25
Hình 3 8 Khối cảm biến của Hệ thống chính 26
Hình 3 9 Khối nút nhấn của Hệ thống chính 27
Hình 3 10 Khối hiển thị của Hệ thống chính 27
Hình 3 11 Khối chấp hành của Hệ thống chính 28
Hình 3 12 Giản đồ sóng cách hoạt động của IC 74HC595 28
Hình 3 13 Giản đồ sóng cách tính toán PWM 29
Hình 3 14 Mạch điều khiển led siêu sáng 30
Hình 3 15 Khối nguồn của Hệ thống chính 31
Hình 4 1 Sơ đồ mạch in hệ thống khóa cửa 34
Hình 4 2 Sơ đồ mạch in hệ thống chính 35
Hình 4 3 Mạch in mô phỏng 3D 35
Hình 4 4 Mô hình hệ thống 36
Hình 4 5 Mô hình đang hoạt động 36
Hình 4 6 Lưu đồ giải thuật hệ thống đóng/mở cửa 37
Hình 4 7 Lưu đồ giải thuật hệ thống chính 38
Hình 4 8 Lưu đồ giao diện đăng nhập 39
Hình 4 9 Lưu đồ khởi tạo giao diện giám sát 40
Hình 4 10 Lưu đồ xử lý webcamera 41
Hình 4 11 Lưu đồ hiển thị thời gian 41
Hình 4 12 Lưu đồ hiển thị thông tin hệ thống 42
Hình 4 13 Lưu đồ xử lý tin nhắn Telegram 43
Hình 4 14 Giao diện phần mềm Geany 44
Hình 4 15 Giao diện phần mềm Arduino IDE 45
Hình 5 1 Mô hình hệ thống 53
Hình 5 2 Màn hình LCD hiển thị 54
Hình 5 3 Mạch điện hệ thống 54
Hình 5 4 Giao diện đăng nhập hệ thống 55
Hình 5 5 Đăng nhập hệ thống thông qua tin nhắn 55
Hình 5 6 Giao diện điều khiển và giám sát 56
Trang 12Hình 5 7 Bật/Tắt đèn thông qua tin nhắn 56
Hình 5 8 Hiển thị trạng thái đèn trên giao diện 57
Hình 5 9 Giám sát camera trên giao diện 57
Hình 5 10 Giám sát camera trên webserver 58
Hình 5 11 Mở khóa cửa trước bằng tin nhắn 58
Hình 5 12 Trạng thái mở cửa trước trên giao diện 58
Hình 5 13 Đọc thông tin hệ thống thông qua tin nhắn 59
Hình 5 14 Giao diện hiển thị cảnh báo 59
Hình 5 15 Truy cập file server 60
Trang 13vii
DANH MỤC BẢNG
Bảng 3 1 Bảng tính công suất tiêu thụ của các module trong Hệ thống đóng/mở cửa
24
Bảng 3 2 Bảng tính toán điện áp điều khiển led siêu sáng 29
Bảng 3 3 Bảng tính toán dòng điện 𝐼𝐶 cho led siêu sáng 30
Bảng 3 4 Bảng tính công suất tiêu thụ của các module trong Hệ thống chính 31
Bảng 4 1 Bảng danh sách các linh kiện 32
Bảng 4 2 Bảng chức năng các handle của Telegram Chatbot 43
Bảng 4 3 Bảng các hàm được sử dụng trong thư viện Servo 46
Bảng 4 4 Bảng các hàm được sử dụng trong thư viện MFRC522 46
Bảng 4 5 Bảng các hàm được sử dụng trong thư viện PyOTP 47
Bảng 4 6 Bảng các lớp được sử dụng trong thư viện PyQt5 47
Bảng 4 7 Bảng các lớp được sử dụng trong thư viện Telegram Bot 48
Bảng 4 8 Bảng các hàm được sử dụng trong thư viện OpenCV 48
Bảng 4 9 Bảng các hàm được sử dụng trong thư viện PyA20 49
Bảng 4 10 Bảng các hàm được sử dụng trong thư viện OrangePi PWM 50
Bảng 4 11 Bảng các hàm được sử dụng trong thư viện DHT 50
Bảng 4 12 Bảng chức năng của bàn phím số 64
Bảng 4 13 Bảng dự toán mô hình hệ thống giám sát, điều khiển thiết bị trong nhà thông qua Telegram Chatbot 51
Bảng 5 1 Số liệu thực nghiệm 61
Trang 14DANH MỤC CÁC TỪ VIẾT TẮT
IoT OTP 2FA MFA
SCL ACK
NACK
SPI MOSI
MISO
SCLK
Internet of Things One Time Password
2 Factor Authentication Multi Factor Authentication Liquid Crystal Display Advanced RISC Machines Graphics Processing Unit Random Access Memory High-Definition Multimedia Interface Consumer Electronics Control Universal Serial Bus
On The Go System on a Chip Universal Asynchronous Receiver-Transmitter
MicroController Unit General-Purpose Input/Output Radio-Frequency Identification Alternating Current Direct Current Inter-Integrated Circuit Serial Data Separate Clock Acknowledged Negative Acknowledgment Serial Peripheral Interface Master Out Slave In Master In Slave Out Serial Clock
Trang 15ix CS/SS
SMS
HTTPS
GIF XML
HTML
API PWM
PCB
IP LAN
IDE
Chip/Slave Select Short Message Service Hypertext Transfer Protocol Secure Graphics Interchange Format Extensible Markup Language HyperText Markup Language Application Programming Interface Pulse-Width Modulation Printed Circuit Board Internet Protocol Local Area Network Integrated Development Environment
Trang 16Chương 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Cuộc cách mạng công nghiệp lần thứ tư đã bắt đầu từ vài năm gần đây, tập trung chủ yếu vào sản xuất thông minh dựa trên các thành tựu đột phá trong kỹ thuật
số, vật lý hiện đại, công nghệ sinh học, nano, … Đặc biệt cùng với sự phát triển của
hệ thống thông minh đã tạo ra bước ngoặt quan trọng trong lĩnh vực ngôi nhà thông minh, phục vụ nhu cầu ngày càng cao của con người
Mỗi ngày, chúng ta thường phải làm những công việc lặp đi lặp lại như: bật/tắt đèn, bật/tắt máy nước nóng, bật/tắt hệ thống giám sát, tưới nước cho vườn cây Thêm vào đó, còn bao nhiêu việc bạn phải nhớ làm như trả tiền điện, tiền nước, mua xăng
xe, sắm sửa đồ đạc sinh hoạt, đón con đi học về Sẽ thật tuyệt vời nếu có cách nào
đó giúp bạn giải quyết tất cả những vấn đề này? Và đó chính là tất cả mục đích của nhà thông minh
Là sinh viên Ngành Công nghệ Kỹ thuật Máy tính đã có kiến thức cơ bản về điện tử, hệ thống nhúng và IoT Mong muốn tạo ra thiết bị ứng dụng thực tế với quy
mô nhỏ, nên nhóm em quyết định nghiên cứu đề tài “Thiết kế hệ thống giám sát, điều khiển thiết bị trong nhà thông qua Telegram Chatbot” Đó cũng là nền tảng cho sinh viên thực hiện một mô hình nhà thông minh nhỏ của riêng mình
1.2 MỤC TIÊU
Thiết kế hệ thống giám sát, điều khiển thiết bị trong nhà với chức năng đăng nhập hệ thống trực tiếp tại nhà hoặc thông qua chat, sử dụng mã xác thực OTP, cho phép thêm/xóa tài khoản người dùng, ẩn/hiển thị/tắt hệ thống để bảo mật
Hiển thị thông tin hệ thống như trạng thái bật/tắt các đèn, nhiệt độ, độ ẩm, cường độ sáng trên màn hình LCD Điều khiển hệ thống bằng thao tác trên bàn phím
số hoặc thông qua chat
Giám sát trực tiếp camera trên màn hình LCD hoặc giám sát từ xa thông qua camera server Hỗ trợ trích xuất dữ liệu camera hoặc cập nhật hệ thống thông qua file server
Mở khóa cửa trước bằng thẻ từ hoặc từ xa thông qua chat
Trang 172
1.3 NỘI DUNG NGHIÊN CỨU
Nội dung 1: Tìm hiểu các hệ thống giám sát, điều khiển thiết bị trên thị trường hiện nay
Nội dung 2: Tìm hiểu nguyên lý hoạt động của các cảm biến, cách kết nối cảm biến với máy tính nhúng
Nội dung 3: Thiết kế giao diện điều khiển thiết bị và giám sát Tích hợp Telegram API vào phần mềm điều khiển
Nội dung 4: Thiết kế, thi công mô hình hệ thống
Nội dung 5: Chạy thử nghiệm và hiệu chỉnh hệ thống
Nội dung 6: Viết báo cáo luận văn
Trang 181.5 BỐ CỤC
Chương 1: Tổng quan
Chương này trình bày đặt vấn đề và lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, giới hạn của đề tài
Chương 2: Cơ Sở Lý Thuyết
Chương này trình bày cơ sở lý thuyết liên quan đến đề tài Giới thiệu về máy tính nhúng, vi điều khiển, các cảm biến sử dụng Đưa ra cơ sở lý thuyết về các chuẩn giao tiếp Giới thiệu về mã OTP, ngôn ngữ lập trình Python, Telegram API
Chương 3: Thiết kế và tính toán
Chương này trình bày về phương án thiết kế, tính toán các thông số lựa chọn linh kiện phù hợp Lưu đồ giám sát, điều khiển hệ thống
Chương 4: Kết Quả, Nhận Xét và Đánh Giá
Chương này trình bày về kết quả đạt được về phần cứng, phần mềm Từ đó đưa
ra nhận xét, đánh giá thực nghiệm
Chương 5: Kết Luận và Hướng Phát Triển
Tổng kết các ưu điểm và nhược điểm của đề tài, đưa ra hướng phát triển phù hợp trong tương lai
Trang 194
Chương 2 CƠ SỞ LÝ THUYẾT
2.1 THIẾT KẾ PHẦN CỨNG
Máy tính nhúng Orange Pi Lite
Máy tính nhúng Orange PI Lite là một máy tính nhỏ với chip Allwinner H3 Quad Core Cortex A7 1.2 GHz và ARM Mali-400MP2, GPU lên đến 600 MHz, RAM 512MB, có thể chạy được nhiều hệ điều hành như Android 4.4, Ubuntu, Debian Ngoài ra máy tính còn có cổng HDMI hỗ trợ CEC, 802.11 b/g/n WiFi, 2 cổng USB 2.0, 1 cổng micro USB OTG và có nguồn riêng
Hình 2 1 Máy tính nhúng Orange Pi Lite và ký hiệu
Kit thu phát Wifi ESP8266 NodeMCU
Kit thu phát Wifi ESP8266 NodeMCU Lua CP2102 Ai-Thinker được phát triển dựa trên nền chip Wifi SoC ESP8266 có thể sử dụng trực tiếp trình biên dịch của Arduino để lập trình và nạp code
Kit được dùng phổ biến trong các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi với chip nạp và giao tiếp UART mới và ổn định nhất là CP2102 có khả năng tự nhận driver trên hầu hết các hệ điều hành Window và Linux
Hình 2 2 Kit thu phát WiFi ESP8266 NodeMCU và ký hiệu
Trang 20Module đọc thẻ RFID MFRC522
Module được phát triển dựa trên IC MFRC522, được thiết kế nhằm mục đích tạo ra sóng vô tuyến 13,56MHz và giao tiếp với các thẻ RFID Đầu đọc có thể giao tiếp với vi điều khiển thông qua chuẩn SPI với tốc độ dữ liệu tối đa là 10 Mbps
Hình 2 3 Module đọc thẻ RFID MFRC522 và ký hiệu
Module cảm biến chất lượng không khí MQ-135
Module được sử dụng để kiểm tra chất lượng không khí, có thể phát hiện nhiều loại khí như NH3, Sunfua, NOx, rượu, hơi benzen, khói, gas và CO2
Module lý tưởng để sử dụng trong nhà, văn phòng hoặc ứng dụng công nghiệp như mạch điều khiển và giám sát đơn giản, là một cảm biến với chi phí thấp và ứng dụng nhiều
Hình 2 4 Module cảm biến chất lượng không khí MQ-135 và ký hiệu
Module cảm biến nhiệt độ, độ ẩm DHT11
Hiện nay module cảm biến nhiệt độ, độ ẩm DHT11 rất thông dụng do giá thành thấp và rất dễ sử dụng thông qua giao tiếp OneWire Tích hợp trong cảm biến với bộ tiền xử lý tín hiệu nhằm mục đích được dữ liệu một cách chính xác mà không phải qua việc tính toán nào
Hình 2 5 Module cảm biến nhiệt độ, độ ẩm DHT11 và ký hiệu
Trang 216
Module cảm biến cường độ sáng BH1750
Cảm biến được phát triển bởi Rohm, với kích thước nhỏ gọn, có thể đưa vào các dự án cần sử dụng khả năng phát hiện và đo lường ánh sáng BH1750 sử dụng phép đo ánh sáng 16 bit tính bằng lux Có thể đo từ 0 đến 65000 lux
Hình 2 6 Cảm biến cường độ sáng BH1750 và ký hiệu
Module relay
Module relay phù hợp với các ứng dụng đóng ngắt tải AC hoặc DC, mạch có tích hợp opto và transistor cách ly, kích đóng tùy chọn bằng mức thấp hoặc mức cao phù hợp với nhiều vi điều khiển và thiết kế có thể sử dụng nguồn ngoài giúp cho việc
bổ trợ bạc đạn và các vòng đệm kim loại giúp tăng độ bền và độ chính xác của động
cơ khi hoạt động
Hình 2 8 Động cơ servo MG996R và ký hiệu
Trang 22IC thanh ghi dịch 74HC595
2.1.9.1 Tổng quan
IC 74HC595 là IC ghi dịch với 8 bit ngõ ra song song, dữ liệu ngõ ra được điều khiển bởi ngõ vào dữ liệu nối tiếp, xung clock và chốt dữ liệu
IC 74HC595 thường được dùng trong các mạch quét led 7 đoạn, led ma trận,
… để tiết kiệm số chân tối đa (3 chân) Bằng việc mắc nối tiếp các IC với nhau, ta có thể mở rộng số chân ngõ ra của vi điều khiển
Hình 2 9 IC 74HC595 và ký hiệu
2.1.9.2 Sơ đồ chân của IC 74HC595
Các chân từ Q0 tới Q7 là ngõ ra của IC
Chân DS là ngõ vào dữ liệu của IC
Chân SH_CP là ngõ vào lấy cạnh lên của xung đồng hồ
Chân ST_CP là ngõ vào tín hiệu chốt dữ liệu
Chân Q7’ là ngõ ra kết nối với chân DS của IC tiếp theo
Chân VCC là chân cấp nguồn dương (từ 2V đến 6V)
Chân GND là chân nối cực âm của nguồn
Trang 238
Module hạ áp DC XL4015
Mạch giảm áp DC XL4015 (5A) có chỉnh dòng được sử dụng để giảm áp
DC, mạch còn được tích hợp IC opamp so sánh tại đầu ra và biến trở chỉnh hạn mức điện áp giúp đảm bảo an toàn khi sử dụng, trong các trường hợp chạm hoặc quá dòng mạch sẽ cảnh báo qua đèn led và tự ngắt
Trang 242.2 CHUẨN GIAO TIẾP
2.2.1 Chuẩn giao tiếp I2C
I2C chỉ sử dụng hai dây để truyền dữ liệu giữa các thiết bị
Hình 2 12 Tổng quan bus I2C
Trong đó, SDA là đường truyền cho vi điều khiển (master) và thiết bị (slave)
để gửi và nhận dữ liệu, SCL là đường tạo tín hiệu xung nhịp I2C là một giao thức truyền thông nối tiếp, nên dữ liệu được truyền từng bit dọc theo một dây duy nhất (đường SDA) Giống như SPI, I2C là đồng bộ, vì vậy đầu ra của các bit được đồng
bộ hóa với việc lấy mẫu các bit bởi một tín hiệu xung nhịp được chia sẻ giữa master
và slave Tín hiệu xung nhịp luôn được master điều khiển
2.2.1.2 Cách hoạt động của chuẩn I2C
I2C truyền dữ liệu dưới dạng thông điệp Thông điệp được chia thành các khung dữ liệu Mỗi thông điệp có một khung chứa địa chỉ nhị phân của slave và một hoặc nhiều khung chứa dữ liệu đang được truyền Thông điệp cũng bao gồm các điều kiện bắt đầu và dừng, các bit đọc/ghi và các bit ACK/NACK giữa mỗi khung dữ liệu
Hình 2 13 Khung dữ liệu được truyền trong I2C
Trang 2510 Trong đó:
Điều kiện ban đầu: SDA chuyển tín hiệu từ 1 xuống 0 sau khi SCL chuyển từ
sẽ truyền cho master 1 bit NACK
2.2.1.3 Các bước truyền dữ liệu I2C
Master chuyển tín hiệu SDA từ 1 xuống 0 trước khi SCL chuyển từ 1 xuống
0
Hình 2 14 Master gửi điều kiện khởi động đến slave trong I2C
Master gửi địa chỉ 7 hoặc 10 bit của slave mà nó muốn giao tiếp, cùng với bit đọc/ghi
Hình 2 15 Master gửi cho slave địa chỉ nó muốn giao tiếp trong I2C
Trang 26Mỗi slave so sánh địa chỉ được gửi từ master với địa chỉ của chính nó Nếu địa chỉ phù hợp, slave đó sẽ trả về một bit ACK bằng cách chuyển tín hiệu SDA xuống
0
Master gửi hoặc nhận khung dữ liệu
Hình 2 16 Master gửi hoặc nhận khung dữ liệu trong I2C
Slave sẽ gửi một bit ACK cho master sau mỗi khung dữ liệu được chuyển để xác nhận đã nhận khung thành công
Hình 2 17 Slave gửi bit ACK cho master khi nhận khung thành công trong
Trang 27Hình 2 19 Sơ đồ khối SPI
Sơ đồ khối bao gồm:
MOSI: ngõ ra master gửi dữ liệu đến slave
MISO: ngõ vào master slave gửi dữ liệu đến
SCLK: ngõ ra xung nhịp để đồng bộ với slave
SS/CS: ngõ ra master chọn slave để giao tiếp
2.2.2.2 Cách hoạt động
Việc đồng bộ hóa đầu ra các bit dữ liệu từ master của tín hiệu đồng hồ nhằm mục đích lấy mẫu các bit bởi slave Một bit dữ liệu được truyền trong mỗi chu kỳ đồng hồ, vì vậy tốc độ truyền dữ liệu được xác định bởi tần số của tín hiệu đồng hồ Giao tiếp SPI luôn được khởi tạo bởi master kể từ khi cấu hình và tạo ra tín hiệu đồng
hồ SPI là một giao thức truyền thông đồng bộ
Bằng cách đặt đường dây CS/SS của slave ở mức điện áp thấp, Master có thể chọn slave mà nó muốn truyền đi Với trạng thái nhàn rỗi (idle), không truyền tải, slave giữ đường dây ở mức điện áp cao Nhiều chân CS/SS có thể có sẵn trên thiết bị master, cho phép đấu dây song song nhiều slave Nếu chỉ có một chân CS/SS, nhiều slave có thể được kết nối với chủ bằng cách nối tiếp với nhau
Trang 28SPI có thể được thiết lập để hoạt động giữa một master và một slave duy hoặc nhiều slave và một master duy nhất điều khiển Có hai cách để kết nối master với nhiều slave Nếu master có nhiều chân chọn slave, các slave có thể được nối dây song song
Hình 2 20 SPI ở chế độ nhiều slave song song
Các slave có thể được nối nối tiếp khi chỉ có một chân slave select
Hình 2 21 SPI ở chế độ nhiều slave nối tiếp
Dữ liệu được master gửi từng bit đến slave qua đường MOSI Slave nhận dữ liệu tại chân MOSI Master gửi dữ liệu đến slave theo thứ tự từ bit quan trọng nhất trước
Master củng có thể nhận dữ liệu trở lại từ slave qua đường MISO nối tiếp Dữ liệu được gửi đầu tiên thường bit ít quan trọng nhất
Trang 29OneWire thường được sử dụng để giao tiếp với các thiết bị nhỏ, không yêu cầu về thời gian trễ như cảm biến nhiệt độ, cảm biến điện áp pin, chip định vị,
Hình 2 22 Sơ đồ khối OneWire
2.2.3.2 Cách hoạt động
Tín hiệu trên bus OneWire chia thành các khe thời gian 60 µs nhằm mục đích giao tiếp vi điều khiển Thời gian được quy định khác nhau với các thiết bị slave khác nhau Nhưng với chuẩn giao tiếp này thì độ chính xác về thời gian được ưu tiên hang đầu Do đó cần một bộ định thời để tối ưu đường truyền nhằm delay chính xác nhất
Hình 2 23 Biểu đồ dạng sóng truyền theo thời gian trong OneWire
Trang 30Quá trình hoạt động của OneWire bao gồm 4 bước như sau:
Gửi bit 1: Master kéo xuống 0 một khoảng A (µs) rồi về mức 1 khoảng B (µs)
Gửi bit 0: Master kéo xuống 0 khoảng C (µs) rồi trả về 1 khoảng D (µs)
Đọc một bit: Master kéo xuống 0 khoảng A (µs) rồi trả về 1 delay khoảng E (µs), sau đó đọc giá trị slave gửi về 1 khoảng delay F (µs)
Restart: Master kéo xuống 0 một khoảng H (µs) rồi đưa lên mức 1, sau đó cấu hình master là chân input delay I (µs) rồi đọc giá trị slave trả về Nếu bằng 0 thì cho phép giao tiếp, nếu bằng 1 đường truyền lỗi hoặc slave đang bận Thiết
bị master kéo bus xuống thấp ít nhất 8 khe thời gian (tức là 480 µs) và sau đó thả bus Khoảng thời gian bus ở mức thấp đó gọi là tín hiệu reset Nếu có thiết
bị slave gắn trên bus, nó sẽ trả lời bằng tín hiệu presence, tức là slave sẽ kéo bus xuống mức thấp trong khoảng thời gian 60µs
Trang 3116
2.3 THIẾT KẾ PHẦN MỀM
2.3.1 Mã OTP
2.3.1.1 Tổng quan
Mã xác thực OTP (One Time Password) là hình thức được dùng làm lớp thứ
2 để xác minh giao dịch trong giao dịch ngân hàng, xác minh đăng nhập trên tài khoản email, tài khoản mạng xã hội, … Bên cạnh đó OTP còn là “mật khẩu”, chỉ khác với mật khẩu mà ta tự thiết lập và ghi nhớ là mật khẩu này chỉ sử dụng “một lần”
Mã OTP được tạo từ những thuật toán sinh ra mã một cách ngẫu nhiên Việc
sử dụng mã OTP được dùng để gia tăng lớp bảo mật
2.3.1.2 Cách sinh mã OTP và ứng dụng
Có 3 cách tạo OTP phổ biến:
Đồng bộ theo thời gian giữa máy chủ và người nhận để tạo hiệu lực trong khoảng thời gian ngắn Thường là 30 giây
Dựa theo nguyên tắc số học để tạo mật khẩu mới dựa trên mật khẩu cũ
Dựa theo nguyên tắc số học cùng với nguyên tắc khác để tạo mật khẩu mới
Những ứng dụng phổ biến của OTP:
SMS OTP: Mã OTP được cung cấp qua tin nhắn SMS khi thực hiện
một số thao tác mà được đánh giá có độ rủi ro cao
Voice OTP: Mã OTP được cung cấp thông qua cuộc gọi
Qua các chương trình ứng dụng tạo OTP
Qua thiết bị cứng: Thiết bị này được gắn chip để tự sinh mã OTP liên tục tương tự như các chương trình ứng dụng tạo mã OTP
OTP ma trận: dạng này thì người sử dụng được cấp 1 bảng ma trận để kết hợp tạo mã OTP Dạng này thì ít ai sử dụng Vì khi sử dụng hết phải mua lại hoặc xin cấp lại bảng mã
Trang 322.3.2 Telegram Chatbot
2.3.2.1 Ứng dụng Telegram
Telegram là ứng dụng nhắn tin, gọi điện video, chia sẻ file đa nền tảng và miễn
phí Các cuộc gọi và tin nhắn trên Telegram đều được mã hóa đầu cuối để đem đến
sự bảo mật tuyệt đối cho người sử dụng Telegram có mặt trên các hệ điều hành phổ biến nhất hiện nay như Android, iOS, Windows, macOS và Linux
2.3.2.2 Telegram Chatbot
Bots là ứng dụng được Telegram phát triển Người dùng gửi tin nhắn hoặc lệnh điều khiển cho bot, sau đó bot sẽ gửi lại các thông tin phản hồi Bot hoạt động bằng cách sử dụng các yêu cầu HTTPS dựa vào API Bot của Telegram
Bot được xây dựng để thực hiện các ứng dụng sau:
Nhận thông báo và tin tức tùy chỉnh
Tích hợp vào các dịch vụ khác: bot Gmail, bot GIF, bot IMDB, bot Wiki, bot âm nhạc, bot Youtube, GitHubBot
Chấp nhận thanh toán từ người dùng Telegram Một bot có thể cung cấp các dịch vụ trả phí hoặc hoạt động như một cửa hàng ảo
Tạo các công cụ tùy chỉnh, có thể cung cấp các cảnh báo, dự báo thời tiết, bản dịch, định dạng hoặc các dịch vụ khác
Xây dựng các trò chơi đơn và nhiều người chơi Một bot có thể cung cấp trải nghiệm HTML5 phong phú, từ các trò chơi xếp hình và câu đố đơn
giản đến game bắn súng 3D và trò chơi chiến lược thời gian thực
Xây dựng các dịch vụ xã hội Một bot có thể kết nối những người đang tìm kiếm đối tác trò chuyện dựa trên sở thích chung hoặc sự gần gũi
Về họa động, Telegram Bots là các tài khoản đặc biệt không yêu cầu thêm số điện thoại để thiết lập Người dùng có thể giao tiếp với bot theo hai cách sau:
Gửi tin nhắn và lệnh tới bot bằng cách mở cuộc trò chuyện với chúng hoặc bằng cách thêm chúng vào nhóm
Gửi yêu cầu trực tiếp từ trường nhập bằng cách nhập tên người dùng của bot và một truy vấn Điều này cho phép gửi nội dung từ các bot nội tuyến trực tiếp vào bất kỳ cuộc trò chuyện, nhóm hoặc kênh nào
Trang 3318
2.3.3 Ngôn ngữ lập trình Python
Python là ngôn ngữ lập trình hướng đối tượng bậc cao được sử dụng để phát triển web và ứng dụng Hỗ trợ nhiều mẫu đa lập trình khác nhau như: mệnh lệnh, lập trình hướng đối tượng, lập trình hàm, … và được dùng đa lĩnh vực
Vì là một ngôn ngữ lập trình mã nguồn mở, đa nền tảng, dễ học dễ đọc Python
có cấu trúc rõ ràng, thuận tiện cho người mới học lập trình nên nó được sử dụng rộng rãi
Các tính năng nổi bật của ngôn ngữ Python:
Phát triển web (phía máy chủ)
Phát triển phần mềm
Có thể được sử dụng cùng với các phần mềm nhằm tạo quy trình công việc
Kết nối với các hệ thống cơ sở dữ liệu
Xử lý dữ liệu lớn và thực hiện các phép toán phức tạp
Trang 34Chương 3 TÍNH TOÁN VÀ THIẾT KẾ
3.2 YÊU CẦU VÀ SƠ ĐỒ KHỐI HỆ THỐNG
3.2.1 Yêu cầu của hệ thống
Hệ thống giám sát, điều khiển thiết bị trong nhà sử dụng máy tính nhúng Orange Pi Lite làm khối điều khiển trung tâm với một số chức năng như sau:
Đăng nhập hệ thống trực tiếp thông qua xác thực OTP hoặc từ xa qua chat, thêm/xóa tài khoản người dùng, ẩn/hiển thị/tắt hệ thống để bảo mật
Hiển thị thông tin hệ thống lên màn hình LCD, có thể bật/tắt màn hình
Điều khiển máy xử lý trung tâm bằng bàn phím số
Giám sát trực tiếp qua camera
Điều khiển thiết bị qua lệnh chat Telegram hoặc thao tác trên màn hình giám sát
Mở khóa cửa bằng lệnh chat Telegram hoặc thẻ từ
3.2.2 Sơ đồ khối và chức năng mỗi khối
3.2.2.1 Sơ đồ khối hệ thống đóng/mở cửa
KHỐI XỬ LÝ TRUNG TÂM 2
MODULE RFID
CÔNG TẮCCHỐT CỬAKHỐI CHẤP
- Module RFID: Đọc dữ liệu thẻ RF
- Khối chấp hành: Điều khiển servo đóng/mở cửa
- Khối nguồn: Sử dụng nguồn 5V từ Hệ thống chính cấp cho các khối; pin 9V qua mạch hạ áp xuống 5V làm nguồn dự phòng khi mất điện; module relay chuyển đổi giữa nguồn adapter và pin
- Khối xử lý trung tâm 1: Truyền tín hiệu mở cửa
Trang 3520
3.2.2.2 Sơ đồ khối hệ thống chính
KHỐI XỬ LÝ TRUNG TÂM 1
CB ÁNH SÁNG
CB KHÍ GAS, KHÓI
CB NHIỆT ĐỘ,
ĐỘ ẨM
WEBCAM KHỐI HIỂN THỊ
KHỐI NGUỒN INTERNET
WIFI TELEGRAM CHATBOTSMARTPHONE
WIFI/GSM
Hình 3 2 Sơ đồ khối hệ thống chính
Chức năng từng khối:
- Khối xử lý trung tâm 1: Đọc và xử lý thông tin từ tín hiệu các cảm biến; Xử lý
dữ liệu từ webcam; Đọc và xử lý tín hiệu từ Khối nút nhấn; Hiển thị các thông
số lên Khối hiển thị; Điều khiển các thiết bị trong Khối chấp hành Truyền/nhận, xử lý dữ liệu điều khiển từ Smartphone thông qua Telegram chatbot
- Cảm biến: Thu thập nhiệt độ, độ ẩm, cường độ ánh sáng, phát hiện khí gas, khói
- Webcam: Bao gồm 2 camera giám sát
- Khối chấp hành: Điều khiển led đơn, led siêu sang, bật/tắt thiết bị
- Khối hiển thị: Hiển thị thông tin ra màn hình
- Khối nguồn: Sử dụng nguồn adapter 12V cấp cho khối hiển thị và 5V cấp cho các khối còn lại
- Khối nút nhấn: Điều khiển bật/tắt thiết bị bằng tay; đọc tín hiệu đóng/mở cửa
- Khối xử lý trung tâm 2: Nhận tín hiệu mở cửa
Trang 363.3 THIẾT KẾ HỆ THỐNG PHẦN CỨNG
3.3.1 Hệ thống đóng/mở cửa
3.3.1.1 Khối xử lý trung tâm
Hình 3 3 Khối xử lý trung tâm của Hệ thống đóng/mở cửa
Sử dụng kit thu phát Wifi ESP8266 NodeMCU làm trung tâm xử lý
- Chân D4: Điều khiển servo để đóng/mở cửa
- Các chân D3, D5, D6, D7, D8: Giao tiếp SPI với module RFID RC522
Trang 3722
3.3.1.2 Khối tín hiệu vào
Hình 3 4 Khối tín hiệu vào của Hệ thống đóng/mở cửa
- Hoạt động mở cửa: Khi cửa đang đóng, B2 được nhấn, người dùng quét thẻ,
hệ thống điều khiển servo mở khóa cửa, sau đó hệ thống tiếp tục chờ đến khi cửa được mở bằng tay
- Hoạt động đóng cửa: Khi cửa được đóng bằng tay, B2 được nhấn, hệ thống điều khiển servo khóa cửa
Trang 383.3.1.3 Khối chấp hành
Hình 3 5 Khối chấp hành của Hệ thống đóng/mở cửa
Kết nối phần cứng:
- Servo: Điều khiển đóng/mở cửa
- Buzzer: Bật khi nhận tín hiệu mở cửa từ Khối xử lý trung tâm 1
3.3.1.4 Khối nguồn
Hình 3 6 Khối nguồn của Hệ thống đóng/mở cửa
Sử dụng nguồn 5V từ Hệ thống chính cấp nguồn cho toàn bộ hệ thống
Công suất tổng:
- Công suất nguồn chính: 5V * 4.5A = 22.5W
- Công suất nguồn phụ: 5V * 1A = 5W
Trang 39Điện áp tiêu thụ (V)
Công suất tiêu thụ (mW)
Nguyên lý chuyển nguồn phụ:
- Khi có điện, tín hiệu vào relay IN = 1, relay đóng ở COM – NO và sử dụng nguồn từ hệ thống chính
- Khi mất điện, relay đóng ở COM – NC, hệ thống sử dụng nguồn từ pin 9V qua mạch hạ áp 5V
Trang 403.3.2 Hệ thống chính
3.3.2.1 Khối xử lý trung tâm
Hình 3 7 Khối xử lý trung tâm của Hệ thống chính
Sử dụng máy tính nhúng Orange Pi làm trung tâm xử lý
Kết nối phần cứng và chức năng:
- Các chân A13, A14, D14, C4, C7, A2: Đọc và xử lý thông tin từ các cảm biến nhiệt độ, độ ẩm DHT11
- Các chân A3, A21, G8: Kết nối IC 74HC595 để điều khiển led đơn
- Các chân A10, A20: Điều khiển led siêu sáng bằng PWM
- Các chân A18, A19: Giao tiếp I2C với cảm biến cường độ sáng BH1750
- Chân G9: Kết nối buzzer
- Chân G6: Đọc tín hiệu từ cảm biến khí gas, khói MQ135
- Chân A12: Truyền tín hiệu mở cửa với Khối xử lý trung tâm 2
- Chân G7: Đọc tín hiệu đóng/mở cửa
- Cổng HDMI: Hiển thị các thông số lên màn hình của Khối hiển thị
- Cổng USB: Kết nối webcam, bàn phím số