1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu công nghệ mạng NB-IoT, ứng dụng thiết kế trạm quan trắc chất lượng không khí di động.pdf

139 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 139
Dung lượng 3,6 MB

Nội dung

BỘ CÔNG THƯƠNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC KẾT QUẢ THỰC HIỆN ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG Tên đề tài: Nghiên cứu công nghệ mạng NB-IoT, ứng dụng thiết kế trạm quan trắc chất lượng khơng khí di động Mã số đề tài: 20/1.6ĐT02 Chủ nhiệm đề tài: Trần Quý Hữu Đơn vị thực hiện: Khoa Cơng nghệ Điên tử THÀNH PHỐ HỒ CHÍ MINH, THÁNG 11, NĂM 2022 i MỤC LỤC MỤC LỤC ii DANH MỤC CÁC BẢNG vii DANH MỤC TỪ VIẾT TẮT ix LỜI CẢM ƠN x PHẦN I THÔNG TIN CHUNG xi Chương TỔNG QUAN VỀ ĐỀ TÀI I Tổng quan 1 Khái niệm số chất lượng khơng khí Sự cần thiết phải giám sát chất lượng khơng khí 2.1 Tình hình giới 2.2 Ở Việt Nam a) Hà Nội a.1 Chất lượng khơng khí qua năm a.2 Nhận định sơ nguyên nhân b) Thành phố Hồ Chí Minh 2.3 Khuyến nghị 10 Giới thiệu tóm tắt đề tài 10 Tổng quan tình hình nghiên cứu tính cấp thiết tiến hành nghiên cứu 11 4.1 Công nghệ Narrow Band NB-IoT 11 4.2 Công nghệ NB-IoT Viettel 13 4.3 Đặc điểm công nghệ 14 a) Hiệu lượng cao 14 b) Vùng phủ sóng – Kĩ thuật triển khai 14 c) Kiến trúc mạng 15 d) Bảo mật NB-IoT 16 e) Kiến trúc mạng NB-IoT 16 f) Ưu điểm công nghệ NB-IoT 17 g) Phân loại ứng dụng NB-IoT 18 h) So sánh NB-IoT với công nghệ IoT khác 20 i) Tình hình nghiên cứu giám sát chất lượng khơng khí giới: 22 ii j) Tình hình nghiên cứu giám sát chất lượng khơng khí nước 22 k) Đánh giá kết cơng trình nghiên cứu công bố (ưu, khuyết, tồn tại…) 24 l) Tính cấp thiết tiến hành nghiên cứu (tính mới, tính khoa học) 24 Cơ chế tiết kiệm lượng PSM 25 5.1 Cơ chế tiết kiệm lượng PSM 25 5.2 IEEE 802.11 PSM 26 Chương CƠ SỞ LÝ THUYẾT 28 I Phương pháp tính AQI: 28 II Phương pháp tính số AQI Việt Nam: 28 III Quy trình tính tốn AQI Việt Nam: 28 Giải thích từ ngữ 28 Đánh giá số chất lượng không khí 29 Hướng dẫn tính tốn số chất lượng khơng khí 30 3.1 Yêu cầu việc tính tốn VN_AQI 30 a) Yêu cầu số liệu sử dụng để tính tốn VN_AQI 30 b) Cách thức sử dụng số liệu để tính tốn VN_AQI 30 Tính tốn giá trị VN_AQI 31 4.1 Tính toán giá trị AQI (AQIh) 31 a) Tính giá trị Nowcast thông số PM2.5 PM10 31 b) Tính giá trị AQIh thơng số (AQIx) 32 c) Giá trị AQI tổng hợp 33 4.2 Tính tốn giá trị AQI ngày (AQId) 33 a) Xác định giá trị trung bình lớn ngày, giá trị trung bình lớn ngày giá trị trung bình 24 34 b) Tính giá trị AQId thơng số (AQIx) 35 c) Giá trị AQI ngày tổng hợp 36 4.3 Tính tốn mẫu 36 a) Tính giá trị Nowcast 36 b) Tính giá trị AQI 37 iii c) Tính giá trị AQI ngày 37 Hướng dẫn cơng bố số chất lượng khơng khí 38 Chương PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 42 I Sơ đồ khối hệ thống 42 II Các thành phần hệ thống 43 Các cảm biến 43 1.1 Cảm biến độ ẩm nhiệt độ 43 1.2 Cảm biến CO2 43 1.3 Module cảm biến bụi laser SDS011 (Các cảm biến đo nồng độ bụi mịn PM2.5 PM10) 44 Bộ xử lý trung tâm 46 Màn hình hiển thị (LCD OLED 12864 1.3 inch) 48 Module NB-IoT (LTE BG96 Cat M1/NB1/EGPRS Module) 49 Website 50 5.1 Các bước viết web dùng asp.net core MVC, C# 51 5.2 Các bước xây dựng service dùng asp.netcore TCP để build…………… 53 5.3 Các bước xây dựng giao diện web dùng jquery…………………………… 54 Adapter 12V 55 Sơ đồ kết nối 56 Chương ĐÁNH GIÁ CÁC KẾT QUẢ ĐÃ ĐẠT ĐƯỢC 57 I Tiến độ thực hiện: 57 II Các kết đo 57 Đo hiển thị phần cứng thiết bị 57 III So sánh thiết bị đề tài sản phẩm thương mại thị trường 62 Chương KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 66 PHỤ LỤC……………………………………………………………………………… 68 Main Code cho MCU…………………………………………………………… 68 iv DANH MỤC CÁC HÌNH ẢNH Hình So sánh tốc độ truyền diện tích phủ sóng cơng nghệ truyền thơng không dây [2] 11 Hình Các modem LTE-M/NB-IoT Bivocom [12]…………………………… 17 Hình Sơ đồ kết nối thiết bị đầu cuối sử dụng kết nối NB-IoT…………………18 Hình Các ứng dụng modem TW810 LTE-M/NB-IoT [12]…………………… 19 Hình Bản đồ vùng phủ NB-IoT Viettel Thành phố Hồ Chí Minh [13] 20 Hình Cơ chế PSM IBSS đặc biệt gồm thiết bị A, B C [11]……… 27 Hình Sơ đồ khối hệ thống 42 Hình Cảm biến độ ẩm nhiệt độ 43 Hình Module cảm biến CO2 MH-Z19 NDIR 43 Hình 10 Module cảm biến đo nồng độ bụi mịn PM2.5 PM10 44 Hình 11 Bộ xử lý trung tâm sử dụng vi xử lý ARM Cortex M4 32 bits STM32L476VGT6 47 Hình 12 Màn hình LCD 48 Hình 13 Module NB-IoT 49 Hình 14 Tạo dự án Web Visual Studio 2022………………………………50 Hình 15 Giao diện dự án mẫu tạo từ Visual Studio 2022……………………… 51 Hình 16 Biên dịch code giao diện sau lập trình tính giao diện mới51 Hình 17 Tạo service từ Visual Studio 2022…………………………………… 52 Hình 18 Mở TCP port nhận liệu code C# 52 Hình 19 Ghi log liệu nhận xuống sở liệu code C# NET Core………………………………………………………………………………………53 Hình 20 Thêm thư viện css javascript jquery vào dự án………………… 53 Hình 21 Một trang giao diện mẫu dùng jquery bootstrap………………………….54 Hình 22 Chỉnh sửa giao diện trang web mã Razor cshtml………………… 54 v Hình 23 Web giám sát thơng số mơi trường………………………………………55 Hình 24 Adapter 12V………………………………………………………………….55 Hình 25 Sơ đồ kết nối mơ hình 567 Hình 27 Kết đo đạt thực tế 588 Hình 28 Kết đo trường Đại học Cơng Nghiệp Tp HCM…………………… 58 Hình 29 Trang hiển thị liệu……………………………………………………… 59 Hình 30 Trang hiển thị biểu đồ liệu đo theo thời gian…………………………….,60 Hình 31 Biểu diễn kết đo số chất lượng khơng khí khu vực khác nhau………………………………………………………………………………………61 vi DANH MỤC CÁC BẢNG Bảng So sánh NB-IoT với công nghệ IoT khác 21 Bảng Khoảng giá trị AQI đánh giá chất lượng khơng khí 29 Bảng Các giá trị BPi thông số 32 Bảng Yêu cầu nội dung thông tin công bố VN_AQI 38 Bảng Các mức VN_AQI tương ứng ảnh hưởng tới sức khỏe 40 Bảng Các mức VN_AQI số hoạt động khuyến nghị 41 Bảng Sơ đồ chức chân cảm biến độ ẩm nhiệt độ 43 Bảng Thông số kỹ thuật module cảm biến bụi laser SDS011 44 Bảng Khoảng giá trị AQI đánh giá chất lượng khơng khí……………………….61 Bảng 10 So sánh đặc tính kỹ thuật thiết bị đề tài sản phẩm có thị trường 62 Bảng 11 So sánh thông số đo nồng độ bụi mịn PM2.5, PM10, thiết bị máy đo cầm tay BT-5800D qua 10 lần đo 62 vii DANH MỤC CÁC BIỂU ĐỒ Biểu đồ Diễn biến giá trị trung bình 24 thơng số PM2.5 ngày từ 12-29/9/2019 …………………………………………………………………………………………….4 Biểu đồ Diễn biến số chất lượng khơng khí (AQI) ngày ngày từ 1229/9/2019………………………………………………………………………………….5 Biểu đồ Diễn biến trung bình giá trị TB thông số PM2.5 trạm……………6 Biểu đồ Tỷ lệ mức AQI trạm ngày từ 12-29/9/2019……………….6 Biểu đồ Diễn biến nồng độ trung bình năm PM10 PM2,5 trạm Nguyễn Văn Cừ - Hà Nội giai đoạn 2010 – 2018……………………………………………………….7 Biểu đồ Diễn biến nồng độ trung bình năm PM2,5 trạm Đại sứ quán Mỹ - Hà Nội giai đoạn 2016 – 2018……………………………………………………………… Biểu đồ Diễn biến nồng độ bụi PM2.5 trung bình tháng năm từ 2013-2019………8 Biểu đồ Diễn biến lượng mưa trung bình tháng năm từ 2013-2019…………… Biểu đồ Diễn biến giá trị TB 24 thông số PM2.5 ngày từ 01-23/9/2019…… 10 viii DANH MỤC CÁC TỪ VIẾT TẮT Chữ viết tắt Chữ đầy đủ Ý nghĩa AQI Air quality index CPU Central Processing Unit GSM Global System for Mobile Chỉ số chất lượng khơng khí Đơn vị xử lý trung tâm Hệ thống thơng tin di động tồn cầu Communications IoT Internet of Thing Internet kết nối vạn vật MOS Metal Oxide Semiconductor NB-IoT Narrowband Internet of Things LCD Liquid Crystal Display PM Particulate Matter LPWAN Low Power Wide Area Network Bán dẫn oxit kim loại Internet vạn vật băng thông hẹp Màn hình tinh thể lỏng Hạt vật chất ix Mạng diện rộng công suất thấp LỜI CẢM ƠN Để hoàn thành đề tài này, em xin gửi lời cảm ơn chân thành đến Ban giám hiệu trường Đại học Cơng Nghiệp Thành phố Hồ Chí Minh, Khoa Cơng Nghệ Điện tử, tạo điều kiện sở vật chất với hệ thống thư viện đại, đa dạng loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin Xin chân thành cảm ơn Ban chủ nhiệm Khoa Công nghệ Điện tử, Thầy chủ nhiệm Bộ môn Điện tử Viễn thông quý Thầy/Cô Bộ môn Điện tử Viễn thông, tạo điều kiện thời gian, phịng thí nghiệm, chia sẻ kinh nghiệm hay nghiên cứu khoa học, động viên, hổ trợ em hoàn thành đề tài nghiên cứu Kính chúc q Thầy/Cơ nhiều sức khỏe, hạnh phúc thành công công việc sống Chúc trường luôn phát triển, đổi hội nhập giới Em xin chân thành cảm ơn! x htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim3) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN TIM3_Init */ /* USER CODE END TIM3_Init */ 112 } /** * @brief UART4 Initialization Function * @param None * @retval None */ static void MX_UART4_Init(void) { /* USER CODE BEGIN UART4_Init */ /* USER CODE END UART4_Init */ /* USER CODE BEGIN UART4_Init */ /* USER CODE END UART4_Init */ huart4.Instance = UART4; huart4.Init.BaudRate = 9600; 113 huart4.Init.WordLength = UART_WORDLENGTH_8B; huart4.Init.StopBits = UART_STOPBITS_1; huart4.Init.Parity = UART_PARITY_NONE; huart4.Init.Mode = UART_MODE_TX_RX; huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart4.Init.OverSampling = UART_OVERSAMPLING_16; huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart4) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN UART4_Init */ /* USER CODE END UART4_Init */ } /** * @brief USART1 Initialization Function 114 * @param None * @retval None */ static void MX_USART1_UART_Init(void) { /* USER CODE BEGIN USART1_Init */ /* USER CODE END USART1_Init */ /* USER CODE BEGIN USART1_Init */ /* USER CODE END USART1_Init */ huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; 115 huart1.Init.OverSampling = UART_OVERSAMPLING_16; huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USART1_Init */ /* USER CODE END USART1_Init */ } /** * @brief USART2 Initialization Function * @param None * @retval None */ static void MX_USART2_UART_Init(void) { 116 /* USER CODE BEGIN USART2_Init */ /* USER CODE END USART2_Init */ /* USER CODE BEGIN USART2_Init */ /* USER CODE END USART2_Init */ huart2.Instance = USART2; huart2.Init.BaudRate = 115200; huart2.Init.WordLength = UART_WORDLENGTH_8B; huart2.Init.StopBits = UART_STOPBITS_1; huart2.Init.Parity = UART_PARITY_NONE; huart2.Init.Mode = UART_MODE_TX_RX; huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart2.Init.OverSampling = UART_OVERSAMPLING_16; huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart2) != HAL_OK) { 117 Error_Handler(); } /* USER CODE BEGIN USART2_Init */ /* USER CODE END USART2_Init */ } /** * @brief USART3 Initialization Function * @param None * @retval None */ static void MX_USART3_UART_Init(void) { /* USER CODE BEGIN USART3_Init */ /* USER CODE END USART3_Init */ /* USER CODE BEGIN USART3_Init */ 118 /* USER CODE END USART3_Init */ huart3.Instance = USART3; huart3.Init.BaudRate = 9600; huart3.Init.WordLength = UART_WORDLENGTH_8B; huart3.Init.StopBits = UART_STOPBITS_1; huart3.Init.Parity = UART_PARITY_NONE; huart3.Init.Mode = UART_MODE_TX_RX; huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart3.Init.OverSampling = UART_OVERSAMPLING_16; huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart3) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USART3_Init */ /* USER CODE END USART3_Init */ 119 } /** * Enable DMA controller clock */ static void MX_DMA_Init(void) { /* DMA controller clock enable */ HAL_RCC_DMA1_CLK_ENABLE(); /* DMA interrupt init */ /* DMA1_Channel1_IRQn interrupt configuration */ HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); } /** * @brief GPIO Initialization Function 120 * @param None * @retval None */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ HAL_RCC_GPIOC_CLK_ENABLE(); HAL_RCC_GPIOA_CLK_ENABLE(); HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOA, NBIOT_PWRKEY_Pin|NBIOT_RESET_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, SHTxx_CLK_Pin|SHTxx_DATA_Pin|GPS_PWR_CTRL_Pin|SHTxx_PWR_CTRL_Pin |PMxx_PWR_CTRL_Pin|CO2_PWR_CTRL_Pin, GPIO_PIN_RESET); 121 /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, LED_TX_Pin|LED_RX_Pin|LED_WORKING_Pin, GPIO_PIN_SET); /*Configure GPIO pins : NBIOT_PWRKEY_Pin NBIOT_RESET_Pin */ GPIO_InitStruct.Pin = NBIOT_PWRKEY_Pin|NBIOT_RESET_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : NBIOT_STATUS_Pin */ GPIO_InitStruct.Pin = NBIOT_STATUS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(NBIOT_STATUS_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : PB1 */ GPIO_InitStruct.Pin = GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; 122 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : SHTxx_CLK_Pin SHTxx_DATA_Pin GPS_PWR_CTRL_Pin SHTxx_PWR_CTRL_Pin PMxx_PWR_CTRL_Pin CO2_PWR_CTRL_Pin */ GPIO_InitStruct.Pin = SHTxx_CLK_Pin|SHTxx_DATA_Pin|GPS_PWR_CTRL_Pin|SHTxx_PWR_CTRL_Pin |PMxx_PWR_CTRL_Pin|CO2_PWR_CTRL_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : LED_TX_Pin LED_RX_Pin LED_WORKING_Pin */ GPIO_InitStruct.Pin = LED_TX_Pin|LED_RX_Pin|LED_WORKING_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pins : BTN_SET_Pin BTN_TEST_Pin */ 123 GPIO_InitStruct.Pin = BTN_SET_Pin|BTN_TEST_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pin : NW_SELECT_Pin */ GPIO_InitStruct.Pin = NW_SELECT_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(NW_SELECT_GPIO_Port, &GPIO_InitStruct); } /* USER CODE BEGIN */ /** * @brief Retargets the C library printf function to the USART * @param None * @retval None */ PUTCHAR_PROTOTYPE 124 { /* Place your implementation of fputc here */ /* e.g write a character to the USART */ HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 100); return ch; } /* USER CODE END */ /** * @brief This function is executed in case of error occurrence * @retval None */ void Error_Handler(void) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ /* USER CODE END Error_Handler_Debug */ } 125 #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t *file, uint32_t line) { /* USER CODE BEGIN */ /* User can add his own implementation to report the file name and line number, tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END */ } #endif /* USE_FULL_ASSERT */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 126 ... THƠNG TIN CHUNG I Thơng tin tổng qt 1.1 Tên đề tài: Nghiên cứu công nghệ mạng NB-IoT, ứng dụng thiết kế trạm quan trắc chất lượng khơng khí di động 1.2 Mã số: 1.3 Danh sách chủ trì, thành viên... 3.1.6 Trạm quan trắc khơng khí tự động liên tục trạm quan trắc cố định di động có khả đo tự động, liên tục thông số chất lượng khơng khí [1] Đánh giá số chất lượng khơng khí Chỉ số chất lượng. .. hướng tốt Hệ thống quan trắc chất lượng không khí sử dụng cơng nghệ NB-IoT Việt Nam dùng mạng viễn thông Viettel cung cấp cập nhật thơng tin chất lượng khơng khí Hơn nữa, trạm quan trắc cịn có tùy

Ngày đăng: 09/01/2023, 21:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN