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

Hỏa hoạn và cháy nổ trong các công trình dân dụng, tòa nhà thương mại và nhà xưởng công nghiệp luôn tiềm ẩn nguy cơ đe dọa nghiêm trọng đến tính mạng con người cũng như tài sản vật chất. Việc phát hiện sớm các dấu hiệu phát sinh nhiệt độ bất thường và khói/khí độc đóng vai trò quyết định trong công tác phòng cháy chữa cháy, giúp kích hoạt kịp thời các biện pháp xử lý sự cố và sơ tán an toàn.

Đồ án chuyên ngành Điện tử - Viễn thông với đề tài "Thiết kế hệ thống đo, cảnh báo cháy trong nhà" do nhóm sinh viên Khoa Điện tử, Trường Đại học Công nghiệp Hà Nội thực hiện dưới sự hướng dẫn của thầy Nguyễn Văn Tùng, tập trung giải quyết bài toán thiết kế một hệ thống giám sát an toàn cháy nổ có độ tin cậy cao, kích thước nhỏ gọn và chi phí sản xuất thấp.

Hệ thống được xác định với các nhiệm vụ cụ thể:

  1. Nhiệm vụ 1: Nghiên cứu cơ sở lý thuyết về vi điều khiển dòng ARM Cortex-M3 (STM32F103C8T6), các loại cảm biến đo nhiệt độ (LM35, DHT11), cảm biến phát hiện khói/khí gas (MQ-2) và thiết bị hiển thị LCD 1602.
  2. Nhiệm vụ 2: Thiết kế sơ đồ nguyên lý và layout mạch in (PCB) trên các phần mềm chuyên dụng như Proteus và Altium Designer.
  3. Nhiệm vụ 3: Xây dựng phần mềm điều khiển nhúng, cấu hình phần cứng bằng công cụ STM32CubeMX và viết mã nguồn chương trình trên môi trường Keil uVision (Keil C).
  4. Nhiệm vụ 4: Chế tạo phần cứng thực nghiệm, tiến hành cắm mạch thử nghiệm trên breadboard, thi công mạch in thật và thực hiện đo đạc, kiểm thử thực tế.
  5. Nhiệm vụ 5: Tổng kết đề tài, đánh giá các thông số kỹ thuật đạt được, phân tích ưu nhược điểm và đề xuất hướng phát triển mở rộng.

Đối tượng nghiên cứu của đồ án là mô hình hệ thống nhúng tự động đo đạc thông số môi trường và cảnh báo hỏa hoạn trong nhà. Không gian thực nghiệm được triển khai tại phòng thực hành Khoa Điện tử - Trường Đại học Công nghiệp Hà Nội trong khung thời gian từ ngày 14/09/2023 đến ngày 06/12/2023.


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

