Bối cảnh và vấn đề nghiên cứu

Đề tài "Thiết kế ngôi nhà thông minh" được thực hiện bởi sinh viên Phạm Ngọc Thái (MSSV: 13119138, Lớp 131191CL1), dưới sự hướng dẫn của TS. Phan Văn Ca tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (Khoa Đào tạo Chất lượng cao, ngành Công nghệ Kỹ thuật Máy tính, khóa 2013, bảo vệ tháng 01/2018).

Bối cảnh thực tiễn của đề tài xuất phát từ sự bùng nổ của công nghệ thông tin và mạng Internet, đặc biệt là sự phát triển của công nghệ Internet of Things (IoT). Nhu cầu kết nối, giao tiếp và đồng bộ hóa giữa các thiết bị ngoại vi thông qua mạng Internet hoặc sóng không dây ngắn (Bluetooth) đang trở nên cấp thiết trong đời sống. Từ các mô hình ứng dụng quy mô lớn như đô thị thông minh (smart city), nông trại thông minh (smart farm), phòng thí nghiệm thông minh (smart lab), tác giả hướng đến việc xây dựng một hệ thống quy mô gia đình nhằm giúp người dùng kiểm soát, điều khiển và cập nhật trạng thái thiết bị điện cũng như các điều kiện ngoại cảnh trong nhà từ xa. Giải pháp này giúp người dùng dễ dàng tương tác với phần cứng ngoại vi, hạn chế việc quên tắt các thiết bị điện gây lãng phí năng lượng, tự động thu dọn quần áo khi trời mưa và tăng cường an ninh cho ngôi nhà.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được tác giả xác định thành 3 nội dung chính:

  1. Cập nhật liên tục dữ liệu trạng thái của các thiết bị từ ngoại cảnh và vi xử lý qua môi trường truyền thông không dây Bluetooth.
  2. Cho phép người dùng giám sát và điều khiển các thiết bị điện từ xa thông qua ứng dụng cài đặt trên điện thoại di động.
  3. Tự động gửi tín hiệu cảnh báo đến điện thoại di động của người dùng khi có sự thay đổi trạng thái từ môi trường hoặc hệ thống an ninh.

Đối tượng và phạm vi nghiên cứu của đồ án bao gồm:

  • Đối tượng nghiên cứu phần cứng: Board mạch vi điều khiển Arduino Uno R3, module truyền thông Bluetooth HC-05, module điều khiển động cơ cầu H L298N, module nhận dạng tần số sóng vô tuyến RFID RC-522, cảm biến từ trường Hall và cảm biến nước mưa.
  • Đối tượng nghiên cứu phần mềm: Môi trường phát triển tích hợp Arduino IDE (ngôn ngữ Wiring, C/C++), môi trường lập trình Android Studio (ngôn ngữ Java) và công cụ lập trình kéo thả khối MIT App Inventor 2.
  • Phạm vi và giới hạn đề tài: Số lượng thiết bị điều khiển và giám sát trên mô hình thực nghiệm được giới hạn tối đa là 10 thiết bị; giao diện phần mềm ứng dụng di động tập trung vào tính khả dụng đại trà trên hệ điều hành Android, chưa đi sâu tối ưu hóa về mặt thẩm mỹ đồ họa.

Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa lý thuyết phần cứng nhúng, truyền thông không dây tầm ngắn và lập trình ứng dụng di động. Tác giả đã sử dụng các phương pháp nghiên cứu gồm: phương pháp tổng hợp tài liệu lý thuyết và kiến thức chuyên ngành kỹ thuật máy tính; phương pháp khảo sát các hệ thống thực tế tương tự; phương pháp thực nghiệm chế tạo, lắp ráp mạch phần cứng và thử nghiệm nạp code; phương pháp tham khảo ý kiến chuyên môn của giảng viên hướng dẫn.

Các nền tảng lý thuyết, linh kiện và thông số kỹ thuật được tác giả khảo sát và trích xuất chi tiết trong văn bản:

