Firmware
Hoàn thành 0 lượt xem Quản lý

Hệ Thống Firmware STM32F103 FreeRTOS Đa Nhiệm - Node Giám Sát Cảm Biến & Điều Khiển Thiết Bị (DHT22 + MQ-2 + 2x Relay + 2x MOSFET + USART3 Protocol)

Firmware STM32F103C8T6 đa nhiệm FreeRTOS CMSIS-V2: điều phối 4 task thời gian thực, đọc cảm biến nhiệt ẩm DHT22 và khí cháy MQ-2, điều khiển 2 rơ-le và 2 MOSFET công suất, giao tiếp khung tin UART USART3 có checksum.

Công nghệ & Nền tảng (Tech Stack)
C/C++ STM32CubeIDE FreeRTOS Kernel v10.3.1 CMSIS-RTOS v2 STM32 HAL Driver TIM3 Microsecond Timebase ADC 12-bit Oversampling EXTI Interrupts USART3 Framing Protocol (XOR Checksum) 1-Wire DHT22 Protocol Low-Power Multi-Tasking Architecture
Hệ Thống Firmware STM32F103 FreeRTOS Đa Nhiệm - Node Giám Sát Cảm Biến & Điều Khiển Thiết Bị (DHT22 + MQ-2 + 2x Relay + 2x MOSFET + USART3 Protocol)
README.md GFM
Đang kết xuất tài liệu thiết kế README.md...

                        
Thông Số Phần Cứng & Danh Mục Linh Kiện (BOM)
Hardware Specs & BOM
- Vi điều khiển (MCU): STM32F103C8T6 (ARM Cortex-M3 32-bit, Clock 72 MHz, 64 KB Flash, 20 KB SRAM) - Hệ điều hành thời gian thực (RTOS): FreeRTOS v10.3.1 chuẩn CMSIS-RTOS v2 - Tách biệt HAL Timebase: Sử dụng Timer phần cứng (TIM) làm tick HAL, SysTick dành riêng 100% cho FreeRTOS Scheduler - Cảm biến môi trường: DHT22 Digital Temperature & Humidity Sensor (Giao thức 1-Wire chân PA1, microsecond delay TIM3) - Cảm biến khí độc & khói: MQ-2 Gas/Smoke Sensor (ADC1 12-bit kênh PA0 và ngắt cảnh báo số EXTI0) - Tầng đóng ngắt AC: 2x Rơ-le công nghiệp 250VAC/10A (PA12 Relay 1, PA11 Relay 2) với mạch cách ly quang Optocoupler - Tầng đóng ngắt DC: 2x N-Channel Power MOSFET Switching (PA10 MOSFET 1, PA9 MOSFET 2) điều khiển tải công suất DC - Âm thanh cảnh báo: Active Buzzer báo động khẩn cấp PA5 (kích hoạt tức thì bằng Event Group FreeRTOS) - Giao diện truyền thông: USART3 (PB10 TX, PB11 RX) 115200 bps 8N1, ngắt RX Ringbuffer, bộ phân tích khung tin XOR Checksum - Môi trường phát triển & Nạp: STM32CubeMX + STM32CubeIDE GCC ARM Embedded Toolchain, nạp ST-Link v2 SWD
Sơ Đồ Luồng Hoạt Động Của Hệ Thống (Workflow Diagram)
Sơ đồ tự động căn chỉnh vừa vặn bao quát toàn cảnh — sử dụng công cụ bên cạnh để phóng to hoặc mở toàn màn hình
100%
flowchart TB
    subgraph SENSOR_ACQUISITION["1. TẦNG THU THẬP TÍN HIỆU CẢM BIẾN NGOẠI VI"]
        DHT22["Cảm Biến Nhiệt Độ - Độ Ẩm DHT22
- Giao thức 1-Wire vi giây TIM3
- Ngắt tới hạn taskENTER_CRITICAL"] MQ2_A["Cảm Biến Khí Gas & Khói MQ-2 - Analog
- ADC1 12-bit chuyển đổi DMA
- Đọc nồng độ khói thời gian thực"] MQ2_D["Cảm Biến MQ-2 - Digital Alert
- Ngắt ngoại vi PA0 EXTI0
- Kích hoạt báo cháy khẩn cấp tức thời"] end subgraph FREERTOS_TASKS["2. NHÂN ĐIỀU PHỐI ĐA NHIỆM FREERTOS CMSIS-V2"] direction TB TASK_SENSOR["SensorTask - Priority Normal
- Chu kỳ đọc định kỳ DHT22 & MQ-2
- Đóng gói dữ liệu TelemetryMsg_t"] TASK_CONTROL["ControlTask - Priority Normal
- Tiếp nhận CommandQueueHandle
- Điều khiển Rơ-le & MOSFET công suất
- Chờ EventGroup SMOKE_ALERT_BIT"] TASK_RX["UartRxTask - Priority Normal
- Tiếp nhận byte từ UartRxByteQueue
- Bộ phân tích khung tin 5-byte XOR"] TASK_TX["UartTxTask - Priority Normal
- Đọc TelemetryQueueHandle - 20 slots
- Đóng khung tin 6-byte gửi USART3"] end subgraph IPC_PIPELINE["3. CƠ CHẾ ĐỒNG BỘ LIÊN TIẾN TRÌNH IPC"] Q_CMD["CommandQueueHandle
- Hàng đợi 10 CommandMsg_t
- Relay & MOSFET Actions"] Q_TELEM["TelemetryQueueHandle
- Hàng đợi 20 TelemetryMsg_t
- Nhiệt độ, Độ ẩm, Nồng độ khí"] EVT_ALERT["AlertEvent Group
- Bit cờ SMOKE_ALERT_BIT
- Đánh thức tức thời ControlTask"] Q_UART_BYTE["UartRxByteQueue
- Hàng đợi 64 bytes từ ngắt RX"] end subgraph ACTUATION_OUTPUT["4. TẦNG CÔNG SUẤT VÀ THIẾT BỊ CHẤP HÀNH"] RELAY_1["Rơ-le AC Kênh 1 - PA12
- Đèn sưởi hoặc Máy bơm công nghiệp"] RELAY_2["Rơ-le AC Kênh 2 - PA11
- Quạt thông gió hoặc Phụ tải công nghiệp"] MOSFET_1["N-Channel MOSFET Kênh 1 - PA10
- Tải DC 12V-24V PWM công suất"] MOSFET_2["N-Channel MOSFET Kênh 2 - PA9
- Tải DC công suất van điện từ"] BUZZER["Còi Báo Động Active Buzzer - PA5
- Kêu liên tục khi có khói gas"] end subgraph COMM_BRIDGE["5. GIAO DIỆN TRUYỀN THÔNG USART3 & MASTER GATEWAY"] USART3_HW["Bộ Thu Phát USART3 - PB10 TX, PB11 RX
- Baudrate 115200 bps 8N1"] MASTER_GW["ESP32 hoặc Raspberry Pi IoT Gateway
- Gửi lệnh điều khiển & nhận telemetry"] end DHT22 -->|Định thời 2 giây| TASK_SENSOR MQ2_A -->|Giá trị ADC thô| TASK_SENSOR MQ2_D -->|Ngắt phần cứng EXTI0| EVT_ALERT TASK_SENSOR -->|Đẩy bản tin viễn trắc| Q_TELEM EVT_ALERT -.->|Kích hoạt cờ báo động| TASK_CONTROL TASK_CONTROL -->|Bật còi chíp| BUZZER TASK_CONTROL -->|Đóng ngắt AC| RELAY_1 TASK_CONTROL -->|Đóng ngắt AC| RELAY_2 TASK_CONTROL -->|Chuyển mạch DC| MOSFET_1 TASK_CONTROL -->|Chuyển mạch DC| MOSFET_2 TASK_CONTROL -->|Phản hồi trạng thái ACK| Q_TELEM USART3_HW -->|Ngắt nhận USART3_IRQHandler| Q_UART_BYTE Q_UART_BYTE --> TASK_RX TASK_RX -->|Khung tin hợp lệ XOR OK| Q_CMD Q_CMD --> TASK_CONTROL Q_TELEM --> TASK_TX TASK_TX -->|Gửi khung 6-byte| USART3_HW USART3_HW <==>|Giao tiếp 2 chiều RS232 hoặc TTL| MASTER_GW
Đang nạp sơ đồ kiến trúc...
Dùng nút Bao Quát để ngắm nhìn toàn cảnh hoặc Toàn Màn Hình để phóng to chi tiết Mermaid Interactive Engine
Thư Mục & Quản Lý Tệp Tin Dự Án
media/projects/stm32f103c8t6-freertos-industrial-controller/ 18 tệp tin • 1.7 MB
Đăng Nhập Quản Lý File
Tên Tệp Tin Phân Loại Dung Lượng Ngày Cập Nhật Thao Tác
control_app.c
Mã Nguồn (Code) 2.0 KB 08/11/2026 04:21
control_app.h
Mã Nguồn (Code) 183 B 08/11/2026 04:21
freertos.c
Mã Nguồn (Code) 1.9 KB 08/11/2026 04:21
FreeRTOSConfig.h
Mã Nguồn (Code) 6.7 KB 08/11/2026 04:21
main.c
Mã Nguồn (Code) 14.9 KB 08/11/2026 04:21
sensor_app.c
Mã Nguồn (Code) 4.9 KB 08/11/2026 04:21
sensor_app.h
Mã Nguồn (Code) 247 B 08/11/2026 04:21
shared_data.h
Mã Nguồn (Code) 1010 B 08/11/2026 04:21
startup_stm32f103c8tx.s
Tài Liệu 9.5 KB 08/11/2026 04:21
STM32F103_FreeRTOS_Industrial_Controller_Source.zip
Tệp Nén (Archive) 935.8 KB 08/11/2026 04:21
stm32f103c8t6.ioc
Tài Liệu 7.1 KB 08/11/2026 04:21
STM32F103C8TX_FLASH.ld
Tài Liệu 5.2 KB 08/11/2026 04:21
stm32f1xx_hal_msp.c
Mã Nguồn (Code) 7.2 KB 08/11/2026 04:21
stm32f1xx_hal_timebase_tim.c
Mã Nguồn (Code) 4.4 KB 08/11/2026 04:21
stm32f1xx_it.c
Mã Nguồn (Code) 5.4 KB 08/11/2026 04:21
thumb_stm32f103_freertos.jpg
Hình Ảnh (Image) 752.9 KB 08/11/2026 04:21
uart_app.c
Mã Nguồn (Code) 2.5 KB 08/11/2026 04:21
uart_app.h
Mã Nguồn (Code) 220 B 08/11/2026 04:21
Chuyển Nhanh Khung Nhìn
Tài Nguyên & Liên Kết
Thông Tin Dự Án
Chuyên mục: Firmware
Trạng thái: Hoàn thành
Lượt xem: 0
Ngày tạo: 08/11/2026 04:21
Cập nhật: 08/11/2026 04:21