Đồ án xây dựng trên nền tảng kỹ thuật vi xử lý tiên tiến và lý thuyết chuyển đổi tín hiệu đo lường:

  • Kiến trúc ARM và vi xử lý lõi ARM Cortex-M3: Khảo sát kiến trúc RISC (Advanced RISC Machine) 32-bit dựa trên cấu hình ARMv7-M. Lõi Cortex-M3 sử dụng cấu trúc Harvard phân tách riêng biệt giữa bus dữ liệu và bus chương trình, tích hợp đường ống lệnh 3 tầng (Instruction Fetch, Instruction Decode, Instruction Execute). Kiến trúc hỗ trợ tập lệnh Thumb/Thumb-2, cung cấp 13 thanh ghi đa dụng, hai con trỏ ngăn xếp (Stack Pointer), một thanh ghi liên kết (Link Register) và bộ đếm chương trình (Program Counter).
  • Vi điều khiển STM32F103C8T6: Thuộc dòng STM32 nhánh Performance của STMicroelectronics, tích hợp vi xử lý 32-bit Cortex-M3 với tần số hoạt động tối đa 72 MHz. Vi điều khiển trang bị 64 KB bộ nhớ Flash, 20 KB SRAM, 2 bộ chuyển đổi tương tự - số (ADC) 12-bit với 9 kênh đo, 7 kênh DMA, cùng hệ thống ngoại vi phong phú (GPIO, I2C, SPI, USART, CAN, Timer 16-bit và SysTick 24-bit).
  • Cơ sở cảm biến đo lường:
    • Cảm biến nhiệt độ LM35: Cảm biến analog tuyến tính với độ nhạy $10\text{ mV}/^\circ\text{C}$, dải đo nhiệt độ từ $-55^\circ\text{C}$ đến $+150^\circ\text{C}$, dải điện áp hoạt động từ $4\text{V}$ đến $30\text{V}$, dòng tiêu thụ thấp.
    • Cảm biến khói và khí gas MQ-2: Cảm biến hoạt động dựa trên sự thay đổi điện trở của lớp chất nhạy khí khi tiếp xúc với nồng độ khói, LPG, Propan, Metan, CO trong không khí, dải đo từ $200\text{ ppm}$ đến $10.000\text{ ppm}$, điện áp hoạt động $5\text{V DC}$.
    • Cảm biến nhiệt độ - độ ẩm DHT11: Module đo số tích hợp giao tiếp 1 dây (1-Wire TTL), dải đo nhiệt độ $0 - 50^\circ\text{C}$ (sai số $\pm 2^\circ\text{C}$), dải đo độ ẩm $20% - 80%\text{ RH}$ (sai số $\pm 5%\text{ RH}$), tần số lấy mẫu tối đa $1\text{ Hz}$.
  • Màn hình LCD 1602 và Module chuyển đổi I2C: Màn hình tinh thể lỏng 16 ký tự $\times$ 2 dòng sử dụng chip điều khiển HD44780. Để tiết kiệm tài nguyên chân GPIO của vi điều khiển, hệ thống ứng dụng module I2C (sử dụng IC PCF8574 với địa chỉ mặc định 0x27) giúp giảm số lượng dây kết nối từ tối thiểu 6 dây xuống chỉ còn 2 dây (SCL, SDA).

Phương pháp nghiên cứu bao gồm:

  • Phương pháp thiết kế mô phỏng: Mô phỏng hoạt động mạch nguyên lý trên Proteus và thiết kế mạch in (PCB) bằng Altium Designer.
  • Phương pháp phát triển phần mềm nhúng: Cấu hình cây xung nhịp và ngoại vi tự động qua STM32CubeMX; lập trình mã nguồn điều khiển C bằng Keil C với thư viện chuẩn phần cứng HAL (Hardware Abstraction Layer).
  • Phương pháp thực nghiệm: Lắp ráp mô hình trên testboard, thi công mạch in, đo kiểm tín hiệu điện áp/dòng điện và thử nghiệm khả năng kích hoạt cảnh báo khi đưa nguồn nhiệt và khí thử nghiệm vào cảm biến.

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

Kiến trúc phần cứng

Hệ thống được tổ chức thành 5 khối chức năng chính:

  1. Khối cấp nguồn: Nhận nguồn cấp $5\text{V DC}$ qua cổng USB hoặc adapter nguồn ngoài, hạ áp xuống $3.3\text{V DC}$ qua IC nguồn trên kit để nuôi vi điều khiển STM32 và cung cấp trực tiếp $5\text{V}$ cho các module cảm biến, màn hình LCD.
  2. Khối xử lý trung tâm (MCU): Kit STM32F103C8T6 đảm nhận vai trò trung tâm, lấy mẫu tín hiệu tương tự qua bộ ADC1 kết hợp DMA1 Channel 1, tính toán nhiệt độ/nồng độ khí và xử lý logic điều khiển.
  3. Khối cảm biến thu thập: Cảm biến nhiệt độ LM35/DHT11 và cảm biến khí gas/khói MQ-2 liên tục ghi nhận dữ liệu môi trường.
  4. Khối hiển thị: Màn hình LCD 1602 kết nối qua giao tiếp I2C hiển thị liên tục giá trị nhiệt độ và trạng thái khí gas theo thời gian thực.
  5. Khối cảnh báo và chấp hành: Đèn LED chỉ thị trạng thái an toàn/nguy hiểm (PC13, PC14), còi báo động (kết nối qua chân PA6) và rơ-le kích hoạt quạt thông gió/hút khói (kết nối qua chân PA7).