Thiết bị / Module Thông số kỹ thuật và đặc tính vận hành
Arduino UNO R3 Vi điều khiển ATMega328P 8-bit, điện áp hoạt động 5V DC, tần số thạch anh 16 MHz, dòng tiêu thụ xấp xỉ 30 mA. Bộ nhớ: Flash 32 KB (0.5 KB dành cho bootloader), SRAM 2 KB, EEPROM 1 KB. Hệ thống vào/ra gồm 14 chân Digital I/O (dòng ra tối đa 30 mA/chân), 6 chân Analog I/O; dòng ra tối đa chân 5V là 500 mA, chân 3.3V là 50 mA.
Module Bluetooth HC-05 Thiết kế dựa trên chip BC417 kèm bộ nhớ flash ngoài 8 Mbit; hoạt động ở dải tần vô tuyến UHF ISM 2.4 GHz; cự ly truyền thông khoảng 10 m. Nguồn nuôi 3.6V đến 6V (hạ áp nội về 3.3V), mức logic UART 3.3V. Chân chức năng: KEY, VCC, GND, TXD, RXD, STATE. Hỗ trợ 2 chế độ: Command Mode (chân KEY mức cao, cấu hình qua tập lệnh AT, tốc độ mặc định 38400 baud) và Data Mode (chân KEY mức thấp, baudrate mặc định 9600, 8 data bits, 1 stop bit, no parity, mã PIN: 1234, tên thiết bị: HC-05). Hoạt động ở vai trò Master hoặc Slave.
Module RFID RC-522 Điện áp hoạt động 3.3V, dòng điện tiêu thụ 13–26 mA, tần số sóng mang 13.56 MHz, cự ly đọc thẻ từ 0 đến 60 mm. Hỗ trợ giao tiếp ngoại vi SPI với tốc độ truyền tối đa 10 Mbps. Kích thước mạch 40 mm x 60 mm. Tín hiệu thu qua khối Analog Interface, chuyển đến khối Contactless UART, lưu trữ tại bộ đệm FIFO, so sánh tần số thẻ đăng ký và xuất dữ liệu qua các khối giải mã (UART, SPI, I2C).
Chuẩn giao tiếp I2C Chuẩn nối tiếp 2 dây (SDA - dữ liệu, SCL - xung nhịp đồng hồ) do Philips phát triển. Xung clock Master phát ở các mức tần số 100 kHz, 400 kHz, 1 MHz và 3.4 MHz. Hỗ trợ định địa chỉ 7-bit (128 địa chỉ lý thuyết, sử dụng thực tế 112 địa chỉ, 16 địa chỉ dành riêng) và 10-bit (1024 địa chỉ lý thuyết, sử dụng 1008 địa chỉ, 16 địa chỉ dành riêng). Định dạng bit cuối xác định tác vụ đọc/ghi.
Driver động cơ L298N Tích hợp 2 mạch cầu H, dải điện áp điều khiển động cơ từ +5V đến +12V, dòng điện tải cực đại 2A cho mỗi cầu H (tương ứng mỗi động cơ). Mức điện áp tín hiệu logic điều khiển +5V đến +7V, dòng tín hiệu 0–36 mA, công suất tiêu hao 20W (tại 75°C), nhiệt độ bảo quản -25°C đến +130°C. Chân điều khiển gồm: 12V, 5V, GND và 4 chân tín hiệu IN1, IN2, IN3, IN4.
Cảm biến mưa & Cảm biến Hall Cảm biến mưa và cảm biến từ trường Hall hoạt động ở điện áp 5V DC, trang bị LED báo nguồn (màu xanh) và LED cảnh báo (màu đỏ). Tích hợp IC so sánh điện áp LM358 để chuyển đổi tín hiệu tương tự (Analog Output - AO) sang tín hiệu số (Digital Output - DO) chuẩn logic TTL (dòng ngõ ra tối đa 100 mA). Điều chỉnh ngưỡng độ nhạy bằng biến trở vi chỉnh tích hợp trên board.

Về mặt phần mềm, tác giả nghiên cứu ngôn ngữ lập trình Arduino (Wiring/C/C++) trên Arduino IDE, tập lệnh AT mở rộng của modem không dây, ngôn ngữ Java trên Android Studio (với các kỹ thuật xử lý sự kiện như Onclick in XML, Inline anonymous listener, Activity is listener, Listener in variable, Explicit listener class, View Subclassing) và công cụ xây dựng ứng dụng MIT App Inventor 2.

Thiết kế và triển khai hệ thống

Kiến trúc phân tầng và luồng dữ liệu

