TỔNG QUAN
ĐẶT VẤN ĐỀ
Sự phát triển nhanh chóng của công nghệ mang đến nhiều bất ngờ và tiện nghi cho con người Hiện nay, hệ thống điều khiển thông minh ngày càng được áp dụng rộng rãi trong đời sống, đặc biệt là trong việc điều khiển các thiết bị trong nhà.
Nhà thông minh là ngôi nhà trang bị các thiết bị tự động hóa hiện đại, giúp tăng cường tiện nghi và dễ dàng quản lý, giám sát Các thiết bị quan trọng trong nhà thông minh bao gồm điều khiển đèn từ xa, đèn tự động, camera giám sát và hệ thống an ninh Hiện nay, nhiều mô hình nhà thông minh đã được phát triển, với một số đề tài hoàn chỉnh nhưng cũng còn nhiều đề tài chưa được tối ưu.
Nhóm thực hiện đã chọn đề tài “Thiết kế và thi công hệ thống điều khiển và giám sát thiết bị trong nhà” nhằm kế thừa các tính năng hữu ích từ các đồ án trước đó và phát triển thêm nhiều tính năng mới Các tính năng nổi bật bao gồm điều khiển thiết bị bằng giọng nói thông qua ứng dụng và điều khiển qua website tự tạo, mang lại sự tiện lợi và linh hoạt cho người dùng.
MỤC TIÊU
Hệ thống điều khiển thiết bị trong nhà được thiết kế và thi công sử dụng các module như Arduino Mega 2560, ESP32-CAM, ESP8266 và bluetooth HC-05, cùng với các cảm biến như cảm biến nhiệt độ – độ ẩm, cảm biến khí gas, cảm biến chuyển động và cảm biến ánh sáng.
Hệ thống thiết bị cho phép điều khiển cửa chính qua nút nhấn hoặc từ web server, và trong trường hợp mất kết nối wifi, người dùng có thể mở cửa bằng ứng dụng Android qua kết nối bluetooth Cửa chính được vận hành bằng mật khẩu nhập từ phím nhấn ma trận, và camera tại cổng chính sẽ ghi lại hình ảnh những người bấm chuông và mở cổng.
Hệ thống mái hiên tự động được thiết kế để đóng – mở linh hoạt theo nhu cầu người dùng, kết hợp với cảm biến mưa để đảm bảo sự tiện lợi và an toàn Ngoài ra, hệ thống còn tích hợp cảnh báo rò rỉ khí gas với chuông báo động, giúp người sử dụng yên tâm hơn Thông tin về trạng thái các thiết bị, nhiệt độ và độ ẩm trong phòng được hiển thị trực tiếp trên web server, tạo điều kiện thuận lợi cho việc theo dõi và quản lý.
NỘI DUNG NGHIÊN CỨU
Nhóm thực hiện đề tài tập trung vào hoàn thành những nội dung sau:
- Tìm hiểu kiến thức về module Arduino Mega 2560, module ESP8266, module
ESP32-CAM, module bluetooth HC-05; các loại cảm biến: cảm biến ánh sáng, cảm biến chuyển động, cảm biến khí gas, cảm biến nhiệt độ – độ ẩm,
- Tìm hiểu về: hệ thống bảo mật cửa bằng mật khẩu bàn phím ma trận, bảo mật bằng ESP32 CAM
- Tìm hiểu các giao thức truyền thông, giao tiếp giữa Arduino Mega 2560 với
ESP8266 và HC-05 giữa ESP8266 với cơ sỡ dữ liệu, giữa cơ sở dữ liêu với web server, giữa Arduino Mega 2560 và App thông qua module Bluetooth HC-05…
- Thiết kế sơ đồ nguyên lý cho toàn mạch
- Viết các chương trình cho khối điều khiển Arduino Mega2560, ESP32-CAM,
Tạo cơ sở dữ liệu và thiết kế ứng dụng trên hệ điều hành Android kết hợp với web server giúp giám sát và điều khiển các thiết bị cũng như các thông số trong nhà một cách hiệu quả.
- Thiết kế mạch in PCB, thi công mạch, thi công mô hình hoàn chỉnh
- Chạy thử nghiệm và cân chỉnh hệ thống cho ổn định
- Viết quyển báo cáo đồ án tốt nghiệp
- Báo cáo đồ án tốt nghiệp.
GIỚI HẠN
Đề tài “Thiết kế và thi công hệ thống điều khiển thiết bị trong nhà” có những giới hạn sau:
- Mô hình giới hạn trong phạm vi nhỏ
- App điều khiển đóng mở cửa chính chỉ dùng trên điện thoại chạy hệ điều hành android
- Chưa đồng bộ được hết các tính năng của các module…
Hệ thống không thể ngay lập tức đáp ứng yêu cầu của người dùng vì nó phụ thuộc vào tốc độ mạng, khả năng xử lý của vi điều khiển, và thời gian truyền tín hiệu giữa các thiết bị trong hệ thống.
- Điều khiển các thiết bị công suất nhỏ như quạt, bóng đèn.
BỐ CỤC
Chương này giới thiệu lý do lựa chọn đề tài nghiên cứu, xác định mục tiêu và nội dung nghiên cứu, đồng thời nêu rõ các giới hạn thông số và cấu trúc của đồ án.
CƠ SỞ LÝ THUYẾT
SƠ LƯỢC VỀ INTERNET OF THINGS
Internet vạn vật (IoT) là một mạng lưới kết nối các thiết bị, phương tiện vận tải và trang thiết bị thông minh, được trang bị điện tử, phần mềm, cảm biến và cơ cấu chấp hành Nhờ khả năng kết nối mạng máy tính, các thiết bị này có thể thu thập và truyền tải dữ liệu một cách tự động, không cần sự can thiệp của con người.
Kết nối có thể được thực hiện qua nhiều phương thức như wifi, mạng viễn thông băng rộng (3G, 4G, 5G) và bluetooth Các thiết bị kết nối bao gồm điện thoại thông minh, máy giặt, tai nghe, bóng đèn và nhiều thiết bị khác.
Các thành phần chính trong một hệ thống IoT:
- Thiết bị: Mỗi thiết bị sẽ bao gồm một hoặc nhiều cảm biến để phát hiện các thông số của ứng dụng và gửi chúng đến Platform
Nền tảng IoT là phần mềm lưu trữ trực tuyến, hay còn gọi là điện toán đám mây, cho phép kết nối các thiết bị với nhau Nó thu thập và phân tích dữ liệu từ các thiết bị, giúp phát hiện lỗi trong quá trình vận hành của hệ thống.
Kết nối internet là yếu tố thiết yếu để các thiết bị trong IoT có thể giao tiếp với nhau Wifi là một trong những phương thức kết nối internet phổ biến nhất hiện nay.
- Ứng dụng: Là giao diện để người dùng sử dụng
IoT được sử dụng trong nhiều lĩnh vực:
Thành phố thông minh tích hợp các giải pháp như giám sát thông minh, vận chuyển tự động, quản lý năng lượng hiệu quả, phân phối nước tối ưu, an ninh đô thị và giám sát môi trường, nhằm nâng cao chất lượng sống và phát triển bền vững.
Internet công nghiệp hỗ trợ kỹ thuật công nghiệp thông qua việc sử dụng cảm biến và phần mềm tiên tiến, tạo ra những cỗ máy thông minh với độ chính xác và tính nhất quán vượt trội so với con người Nhờ vào dữ liệu thu thập được, các công ty và nhà quản lý có thể phát hiện và giải quyết vấn đề nhanh chóng hơn, từ đó nâng cao hiệu quả hoạt động.
Các thiết bị đeo thông minh như kính, đồng hồ và vòng đeo tay được trang bị cảm biến để thu thập thông tin người dùng, bao gồm huyết áp và số bước đi hàng ngày.
Hình 2.2 Đồng hồ apple watch
Nhà thông minh là một loại nhà được trang bị các thiết bị điện có khả năng điều khiển bằng tay, bán tự động hoặc tự động, nhằm thay thế con người trong việc quản lý và điều khiển các hệ thống trong ngôi nhà.
SƠ LƯỢC VỀ MẠNG WIFI
Wifi, viết tắt của Wireless Fidelity, là mạng kết nối không dây sử dụng sóng vô tuyến để truyền tín hiệu Sóng vô tuyến này tương tự như sóng điện thoại, truyền hình và radio Hầu hết các thiết bị điện tử hiện nay như máy tính, laptop và điện thoại đều có khả năng kết nối với wifi.
Wifi hoạt động dựa trên các chuẩn kết nối IEEE 802.11, chủ yếu sử dụng băng tần 54 Mbps, với tín hiệu mạnh nhất ở khoảng cách gần.
2.2.2 Một số chuẩn kết nối wifi phổ biến
Tín hiệu wifi hoạt động ở tần số từ 2.5GHz đến 5GHz, cho phép truyền tải nhiều dữ liệu hơn so với các thiết bị như điện thoại di động và radio Tuy nhiên, phạm vi truyền của tín hiệu wifi lại bị hạn chế, ảnh hưởng đến khoảng cách kết nối.
Sóng wifi sử dụng chuẩn kết nối 802.11 trong thư viện IEEE (Institute of Electrical and Electronics Engineers), chuẩn này bao gồm 4 chuẩn chính nhỏ hơn là a, b, g và n
- Chuẩn 802.11b là phiên bản yếu nhất, hoạt động ở mức 2.4GHz và có thể xử lý đến 11Megabit/giây
- Chuẩn 802.11g nhỉnh hơn đôi chút so với chuẩn b, tuy nó hoạt động ở tần số
2.4GHz nhưng nó có thể xử lý 54Megabit/giây
- Chuẩn 802.11a phát ở tần số cao hơn là 5GHz và tốc độ xử lý đạt 54Megabit/giây
- Cuối cùng là chuẩn 802.11n, nó hoạt động ở tần số 2.4GHz nhưng tốc độ xử lý lên đến 300Megabit/giây
Chuẩn 802.11ac, được IEEE giới thiệu vào đầu năm 2013, hoạt động ở băng tần 5 GHz và mang đến cho người dùng trải nghiệm tốc độ cao nhất lên đến 1730 Mbps.
Do giá thành cao, các thiết bị phát tín hiệu cho chuẩn này chưa phổ biến, dẫn đến việc hạn chế tối ưu hóa hiệu suất của các thiết bị phát.
- Chuẩn 802.11ad: được giới thiệu năm 2014, chuẩn wifi 802.11ad được hỗ trợ băng thông lên đến 70 Gbps và hoạt động ở dải tần 60GHz
Một nhược điểm của chuẩn này là tín hiệu sóng khó xuyên qua các bức tường, dẫn đến việc nếu Router không nằm trong tầm nhìn, thiết bị sẽ mất kết nối với Wifi.
Chuẩn 802.11ax, hay còn gọi là Wi-Fi 6, là phiên bản mới nhất của tiêu chuẩn mạng không dây Wi-Fi 6 mang lại tốc độ nhanh hơn, dung lượng lớn hơn và hiệu suất năng lượng được cải thiện so với các kết nối không dây trước đây Tên gọi Wi-Fi 6 sẽ chính thức được áp dụng từ năm nay.
Và một số chuẩn mới khác nữa.
SƠ LƯỢC VỀ NHÀ THÔNG MINH
2.3.1 Giới thiệu nhà thông minh
Nhà thông minh từng được coi là một tiện nghi xa xỉ, chỉ có trong phim ảnh hoặc ở các dinh thự của giới thượng lưu Tuy nhiên, nhờ sự phát triển của công nghệ và sự xuất hiện của IoT, các thiết bị nhà thông minh đã trở nên phổ biến và dễ dàng tiếp cận hơn với mọi người.
Nhà thông minh là loại hình nhà được trang bị các thiết bị điện và điện tử có khả năng điều khiển tự động hoặc bán tự động, giúp thay thế con người trong việc quản lý và điều khiển Hệ thống này tương tác với người dùng thông qua bảng điều khiển điện tử, ứng dụng di động, máy tính bảng hoặc giao diện web.
2.3.2 Cơ chế hoạt động của nhà thông minh
Hệ thống tự động của nhà thông minh được dựa trên 2 cơ chế chính: sự kiện thời gian và sự kiện tương tác
Hệ thống nhà thông minh hoạt động như một chiếc đồng hồ báo thức thông minh, luôn theo dõi thời gian trong ngày và tự động kích hoạt các thiết bị đúng thời điểm mà chủ nhà đã cài đặt trước.
- Mở đèn ở hiên nhà 10 phút trước khi trời tối
- Mở rèm cửa vào lúc 6h sáng
- Kích hoạt hệ thống báo động lúc 12h đêm để chống trộm
Sự kiện tương tác kích hoạt hệ thống nhà thông minh dựa vào cơ chế cảm biến
Nó hoạt động nhờ vào các cảm biến trong nhà
Một số ví dụ về tác động lên cảm biến:
2.3.3 Ưu điểm và nhược điểm của nhà thông minh
- Mang đến sự tiện nghi và thoải mái cho căn nhà
- Cung cấp sự an tâm cho chủ nhà, cho phép họ giám sát nhà từ xa
- Có thể thích ứng với sở thích của người dùng
Nhược điểm và trở ngại khiến nhà thông minh chưa phổ biến:
- Rào cản tâm lý hàng trăm năm để lại của người tiêu dùng
- Giá cả chưa bình dân để phổ cập
- Sự phức tạp khi lắp đặt và sử dụng
2.3.4 Các nền tảng nhà nhà thông minh phổ biến hiện nay
Google Home là một loa thông minh của Google, được kết nối với wifi và tích hợp trợ lý ảo, cho phép người dùng ra lệnh bằng giọng nói thông qua micro Loa này hoạt động liên tục khi được cấp nguồn, nhưng sẽ ở chế độ ngủ cho đến khi được đánh thức bằng câu lệnh “OK, Google” Ngoài ra, Google Home còn có khả năng kiểm soát các thiết bị thông minh trong nhà, mang lại sự tiện lợi cho người dùng.
Apple Homekit là nền tảng tích hợp các thiết bị thông minh cho nhà thông minh, cho phép chúng giao tiếp qua một bộ tiêu chuẩn chung Với giao thức độc quyền, người dùng có thể điều khiển các thiết bị bằng iPhone, iPad hoặc Apple Watch, giúp quản lý nhiều thiết bị từ một giao diện iOS dễ dàng và tiện lợi.
Amazon Alexa, hay còn gọi là Alexa, là một trợ lý ảo được phát triển bởi Amazon, ban đầu được sử dụng cho các thiết bị như Amazon Echo và Echo Dot Dịch vụ thoại Alexa (AVS) được thiết kế để mô phỏng các cuộc hội thoại thực tế, trong khi người dùng tương tác chủ yếu thông qua các lệnh thoại để thực hiện các tác vụ cụ thể.
CÁC CHUẨN VÀ PHƯƠNG THỨC TRUYỀN DỮ LIỆU
UART, viết tắt của Universal Asynchronous Receiver-Transmitter, là một giao thức truyền thông nối tiếp không đồng bộ, thường được tích hợp trong các mạch điện Chức năng chính của UART là truyền tín hiệu giữa các thiết bị, chẳng hạn như từ laptop đến modem hoặc giữa các vi điều khiển.
Hình 2.8 Gói dữ liệu truyền của UART
Các thông số trong chuẩn truyền UART:
- Packet: Một gói dữ liệu được truyền đi, bao gồm start bit, khung truyền dữ liệu, parity bit, stop bit
Bit bắt đầu thường duy trì ở mức điện áp cao khi không có dữ liệu được truyền Để khởi động quá trình truyền, UART sẽ kéo bit này xuống mức thấp trong một chu kỳ xung nhịp Khi UART phát hiện sự chuyển đổi từ điện áp cao sang thấp, nó sẽ bắt đầu đọc các bit trong khung dữ liệu với tần số tương ứng với tốc độ truyền.
Khung dữ liệu chứa thông tin được truyền tải, có độ dài từ 5 đến 8 bit khi sử dụng bit parity Nếu không có bit parity, khung dữ liệu có thể dài tới 9 bit Bit parity giúp kiểm tra tính toàn vẹn của dữ liệu trong quá trình truyền bằng cách xác định tổng số bit 1 là chẵn hay lẻ Nếu tổng số bit 1 là chẵn và bit parity là 0, quá trình truyền không có lỗi; ngược lại, nếu bit parity là 1, điều này cho thấy có lỗi trong đường truyền, dẫn đến sự thay đổi của dữ liệu.
Stop bit là tín hiệu báo hiệu kết thúc gói dữ liệu trong giao thức UART, khi đó, đường truyền dữ liệu sẽ chuyển từ điện áp thấp sang điện áp cao trong ít nhất hai bit.
UART truyền nhận dữ liệu từ bus dữ liệu bằng cách chuyển đổi dữ liệu từ dạng song song sang dạng nối tiếp Quá trình này bắt đầu với việc thêm bit start, bit parity và bit stop vào gói dữ liệu Gói dữ liệu sau đó được xuất ra qua chân Tx và truyền đến chân Rx của UART nhận Tại đây, UART nhận sẽ đọc các gói dữ liệu, loại bỏ các bit không cần thiết và chuyển đổi lại dữ liệu về dạng song song Cuối cùng, dữ liệu song song này được chuyển qua bus dữ liệu.
Hình 2.11 Quá trình truyền UART
Hình 2.10 Quá trình nhận UART
2.4.2 Giao thức HTTP và HTTPS a Giao thức HTTP
HTTP (Giao thức Truyền tải Siêu văn bản) là giao thức tiêu chuẩn cho World Wide Web, cho phép truyền tải dữ liệu như văn bản, âm thanh, hình ảnh và video giữa Web Server và trình duyệt web của người dùng.
HTTP là giao thức ứng dụng trong bộ giao thức TCP/IP, nền tảng cho Internet và nhiều mạng máy tính thương mại TCP/IP là tập hợp các giao thức truyền thông, được xây dựng theo mô hình chồng giao thức, với hai giao thức chính là TCP (Transmission Control Protocol).
Control Protocol – Giao thức điều khiển truyền vận) và IP (Internet Protocol – Giao thức Internet)
HTTP hoạt động theo mô hình Client-Server, cho phép truy cập website thông qua giao tiếp giữa hai đối tượng này Khi bạn truy cập một trang web qua giao thức HTTP, trình duyệt sẽ kết nối với máy chủ thông qua địa chỉ IP do hệ thống DNS cung cấp Sau khi nhận lệnh, máy chủ sẽ trả về dữ liệu cần thiết để hiển thị website, bao gồm văn bản, hình ảnh, video và âm thanh.
Trong quá trình truy cập thông tin, trình duyệt tự động chấp nhận địa chỉ IP từ server của website mà không có biện pháp xác thực nào Thông tin gửi qua giao thức HTTP, bao gồm địa chỉ IP và dữ liệu người dùng, không được mã hóa, tạo điều kiện cho hacker thực hiện các cuộc tấn công sniffing để đánh cắp thông tin Để bảo vệ dữ liệu, giao thức HTTPS ra đời nhằm cung cấp tính bảo mật cao hơn.
HTTPS (Giao thức Truyền tải Siêu văn bản An toàn) là phiên bản an toàn của giao thức HTTP, được tích hợp thêm Chứng chỉ bảo mật SSL để mã hóa thông điệp giao tiếp Điều này giúp tăng cường tính bảo mật cho dữ liệu truyền tải trên internet.
HTTPS hoạt động tương tự như HTTP, tuy nhiên được bổ sung thêm chứng chỉ SSL (Secure Sockets Layer – tầng ổ bảo mật) hoặc TLS (Transport Layer
Security – bảo mật tầng truyền tải) Hiện tại, đây là các tiêu chuẩn bảo mật hàng đầu cho hàng triệu website trên toàn thế giới
SSL và TLS sử dụng hệ thống PKI (Public Key Infrastructure) không đối xứng với hai loại khóa: khóa công khai và khóa riêng Thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa riêng và ngược lại Các tiêu chuẩn này đảm bảo rằng nội dung được mã hóa trước khi truyền đi và giải mã khi nhận, giúp bảo vệ thông tin khỏi hacker, ngay cả khi chúng có thể can thiệp và lấy được dữ liệu.
2.4.3 Phương thức GET và POST
GET và POST là hai phương thức chính của giao thức HTTP, dùng để gửi dữ liệu đến server sau khi người dùng nhập thông tin vào mẫu Trước khi dữ liệu được gửi đi, nó sẽ được mã hóa bằng "url encoding", trong đó các cặp name/value được kết hợp với dấu "=" và phân tách bởi dấu "&".
Phương thức GET gửi thông tin người dùng đã được mã hóa thêm vào trên yêu cầu trang
Phương thức GET gửi thông tin qua đường dẫn URL với giới hạn khoảng 1024 ký tự, do đó nó bị hạn chế về số lượng dữ liệu có thể truyền tải Ngoài ra, GET không hỗ trợ việc gửi dữ liệu nhị phân hoặc hình ảnh.
Phương thức POST truyền tải thông tin qua HTTP header với dữ liệu được mã hóa tương tự như phương thức GET Dữ liệu gửi qua POST được bảo mật hơn vì không hiển thị trên URL, đảm bảo an toàn cho thông tin Ngoài ra, phương thức POST không giới hạn kích thước dữ liệu, cho phép gửi cả dữ liệu nhị phân và hình ảnh.
PHẦN CỨNG
2.5.1 Vi điều khiển a Giới thiệu về Arduino
Arduino là một bo mạch vi xử lý mạnh mẽ, cho phép lập trình và tương tác với các thiết bị phần cứng như cảm biến, động cơ và đèn Với môi trường phát triển dễ sử dụng và ngôn ngữ lập trình thân thiện, Arduino thu hút cả người mới và chuyên gia Được phát hành vào năm 2005, Arduino mang đến giải pháp lập trình tiết kiệm cho sinh viên và những người đam mê công nghệ Phần cứng của nó bao gồm board mạch nguồn mở, sử dụng vi xử lý megaAVR Atmel 8bit hoặc ARM Atmel 32bit, với giá thành rất phải chăng Arduino Mega 2560 là một trong những phiên bản nổi bật, cung cấp khả năng mở rộng và tính năng mạnh mẽ cho các dự án lập trình.
Arduino Mega 2560 là một trong những sản phẩm nổi bật của dòng board Mega, với nhiều cải tiến vượt trội so với Arduino Uno Board này sở hữu 54 chân digital I/O và 16 chân analog I/O, cùng với bộ nhớ Flash được nâng cấp gấp 4 lần, mang lại khả năng lưu trữ và xử lý dữ liệu tốt hơn.
Board mạch Mega, với 19 phiên bản cũ của Uno R3, được trang bị 3 timer và 6 cổng interrupt, cho phép giải quyết hiệu quả nhiều bài toán phức tạp Điều này giúp board có khả năng điều khiển đa dạng các loại động cơ và xử lý song song nhiều luồng dữ liệu số cũng như tương tự.
Arduino Mega không chỉ kế thừa thiết kế từ Arduino Uno với các chân digital từ 0 – 13, analog từ 0 – 5, mà còn mang đến nhiều cải tiến vượt trội Việc thay thế chip Atmega1280 cho phép Mega có thêm vùng nhớ và chân I/O, đáp ứng nhu cầu của các dự án lớn cần dung lượng Flash cao hơn Sự phát triển này giúp người dùng dễ dàng gắp ghép module từ Uno sang Mega, tạo điều kiện thuận lợi cho nghiên cứu và phát triển Arduino Mega ra đời nhằm giải quyết những bài toán phức tạp trong lĩnh vực vi điều khiển nhúng.
- Vi điều khiển chính: Atmega 2560
- Điện áp hoạt động: 5VDC
- Điện áp đầu vào giới hạn: 6 – 20VDC
- Điện áp đầu vào khuyên dùng: 7 – 12VDC
- Dòng ra trên chân 3.3V: 50mA
- Dòng ra trên mỗi chân I/O: 20mA
- Giao tiếp UART: 4 bộ UART
- Giao tiếp SPI: 1 bộ (chân 50 – 53) dùng với thư viện SPI
- Bộ nhớ Flash: 256KB, 8KB sử dụng cho Bootloader
Arduino Mega 2560 hỗ trợ cấp nguồn qua cổng USB hoặc nguồn bên ngoài, với khả năng tự động chọn nguồn cấp Điều này có nghĩa là bạn có thể kết nối cả hai nguồn cùng lúc; nếu nguồn bên ngoài không có hoặc không đủ, Arduino sẽ tự động sử dụng nguồn từ cổng USB và ngược lại.
Chân cấp nguồn gồm những chân sau:
GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino Khi sử dụng các thiết bị với nguồn điện riêng biệt, các chân GND cần phải được kết nối với nhau để đảm bảo hoạt động ổn định.
- Vin (Voltage Input): để cấp nguồn ngoài cho Arduino, ta nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND
AREF là chân đo điện áp hoạt động của vi điều khiển, nhưng không nên sử dụng nguồn 5V từ chân này Chức năng chính của AREF là cung cấp tham chiếu điện áp cho vi xử lý, không phải để cấp nguồn.
Các ngõ vào/ra (I/O pins) của Arduino Mega 2560
Arduino Mega 2560 sở hữu 54 chân digital có khả năng hoạt động như ngõ vào hoặc ngõ ra tùy theo lập trình Các chân này chỉ cung cấp hai mức điện áp là 0V và 5V, với dòng vào ra tối đa 20mA theo khuyến nghị của nhà sản xuất và không vượt quá 40mA để tránh hư hỏng board mạch Mỗi chân digital còn được trang bị một điện trở nội kéo lên có giá trị từ 20 – 50kΩ, nhưng điện trở này không được kết nối mặc định với chân digital.
Hình 2.14 Sơ đồ chân Arduino Mega 2560
- USB Jack (Type B): kết nối để truyền dữ liệu, debug cho chương trình giữa
Arduino với máy tính Ngoài ra cũng cấp nguồn cho Arduino hoạt động thông qua cổng này
- Reset Button: nút nhấn đưa board mạch về chế đệ hoạt động ban đầu
- Jack Power: cấp nguồn cho Arduino hoạt động
Một số chức năng chuyên biệt của các chân:
- Serial 0: 0 (RX) và 1 (TX); Serial 1: 19 (RX) và 18 (TX); Serial 2: 17 (RX) và 16
(TX); Serial 3: 15(RX) và 14(TX) Được sử dụng để nhận dữ liệu nối tiếp TTL (RX) và truyền (TX)
- Ngắt ngoài: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20
Chân 3 và chân 21 được sử dụng để kích hoạt ngắt khi có mức điện áp thấp, cao, xung cạnh lên, xung cạnh xuống hoặc có sự thay đổi điện áp.
- PWM: gồm 15 chân là các chân 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 44, 45, 46 cho phép ta xuất ra xung PWM với độ phân giải 8 bit
- SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác
- I2C: 20 (SDA), 21 (SCL) Hỗ trợ giao tiếp I2C bằng thư viện Wire
LED tích hợp trên board mạch được kết nối với chân 13 Khi điện áp trên chân này cao, LED sẽ phát sáng, và khi điện áp thấp, LED sẽ tắt.
- AREF: đây là chân mà ta đưa vào điện áp tham chiếu khi sử dụng các chân analog
Nếu cung cấp điện áp 2.5V vào chân này, ta có thể sử dụng các chân analog để đo điện áp trong khoảng từ 0V đến 2.5V với độ phân giải 10 bit.
- Arduino Mega 2560 còn có 16 chân ngõ vào analog cung cấp độ phân giải tín hiệu 10 bit để đọc giá trị điện áp trong khoảng 0V đến 5V
Arduino Mega 2560 được trang bị chip Atmega 2560 đã tích hợp sẵn 256 KB dung lượng bộ nhớ Flash, 8 KB bộ nhớ SRAM và 4 KB bộ nhớ EEPROM Trong 256
Bộ nhớ Flash có 8 KB dành cho bootloader, do đó chỉ còn 248 KB để lưu trữ chương trình SRAM mất dữ liệu khi mất điện, nên thường được sử dụng để lưu các giá trị biến trong chương trình Ngược lại, EEPROM không mất dữ liệu khi mất điện, do đó các biến dữ liệu quan trọng nên được lưu trữ ở đây để đảm bảo mạch vẫn hoạt động chính xác trong trường hợp xảy ra sự cố về điện.
Các thiết bị Arduino được lập trình bằng ngôn ngữ riêng, dựa trên ngôn ngữ Wiring, một biến thể của C/C++ Ngôn ngữ này cho phép người dùng gửi lệnh và nhận tín hiệu từ mạch Arduino thông qua môi trường lập trình Arduino IDE (Integrated Development Environment) do nhóm phát triển cung cấp.
ESP8266 NodeMCU là vi điều khiển tích hợp wifi (Wifi SoC) do Espressif Systems phát triển, hỗ trợ chuẩn IEEE 802.11n và hoạt động ở tần số 2.4GHz Với chip wifi ESP8266, NodeMCU được sử dụng cho các ứng dụng kết nối, thu thập dữ liệu và điều khiển qua sóng wifi Thiết bị này có kích thước nhỏ gọn, hỗ trợ giao tiếp UART và kết nối wifi với nhiều giao thức mạng khác nhau.
NodeMCU là một phiên bản đặc biệt của dòng vi điều khiển Arduino, cho phép lập trình và nạp mã trực tiếp bằng trình biên dịch của Arduino Việc sử dụng mã nguồn mở giúp sinh viên dễ dàng lập trình và phù hợp với khả năng của họ.
- Điện áp cung cấp: 5 – 9VDC
- WiFi: 2.4 GHz hỗ trợ chuẩn 802.11b/g/n
- Hỗ trợ bảo mật: WEP/ WPA-PSK/WPA2-PSK
- Cổng kết nối: hỗ trợ USB-TTL CP2102 với cổng Micro-USB
- Nhiệt độ hoạt động: -40°C đến +125°C
- Giao thức truyền thông: UART, SPI, I2C…
- Tương thích với Arduino IDE
- Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU Lua
- Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0)
Hình 2.16 Sơ đồ chân ESP8266
ESP32-CAM có một module camera cỡ nhỏ, có thể hoạt động như một hệ thống độc lập và dòng ở chế độ deep sleep là 6mA
TÍNH TOÁN VÀ THIẾT KẾ
GIỚI THIỆU
Chương này tập trung vào việc thiết kế và giải thích sơ đồ khối cùng sơ đồ nguyên lý của hệ thống, đồng thời thực hiện tính toán giá trị các linh kiện và dòng áp cho hệ thống Mục tiêu là đảm bảo mạch hoạt động một cách chính xác và ổn định.
THI CÔNG HỆ THỐNG
GIỚI THIỆU
Trong chương này, nhóm sẽ trình bày chi tiết về quy trình thi công PCB và lắp ráp phần cứng của hệ thống Bên cạnh đó, chúng tôi sẽ đề cập đến việc thi công mô hình, lập trình cho hệ thống và biên soạn tài liệu hướng dẫn sử dụng.
THI CÔNG HỆ THỐNG
Phần cứng được chia ra làm 2 board mạch: board mạch điều khiển chính và board mạch điều khiển camera a Mạch điều khiển chính
Mạch 1 (mạch điều khiển chính) gồm các khối: khối điều khiển trung tâm, khối truyền dữ liệu, khối cảm biến, khối khóa cửa, khối nút nhấn, khối cảnh báo, khối ngõ ra công suất
Hình 4.1 Sơ đồ mạch in của mạch chính
Hình 4.2 Sơ đồ 3D bố trí linh kiện của mạch chính
Sơ đồ bố trí linh kiện được thiết kế theo từng khối riêng biệt, bao gồm khối truyền dữ liệu bên trái, khối điều khiển trung tâm ở giữa, khối ngõ ra công suất bên phải, khối nút nhấn và cảm biến ở trên, cùng với khối khóa cửa và khối cảnh báo ở dưới Mạch điều khiển camera cũng được tích hợp trong thiết kế này.
Mạch 2 (mạch điều khiển camera) chính là khối điều khiển camera Vì khối điều khiển camera hoạt động độc lập với các khối còn lại nên cần làm mạch riêng
Hình 4.3 Sơ đồ mạch in mạch điều khiển camera
Hình 4.4 Sơ đồ 3D bố trí linh kiện mạch điều khiển camera Bảng 4.1 Bảng thống kê linh kiện
STT Tên linh kiện Giá trị Số lượng Chú thích
6 Cảm biến khí gas MQ2 5V 1
7 Cảm biến chuyển động SR501 5V 1
4.2.2 Lắp ráp và kiểm tra
Sau khi thiết kế mạch in, nhóm tiến hành các bước ủi, rửa, khoan và hàn linh kiện Kiểm tra tình trạng các đường đồng và chân linh kiện để phát hiện trầy xước, bong tróc, đứt gãy hay chập mạch Sử dụng mắt thường và đồng hồ VOM để kiểm tra thông mạch và ngắn mạch Đối với các trường hợp bong tróc hoặc đứt gãy, có thể áp dụng biện pháp hàn gắn thủ công để đảm bảo đường mạch thông suốt và chân hàn linh kiện dẫn điện tốt, đạt tiêu chuẩn về mặt thẩm mỹ.
Hình 4.5 Hình ảnh mặt trên của board mạch chính
Hình 4.6 Hình ảnh mặt sau của board mạch chính
Hình 4.7 Mạch điều khiển camera
THI CÔNG MÔ HÌNH
Từ bản vẽ bố trí thiết bị tiến hành thi công mô hình: cắt, dán, lắp ráp hoàn chỉnh mô hình
Hình 4.8 Ảnh chụp mặt trước mô hình nhà
Hình 4.9 Ảnh chụp mặt trên mô hình nhà
LẬP TRÌNH HỆ THỐNG
4.4.1 Lưu đồ giải thuật a Lưu đồ giải thuật của Arduino Mega 2560
Lưu đồ chương trình chính của Arduino
Hình 4.10 Lưu đồ chương trình chính của Arduino
Giải thích lưu đồ chương trình chính của Arduino
Chương trình bắt đầu với việc cấu hình khởi tạo port, khai báo thư viện, khởi tạo UART, LCD và các chân I/O Sau đó, kiểm tra dữ liệu UART; nếu có, thực hiện chương trình con để đọc dữ liệu Nếu không có dữ liệu UART, chương trình sẽ kiểm tra tín hiệu nút nhấn và thực hiện chương trình con để đọc giá trị nút nhấn nếu có Tiếp theo, giá trị từ các cảm biến được đọc, sau đó thực hiện chương trình con kiểm tra và cảnh báo khí gas Tiến hành xuất tín hiệu điều khiển cho các thiết bị tương ứng và kiểm tra để mở cửa bằng bàn phím Cuối cùng, dữ liệu được truyền từ Arduino đến ESP8266, kết thúc một chu trình thực hiện của Arduino.
Hình 4.11 Lưu đồ chương trình con mở cửa bằng bàn phím
Giải thích lưu đồ chương trình con mở cửa bằng bàn phím
Chương trình bắt đầu bằng việc nhập mật khẩu qua phím ma trận Nếu mã nhập không khớp với mật khẩu mặc định, hệ thống sẽ yêu cầu kiểm tra lại Khi mã nhập đúng, chương trình cho phép xuất tín hiệu mở cửa Quá trình mở cửa sẽ kết thúc khi chương trình con hoàn tất.
Chương trình con kiểm tra cảnh báo khí gas
Hình 4.12 Chương trình con kiểm tra và cảnh báo rò rỉ khí gas
Giải thích lưu đồ chương trình con kiểm tra và cảnh báo rò rỉ khí gas
Chương trình bắt đầu bằng việc đọc dữ liệu từ cảm biến khí gas MQ2 Nếu không phát hiện khí gas rò rỉ vượt quá ngưỡng so sánh mặc định, hệ thống sẽ tiếp tục kiểm tra giá trị cảm biến Ngược lại, nếu có khí gas rò rỉ, chuông báo động sẽ được kích hoạt Đây là quy trình hoàn chỉnh cho việc kiểm tra và cảnh báo rò rỉ khí gas.
64 b Lưu đồ chương trình ESP8266
Cấu hình, khởi tạo port, biến, khai báo thư viện, khởi tạo UART
Có dữ liệu UART đến
Thiết lập Wifi Đọc dữ liệu UART từ Arduino Đã kết nối Wifi
Gửi dữ liệu lên database Đúng
Sai Đọc dữ liệu từ database
Gửi dữ liệu mới cập nhật từ database đến Arduino kết nối Wifi
Hình 4.13 Lưu đồ chương trình ESP8266
Giải thích lưu đồ ESP8266
Bắt đầu cấu hình và khởi tạo các port, biến, thư viện, cũng như UART Vào vòng lặp chương trình để kiểm tra dữ liệu UART đến từ Arduino Nếu có dữ liệu, đọc dữ liệu UART và thiết lập cấu hình wifi để kết nối Sau khi kết nối wifi thành công, gửi dữ liệu lên cơ sở dữ liệu và đọc dữ liệu từ cơ sở dữ liệu về Cuối cùng, gửi dữ liệu nhận được từ cơ sở dữ liệu đến Arduino.
Hình 4.14 Lưu đồ chương trình điều khiển camera
Giải thích lưu đồ chương trình điều khiển camera ESP32-CAM
Bắt đầu cấu hình khởi tạo port, biến và thư viện, sau đó khởi tạo kết nối wifi Nếu có kết nối wifi, hệ thống sẽ chụp lại hình ảnh người nhấn chuông; nếu không, sẽ quay lại kiểm tra kết nối Tiếp theo, hệ thống so sánh gương mặt chụp được với mẫu đã học Nếu khớp với mẫu, cửa sẽ được mở; nếu không, quá trình kiểm tra gương mặt sẽ tiếp tục Cuối cùng, chương trình sẽ kết thúc và điều khiển camera.
4.4.2 Phần mềm lập trình Arduino
Hình 4.15 Logo phần mềm Arduino
IDE, viết tắt của Integrated Development Environment, là phần mềm cung cấp cho lập trình viên một môi trường tích hợp với nhiều công cụ như trình biên soạn mã (code editor), trình gỡ lỗi (debugger), và chương trình mô phỏng ứng dụng (simulator) Nói tóm lại, IDE là một phần mềm bao gồm nhiều gói phần mềm hỗ trợ quá trình phát triển ứng dụng phần mềm.
Các chương trình Arduino được phát triển bằng ngôn ngữ C hoặc C++, sử dụng thư viện phần mềm "Wiring" có sẵn trong Arduino IDE để đơn giản hóa các thao tác nhập/xuất Người dùng chỉ cần định nghĩa hai hàm để tạo ra một chương trình vòng lặp và có thể chạy nó một cách dễ dàng.
- Setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt
- Loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch
Hình 4.16 Giao diện phần mềm Arduino IDE
4.4.3 Lập trình phần mềm Android với MIT App Inventor
MIT App Inventor cho Android là một ứng dụng web mã nguồn mở, ban đầu được phát triển bởi Google và hiện đang được Viện Công nghệ Massachusetts duy trì.
App Inventor là nền tảng của MIT giúp lập trình viên tạo ứng dụng cho hệ điều hành Android thông qua giao diện đồ họa Người dùng có thể dễ dàng kéo và thả các khối mã để phát triển ứng dụng chạy trên thiết bị Android Để bắt đầu sử dụng App Inventor, người dùng cần truy cập trang web http://ai2.appinventor.mit.edu và đăng nhập bằng tài khoản Google để quản lý các dự án của mình.
Giao diện quản lý dự án:
Hình 4.18 Giao diện quản lý dự án
Hình 4.19 Giao diện lập trình
Những tính năng có trên MIT App Inventor
- Cho phép xây dựng nhanh chóng những thành phần cơ bản của một ứng dụng
Android: Nút bấm, chọn ngày giờ, ảnh, văn bản, thông báo, kéo trượt, trình duyệt web
Điện thoại ngày nay tích hợp nhiều tính năng hữu ích như chụp ảnh, quay phim, lựa chọn hình ảnh, phát video hoặc audio, thu âm, nhận diện giọng nói, chuyển đổi lời thoại thành văn bản và dịch ngôn ngữ.
- Hỗ trợ xây dựng game bằng các components: Ball, Canvas, ImageSprite
- Cảm biến: gia tốc, đọc mã vạch, tính giờ, con quay hồi chuyển, xác định địa điểm…
Kết nối với danh bạ, email, và gọi điện trở nên dễ dàng hơn thông qua các ứng dụng mạng xã hội trên thiết bị Bạn có thể chia sẻ thông tin, nhắn tin, và sử dụng Twitter qua API Ngoài ra, việc bật các ứng dụng khác, sử dụng Bluetooth và mở trình duyệt cũng giúp tăng cường khả năng kết nối và giao tiếp.
Lưu trữ dữ liệu có thể thực hiện bằng cách đọc hoặc lưu các tệp định dạng txt, csv Bạn có thể sử dụng Fusiontables Control để quản lý dữ liệu và tạo cơ sở dữ liệu đơn giản trên điện thoại hoặc trên đám mây thông qua việc sử dụng server tự tạo hoặc Firebase.
- Điều khiển robot thông qua LegoMindstorms
4.4.4 Phần mềm lập trình web Sublime Text
Phần mềm Sublime Text là một trình soạn thảo code lý tưởng cho lập trình viên, nổi bật với tính gọn nhẹ, linh hoạt và ổn định Đặc biệt, Sublime Text có khả năng hoạt động trên cả ba hệ điều hành phổ biến: Windows, macOS và Linux.
Những tính năng nổi bật của phần mềm Sublime text:
- Phần mềm Sublime Text cực kì gọn nhẹ, sử dụng được trên hầu hết các hệ điều hành phổ biến hiện nay
- Kho plug-in cực kỳ phong phú, tính đến thời điểm hiện tại đã có khoảng 3300 plugin tại Package Control
- Hỗ trợ rất nhiều ngôn ngữ lập trình như: PHP, Ruby, Python, Java, ShellScript, HTML, CSS, JS
- Giao diện đẹp, dễ sử dụng và thân thiện với người sử dụng
- Có tất cả các tính năng chủ đạo (Key Features) của các IDE nổi tiếng như PHP Storm, Netbean…
Hình 4.21 Giao diện lập trình của phần mềm Sublime text Đây là phần mềm chính mà mà nhóm dùng để lập trình trang Web
Hostinger là công ty hàng đầu thế giới về dịch vụ web hosting giá rẻ, phục vụ cho những người dùng thông minh muốn tiết kiệm chi phí xây dựng trang web mà vẫn đảm bảo đầy đủ tính năng của dịch vụ hosting cao cấp.
Một số ưu điểm của hostinger:
- Thời gian đáp ứng máy chủ nhanh
- Tốc độ trung bình nhanh
- Nhiều trung tâm dữ liệu
- Tối ưu hóa cho wordpress
- Hỗ trợ khách hàng tốt
- Bảng điều khiển thiết kế đẹp
Hình 4.22 Trang chủ của Hostinger
Để làm việc được trên hostinger cần làm những bước sau:
- Đăng kí tài khoản trên hostinger bằng email
- Đăng nhập vào tài khoản đã đăng kí
Hình 4.23 Trang đăng nhập vào tài khoản Hostinger
Tiếp theo cần chọn một gói hosting phù hợp với nhu cầu sử dụng
Hình 4.24 Chọn gói hosting phù hợp và đăng kí
Sau khi đăng kí thành công thì lúc này đã có thể tạo website cho riêng mình
Hình 4.25 Trang quản lý tên miền và website
Hình 4.26 Giao diện chính quản lý trang web
Hình 4.27 Trang quản lý tất cả các file tạo website
Hình 4.28 Quản trị cơ sở dữ liệu MYSQL thông qua giao diện web
Dữ liệu từ ESP8266 được gửi lên cơ sở dữ liệu MySQL thông qua mã code PHP, đồng thời dữ liệu cũng được truyền lại từ cơ sở dữ liệu về ESP8266 Các bảng trong cơ sở dữ liệu MySQL tương tác với trang web thông qua các ngôn ngữ lập trình như PHP, HTML, CSS và JavaScript Tất cả các thư mục, tệp tin và hình ảnh chứa mã code PHP, HTML, CSS và JavaScript được lưu trữ trên server, nơi quản lý toàn bộ tệp tin của trang web.
KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ
GIỚI THIỆU
Chương này tổng hợp kết quả nghiên cứu đã thực hiện trong thời gian qua, đồng thời đưa ra những nhận xét và đánh giá về mô hình nghiên cứu.
KẾT QUẢ ĐẠT ĐƯỢC
Mặc dù còn một số thiếu sót, sản phẩm đã hoàn thành theo các mục tiêu đề ra Thiết bị cho phép điều khiển trực tiếp thông qua các nút bấm, hoặc bằng giọng nói và ứng dụng kết nối Bluetooth HC05 Ngoài ra, người dùng có thể điều khiển thiết bị qua giao diện web server Hệ thống cũng giám sát trạng thái thiết bị thông qua cảm biến gửi dữ liệu lên web Cửa chính được mở và đóng bằng phím nhấn ma trận, trong khi cổng chính sử dụng công nghệ nhận diện gương mặt với ESP32 CAM.
Hình 5.1 Hình ảnh bật toàn thiết bị bằng nút nhấn
Hình 5.2 Hình ảnh nhận được từ ESP32-CAM
Hình 5.3 Hình ảnh bật đèn phòng khách thông qua app Bluetooth
Hình 5.4 Hình ảnh mở cửa bằng nhập mật khẩu hiển thị lên LCD
Hình 5.5 Hình ảnh tắt toàn bộ thiết bị bằng web
Hình 5.6 Hình ảnh thông số hoạt động trên web