Danh mục linh kiện Thông số kỹ thuật chính Chức năng trong hệ thống
Kit STM32F103C8T6 ARM Cortex-M3 32-bit, Clock max 72 MHz, 64 KB Flash, 20 KB SRAM Xử lý dữ liệu trung tâm, điều khiển hiển thị và chấp hành
Màn hình LCD 1602 $80 \times 36 \times 12.5\text{ mm}$, điện áp 5V, chữ trắng nền xanh dương, chuẩn HD44780 Hiển thị thông số nhiệt độ, nồng độ khí gas và chuỗi trạng thái
Module chuyển đổi I2C $41.3\text{ mm}$, điện áp $2.5\text{V} - 6\text{V}$, địa chỉ 0x27, biến trở tinh chỉnh tương phản Chuyển đổi giao tiếp song song của LCD sang chuẩn nối tiếp I2C
Module cảm biến DHT11 Giao tiếp 1-Wire, đo nhiệt độ $0 - 50^\circ\text{C}$ ($\pm 2^\circ\text{C}$), độ ẩm $20% - 80%\text{ RH}$ ($\pm 5%\text{ RH}$) Thu thập nhiệt độ và độ ẩm môi trường xung quanh
Cảm biến khí gas MQ-2 Dải phát hiện $200 - 10.000\text{ ppm}$, điện áp hoạt động $5\text{V DC}$, đầu ra Analog/Digital Phát hiện rò rỉ khí gas, khói và các khí dễ cháy
Cảm biến nhiệt độ LM35 Đầu ra Analog $10\text{ mV}/^\circ\text{C}$, dải đo $-55^\circ\text{C}$ đến $+150^\circ\text{C}$, nguồn $4 - 30\text{V}$ Đo nhiệt độ tương tự tuyến tính
LED báo & Còi cảnh báo LED 5mm (dòng $16 - 18\text{ mA}$), còi chíp $5\text{V}$, module Relay Phát tín hiệu cảnh báo thị giác, âm thanh và điều khiển quạt

Thiết kế phần mềm và cấu hình ngoại vi

Chương trình phần mềm được xây dựng trên tệp BAOCHAY.c với các thiết lập cấu hình ngoại vi chi tiết:

  • Cấu hình hệ thống xung nhịp (SystemClock_Config): Sử dụng bộ dao động nội HSI (High-Speed Internal) 8 MHz, không kích hoạt PLL, thiết lập bộ chia AHB Prescaler = 1, APB1 Prescaler = 1, APB2 Prescaler = 1; bộ chia ADC Clock Prescaler = DIV2 (xung nhịp ADC đạt 4 MHz).
  • Cấu hình bộ chuyển đổi ADC1 và DMA:
    • ADC1 hoạt động ở chế độ quét kênh (ScanConvMode = ADC_SCAN_ENABLE), chuyển đổi liên tục (ContinuousConvMode = ENABLE), kích hoạt chuyển đổi bằng phần mềm (ADC_SOFTWARE_START), dữ liệu căn phải (ADC_DATAALIGN_RIGHT).
    • Thiết lập chuyển đổi tuần tự 4 kênh regular (Channel 0, Channel 1, Channel 2, Channel 3) với thời gian lấy mẫu ADC_SAMPLETIME_239CYCLES_5.
    • Kích hoạt bộ điều khiển DMA1 Channel 1 với ngắt toàn cục (DMA1_Channel1_IRQn) ở mức ưu tiên cao nhất (0, 0) để tự động chuyển dữ liệu đo từ thanh ghi dữ liệu ADC sang mảng data[4] trong bộ nhớ mà không tiêu tốn chu kỳ xử lý của CPU.
  • Cấu hình ngắt ngoài và GPIO (MX_GPIO_Init):
    • Chân PC13, PC14: Thiết lập chế độ GPIO_MODE_OUTPUT_PP điều khiển LED báo trạng thái.
    • Chân PA6, PA7: Thiết lập chế độ GPIO_MODE_OUTPUT_PP điều khiển còi báo động, ngắt thiết bị điện và bật quạt làm mát/hút khói.
    • Chân PB0, PB1: Thiết lập chế độ ngắt ngoài cạnh xuống (GPIO_MODE_IT_FALLING) kết hợp điện trở kéo lên nội (GPIO_PULLUP), phục vụ xử lý ngắt cưỡng bức an toàn (EXTI0_IRQn) và báo nguy hiểm khẩn cấp (EXTI1_IRQn).
  • Giải thuật xử lý ngưỡng an toàn:
    • Trường hợp nguy hiểm: Khi nồng độ khí gas $\ge 1$ hoặc nhiệt độ môi trường $\ge 50^\circ\text{C}$, màn hình LCD hiển thị dòng chữ * NGUY HIEM *, kích hoạt chân PA6 lên mức cao (bật còi báo, ngắt thiết bị điện) và đảo trạng thái cổng GPIOC liên tục. Nếu phát hiện có khí gas ($\ge 1$), màn hình hiển thị thêm * CO KHI GAS * và kích hoạt PA7 bật quạt thông gió. Nếu do nhiệt độ quá cao, màn hình hiển thị * NHIET DO CAO * và đưa PA7 về mức thấp.
    • Trường hợp an toàn: Khi nồng độ khí gas $< 1$ và nhiệt độ $\le 35^\circ\text{C}$, màn hình hiển thị * AN TOAN *, tắt toàn bộ cảnh báo trên cổng GPIOA (PA = 0), thiết lập PC13 = 0 và PC14 = 1 để duy trì đèn LED báo an toàn.