Hệ thống được thiết kế theo mô hình Socket 3 tầng:

  • Tầng Server (Tầng 1): Quản lý luồng socket, làm trung gian chuyển tiếp trạng thái và đồng bộ thông tin điều khiển.
  • Tầng Client (Tầng 2): Bao gồm module truyền thông Bluetooth HC-05 và ứng dụng cài đặt trên điện thoại di động Android. Tầng 1 và Tầng 2 giao tiếp qua sóng Bluetooth bằng các gói dữ liệu được đóng gói theo chuẩn JSON.
  • Tầng Application (Tầng 3): Board vi điều khiển Arduino Uno R3. Tầng 2 và Tầng 3 kết nối thông qua giao tiếp nối tiếp Serial truyền thống hoặc thư viện phần mềm SoftwareSerial. Dữ liệu truyền nhận là các chuỗi byte được định dạng theo cấu trúc khóa - giá trị phân tách bởi ký tự dấu hai chấm (:).

Thiết kế phần cứng và phối ghép mạch

  • Khối xử lý trung tâm: Board Arduino Uno R3 tiếp nhận tín hiệu từ các cảm biến và khối truyền thông, thực thi giải thuật điều khiển và xuất tín hiệu ra cơ cấu chấp hành cùng màn hình hiển thị LCD qua giao tiếp I2C.
  • Khối truyền thông Bluetooth: Module HC-05 hoạt động ở điện áp 3.3V với mức dòng tiêu thụ tức thời có thể đạt 300 mA. Nhằm đảm bảo tính ổn định và tránh quá tải cho đường cấp nguồn 3.3V nội bộ của Arduino (chỉ cung cấp tối đa 50 mA), tác giả đã thiết kế một mạch giảm áp riêng biệt hạ từ 5V xuống 3.3V để nuôi module HC-05.
  • Khối điều khiển công suất tải đèn: Sử dụng module 4 relay cách ly quang kích hoạt ở mức logic cao (High level trigger, nguồn nuôi 5V DC) để đóng cắt dòng điện xoay chiều 220V cấp cho 2 bóng đèn chiếu sáng.
  • Khối động cơ chấp hành: Module L298N tiếp nhận tín hiệu số từ Arduino để điều khiển đảo chiều và dừng cho 2 động cơ DC: 1 động cơ vận hành cơ cấu phơi quần áo tự động và 1 động cơ thực hiện đóng/mở cửa ra vào.
  • Khối cảm biến và an ninh: Cảm biến nước mưa được bố trí ngoài trời và cảm biến từ trường Hall được bố trí tại các vị trí cần giám sát. Đầu ra DO của hai cảm biến này đưa về các chân digital của Arduino. Khối bảo mật sử dụng đầu đọc thẻ RFID RC-522 giao tiếp chuẩn SPI với Arduino để nhận diện mã định danh thẻ của gia chủ.

Thiết kế phần mềm và giải thuật điều khiển

