HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÀI BÁO CÁO MÔN HỌC ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG Đề tài Mô hình vườn thông minh Giảng viên hướng dẫn Nguyễn Ngọc Minh Lời nói đầu Vài năm trở lại đây, khi thế.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÀI BÁO CÁO MÔN HỌC: ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG Đề tài: Mơ hình vườn thơng minh Giảng viên hướng dẫn: Nguyễn Ngọc Minh Lời nói đầu Vài năm trở lại đây, giới dần tiến vào kỷ nguyên Internet of Things (IoTs), nông nghiệp thông minh trở thành xu hướng công nghệ tất yếu tiêu chuẩn sống người Mặc dù dựa tảng IOT, nhiên có nhiều tiếp cận khác việc thiết kế mơ hình vườn thơng minh Một số cách kể đến sử dụng máy tính nhúng Raspberry PI3, Orange Pi One, PIC Arduino Trong đề tài này, nhóm em nghiên cứu: “Thiết kế mơ hình vườn thơng minh” Sử dụng kit STM32C8T6 để phát triển thực ý tưởng 2|Page Mục Lục Chương 1: Phân tích đề tài Mô tả tổng quát Thiết bị phần mềm sử dụng: Các vấn đề cần giải Hướng giải vấn đề Chương 2: Cơ sở lý thuyết Kit STM32F103C8T6 Module DHT11 Cảm biến dộ ẩm đất LCD 16x2 Module I2C Keypad 4x4 Các lý thuyết liên quan a) GPIO b) I2C (inter-integrated circuit) c) Chuẩn giao tiếp 1-Wire Tìm hiểu hệ điều hành thời gian thực FreeRTOS a) Định nghĩa hệ điều hành thời gian thực b) Các thành phần RTOS c) Các đối tượng RTOS d) Giải thuật cho lịch trình theo chế độ ưu tiên e) Quản lý task RTOS f) Hệ điều hành FreeRTOS Chương 3: Thiết kế hệ thống Sơ đồ khối Sơ đồ nguyên lý Hệ thống Chương 4: Đánh giá kết hướng phát triển Kết Hướng phát triển Chương 5: Tài liệu tham khảo 3|Page Mô tả tổng quát Chương 1: Phân tích đề tài Nền nơng nghiệp nước ta nơng nghiệp cịn lạc hậu chưa có nhiều ứng dụng khoa học kĩ thuật áp dụng vào thực tế Rất nhiều quy trình kĩ thuật trồng trọt, chăm sóc tiến hành cách chủ quan không đảm bảo yêu cầu Có thể nói nơng học ngồi kĩ thuật trồng trọt, chăm sóc tưới nước khâu quan trọng trồng trọt, để đảm bảo sinh trưởng phát triển bình thường, tưới tưới đủ theo yêu cầu nông học trồng không sinh sâu bệnh, hạn chế thuốc trừ sâu cho sản phẩm an toàn, đạt suất, hiệu cao Hơn nữa, với việc thiết kế hệ thống tưới tự động giúp cho người tưới cây, tốn chi phí th nhân cơng tưới nước giám sát thời gian tưới Với hệ thống này, việc tưới tự động tùy theo nhiệt độ thời tiết nắng hay mưa, độ ẩm cao hay thấp…Tất điều kiện đưa vào hệ thống tính tốn đưa thời gian xác để bơm nước Người lao động không cần phải quan tâm đến việc tưới cây, sinh trưởng phát triển tốt nhờ việc tưới phù hợp xác Xuất phát từ vấn đề thực tiễn em nghiên cứu tiến hành thiết kế hệ thống “Vườn thông minh” Đề tài lựa chọn Mơ hình vườn thơng minh – dựa liệu từ cảm biến, xử lý thực hiển thị, cảnh báo tượng vượt qua khung quy định Cả hệ thống xây dựng hệ điều hành thời gian thực FreeRTOS Hệ thống đặt đâu ngồi mơi trường để thu thập liệu độ ẩm, ánh sáng, nhiệt độ Thiết bị phần mềm sử dụng: - Kit STM32F103C6T8 Cảm biến DHT11 Cảm biến ánh sáng Màn hình LCD1602 Phần mềm Keil C Phần mềm cubeMX Các vấn đề cần giải - Thực giao tiếp phần cứng với module: nhiệt độ, độ ẩm, ánh sáng… 4|Page - Xây dựng hệ thống hệ điều hành FreeRTOS với tác vụ quản lý task ứng với chức cụ thể: hiển thị, tính tốn, cảnh báo…các thông số Hướng giải vấn đề - Tham khảo cách ghép nối module phần cứng - Tìm hiểu chuẩn giao tiếp liệu linh kiện - Tìm hiểu thao tác cụ thể với hệ điều hành FreeRTOS để xây dựng task ứng với chức cụ thể Chương 2: Cơ sở lý thuyết Chương giới thiệu lý thuyết liên quan, trình bày phương pháp nghiên cứu thực hành cụ thể Đồng thời phân tích, đánh giá, làm rõ lý giải cho lựa chọn Kit STM32F103C8T6 KIT STM32F103C8T6 Mini thuộc loại kit phát triển là Kit phát triển được thiết kế với đơn giản, kít đầy đủ chân vi điều khiển, có cổng giao tiếp USB cổng nạp SWD, sử dụng dịng vi điều khiển 32 Bit dịng ST Thích hợp với người tiếp cận dịng STM 32 Bit 5|Page Thơng số kỹ thuật: • Vi điều khiển: STM32F103C8T6 • Điện áp cấp 5VDC qua cổng Micro USB chuyển đổi thành 3.3VDC qua IC nguồn cấp cho Vi điều khiển • Tích hợp sẵn thạch anh 8Mhz • Tích hợp sẵn thạnh anh 32Khz cho ứng dụng RTC • Ra chân đầy đủ tất GPIO giao tiếp: CAN, I2C, SPI, UART, USB… • Tích hợp Led trạng thái nguồn, Led PC13, Nút Reset • Kích thước: 53.34 x 15.24mm • Sử dụng với các mạch nạp: o ST-Link Mini o J-link o USB TO COM • Kết nối chân khi nạp bằng ST-Link Mini • Nạp theo chuẩn SWD o TCK — SWCLK o TMS — SWDIO o GND — GND o 3.3V — 3.3V Module DHT11 6|Page Thông tin kỹ thuật: Nguồn: -> VDC Dòng sử dụng: 2.5mA max (khi truyền liệu) Đo tốt ở độ ẩm 20 to 70%RH với sai số 5% Đo tốt nhiệt độ 0 to 50°C sai số ±2°C Tần số lấy mẫu tối đa 1Hz (1 giây lần) Kích thước 15mm x 12mm x 5.5mm chân, khoảng cách chân 0.1” Cảm biến dộ ẩm đất 7|Page • Cảm biến độ ẩm đất hoạt động với chế độ ngõ (Analog & Digital), trạng thái đầu mức thấp (0V), đất nhiều nước mức cao (5V) • Cảm biến đất: Hai đầu cảm biến cắm vào đất để phát độ ẩm Dùng dây nối cảm biến module chuyển đổi Thông tin độ ẩm đất đọc gửi module chuyển đổi • Module chuyển đổi: Module chuyển đổi có cấu tạo gồm IC so sánh LM393, biến trở, điện trở dán 100 Ohm tụ dán Biến trở có chức định ngưỡng so sánh với độ ẩm đất đọc từ cảm biến Ngưỡng so sánh tín hiệu cảm biến hai đầu vào IC so sánh LM393 Khi độ ẩm thấp ngưỡng định trước, ngõ IC mức cao (1), ngược lại mức thấp (0) • Đặc điểm: - Điện áp hoạt động: 3.3V-5V - Kích thước PCB: 3cm x 1.6cm - Led báo hiệu: + Led đỏ báo nguồn + Led xanh báo mức độ ẩm Do • Mơ tả pin module: Pin Mô tả VCC 3.3V-5V GND GND Do Đầu tín hiệu số (0 1) Ao Đầu tín hiệu tương tự LCD 16x2 LCD (Liquid Crystal Display) sử dụng nhiều ứng dụng Vi Điều Khiển LCD có nhiều ưu điểm so với dạng hiển thị khác Nó có khả hiển thị kí tự đa dạng, trực quan (chữ, số kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn tài nguyên hệ thống giá thành rẻ… Thông số kỹ thuật - Điện áp hoạt động: 5V - Hiển thị tối đa 20 tự dòng - Chữ đen xanh 8|Page Module I2C LCD có nhiều chân gây khó khăn q trình kết nối chiếm dụng nhiều chân vi điều khiển Module chuyển đổi I2C cho LCD giải vấn đề này, thay sử dụng tối thiểu chân vi điều khiển để kết nối với LCD (RS, EN, D7, D6, D5 D4) với module chuyển đổi bạn cần sử dụng chân (SCL, SDA) để kết nối Module chuyển đổi I2C hỗ trợ loại LCD sử dụng driver HD44780(LCD 1602, LCD 2004, ), kết nối với vi điều khiển thơng qua giao tiếp I2C, tương thích với hầu hết vi điều khiển Ưu điểm: - Tiết kiệm chân cho vi điều khiển - Dễ dàng kết nối với LCD Thông số kĩ thuật: - Điện áp hoạt động: 2.5-6V DC - Hỗ trợ hình: LCD1602,1604,2004 (driver HD44780) - Giao tiếp: I2C - Địa mặc định: 0X27 (có thể điều chỉnh ngắn mạch chân A0/A1/A2) - Kích thước: 41.5mm(L)x19mm(W)x15.3mm(H) - Trọng lượng: 5g - Tích hợp Jump chốt để cung cấp đèn cho LCD ngắt - Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD Keypad 4x4 9|Page Bàn phím ma trận Mềm 4x4 Keypad thiết kế với giao diện đơn giản giúp dễ dàng giao tiếp với vi điều khiển Mặt sau dính thuận tiên để gắn bàn phím nhiều dự án Thơng số kỹ thuật: • 16 phím • Độ dài cáp: 88mm • Nhiệt độ hoạt động: -40°C ~ +70°C • Đầu nối chân • Kích thước bàn phím: 77*69mm Sơ đồ chân Keypad 4x4 Các lý thuyết liên quan a) GPIO GPIO viết tắt General Purpose Input Output GPIO “cổng” để vi điều khiển kết nối với ngoại vi bên Chức GPIO xuất tín hiệu (output) nhận tín hiệu vào (input), VD: output có làm sáng tắt bóng LED, input nối với nút nhấn b) I2C (inter-integrated circuit) I2C chuẩn truyền thông nối tiếp dây gồm dây xung clock (SCL) dây liệu (SDA) Các chip chủ-tớ nối 10 | P a g e chung với hai đường dây nối với điện trở treo Giao diện kết nối I2C Đặc điểm • Chỉ cần có hai đường bus (dây) chung để điều khiển thiết bị / IC mạng I2C • Khơng cần thỏa thuận trước tốc độ truyền liệu giao tiếp UART Vì vậy, tốc độ truyền liệu điều chỉnh cần thiết • Cơ chế đơn giản để xác thực liệu truyền • Sử dụng hệ thống địa bit để xác định thiết bị / IC cụ thể bus I2C • Các mạng I2C dễ dàng mở rộng Các thiết bị kết nối đơn giản với hai đường bus chung I2C Phần cứng Bus vật lý I2C Bus I2C (dây giao tiếp) gồm hai dây đặt tên Serial Clock Line (SCL) Serial Data Line (SDA) Dữ liệu truyền gửi qua dây SDA đồng với tín hiệu đồng hồ (clock) từ SCL Tất thiết bị / IC mạng I2C kết nối với đường SCL SDA sau: Bus vật lý I2C Cả hai đường bus I2C (SDA, SCL) hoạt động lái cực máng hở (open drain) Nó có nghĩa thiết bị / IC mạng I2C lái SDA SCL xuống mức thấp, lái chúng lên mức cao Vì vậy, điện trở kéo lên (khoảng kΩ đến 4,7 kΩ) sử dụng cho đường bus, để giữ cho chúng mức cao (ở điện áp dương) theo mặc định Lý sử dụng hệ thống cực máng hở (open drain) để không xảy tượng ngắn mạch, điều xảy thiết bị cố gắng kéo đường dây lên cao số thiết bị khác cố gắng kéo đường dây xuống thấp Thiết bị chủ (Master) tớ (Slave) Các thiết bị kết nối với bus I2C phân loại thiết bị Chủ (Master) thiết bị Tớ (Slave) Ở thời điểm có thiết bị Master trang thái hoạt động bus I2C Nó điều khiển đường tín hiệu đồng hồ SCL định hoạt động thực đường liệu SDA 11 | P a g e Tất thiết bị đáp ứng hướng dẫn từ thiết bị Master Slave Để phân biệt nhiều thiết bị Slave kết nối với bus I2C, thiết bị Slave gán địa vật lý 7-bit cố định Khi thiết bị Master muốn truyền liệu đến nhận liệu từ thiết bị Slave, xác định địa thiết bị Slave cụ thể đường SDA sau tiến hành truyền liệu Vì vậy, giao tiếp có hiệu diễn thiết bị Master thiết bị Slave cụ thể Tất thiết bị Slave khác không phản hồi trừ địa chúng định thiết bị Master dòng SDA Giao thức truyền liệu Giao thức sau (tập hợp quy tắc) theo sau thiết bị Master thiết bị Slave để truyền liệu chúng Dữ liệu truyền thiết bị Master thiết bị Slave thông qua đường liệu SDA nhất, thơng qua chuỗi có cấu trúc gồm số (bit) Mỗi chuỗi số gọi giao dịch (transaction) liệu giao dịch có cấu trúc sau: c) Chuẩn giao tiếp 1-Wire • 1-Wire chuẩn giao tiếp thiết kế Dallas Semiconductor maxim mua lại năm 2001 Maxim hãng sản xuất chip lớn • 1-Wrire dùng dây để truyền nhận nên có tốc độ thấp Chủ yếu sử dụng cho việc thu thập liệu, truyền nhận liệu thời tiết, nhiệt độ, công việc không yêu cầu tốc độ cao • Cũng giống giao tiếp I2C, dây tín hiệu Wire phải treo lên Vcc Và cấu hình GPIO dạng Open Drain Về nguyên lý, chuẩn Onewire giao tiếp với nhiều thiết bị mạng theo sơ đồ sau: Sơ đồ lắp đặt chuẩn giao tiếp 1-Wire • Cơ sở truyền nhận: Các tín hiệu sử dụng Restart, write1 , write , Read Write 1: truyền bit 1: Master kéo xuống khoảng A(us) mức khoảng B Write 0: truyền bit 0: Master kéo xuống khoảng C trả khoảng D Read: Đọc Bi : Master kéo xuống khoảng A trả delay khoảng E đọc giá trị slave gửi delay F 12 | P a g e Restart: Chuẩn bị giao tiế Master ké0 xuống khoảng H nhả lên mức sau cấu hình Master chân In delay I (us) đọc giá trị slave trả Nếu =0 cho phép giao tiếp =1 đường truyền lỗi slave bận Chuẩn 1-Wire điều cần xác thời gian Vậy để tối ưu đường truyền cần định thời để delay xác • Khung truyền – gói tin Một gói tin (packet) DHT 11 bao gồm 40bit, tương ứng với 5byte Trong đó: - Byte 1: giá trị phần nguyên độ ẩm (RH%) - Byte 2: giá trị phần thập phân độ ẩm (RH%) - Byte 3: giá trị phần nguyên nhiệt độ (TC) - Byte 4: giá trị phần thập phân nhiệt độ (TC) - Byte 5: kiểm tra tổng (Check Sum) tổng 4byte phía trước cộng lại DHT11 gửi MSB (bit có trọng số lớn nhất) tức byte gửi đầu tiên, cuối byte Gói tin DHT11 • Chu trình nhận liệu Trạng thái bình thường DHT11 trạng thái tiêu thụ lượng thấp Khi có tín hiệu Reset, chúng wakeup sau DHT11 phản hổi cách kéo chân Data xuống khoảng thời gian, nhả Sau 5byte liệu gửi đi, MCU đọc 5byte Kết thúc DHT11 nhả chân Data lại mức trở trạng thái tiết kiệm lượng Nó đánh thức có tín hiệu reset Chu trình giao tiếp với DHT11 • Cách reset hay start Để xuất tín hiệu reset hay start cho DHT11, kéo chân Data xuống 18ms, sau nhả 20-40us để chờ DHT11 phản hồi Nếu DHT11 phản hồi, kéo chân Data xuống khoảng 80us, sau nhả 80us Tiếp theo 80bit (5byte) liệu sau • Cách nhận biết bit giá trị trả DHT11 Với bit DHT11 kéo chân Data xuống 50us trả 2628us Với bit DHT11 kéo chân Data xuống 50us trả 70us Thực tế, cần đo thời gian Data mức 28us hay 70us phân biệt 13 | P a g e DHT11 bit DHT11 bit Tìm hiểu hệ điều hành thời gian thực FreeRTOS a) Định nghĩa hệ điều hành thời gian thực Hệ điều hành thời gian thực – real time operating system (RTOS), hệ điều hành nhằm phục vụ ứng dụng thời gian thực, với việc sử li liệu đầu vào mà khơng có chậm trễ đệm Các u cầu thời gian xử lý tính phần mười giây nhanh Quá trình xử lý phải thực khoảng thời gian cố định chặt chẽ khơng hệ thống gặp cố Việc thực thông qua chế chia thành tác vụ với quyền ưu tiên khác b) Các thành phần RTOS Bộ lịch trình (Scheduler): Là tập thuật toán để xác định tác vụ (Task) thực thi Đối tượng (Object): Là cấu trúc đặc biệt (Kernel) giúp người lập trình tạo ứng dụng Dịch vụ (Service): Là điều khiển mà Kernel (lõi) thực thi đối tượng (object): chia thời gian (Timing), Ngắt (interrupt), Đáp ứng (handling) quản lý tài nguyên hệ thống (resource management) c) Các đối tượng RTOS Tasks: Là luồng (thread) thực thi tồn độc lập “cạnh tranh” để dành quyền thực thi Semaphores: Là đối tượng bắt kiện để đồng tasks, tăng giảm Message Queues: Là kiểu cấu trúc liệu dùng để đồng hóa trao đổi thông tin Tasks Real-time embedded applications: Là kết nối đối tượng Kernel để giải vấn đề thời gian thực đồng thời, đồng bộ, trao đổi liệu d) Giải thuật cho lịch trình theo chế độ ưu tiên Hầu hết Real – time Kernel sử dụng giải thuật lịch trình thay theo độ ưu tiên (preemptive priority- based scheduling) làm mặc định 14 | P a g e Các task thực thi thời điểm task có độ ưu tiên cao so với task khác trạng thái sẵn sàng Real –Time Kernel hỗ trợ 256 cấp độ ưu tiên, với độ ưu tiên cao 255 độ ưu tiên thấp Một số Kernel ngược lại với 255 độ ưu tiên cao độ ưu tiên thâp Với chuyển đổi theo đọ ưu tiên, task phải có độ ưu tiên, task có độ ưu tiên cao chạy Nếu Task có độ ưu tiên cao task chạy trở nên sẵn sàng để chạy kernel lưu lại trạng thái Task chuyển sang Task có độ ưu tiên cao Mặc dù việc phân chia độ ưu tiên Task thực task tạo độ ưu tiên Task thay đổi cách linh động sử dụng Lời gọi kernel cung cấp (Kernel – provided calls) Khả dùng để thay đổi cách linh động cho phép ứng dụng nhúng có độ linh hoạt để ứng xử với kiện bên chúng xuất hiện, tạo hệ thống thời gian thực đáp ứng tốt Lưu ý việc sử dụng không khả thay đổi độ ưu tiên dẫn đến đảo độ ưu tiên (priority inversion), vùng chết (deadlock), dẫn đến treo hệ thống (system failure) e) Quản lý task RTOS Task luồng thực thi độc lập mà cạnh tranh chiếm quyền thực thi Một ứng dụng chia làm nhiều Tasks đồng thời (Concurrent Task) để tối ưu khả đáp ứng vào luật thời gian Một Task định nghĩa túy tập tham số cấu trúc liệu Các thành phần Task: Khi tạo ra, Task có tên, ID nhất, độ ưu tiên, block điều khiển Task (TCB), Stack, Các thủ tục thực thi Task 15 | P a g e Hình: Các trạng thái task Tại thời điểm, task tồn số trạng thái nhỏ bao gồm: Sẵn sàng (Ready), Đang thực thi (Running), Khóa (Blocked) Khi hệ thống nhúng thời gian thực chạy, task thay đổi từ trạng thái đến trạng thái khác theo quy luật logic trạng thái hữu hạn đơn giản (Finite state machine (FSM) f) Hệ điều hành FreeRTOS FreeRTOS hệ điều hành nhúng thời gian thực (Real Time Operating System) mã nguồn mở phát triển Real Time Engineers Ltd, sáng lập sở hữu Richard Barry FreeRTOS thiết kế phù hợp cho nhiều hệ nhúng nhỏ gọn triển khai chức như: chế quản lý nhớ tác vụ bản, hàm API quan trọng cho chế đồng Nó khơng cung cấp sẵn giao tiếp mạng, drivers, hay hệ thống quản lý tệp (file system) hệ điều hành nhúng cao cấp khác. Tuy vậy, FreeRTOS có nhiều ưu điểm, hỗ trợ nhiều kiến trúc vi điều khiển khác nhau, kích thước nhỏ gọn (4.3 Kbytes sau biên dịch ARM7), viết ngôn ngữ C sử dụng, phát triển với nhiều trình biên dịch C khác (GCC, OpenWatcom, Keil, IAR, Eclipse, …), cho phép không giới hạn tác vụ chạy đồng thời, không hạn chế quyền ưu tiên thực thi, khả khai thác phần cứng Ngồi ra, cho phép triển khai chế điều độ tiến trình như: queues, counting semaphore, mutexes. FreeRTOS hệ điều hành nhúng phù hợp cho nghiên cứu, học tập kỹ thuật, công nghệ viết hệ điều hành nói chung hệ điều 16 | P a g e hành nhúng thời gian thực nói riêng, việc phát triển mở rộng tiếp thành phần cho hệ điều hành hành a Tạo xóa Task: xTaskCreate portBASE_TYPE xTaskCreate ( pdTASK_CODE pvTaskCode, const portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask ); Mô tả: Tạo Task thêm vào danh sách task sẵn sàng để thực thi Tham số: - pvTaskCode: Pointer to đến hàm thưc cho Task - pcName: Tên mơ tả cho Task (chỉ dùng cho mục đích debug hệ thống) Chiều dài tối đa tên định nghĩa configMAX_TASK_NAME_LEN - usStackDepth: Là kích thước Stack đặc trưng cho số lượng biến mà Task quản lý - pvParameters: Pointer sử dụng tham số việc tạo Task - uxPriority: Độ ưu tiên Task - pvCreatedTask: Pointer trỏ đến Task tạo Trị trả về: pdPASS Task tạo thành công vTaskDelete void vTaskDelete (xTaskHandle pxTask) Mơ tả: Xóa Task từ RTOS realtime management Tham số: pxTask poiter đến Task cần xóa Trị trả về: Không trị Điều khiển Task: 17 | P a g e vTaskDelay void vTaskDelay portTickType xTicksToDelay) Mô tả: Delay (block) Task khoảng thời gian kể từ lần cuối hàm gọi (số ticks mà Task bị block) Tham số: xTicksToDelay: Số Ticks Task bị block Trị trả về: Không trị vTaskDelayUntil void vTaskDelayUntil (portTickType *pxPreviousWakeTime, portTickType xTimeIncrement) Mơ tả: Block Task chu kì xác định Tham số: - pxPreviousWakeTime Pointer đến biến lưu giá trị lần cuối Task unclocked Biến phải khởi tạo giá trị với giá trị cho lần dùng - xTimeIncrement: Là chu kì thời gian Task đươck uncloked sau thời (*pxPreviousWakeTime + xTimeIncrement) Gọi hàm naỳ với mục đích thực thi Task theo chu kì định Trị trả về: Không trị uxTaskPriorityGet unsigned portBASE_TYPE uxTaskPriorityGet (xTaskHandle pxTask) Mô tả: Đọc giá trị độ ưu tiên Task Tham số: pxTask: biến Handle Task cần đọc Trị trả về: Độ ưu tiên Task cần gọi vTaskPrioritySet void vTaskPrioritySet (xTaskHandle pxTask, unsignedportBASE_TYPE uxNewPriority) Mô tả: Cài đặt độ ưu tiên cho Task Tham số: 18 | P a g e pxTask: Handle Task set độ ưu tiên Nếu NULL set độ ưu tiên Task gọi (Task tại) uxNewPriority: Độ ưu tiên cho Task Trị trả vể: Không trị vTaskSuspend void vTaskSuspend (xTaskHandle pxTaskToSuspend) Mơ tả: Suspend (xem thêm chương 1) Task mà không quan tâm đến độ ưu tiên Task Tham số: pxTaskToSuspend: Handle Task bị suspend Trị trả về: Không trị vTaskResume void vTaskResume (xTaskHandle pxTaskToResume) Mô tả: Resume Task, dùng với xTaskSuspend Tham số: pxTaskToResume: Task Resume: Trị trả về: Không trị xTaskResumeFromISR portBASE_TYPE xTaskResumeFromISR (xTaskHandle pxTaskToResume) Mô tả: Resume Task từ ISR Tham số: pxTaskToResume: Handle Task Resume Trị trả về: pdTRUE trị việc resuming có tác dụng lên context switch, ngược lại pdFALSE 19 | P a g e Mức độ ưu tiên hoạt dộng Task Trong FreeRTOS, taѕk ѕẽ được: Gán prioritу Mỗi taѕk có duу trạng thái ᴠào thời điểmChỉ duу taѕk Running ѕtate ᴠào thời điểm Scheduler ѕẽ ln chọn taѕk Readу ѕtate ᴠà có prioritу cao để đưa ᴠào Running ѕtate Sơ đồ khối 20 | P a g e Chương 3: Thiết kế hệ thống ... hành thiết kế hệ thống ? ?Vườn thông minh? ?? Đề tài lựa chọn Mơ hình vườn thơng minh – dựa liệu từ cảm biến, xử lý thực hiển thị, cảnh báo tượng vượt qua khung quy định Cả hệ thống xây dựng hệ điều... f) Hệ điều hành FreeRTOS Chương 3: Thiết kế hệ thống Sơ đồ khối Sơ đồ nguyên lý Hệ thống Chương 4: Đánh giá kết hướng phát... (IoTs), nông nghiệp thông minh trở thành xu hướng công nghệ tất yếu tiêu chuẩn sống người Mặc dù dựa tảng IOT, nhiên có nhiều tiếp cận khác việc thiết kế mơ hình vườn thơng minh Một số cách kể