Nội dung chính theo từng phần của đồ án

Phần 1. Tổng quan và nhiệm vụ đề tài

Trình bày tính cấp thiết của công tác cảnh báo cháy nổ trong các công trình nhà ở hiện đại. Xác định mục tiêu thiết kế hệ thống báo cháy chi phí thấp, hoạt động ổn định và tin cậy. Phân công chi tiết lịch trình công việc của 5 thành viên nhóm thực hiện trong 14 giai đoạn (từ ngày 14/09/2023 đến 06/12/2023), bao gồm các mốc: họp nhóm, nghiên cứu nguyên lý, khảo sát linh kiện, chạy mô phỏng, vẽ mạch in, lập trình nhúng, hàn lắp mạch thực tế, kiểm thử và nghiệm thu báo cáo.

Phần 2. Tổng quan về cấu trúc ARM, vi điều khiển STM32 và cảm biến

Cung cấp bức tranh toàn diện về kiến trúc phần cứng:

  • Phân tích cấu trúc vi xử lý ARM, dòng ARMv7-M và lõi Cortex-M3 với cơ chế rẽ nhánh suy đoán trong đường ống lệnh 3 tầng.
  • So sánh hai phân nhánh của dòng vi điều khiển STM32: nhánh Performance (xung nhịp 72 MHz, đầy đủ ngoại vi) và nhánh Access (xung nhịp 36 MHz).
  • Đặc tả chi tiết phần cứng kit STM32F103C8T6: sơ đồ chân ra (GPIO, UART, SPI, I2C, CAN), cấu trúc nạp qua chuẩn SWD với ST-Link Mini (SWCLK, SWDIO), thạch anh ngoại 8 MHz và thạch anh 32.768 kHz cho khối thời gian thực RTC.
  • Giới thiệu quy trình phát triển phần mềm kết hợp giữa STM32CubeMX để cấu hình đồ họa sinh mã C cơ bản và Keil uVision để lập trình thuật toán điều khiển chuyên sâu.
  • Trình bày thông số điện tử và nguyên lý chuyển đổi vật lý của cảm biến nhiệt độ LM35, cảm biến khí khói MQ-2, màn hình LCD 1602 và module mở rộng giao tiếp I2C.

Phần 3. Phân tích thiết kế hệ thống