Giải thuật toàn hệ thống được tổ chức tuần tự:

  • Khởi tạo hệ thống: Thiết lập trạng thái ban đầu của hệ thống an ninh, kiểm tra trạng thái cửa, tình trạng mưa, đèn chiếu sáng và vị trí của các động cơ.
  • Xử lý điều khiển đèn: Hệ thống nhận chuỗi ký tự qua cổng Serial từ Bluetooth, tiến hành tách chuỗi lấy giá trị số đứng sau dấu :. Nếu giá trị nhận được là 1, Arduino kích relay mức cao để bật bóng đèn tương ứng (đèn 1 hoặc đèn 2); nếu giá trị là 0, relay ngắt để tắt bóng đèn.
  • Xử lý cảm biến ngoại cảnh: Khi có mưa, nước tiếp xúc bề mặt cảm biến làm thay đổi độ dẫn điện, IC LM358 lật trạng thái ngõ ra từ mức 0 lên mức 1 đưa về vi điều khiển. Tương tự, khi cảm biến Hall phát hiện có biến thiên từ trường, mức logic thay đổi. Arduino lập tức gửi tín hiệu cập nhật lên màn hình LCD và gửi chuỗi dữ liệu trạng thái ngược về ứng dụng di động qua module HC-05.
  • Xử lý điều khiển động cơ và an ninh: Động cơ đóng/mở cửa chỉ vận hành khi quẹt đúng thẻ RFID hợp lệ đã đăng ký trong bộ nhớ chương trình; nếu quét sai thẻ, hệ thống giữ khóa cửa, kích hoạt còi cảnh báo hú còi và không bật đèn. Động cơ kéo dây phơi quần áo vận hành tự động theo hai nguồn tín hiệu: khi cảm biến mưa báo có nước, động cơ lập tức quay để kéo dây phơi vào trong; người dùng cũng có thể chủ động kích hoạt động cơ phơi đồ thông qua thẻ RFID hoặc nút nhấn trên ứng dụng.
  • Triển khai ứng dụng di động: Tác giả xây dựng ứng dụng điều khiển qua 5 bước trên Android Studio (tạo project, tạo giao diện XML và cấp quyền Bluetooth trong AndroidManifest.xml, viết mã logic trong MainActivity - đặt tên ledControl, bổ sung thư viện Device_list và layout phụ, sửa lỗi runtime). Do phát sinh lỗi truyền nhận dữ liệu chuỗi chưa được tối ưu trên Android Studio, tác giả đã chuyển sang thiết kế giao diện và lập trình khối điều khiển trên nền tảng MIT App Inventor 2 để đảm bảo kết nối Bluetooth ổn định và điều khiển nút bấm chính xác.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Chương 1 trình bày bối cảnh chung của kỷ nguyên công nghệ số và sự phát triển của công nghệ Internet vạn vật (IoT). Tác giả phân tích nhu cầu cấp thiết trong việc kết nối và quản lý các thiết bị gia dụng không dây, nêu rõ mục tiêu xây dựng mô hình "Điều khiển thiết bị điện và quản lý ngoại cảnh trong nhà". Tác giả xác định 3 mục tiêu cụ thể, 2 giới hạn về quy mô thiết bị (tối đa 10 thiết bị) và giao diện phần mềm, chỉ rõ 4 phương pháp nghiên cứu áp dụng cùng danh mục 6 đối tượng phần cứng trọng tâm, đồng thời phân chia bố cục khóa luận thành 5 chương.

Chương 2: Cơ sở lý thuyết

Chương 2 cung cấp cơ sở kỹ thuật và thông số chi tiết của toàn bộ linh kiện phần cứng cùng môi trường phần mềm:

  • Cấu trúc phần cứng vi điều khiển: Khảo sát sơ đồ chân và thông số của chip ATMega328P trên board Arduino UNO R3 (14 Digital I/O, 6 Analog I/O, bộ nhớ Flash/SRAM/EEPROM).
  • Module Bluetooth HC-05: Cấu trúc chân, dải tần 2.4 GHz, khoảng cách 10 m, chip BC417. Phân tích chi tiết 2 chế độ hoạt động Command Mode (baudrate 38400) và Data Mode (baudrate 9600), danh mục các tập lệnh cấu hình AT thông dụng (AT, AT+VERSION, AT+ROLE, AT+UART, AT+CMODE, AT+INQ, AT+PAIR, AT+LINK).
  • Module RFID RC-522: Tần số 13.56 MHz, điện áp 3.3V, giao tiếp SPI, cấu trúc lưu trữ và so sánh mã thẻ qua khối FIFO.
  • Giao thức I2C: Lịch sử phát triển bởi Philips, phương thức truyền thông 2 dây SDA/SCL, cấu trúc định địa chỉ 7-bit và 10-bit, phân vai trò giao tiếp chủ/tớ (Master/Slave).
  • Driver L298N và cơ cấu tải: Mạch cầu H chịu dòng 2A/kênh, điều khiển động cơ DC. Lý thuyết cấu tạo điốt phát quang (LED), nguyên lý phối màu điểm ảnh hiển thị của màn hình tinh thể lỏng (LCD).
  • Module cảm biến LM358: Nguyên lý hoạt động và mạch so sánh điện áp tạo ngõ ra DO/AO của cảm biến nước mưa và cảm biến từ trường Hall.
  • Công cụ lập trình: Môi trường Arduino IDE trên nền Wiring (biến thể C/C++), tập lệnh chuẩn AT của modem viễn thông GSM/GPRS, ngôn ngữ lập trình Java, cấu trúc giao diện và 6 hàm bắt sự kiện thông dụng trong môi trường Android Studio.

Chương 3: Thiết kế hệ thống

Chương 3 tập trung vào thiết kế kỹ thuật, sơ đồ khối và lưu đồ giải thuật cho sản phẩm:

  • Kiến trúc hệ thống: Mô hình tổng quát kết nối điện thoại và vi điều khiển; sơ đồ khối gồm 5 khối chức năng chính: Khối giao tiếp Bluetooth (HC-05, giao thức TCP/IP/Socket), Khối vi điều khiển trung tâm (Arduino), Khối cảm biến (mưa, Hall), Khối công suất (relay kích đèn 220V, nguồn cấp) và Khối bảo mật (RFID RC-522, còi báo).
  • Thiết kế mạch ghép nối phần cứng: Sơ đồ nối dây HC-05 với Arduino qua mạch chia áp 3.3V; sơ đồ ghép nối module RFID RC-522; module cảm biến 3 chân (VCC, GND, DO); mạch relay 4 kênh điều khiển đèn xoay chiều.
  • Xây dựng lưu đồ giải thuật: Chi tiết hóa lưu đồ giải thuật trung tâm của toàn bộ phần cứng, lưu đồ con điều khiển tắt/bật đèn theo chuỗi giải mã, lưu đồ con quản lý ngắt trạng thái cảm biến mưa/Hall, lưu đồ con điều khiển động cơ rèm cửa và dây phơi đồ kết hợp điều kiện RFID/cảm biến.
  • Thiết kế phần mềm điều khiển: Phân tích lưu đồ truyền nhận dữ liệu trên ứng dụng Android. Trình bày quy trình 5 bước xây dựng app trên Android Studio (MainActivity, ledControl, Device_list, XML Layout). Trình bày lý do kỹ thuật và quá trình chuyển dịch sang nền tảng MIT App Inventor 2 (thiết kế Designer, lập trình khối Blocks, cấu hình Bluetooth Client và xử lý chuỗi ký tự điều khiển).

Chương 4: Kết quả đạt được

Chương 4 ghi nhận kết quả thi công mô hình phần cứng thực tế và kiểm thử hoạt động:

  • Chế tạo thành công board mạch in phần cứng, bố trí hoàn chỉnh các khối linh kiện gồm Arduino Uno, HC-05, module relay, driver L298N, RFID RC-522, LCD tích hợp I2C, cảm biến mưa và cảm biến Hall.
  • Kiểm tra kết nối truyền thông không dây Bluetooth giữa điện thoại Android và mạch điều khiển thông qua danh sách thiết bị đã ghép đôi (Paired Devices).
  • Thực nghiệm quét thẻ RFID RC-522: Hệ thống nhận diện chính xác thẻ hợp lệ, đóng mở chốt cửa bằng động cơ và kích hoạt sáng đèn theo lập trình; khi quét thẻ không hợp lệ, còi cảnh báo hú còi và khóa hệ thống.
  • Thực nghiệm điều khiển công suất: Ứng dụng di động gửi lệnh bật/tắt độc lập 2 bóng đèn 220V qua module relay thành công, trạng thái hiển thị tức thời trên màn hình LCD.
  • Thực nghiệm phản hồi cảm biến: Cảm biến mưa và cảm biến Hall khi bị kích hoạt lập tức gửi tín hiệu ngắt về Arduino, hệ thống tự động kích hoạt động cơ thu dây phơi và đẩy cảnh báo hiển thị lên LCD cùng giao diện điện thoại.

Chương 5: Kết luận và hướng phát triển

Chương 5 tổng kết lại toàn bộ khối lượng công việc đã hoàn thành: chế tạo thành công mô hình phần cứng ngôi nhà thông minh quy mô nhỏ với đầy đủ các phân hệ chiếu sáng, an ninh và cảnh báo môi trường; làm chủ được phương thức giao tiếp Bluetooth và điều khiển qua smartphone. Tác giả đồng thời nêu rõ các điểm hạn chế về phạm vi thiết bị và đề xuất phương hướng nâng cấp hệ thống trong tương lai.

Kết quả và đóng góp

