Tình hình nghiên cứu thiết kế Hệ thống nhúng cho các ứng dụng hiện nay 3 1.3 Phương pháp nghiên CỨU...-... Tình hình nghiên cứu thiết kế Hệ thống nhúng cho các ứng dụng biện nay Hiện n
Trang 1
TRUONG DAI HOC CONG NGHIEP TP HO CHi MINH BO CONG THUONG
KHOA CONG NGHE DIEN - DIEN TU
HOCHIMINH CITY
INDUSTRIAL
HE THONG NHUNG
HE THONG CANH BAO RO RI KHI GAS
Giảng viên hướng Nhóm 13 thực hiện
2 Huỳnh Thanh Ty MSSV:20053871
3 Lê Liêu Quốc Phú
Trang 2Phu lu
1.2 Tình hình nghiên cứu thiết kế Hệ thống nhúng cho các ứng dụng hiện nay 3
1.3 Phương pháp nghiên CỨU - .- (<< 3S 9 So ng nh 3
3.1.2 Sơ đồ nguyên lý -.s- sec cscse + +xEExkteErExEeeEkEreerererxrrsrsrrsrerree 8
3.2 Thiết kế phần mềm s- 2 «£ +*£©++#£E#£EEx££ExEE+xEEx# xe eEErkerxee 8
3.2.1 Lựa chọn phần mềm và ngôn ngữ lập trình - s- 25.55 ses 8
4, Dan gid VA dé XUAt i iccccssscsscsssessessssssesssssscssssssessssssessssssessssssesssssscsessssessesssssssess 26
Trang 31 Téng quan va dat van dé
1.1 Vai trò, ý nghĩa của việc làm tiểu luận
1.2
13
1.4
Một bài tiêu luận được dựa trên công sức của cá nhóm Đầu tiên, làm một bải tiéu
luận là để tong hop lai kiến thức trên lĩnh vực mình đã học, cũng như là đề hiểu thêm về I đự án phải làm theo các bước và quy trình như thế nào Tiểu luận giúp cho mỗi người biết về vai trò giỏi nhất của bản thân, xây dựng tinh than tự giác,
tự tìm hiểu những điều liên quan đến | dự á án Nhìn nhận một vấn đề vẻ nhiêu khí cạnh, làm rõ một đự án Làm quen dần về cách nhận và làm một dự án là như thế nảo
Tình hình nghiên cứu thiết kế Hệ thống nhúng cho các ứng dụng biện nay
Hiện nay, nghiên cứu và thiết kế hệ thông nhúng cho các ứng dụng đang được quan tâm rất nhiều bởi vì hệ thống nhúng có thê được tích hợp vào nhiều loại thiết
bị, từ các thiết bị di động nhỏ như điện thoại thông minh, máy tính bảng cho đến
các thiết bị lớn hơn như ô tô, máy bay và các hệ thống công nghiệp
Một trong những xu hướng nghiên cứu và thiết kế hệ thông nhúng là việc tích hợp trí tuệ nhân tạo và học sâu vào các thiết bị nhúng Điều này cho phép các thiết bị
có khả năng học tập và tự động tối ưu hóa hiệu suất của chúng theo thời gian, tăng khả năng tương tác và phản hồi với người dùng
Các ứng dụng của hệ thông nhúng cũng đang mở rộng sang nhiều lĩnh vực khác nhau, bao gồm y tế, đô thị thông minh, năng lượng, môi trường và an ninh Các hệ thống nhúng cho các ứng dụng y tế, chăng hạn như các thiết bị giám sát sức khỏe,
có thê giúp theo đõi sức khỏe của người dùng và cung cấp dữ liệu cho các nhà cung cấp dịch vụ y tế dé cải thiện chăm sóc sức khỏe Trong lĩnh vực đô thị thông minh, các hệ thong nhung có thé giup quan lý giao thông và đèn đường, giảm thiểu sự cố tai nạn và giảm thiều ùn tắc giao thông
Ngoài ra, các nhà nghiên cứu cũng đang tập trung vào việc phát triển các hệ thông nhúng có khá năng tiết kiệm năng lượng và bảo vệ môi trường, giúp giảm thiểu tác động của các thiết bị điện tử đến môi trường Các hệ thống nhúng cũng đang được áp dụng rộng rãi trong lĩnh vực an ninh, bao gồm giảm sát và kiêm soát truy
cập vào các khu vực nhạy cảm
Tóm lại, nghiên cứu và thiết kế hệ thống nhúng cho các ứng dụng đang phát triển rất nhanh chóng
Phương pháp nghiên cứu
Phương pháp thu thập số liệu
Hệ thống cánh báo rò rỉ khí gas: Là hệ thống có khả năng tự động phát hiện
ra nông độ khí gas trong nhà có đang vượt mức cho phép hay không Nếu có
thì hệ thống tự động cảnh báo bằng âm thanh qua loa, đèn Đồng thời hệ
thống quạt tự động mở đưa khí rò rỉ ra bên ngoài.
Trang 42.2_ Các thành phan
Khí gas chứa chủ yếu các thành phân chính: Propane (C 3H s), butane (C 4H 10) va một số thành phần khác Đề tạo mùi cho gas nhà sản xuất đã pha trộn thêm chất tạo mùi đặc trưng như methanethiol (CH ;SH), có mùi giống tỏi, hành tây Trong thành phân khí gas, tỉ lệ hòa trộn phổ biến của propane: butane theo thứ tự là 30 : 70 đến 50 : 50,
Vi điều khiển STM32F103C§T6
o_ Tốc độ tối đa 72Mhz
6_ Có các mode: ngủ, ngừng hoạt động hoặc hoạt động ở chế độ chờ
o Điện áp cấp 5VDC qua cổng Micro USB sẽ được chuyên đổi thành 3.3VDC qua IC nguồn và cấp cho Vi điều khiên chính
Ôn định khi sử dụng trong thời gian dai
- _ Van điện từ Solenid Valve
©_ Là dòng van điện từ cho khí gas thường đóng
o Ap suat Max: 360 mbar, Class A - Group 2
© Loai bao vé: IP 65
o Hop chuan theo tiêu chuan Directive ATEX (II 3G - II 3D)
© Dién ap cung cap 24 VDC
o Loa mau do, gan tường
Trang 5o Dién ap hoat déng: DC 24V, dong dién hoat déng: 20 MA
Quạt thông gió 2 chiều Tico TC-25AV6
2.2.1 Hồ sơ đặc tả (specifcatfion) của quy trình thiết kế hệ thống
TT | Specification Description (M6 ta)
(Thông sô kỹ
thuật)
1 Product Hệ thông có:
specification - Kha nang canh bao khi phát hiện khi CH4 bi ro ri
- Kha nang phát tín hiệu ra loa và dén khi co tin hiéu cảnh báo từ MQ2
-_ Khả năng tự động ngắt van gas khi khí rò rỉ
2 Engineering | Input: cam biên nhiệt MQ2, vị điệu khiên STM32, tín hiệu
specifcation | đồng hồ thời gian thực
Output: điều khiển van tự động đóng, rờ le điều khiển quạt
User interface: LCD, coi báo 12VDC, đẻn báo cháy to, loa
12VDC, quạt thông gió 2 chiều
+5V +3.3V +1/8V +12V
Trang 6- _ Hoạt động liên tục, báo hiệu ở chế độ auto
- Cảm biến có điều kiện
- Giao tiép UART và hiện lên LCD
Test Platform: vi diéu khién STM32
specification | Tién trinh kiém tra:
- Kiém tra hoat động của LCD, loa
- = Kiểm tra hoạt động của cảm biến nhiệt
- Kiểm tra hoạt động của mạch điều khiển
- Kiểm tra hoạt động của giải thuật điều khiển
- _ Kiểm tra nguồn điện cung cấp
- _ Kiểm tra đường dẫn khí
- Kiểm tra môi trường hoạt động
Funtions © Cảm biên MQ2 phát hiện rò ri
khí gas và phát tín hiệu ra led
với loa
© Gửi tín hiệu cánh báo về cho
người dùng khi phát hiện sự
cô
chặn sự lây lan
Real-time system e Hé thong yêu câu xử lý thời
Trang 7Thiền thị đèn báo và loa
Reactive system ® Hệ thông hoạt động liên tục
khi hệ thống không phát hiện
khí lỏng tôn tại
Mô tả chức năng, thành phần và nguyên lý hoạt động của hệ thống nhúng
Hệ thông nhúng cảnh báo rò rỉ khí gas là một hệ thông bảo vệ an toàn đề phát
hiện và cảnh báo người dùng về nguy cơ rò rỉ khí gas, đặc biệt là khí gas tự nhiên (chủ yêu là khí metan) Hệ thông này thường được sử dụng trong các nhà máy, nhà ở, hoặc nơi có nguy cơ cao về rò ri khí gas
Các thành phần chính của hệ thông nhúng cảnh báo rò rỉ khí gas bao gồm: o_ Cảm biến khí gas: thiết bị phát hiện mức độ khí gas có trong không khí
o Dau dò khí gas: kết nối với cảm biến khí gas để chuyên đôi tín hiệu từ cảm
biến thành tín hiệu điện tử đề xử lý
eo Bộ điều khiển: thiết bị điện tử đọc tín hiệu từ đầu dò va phân tích đữ liệu
dé xác định xem có rò ri khí gas hay không
thanh cánh báo
Nguyên lý hoạt động của hệ thông nhúng cánh báo rò rí khí gas là dựa trên việc phát hiện mức độ khí gas trong không khí Cảm biến khí gas được đặt ở vị trí có nguy cơ cao về rò rỉ khí gas, và sẽ phát hiện mức độ khí gas có trong không khí Dau dò khí gas kết nỗi với cảm biến khí gas đê chuyên đôi tín hiệu từ cảm biến
thành tín hiệu điện tử đề xử lý bởi bộ điều khiên Bộ điều khiên phân tích đữ liệu
từ đầu đò khí gas để xác định xem có rò ri khí gas hay không Nếu hệ thống phát
hiện có rò rỉ khí gas, nó sẽ kích hoạt đèn báo và âm thanh cảnh báo để cảnh báo
Trang 9Phần mềm STM32CubeMX là một công cụ hỗ trợ việc cấu hình các
chức năng cho các dòng vi điều khiển STM32 qua các giao diện đồ họa, và sinh code từ các cấu hình đó
KeilC là 1 IDE giúp lập trình viên viết Code, Debug, Load chương trình
xuống vi điều khiển
sử dụng 2 ngôn ngữ chính đó là C và C++
Câu hình chân PA1: input analog
'Cầu hình chân PA2_5: output digital Cầu hình chân PA9: UART TX Cầu hình chân PA10.UART RX
Lưu đồ giải thuật
Khai báo thư viện
Khai báo thư viện LCD 16x2 Khai báo adcvai =0
Khai báo biến cảnh báo = 1024;
Cấu hình UART 9690, 8N1
Cho phép ADC hoạt động 'Gán giá trị ADC vào adcval
Cho phép LCD hoạt động Hiển thị giá trị adcval lên màn hình
Cho phép còi cảnh báo
LED đỏ sáng UART truyền dữ liệu cảnh báo về PC
Trang 10* in the root directory of this software component
Trang 11/* Private define
—————-—-—-—-—-—-—-—-—-—-—-—-—-—-————————-—T————-——T——-—————————————-———-—-—-—-—-—-—-——— xf
/* USER CODE BEGIN PD */
/* USER CODE END PD */
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables
ADC_HandleTypeDef hadcl;
UART_ HandleTypeDef huartl;
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes
void SystemClock Config(void);
static void MX_GPIO_Init (void);
static void MX_USART1_UART_Init(void);
static void MX_ADC1_Init (void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/**x
* @brief The application entry point
Trang 12int main(void)
{
/* USER CODE BEGIN 1 */
bool flag receive = 0;
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
MX_ADC1_Init();
/* USER CODE BEGIN 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
Trang 13/* USER CODE END WHILE */
HAL _GPIO WritePin(BUZZ_GPIO_Port,BUZZ_Pin,1);
HAL _GPIO WritePin(LEDG_GPIO_ Port, LEDG_Pin,1); HAL _GPIO WritePin(LEDR_GPIO_ Port, LEDR_Pin,0);
}
{
HAL _GPIO WritePin(BUZZ_GPIO_Port,BUZZ_Pin,0);
HAL _GPIO WritePin(LEDR_GPIO_Port, LEDR_Pin,1); HAL _GPIO WritePin(LEDG_GPIO_Port, LEDG_Pin,0);
HAL UART Transmit (&huartl, &édata[0],sizeof(data),100);
Trang 14/** Tnitializes the RCC Oscillators according to the specified
parameters
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue =
RCC_HSICALIBRATION DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16;
Trang 15/* USER CODE BEGIN ADCl Tnit 0 */
/* USER CODE END ADC1_Init 0 */
ADcC_ChannelConfTypeDef sConfig = {0};
/* USER CODE BEGIN ADC1_ Init 1 */
/* USER CODE END ADC1_Init 1 */
hadel.Init.ExternalTrigConv = ADC_SOFTWARE START;
hadcl.Init.DataAlign = ADC_DATAALIGN RIGHT;
sConfig.SamplingTime = ADC _SAMPLETIME 7CYCLES 5;
Trang 16/* USER CODE END ADC1_Init 2 */
/* USER CODE END USART1_Init 1 */
huartl.Instance = USART1;
huartl.Init.BaudRate = 9600;
huartl.Init.WordLength = UART_WORDLENGTH_ 8B; huartl.Init.StopBits = UART_STOPBITS_1;
huartl.Init Parity = UART_PARITY_ NONE;
/* USER CODE END USART1_Init 2 */
/**x
* @brief GPIO Initialization Function
* @param None
* @retval None
Trang 17{
GPTO TnitTypeDef GPTO TnitStruct = {0};
/* USER CODE BEGIN MX GPIO Tnit 1 */
/* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */
HAL_RCC_GPIOA_CLK_ENABLE();
HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL _GPIO WritePin(GPIOA, LEDR_Pin|FAN_Pin|BUZZ_Pin|LEDG_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL _GPIO WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1/GPIO_PIN_2| GPIO_PIN 3
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN 6, GPIO_PIN_RESET);
/*Configure GPIO pins : LEDR_Pin FAN Pin BUZZ Pin LEDG Pin */
GPIO_InitStruct.Pin = LEDR_ Pin|FAN Pin|BUZZ Pin|LEDG Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
/*Configure GPIO pins : PBO PBl PB2 PB3
HAL GPIO Init (GPIOB, &GPIO InitStruct);
/* USER CODE BEGIN MX GPIO Init 2 */
/* USER CODE END MX_GPIO_Init_2 */
}
/* USER CODE BEGIN 4 */
Trang 18/* USER CODE BEGIN Error Handler Debug */
/* User can add his own implementation to report the HAL error return state */
disable_irgq();
{
}
/* USER CODE END Error Handler Debug */
[**
line number
* where the assert param error has occurred
* @param file: pointer to the source file name
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name
and line number,
ex: printf ("Wrong parameters value: file %s on line $d\r\n", file, line) */
/* USER CODE END 6 */
Trang 19Fee Ak eek ee eke eee ke eee ke oe ek ke oe eke oe oe oe ke oe de ek oe oe /
static void led_write data( uint8_t data);
static void led_write command (uint8 t command) ;
static void led_write( uint8_t data, uint8_t LENG);
Led_PortType ports[4] = { D4_GPIO_ Port, D5_GPIO Port,
Do _GPIO Port, D7 _GPIO Port};
[KK ek ee ek ee eke ee ek ee kk ee ke ee eke eee ke eek ke oe eke oe oe eke oe oe eke oe ee ke oe oe ke oe de ke oe oe oe ke oe tek eek ok ek ok ek ek kk kk ok ek ek kk ok de de
Trang 20// 4-bit mode
// Clear screen
lcd_write_command (DISPLAY_ON_OFF_CONTROL | OPT_D);
// ILcd-on, cursor-off, no-blink
Trang 21// Set CGRAM address
lcd_write_command(SET_CGRAM_ ADDRESS | (location << 3));
// Write 8 bytes custom char pattern
for (i = 0; i < 8; itt)
{
Trang 22/x*/
⁄/
Trang 23
⁄/
Trang 24GPIO_InitStruct Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_ HIGH;
HAL_GPIO_Init(EN_GPIO_ Port, &GPIO_InitStruct);
//Configure RW_PIN
GPTO TnitStruct.Pin = RW Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct Pull = GPIO_NOPULL;
HAL _GPIO_Init(RW_GPIO Port, &GPIO_InitStruct); HAI, _GPIO WritePin(RW_GPTO_Port,RW Pin,GPIO_PIN_RESET);
// Configure D4_PIN
GPTO TnitStruct.Pin = D4 Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct Pull = GPIO_NOPULL;
HAL _GPIO Init (D4 _GPIO_ Port, &GPIO_InitStruct);
// Configure D5 PIN
GPTO TnitStruct.Pin = D5 Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
HAL _GPIO Init(D5 GPIO_ Port, &GPIO_InitStruct);