Xác định yêu cầu kỹ thuật và nguyên lý hoạt động của hệ thống báo cháy. Đặt ra các chỉ tiêu kỹ thuật cần đạt:

  • Sai số hệ thống không vượt quá $5%\text{ RH}$ đối với độ ẩm và $\pm 2^\circ\text{C}$ đối với nhiệt độ.
  • Thời gian đáp ứng và phát tín hiệu cảnh báo qua LED/còi gần như tức thời khi thông số đo lường vượt ngưỡng cài đặt.
  • Hệ thống có khả năng hoạt động liên tục, ổn định 24/7.
  • Đề xuất hai hướng phát triển mở rộng từ mô hình cảnh báo nhiệt: tích hợp động cơ bước để tự động làm mát hoặc kết hợp cảm biến MQ-2 để tạo hệ thống phòng cháy chữa cháy đa năng.

Phần 4. Mô phỏng và xây dựng hệ thống thực nghiệm

Hiện thực hóa các phân tích lý thuyết thành mô hình phần cứng và phần mềm cụ thể:

  • Xây dựng sơ đồ khối chi tiết thể hiện luồng truyền tín hiệu giữa MCU, các module cảm biến đầu vào, màn hình hiển thị LCD và các cơ cấu cảnh báo đầu ra.
  • Lập bảng thống kê thông số kỹ thuật chi tiết của toàn bộ linh kiện sử dụng trong mô hình.
  • Thiết kế sơ đồ nguyên lý mạch điện tử và layout mạch in.
  • Xây dựng mã nguồn C hoàn chỉnh (BAOCHAY.c) quản lý ngắt ngoài EXTI, lấy mẫu ADC đa kênh qua DMA và điều khiển giao tiếp chuỗi ký tự hiển thị trên LCD 1602.

Phần 5. Kết quả thực hiện

Trình bày kết quả lắp ráp mô hình thực tế, kết nối hoàn chỉnh giữa kit vi điều khiển STM32F103C8T6, cảm biến và các cơ cấu chấp hành. Hệ thống thực nghiệm vận hành đúng theo kịch bản logic đã nạp, đo đạc ổn định thông số môi trường và hiển thị chính xác chuỗi ký tự lên màn hình LCD 1602.

Phần 6. Kết luận và hướng phát triển

Đánh giá mức độ hoàn thành nhiệm vụ của đồ án, khẳng định nhóm tác giả đã làm chủ quy trình thiết kế phần cứng vi điều khiển 32-bit và lập trình nhúng C. Nêu rõ các ưu điểm về độ nhỏ gọn, chi phí thấp, tốc độ xử lý nhanh; chỉ ra các điểm còn hạn chế do chất lượng linh kiện thực nghiệm; đồng thời đề xuất định hướng tích hợp thêm cảm biến và phát triển thành hệ thống nhà thông minh (Smart Home) hoàn chỉnh phục vụ đồ án tốt nghiệp.


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

Kết quả kỹ thuật đạt được

  • Hiện thực hóa phần cứng: Chế tạo thành công mạch phần cứng hoàn chỉnh tích hợp vi điều khiển STM32F103C8T6 với các module đo nhiệt độ, cảm biến khí gas/khói MQ-2, màn hình LCD 1602 qua giao tiếp I2C và hệ thống chấp hành cảnh báo.
  • Vận hành phần mềm nhúng: Thiết lập thành công chu trình lấy mẫu dữ liệu tự động 4 kênh ADC qua DMA1 Channel 1, giải phóng tài nguyên CPU cho các tác vụ xử lý hiển thị và phản hồi ngắt ngoài EXTI.
  • Hiển thị và cảnh báo theo thời gian thực: Màn hình LCD cập nhật liên tục giá trị nhiệt độ ($T: \dots ^\circ\text{C}$) và nồng độ khí gas ($\text{GAS}: \dots$). Hệ thống tự động phân loại 3 trạng thái rõ ràng:
    • Trạng thái an toàn (* AN TOAN *): khi gas $< 1$ và nhiệt độ $\le 35^\circ\text{C}$.
    • Trạng thái nguy hiểm do nhiệt độ (* NHIET DO CAO *): khi nhiệt độ $\ge 50^\circ\text{C}$, kích hoạt còi báo động và ngắt thiết bị điện.
    • Trạng thái nguy hiểm do rò rỉ khí gas (* CO KHI GAS *): khi gas $\ge 1$, kích hoạt đồng thời còi báo động và bật quạt hút gió cưỡng bức qua chân PA7.