Về kết quả kỹ thuật, đề tài đã đạt được các chỉ tiêu cụ thể:

  • Chế tạo và lắp ráp hoàn chỉnh mô hình mạch phần cứng tích hợp đa khối chức năng, vận hành ổn định trên nguồn cấp DC với mạch giảm áp bảo vệ riêng cho module Bluetooth HC-05 (hạ từ 5V xuống 3.3V, đáp ứng dòng 300 mA).
  • Ứng dụng thành công chuẩn giao tiếp 2 dây I2C để tối ưu hóa số chân vi điều khiển khi xuất dữ liệu ra màn hình LCD, giảm thiểu kết nối phức tạp của màn hình LCD truyền thống.
  • Điều khiển đóng cắt độc lập 2 tải đèn công suất 220V AC thông qua board 4 relay kích mức cao an toàn.
  • Điều khiển đảo chiều 2 động cơ DC thông qua driver L298N phục vụ chức năng kéo dây phơi tự động và đóng mở cửa.
  • Tích hợp thành công khối an ninh bằng RFID RC-522 (tần số 13.56 MHz, cự ly 0–60 mm), tự động hóa cơ chế nhận diện chủ nhà, kích hoạt còi báo động khi có xâm nhập trái phép.
  • Hệ thống cảm biến kép (nước mưa và từ trường Hall) qua IC LM358 hoạt động nhạy bén, xuất tín hiệu số TTL chính xác để đóng cắt cơ cấu chấp hành và gửi dữ liệu cảnh báo lên smartphone.
  • Thiết kế hoàn chỉnh ứng dụng điều khiển trên nền tảng di động Android, ghép nối thành công qua chuẩn Bluetooth với baudrate 9600, thực hiện truyền nhận chuỗi dữ liệu hai chiều mượt mà.

Đóng góp của đồ án:

  • Tác giả tự đánh giá đồ án đã hiện thực hóa thành công một mô hình thực nghiệm IoT thu nhỏ có tính khả thi cao, chi phí linh kiện thấp, phù hợp với điều kiện học tập và nghiên cứu thực tế.
  • Khắc phục được nhược điểm của các loại remote điều khiển đơn lẻ truyền thống trong gia đình bằng cách tích hợp toàn bộ quyền giám sát, điều khiển các thiết bị ngoại vi đa dạng (đèn, rèm cửa/dây phơi, an ninh, cảnh báo mưa) vào một giao diện tập trung trên điện thoại thông minh.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài (được tác giả nêu trong văn bản):

  • Hệ thống bị giới hạn ở quy mô 10 thiết bị ngoại vi, chưa mở rộng ra toàn bộ các thiết bị điện trong một căn hộ hoàn chỉnh.
  • Giao diện ứng dụng di động còn đơn giản, thiết kế hướng tới sử dụng đại trà nên chưa được trau chuốt về mặt đồ họa và trải nghiệm người dùng.
  • Công nghệ truyền thông không dây phụ thuộc hoàn toàn vào chuẩn sóng Bluetooth HC-05, dẫn đến cự ly giám sát và điều khiển bị giới hạn trong phạm vi ngắn (khoảng 10 mét), chưa thể điều khiển từ xa qua mạng diện rộng Internet thực thụ khi người dùng ở xa nhà.
  • Trong quá trình phát triển phần mềm, tác giả chưa làm chủ sâu kỹ thuật truyền dữ liệu trên Android Studio dẫn đến việc phải chuyển đổi sang nền tảng MIT App Inventor 2.

Hướng phát triển tiếp theo (do tác giả đề xuất tại Chương 5):

  • Mở rộng hệ thống điều khiển kết nối qua mạng Internet bằng cách thay thế hoặc tích hợp thêm module Wi-Fi (như ESP8266) hoặc module mạng di động GSM/GPRS (sử dụng tập lệnh AT chuyên dụng để gửi tin nhắn SMS, gọi điện cảnh báo cự ly xa).
  • Nâng cấp số lượng cổng điều khiển để quản lý được nhiều thiết bị điện hơn trong nhà.
  • Tối ưu hóa lại ứng dụng di động trên Android Studio, cải tiến giao diện đồ họa chuyên nghiệp, tích hợp thêm các chức năng cảnh báo bằng giọng nói và giám sát trực quan hơn.

Giá trị tham khảo

Đồ án là tài liệu tham khảo thực nghiệm phù hợp cho sinh viên các ngành Công nghệ Kỹ thuật Máy tính, Công nghệ Thông tin, Điện tử - Viễn thông và Kỹ thuật Điều khiển & Tự động hóa đang thực hiện các đồ án môn học, đồ án tốt nghiệp liên quan đến hệ thống nhúng và IoT cơ bản.

