TÓM TẮT BÀI TẬP LỚN Đồ án em tìm hiểu về vi điều khiển ARM Cortex M3 với bộ Kit STM32F103c8t6 để thực hiện mô hình tưới cây thông qua cảm biến nhiệt độ môi trường DHT11 vàcảm biến độ ẩm
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC QUỐC GIA TP HỒ CHÍ
MINH
KHOA ĐIỆN – ĐIỆN TỬ
BÁO CÁO THỰC TẬP TỐT NGHIỆP
ĐỀ TÀI: ĐIỀU KHIỂN TƯỚI VÀ THEO DÕI
Trang 2GVHD: Thầy Trương Quang Vinh
LỜI CẢM ƠN
Trong quá trình thực hiện bài báo cáo này, em đã nhận được sự hướng dẫn
tận tình của Thầy Hoàng Mạnh Hà Thầy là người đã dẫn dắt và giúp em nắm
được những kiến thức nền tảng, kĩ năng cơ bản để thiết kế mạch điện Sự nhiệt tình trong việc truyền đạt kiến thức và hướng dẫn của thầy trong quá trình học tập và nghiên cứu đã tạo động lực để em hoàn thành đồ án này
Em xin gửi lời cảm ơn sâu sắc nhất đến thầy Hoàng Mạnh Hà đã giúp
em hoàn thành tốt bài báo cáo này.
Cuối cùng, bài báo cáo này tuy được biên soạn với nhiều công sức nhưng chắc chắn vẫn có những thiếu sót cần phải cải tiến Rất mong nhận được sự góp
ý của thầy để bài báo cáo có thể hoàn thiện hơn.
Xin trân trọng cảm ơn Thầy.
Tp Hồ Chí Minh, ngày 10 tháng 08 năm 2023.
Trang 3
TÓM TẮT BÀI TẬP LỚN
Đồ án em tìm hiểu về vi điều khiển ARM Cortex M3 với bộ Kit STM32F103c8t6
để thực hiện mô hình tưới cây thông qua cảm biến nhiệt độ môi trường DHT11 vàcảm biến độ ẩm đất bằng điện dung, thông số và các chế độ vận hành được lập trình
và cài đặt thông qua màn hình LCD1602 giao tiếp với MCU STM32 Sau đó dùng 1module Relay kết nối với máy bơm thông qua chân trên MCU để thực hiện viêc tướicây Em thiết kế 1 board mạch nhỏ dễ gắn và không chiếm không gian Sản phẩm làm
ra sẽ đạt được các chức năng cơ bản và tiêu chí đã nêu ra, đồng thời tạo bước đệm cho
em có hướng phát triển và cải thiện sản phẩm có nhiều tính năng hơn, hoạt động tốthơn và hoàn thiện hơn trong tương lai
Trang 4MỤC LỤC
GIỚI THIỆU 3
1.1 Tổng quan đề tài: 3
1.2 Nhiệm vụ đề tài 3
1.3 Phân chia công việc trong nhóm 4
LÝ THUYẾT 5
1.Cấu trúc của bộ kit STM32f103: 5
2 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 7
3 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 11
4 KẾT QUẢ THỰC HIỆN 12
5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 14
5.1 Kết luận 14
5.2 Hướng phát triển 14
6 TÀI LIỆU THAM KHẢO 15
7 PHỤ LỤC 16
Trang 5 Thủ công: Máy bơm sẽ được điều khiển bằng một nút nhấn, máy bơm hoạtđộng thủ công tùy theo ý muốn của người sử dụng.
Trang 6LÝ THUYẾT
1.Cấu trúc của bộ kit STM32f103:
STM32F103 C8T6 là vi điều khiển 32bit của STMicroelectronics với 64 Kb bộ nhớFlash, USB 2.0 full-speed, CAN, 7 bộ Timer, 2 bộ ADC và 9 giao diện kết nối Thôngtin chung về sản phẩm
- Lõi : ARM 32 bit Cortex M3, tần số hoạt động lên tới 72 MHz
- DMA : Điều khiển 7 kênh DMA
- Timer : 4 bộ, 16 bit ( IC, OC, PWM )
- Giao diện kết nối : 2xI2C, 3xUSART, 2xSPI, CAN, 1xUSB 2.0 full- speed, 1xCAN
- Kiểu chân : LQFP48
Trang 7- Ứng dụng : Những tính năng này làm cho vi điều khiển STM32F103C8T6 thích hợpcho một loạt các ứng dụng như điều khiển động cơ, kiểm soát các ứng dụng nâng cao,thiết bị y tế và thiết bị cầm tay, máy tính và thiết bị ngoại vi chơi game, GPS, ứngdụng công nghiệp, PLC, biến tần, máy in, máy quét , hệ thống báo động, hệ thống liênlạc video, và HVACs
2 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG
Yêu cầu thiết kế
o Cảm biến nhiệt độ, độ ẩm không khí, độ ẩm đất tầm hoạt động trongkhoảng nhiệt độ từ 0 – 500C , độ ẩm từ 20 – 90%
o Công suất hệ thống điều khiển thấp dưới 5W Tuổi thọ trên 5 năm
Đo tốt ở nhiệt độ: 0-50°C, sai số ± 2°
C
Đo tốt ở độ ẩm: 20-90%RH, sai số5%
Soil Moisture sensor v1.2
Điện áp hoạt động: 3.3~5.5VDCĐiện cực phủ sơn chống ăn mòn cho
độ bền và độ ổn định caoĐiện áp xuất ra chân Analog:0~3VDC
- Nhiều chân giao tiếp, giao tiếp với nhiều chuẩn thông dụng
Trang 8- Bộ nhớ vừa đủ dùng trong các ứng dụng học tập, lập trình
- Có bộ phần mềm STM (STM CubeMX và STM ST-link Utility và cácgói ví dụ miễn phí) và phần mềm KeilC bản dùng thử vừa đủ dùng đểlập trình ARM
Đo tốt ở nhiệt độ: -40-80°C, sai số
± 0.5 °C
Đo tốt ở độ ẩm: 0-100%RH, sai số 5%
2-Tín hiệu có thể truyền tối đa 20m
Cảm biến độ ẩm đất đầu dòchống ăn mòn
- Điện áp hoạt động: 3.3~12VDC
- Tích hợp đầu dò chống ăn mòn cho
độ bền và độ ổn định cao
- Tín hiệu đầu ra:
Analog: theo điện áp cấp nguồntương ứng
Digital: High hoặc Low, có thểđiều chỉnh độ ẩm mong muốn bằngbiến trở thông qua mạch so sánhLM393 tích hợp
- Chiều dài dây cảm biến: 1mLCD 16x04 Điện áp hoạt động: 3.3VHoạt động ở nhiệt độ -20 đến 70°C
*Ưu điểm:
Trang 9- Độ chính xác cao, công suất tiêu thụ thấp, hoạt động tốt ở những điềukiện khắc nghiệt hơn yêu cầu
- Độ bền tốt hơn, có thể sử dụng liên tục trong thời gian dài
Trang 103 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM
Yêu cầu đặt ra cho phần mềm
o Có khả năng đọc dữ liệu từ cảm biến và hiển thị lên màn hình LCD
o Hiển thị được các chế độ vận hành thông qua LCD và nút nhấn
o Thiết lập ngưỡng độ ẩm đất để điều khiển bơm tùy theo mong muốn người sử dụng
Phân tích
Yêu cầu 1: Khả năng đọc dữ liệu từ cảm biến và hiển thị lên màn LCD
Đối với DHT11: sử dụng thư viện có sẵn để đọc dữ liệu từ cảm biến, dữ liệuđược chuyển lên màn hình LCD
Đối với cảm biến đo độ ẩm đất bằng điện dung: dữ liệu đưa vào từ cảm biến
là dữ liệu analog, chuyển analog thành dữ liệu xử lí được, sau đó chuyển thành thang đo phần trăm và xuất ra màn hình LCD
Yêu cầu 2,3: Điều chỉnh các giá trị ngưỡng nhờ vào các nút bấm, từ đó điều
chỉnh hành vi của máy bơm và hiển thị trạng thái ra LCD
Vẽ sơ đồ giải thuật chi tiết và giải thích
Giải thích:
Trang 11 Hiển thị được các chế độ vận hành thông qua LCD và nút nhấn và thiết lậpngưỡng độ ẩm đất để điều khiển bơm tỳ theo mong muốn người sử dụng
Khi mới khởi động chương trình, hệ thống vào mode 0 Bơm được tắt Cácthông số được hiển thị lên LCD Hệ thống tiến hành kiểm tra độ ẩm đất Nếu:
- Độ ẩm đất > S: tắt máy bơm
- Độ ẩm đất < S: tiến hành kiểm tra nhiệt độ Nếu nhiệt độ > T thì bật máybơm Ngược lại thì tắt máy bơm
Khi ấn nút Mode button, hệ thống chuyển sang Chế độ cài đặt (Mode 1)
Hệ thống sẽ đọc trạng thái các nút nhấ- Nút tăng/ giảm Nhiệt độ dùng đểtăng / giảm giá trị nhiệt độ T Sau khi điều chỉnh được giá trị mong muốn thìnhấn xác nhận, để lưu và trở về Mode 0
n và thực hiện như sau:
- Nút tăng/ giảm Độ ẩm dùng để tăng / giảm giá trị độ ẩm S Sau khi điều chỉnhđược giá trị mong muốn thì nhấn xác nhận, để lưu và trở về Mode 0
32 extern unsigned int ND ;
33 extern unsigned int DA;
34 unsigned long last = 0
35.
36 uint16_t Read_CamBienDat(void);
37 unsigned int Data_CamBienDat = 0
Trang 1254 int ModeLCD = 0 // 0 nd da , 1 lcd cai dat => nút nhấn
55 void ButtonModeLCD(void);
56 #define Data_Nut_ModeLCD HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_7)
57 int CD_ND = 35;
58 int CD_DAT = 3000;
59 void Button_Tang_NhietDo(void);
60 void Button_Giam_NhietDo(void);
61.
62 void Button_Tang_Dat(void);
63 void Button_Giam_Dat(void);
64.
65 #define Data_Nut_TangNhietDo
HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_10)
66 #define Data_Nut_GiamNhietDo HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)
67 #define Data_Nut_TangDat HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)
68 #define Data_Nut_GiamDat HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13)
69 #define Data_Nut_XacNhan_NhietDo
HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)
70 #define Data_Nut_XacNhan_Dat
HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_14)
71 void Button_XacNhan_Dat(void);
72 void Button_XacNhan_NhietDo(void);
73 int main(void)
Trang 13101 HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
102 printf("ND: %d - DA: %d - CAmBienDat:%d\n", ND ,
Trang 17337. uint16_t value =0;
338. int analogBuffer_Duc[SCOUNT]; // store the analog value in
the array, read from ADC
Trang 18436 /* USER CODE BEGIN Error_Handler_Debug */
437 /* User can add his own implementation to report the HAL error return state */
Trang 19450. * @param line: assert_param error line source number
451. * @retval None
452 */
453. void assert_failed(uint8_t *file, uint32_t line)
454. {
455 /* USER CODE BEGIN 6 */
456 /* User can add his own implementation to report the file name and line number,
457 ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
458 /* USER CODE END 6 */
459. }
460 #endif /* USE_FULL_ASSERT */
461. KẾT QUẢ THỰC HIỆN
Trong phần này, sinh viên mô tả:
Trình bày cách thức đo đạc, thử nghiệm
- Dùng cảm biến nhiệt độ, độ ẩm DHT11 để đo nhiệt độ, độ ẩm môi trường và
so sánh với thông số có sẵn (google, máy điều hòa trong phòng, )
- Dùng cảm biến độ ẩm đất bằng điện dung để đo độ ẩm Dữ liệu xuất ra là tínhiệu điện áp, từ đó xác định điện áp khi khô và khi hoàn toàn là nước để nhậnlại được giá trị điện áp tương ứng Từ đó quy chuẩn ra thang đo phần trăm đểxuất ra màn hình LCD cũng như cài đặt thông số setup
Trình bày số liệu đo đạc
Trang 20Hình 5-1 Kết quả thi công
5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1 Kết luận
Ưu điểm:
- Mạch chạy hoàn chỉnh, chạy đúng các thông số đã cài đặt.
- Giá thành của hệ thống tương đối rẻ, phù hợp để lắp đặt trong nhà
- Hiển thị đúng các giá trị như nhiệt độ, độ ẩm môi trường, độ ẩm đất bằng điện dung lên LCD
Khuyết điểm:
- Do phần cứng được lắp đặt trên breadboard nên độ ổn định chưa cao
- Cảm biến có độ sai số lớn nên độ chính xác vẫn chưa cao
- Mạch hoạt động với máy bơm công suất nhỏ nên chỉ mang tính tương đối
5.2 Hướng phát triển
- Thiết lập thêm một chế độ vận hành thủ công bằng tay để tưới cây mà không cần phải thông qua độ ẩm hay nhiệt độ môi trường
Trang 21- Mở rộng mô hình tưới tiêu bằng nhiều máy bơm và máy bơm công suất lớn
để áp dụng lên thực tế, tạo thành 1 sản phẩm hoàn chỉnh có thể đưa vào thương mại.
- Viết một ứng dụng nhỏ trên điện thoại, sau đó dùng mạch WIFI để giao tiếp với hệ thống, sau đó chuyển dữ liệu lên ứng dụng trên điện thoại và cài đặt thông số cũng như có thể quan sát và theo dõi dữ liệu từ vườn cây từ xa.
6. TÀI LIỆU THAM KHẢO
- Thư viện của cảm biến và hướng dẫn giao tiếp với DHT 11:
https://www.youtube.com/watch?v=09C1dyXvSbg
- Thư viện lập trình để giao tiếp LCD với STM32F103:
https://www.youtube.com/watch?v=UHwcPN-zPII&list=PL2LKzu6AymfynerKAu43TzOUMoEq3C6iH&index=11