Đóng góp thực tiễn

  • Đưa ra giải pháp thiết kế hệ thống báo cháy tự động ứng dụng vi điều khiển 32-bit hiệu năng cao với chi phí linh kiện thấp, phù hợp nhân rộng trong các công trình nhà ở hộ gia đình và quy mô vừa/nhỏ.
  • Chứng minh tính hiệu quả của phương pháp lập trình vi điều khiển STM32 dựa trên thư viện HAL kết hợp công cụ sinh mã tự động STM32CubeMX, giúp rút ngắn thời gian phát triển và gỡ lỗi phần mềm nhúng.

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

Hạn chế được ghi nhận

  • Chất lượng của một số linh kiện thực nghiệm trên thị trường chưa hoàn toàn đồng đều và chưa đạt chuẩn thông số kỹ thuật lý tưởng như trong datasheet, dẫn đến một số sai số nhỏ trong quá trình đo đạc và công suất truyền nhận tín hiệu.
  • Mô hình thử nghiệm chủ yếu được đánh giá trong điều kiện phòng thí nghiệm ngắn hạn, chưa được kiểm chứng dài hạn trong các môi trường có độ ẩm cao, bụi bẩn hoặc rung lắc mạnh để đánh giá toàn diện độ bền bỉ công nghiệp.

Hướng nghiên cứu mở rộng

  • Tích hợp thêm các cảm biến phụ trợ như cảm biến ngọn lửa (Flame Sensor), cảm biến độ ẩm chuyên dụng nhằm nâng cao độ chính xác và giảm thiểu tỷ lệ báo động giả.
  • Nâng cấp cơ chế truyền thông không dây (Wi-Fi, Zigbee, LoRa) và mã hóa dữ liệu với độ bảo mật cao để gửi dữ liệu cảnh báo từ xa về máy chủ hoặc ứng dụng di động của người dùng.
  • Mở rộng kiến trúc hệ thống để tích hợp vào mô hình nhà thông minh (Smart Home) toàn diện, phục vụ làm nền tảng cho đồ án tốt nghiệp đại học.

Giá trị tham khảo

Báo cáo đồ án là tài liệu kỹ thuật hữu ích cho:

  • Sinh viên các ngành Điện tử - Viễn thông, Kỹ thuật Điều khiển & Tự động hóa, Kỹ thuật Máy tính: Tham khảo quy trình thiết kế hệ thống nhúng với vi điều khiển ARM Cortex-M3 (STM32F103C8T6), phương pháp cấu hình ngoại vi ADC, DMA, EXTI, GPIO trên STM32CubeMX và kỹ thuật viết code trên Keil C.
  • Người làm đề tài nghiên cứu về an toàn cháy nổ và quan trắc môi trường: Cung cấp giải pháp phần cứng kết nối màn hình LCD 1602 qua module I2C PCF8574, giải thuật xử lý ngưỡng cảm biến analog/digital để tự động hóa quá trình đóng cắt thiết bị bảo vệ.

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

1. Vi điều khiển STM32F103C8T6 được thiết lập xung nhịp hệ thống như thế nào trong đồ án?

Trong hàm SystemClock_Config(), hệ thống sử dụng nguồn dao động nội HSI (High-Speed Internal) tần số 8 MHz (RCC_OSCILLATORTYPE_HSI), không dùng bộ nhân tần PLL (RCC_PLL_NONE). Các bộ chia xung nhịp AHB, APB1, APB2 đều được đặt ở tỷ lệ chia 1 (DIV1), và bộ chia xung nhịp cấp cho ADC được cấu hình là RCC_ADCPCLK2_DIV2 (xung cấp cho ADC là 4 MHz).

2. Hệ thống thu thập dữ liệu từ các kênh ADC bằng phương thức nào để tối ưu hóa hiệu năng?