Các nội dung có giá trị tham khảo ứng dụng trực tiếp bao gồm:

  • Quy trình cấu hình và bảng tập lệnh AT đầy đủ cho module Bluetooth HC-05 (cách chuyển đổi qua lại giữa Command Mode và Data Mode bằng chân KEY, cấu hình Master/Slave).
  • Giải pháp thiết kế mạch nguồn phần cứng: hạ áp từ 5V xuống 3.3V rời cho module HC-05 nhằm tránh sụt áp nguồn vi điều khiển khi phát sóng vô tuyến.
  • Phương pháp phối ghép chuẩn giao tiếp nối tiếp I2C cho màn hình hiển thị LCD và chuẩn SPI cho đầu đọc thẻ RFID RC-522 với board vi điều khiển Arduino Uno R3.
  • Cấu trúc đóng gói và giải thuật tách chuỗi dữ liệu (parsing) phân cách bởi dấu hai chấm (:) trong giao tiếp nối tiếp UART giữa vi điều khiển và ứng dụng di động.
  • Quy trình chuyển đổi giải pháp phát triển ứng dụng di động từ Android Studio sang MIT App Inventor 2 dành cho người mới tiếp cận lập trình ứng dụng điều khiển phần cứng.

Câu hỏi thường gặp

Module Bluetooth HC-05 được cấu hình các chế độ hoạt động và thông số mặc định như thế nào?

Theo Chương 2 của đồ án, module HC-05 có hai chế độ hoạt động chính:

  • Command Mode: Dùng để cấu hình thông số thông qua tập lệnh AT. Để vào chế độ này với tốc độ mặc định 38400 baud, chân KEY phải được đưa lên mức logic cao trước khi cấp nguồn (khi đó đèn LED trên module sẽ nháy chậm chu kỳ 2 giây). Nếu đưa chân KEY lên mức cao khi module đang chạy ở Data Mode, module sẽ vào Command Mode với tốc độ baudrate được lưu ở lần thiết lập gần nhất.
  • Data Mode: Dùng để truyền nhận dữ liệu không dây, chân KEY nối mức logic thấp trước khi cấp nguồn. Thông số mặc định xuất xưởng của HC-05 gồm: tốc độ truyền 9600 baud, 8 data bits, 1 stop bit, không có bit kiểm tra tính chẵn lẻ (parity: none), không bắt tay (handshake: none), mã PIN liên kết (Passkey) là 1234, tên thiết bị là HC-05. Module có thể thiết lập ở chế độ Master (chủ động tìm kiếm và ghép nối thiết bị khác) hoặc Slave (bị động chờ thiết bị như smartphone dò tìm và ghép nối).

Tác giả đã giải quyết vấn đề cấp nguồn và dòng tiêu thụ cho module Bluetooth HC-05 như thế nào?

Trong Chương 3, tác giả chỉ rõ module HC-05 hoạt động ở điện áp định mức 3.3V nhưng khi truyền tải dữ liệu, dòng điện tiêu thụ tức thời có thể tăng lên đến 300 mA. Chân nguồn ra 3.3V tích hợp trên board Arduino Uno R3 chỉ có khả năng cung cấp dòng tối đa là 50 mA (như bảng thông số kỹ thuật ở Chương 2). Do đó, nếu lấy nguồn 3.3V trực tiếp từ Arduino sẽ gây quá tải và làm hệ thống hoạt động không ổn định. Tác giả đã xử lý bằng cách thiết kế một mạch giảm áp riêng biệt để hạ điện áp từ nguồn 5V xuống 3.3V cung cấp cho HC-05, đảm bảo đủ dòng điện 300 mA để module hoạt động ổn định.

Nguyên lý kích hoạt và giải thuật điều khiển của cơ cấu phơi quần áo và cửa ra vào được thiết kế ra sao?

Theo lưu đồ giải thuật tại Chương 3:

  • Cơ cấu đóng mở cửa: Vận hành hoàn toàn phụ thuộc vào khối bảo mật RFID RC-522. Khi người dùng quẹt thẻ, vi điều khiển đọc mã thẻ và so sánh với mã số đã lưu trong chương trình. Nếu đúng thẻ chủ nhà, Arduino điều khiển driver L298N kích hoạt động cơ DC quay để mở cửa và bật đèn; nếu sai thẻ, cửa giữ nguyên trạng thái khóa, hệ thống kích hoạt còi báo động và không bật đèn.
  • Cơ cấu dây phơi quần áo: Chịu tác động đồng thời từ cảm biến nước mưa và thẻ RFID. Khi hệ thống vận hành, vi điều khiển liên tục đọc trạng thái tín hiệu từ cảm biến mưa. Nếu cảm biến phát hiện trời mưa (mức logic chuyển đổi qua bộ so sánh LM358), động cơ DC lập tức được kích hoạt để thu dây phơi vào trong nhà tự động. Trong điều kiện không mưa, người dùng có thể can thiệp kéo dây phơi bằng cách sử dụng thẻ RFID hoặc nút nhấn trên ứng dụng di động.

Tại sao tác giả chuyển đổi công cụ phát triển ứng dụng di động từ Android Studio sang MIT App Inventor 2?

Trong mục Thiết kế ứng dụng điện thoại (Chương 3), ban đầu tác giả đã triển khai ứng dụng trên Android Studio bằng ngôn ngữ Java qua 5 bước hoàn chỉnh (tạo project, thiết kế layout, viết mã trong MainActivity, cấu hình quyền trong AndroidManifest.xml, thêm thư viện Device_list). Tuy nhiên, ở bước kiểm tra và sửa lỗi (Bước 5), do tác giả tự nhận thấy chưa tìm hiểu sâu về môi trường Android Studio nên đã gặp phải một số trục trặc kỹ thuật trong việc xử lý luồng truyền nhận dữ liệu chuỗi qua kết nối Bluetooth. Để khắc phục sự cố và kịp thời hoàn thiện sản phẩm điều khiển thực tế, tác giả đã quyết định chuyển sang sử dụng phần mềm MIT App Inventor 2 – một công cụ lập trình giao diện và logic dạng khối trực quan, giúp việc xây dựng kết nối Bluetooth Client và cấu hình nút bấm điều khiển diễn ra thuận lợi, ổn định hơn.

Cấu trúc đóng gói và định dạng dữ liệu truyền thông giữa điện thoại và Arduino được quy định thế nào?

Theo mô tả kiến trúc Socket 3 tầng trong đồ án, dữ liệu truyền thông giữa ứng dụng di động và module Bluetooth HC-05 (giữa Tầng 1 và Tầng 2) được đóng gói dưới định dạng chuỗi theo chuẩn JSON. Khi truyền từ HC-05 xuống vi điều khiển Arduino qua cổng Serial UART (giữa Tầng 2 và Tầng 3), dữ liệu được định dạng thành các chuỗi ký tự chứa cặp khóa - giá trị ngăn cách nhau bởi ký tự :. Ví dụ trong giải thuật điều khiển đèn, vi điều khiển nhận chuỗi, tiến hành thuật toán cắt chuỗi để lấy ký tự số đứng sau dấu :. Nếu giá trị là 1 thì kích hoạt relay mở đèn tương ứng; nếu giá trị là 0 thì kích hoạt ngắt relay để tắt đèn.

Kết luận

Đồ án tốt nghiệp "Thiết kế ngôi nhà thông minh" của sinh viên Phạm Ngọc Thái đã chế tạo thành công một mô hình thực nghiệm phần cứng nhúng hoàn chỉnh, tích hợp vi điều khiển Arduino Uno R3 với các module ngoại vi gồm Bluetooth HC-05, driver L298N, RFID RC-522, LCD I2C cùng hệ thống cảm biến mưa và cảm biến từ trường Hall. Công trình đã hiện thực hóa giải pháp giám sát và điều khiển thiết bị điện 220V, cơ cấu động cơ đóng mở cửa, dây phơi tự động và cảnh báo an ninh từ xa thông qua ứng dụng di động trên hệ điều hành Android. Mặc dù còn giới hạn về phạm vi kết nối cục bộ qua sóng Bluetooth ngắn và quy mô thử nghiệm 10 thiết bị, đồ án đã giải quyết tốt các bài toán kỹ thuật nền tảng về phối ghép mạch, phân chia nguồn điện và xử lý tín hiệu truyền thông trong lĩnh vực Internet vạn vật.