Hệ thống sử dụng bộ chuyển đổi ADC1 cấu hình chế độ quét (ScanConvMode = ENABLE) chuyển đổi liên tục (ContinuousConvMode = ENABLE) trên 4 kênh tuần tự. Quá trình chuyển đổi được đồng bộ với bộ điều khiển truy cập bộ nhớ trực tiếp DMA1 Channel 1 (hdma_adc1). Dữ liệu đo được tự động chuyển thẳng vào mảng data[4] trong bộ nhớ RAM mà không cần sự can thiệp trực tiếp của lõi CPU, giúp tăng tốc độ xử lý tổng thể.

3. Ngưỡng thông số kỹ thuật nào được thiết lập trong mã nguồn để kích hoạt báo động cháy và xử lý sự cố?

Trong vòng lặp chính của chương trình:

  • Ngưỡng nguy hiểm: Khi nồng độ khí gas $\ge 1$ hoặc nhiệt độ môi trường $\ge 50^\circ\text{C}$, còi báo động được kích hoạt qua chân PA6 và đèn LED nhấp nháy liên tục.
  • Nếu có khí gas ($\text{gas} \ge 1$), hệ thống kích hoạt quạt hút gió qua chân PA7 (HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, 1)).
  • Ngưỡng an toàn: Khi nồng độ khí gas $< 1$ và nhiệt độ môi trường $\le 35^\circ\text{C}$, toàn bộ tín hiệu cảnh báo trên cổng GPIOA được tắt (HAL_GPIO_WritePin(GPIOA, GPIO_PIN_All, 0)), đồng thời bật LED chỉ thị an toàn trên chân PC13/PC14.

4. Chức năng của các chân ngắt ngoài EXTI (PB0, PB1) trong hệ thống là gì?

Hai chân PB0 và PB1 được cấu hình làm ngắt ngoài cạnh xuống (GPIO_MODE_IT_FALLING) với điện trở kéo lên nội. Khi xảy ra sự kiện ngắt:

  • Chân PB0 kích hoạt hàm callback ngắt để chuyển hệ thống về trạng thái ngừng báo động, bật đèn LED xanh an toàn (PC13 = 0, PC14 = 1).
  • Chân PB1 kích hoạt ngắt báo nguy hiểm khẩn cấp, tắt đèn an toàn (PC13 = 1, PC14 = 0) phục vụ kiểm tra hệ thống hoặc cưỡng bức cảnh báo.

5. Việc sử dụng Module I2C mang lại lợi ích gì cho kết nối màn hình LCD 1602?

Màn hình LCD 1602 thông thường sử dụng chuẩn kết nối song song, đòi hỏi tối thiểu 6 chân điều khiển từ vi điều khiển (RS, EN, D4, D5, D6, D7). Khi tích hợp module chuyển đổi I2C dựa trên chip PCF8574 (địa chỉ mặc định 0x27), toàn bộ giao tiếp được rút gọn chỉ còn 2 đường tín hiệu nối tiếp (SCL, SDA), giúp tiết kiệm tài nguyên chân GPIO của STM32 cho các cảm biến và cơ cấu chấp hành khác.


Kết luận

Đồ án chuyên ngành "Thiết kế hệ thống đo, cảnh báo cháy trong nhà" của nhóm sinh viên Trường Đại học Công nghiệp Hà Nội đã hoàn thành toàn diện các mục tiêu nghiên cứu từ cơ sở lý thuyết, thiết kế phần cứng đến lập trình nhúng phần mềm trên vi điều khiển STM32F103C8T6. Hệ thống thực nghiệm chứng minh khả năng đo đạc chính xác các thông số môi trường, xử lý tự động qua ADC/DMA và kích hoạt cảnh báo tức thời khi có sự cố nhiệt hoặc rò rỉ khí gas. Đây là mô hình ứng dụng kỹ thuật nhúng có tính thực tiễn cao, chi phí hợp lý và cung cấp nền tảng vững chắc để mở rộng thành hệ thống nhà thông minh hoàn chỉnh trong tương lai.