1. Trang chủ
  2. » Tất cả

Báo cáo đồ án thiết kế hệ thống nhúng Mô hình vườn thông minh

25 30 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

Tiêu đề Mô hình vườn thông minh
Tác giả Nhóm Nghiên Cứu
Người hướng dẫn Nguyễn Ngọc Minh
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo đồ án thiết kế hệ thống nhúng
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 2,1 MB
File đính kèm file dinh kem.zip (12 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ế.

Trang 1

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

Trang 2

Lời nói đầu

Vài năm trở lại đây, khi thế giới đang dần tiến vào kỷ nguyên Internet ofThings (IoTs), nền nông nghiệp thông minh trở thành một xu hướng côngnghệ tất yếu và là tiêu chuẩn của cuộc sống của con người Mặc dù đều dựatrên nền tảng IOT, tuy nhiên có rất nhiều các tiếp cận khác nhau trong việcthiết kế các mô hình vườn thông minh Một số cách có thể kể đến là sửdụng các máy tính nhúng như Raspberry PI3, Orange Pi One, PIC hoặcArduino Trong đề tài này, nhóm em nghiên cứu: “Thiết kế mô hình vườnthông minh” Sử dụng kit STM32C8T6 để phát triển và thực hiện ý tưởng

Trang 3

Mục Lục

Chương 1: Phân tích đề tài

1 Mô tả tổng quát

2 Thiết bị các phần mềm sử dụng:

3 Các vấn đề cần giải quyết

4 Hướng giải quyết vấn đề

Chương 2: Cơ sở lý thuyết

1 Kit STM32F103C8T6

2 Module DHT11

3 Cảm biến dộ ẩm đất

4 LCD 16x2

5 Module I2C

6 Keypad 4x4

7 Các lý thuyết liên quan

a) GPIO

b) I2C (inter-integrated circuit)

c) Chuẩn giao tiếp 1-Wire

8 Tìm hiểu về 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 trong RTOS

c) Các đối tượng trong RTOS

d) Giải thuật cho lịch trình theo chế độ ưu tiên

e) Quản lý task trong RTOS

f) Hệ điều hành FreeRTOS

Chương 3: Thiết kế hệ thống

1 Sơ đồ khối

2 Sơ đồ nguyên lý

3 Hệ thống

Chương 4: Đánh giá kết quả và hướng phát triển

1 Kết quả

2 Hướng phát triển

Chương 5: Tài liệu tham khảo

Trang 4

Chương 1: Phân tích đề tài

1 Mô tả tổng quát

Nền nông nghiệp của nước ta là nền nông nghiệp vẫn còn lạchậu cũng như chưa có nhiều ứng dụng khoa học kĩ thuật được ápdụng vào thực tế Rất nhiều quy trình kĩ thuật trồng trọt, chăm sócđược tiến hành một cách chủ quan và không đảm bảo được đúng yêucầu Có thể nói trong nông học ngoài những kĩ thuật trồng trọt, chămsóc thì tưới nước là một trong các khâu quan trọng nhất trong trồngtrọt, để đảm bảo cây sinh trưởng và phát triển bình thường, tưới đúng

và tưới đủ theo yêu cầu nông học của cây trồng sẽ không sinh sâubệnh, hạn chế thuốc trừ sâu cho sản phẩm an toàn, đạt năng suất,hiệu quả cao Hơn thế nữa, với việc thiết kế một hệ thống tưới cây tựđộng sẽ giúp cho con người không phải tưới cây, không phải tốn chiphí thuê nhân công tưới nước cũng như giám sát thời gian tưới cây.Với hệ thống này, việc tưới cây sẽ là tự động tùy theo nhiệt độ thờitiết nắng hay mưa, độ ẩm cao hay thấp…Tất cả các điều kiện đó sẽđược đưa vào hệ thống tính toán và đưa ra thời gian chính xác đểbơm nước Người lao động sẽ không cần phải quan tâm đến việc tướicây, cây sẽ được sinh trưởng và phát triển tốt hơn nhờ việc tưới câyphù hợp và chính xác hơn Xuất phát từ những vấn đề thực tiễn trên

em đã nghiên cứu và tiến hành thiết kế hệ thống “Vườn thông minh”

Đề tài được lựa chọn là Mô hình vườn thông minh – dựa trên

các dữ liệu từ các cảm biến, xử lý và thực hiện các hiển thị, cảnh báocác hiện tượng vượt qua khung quy định Cả hệ thống sẽ được xây dựng trên hệ điều hành thời gian thực FreeRTOS

Hệ thống sẽ có thể đặt ở bất cứ đâu ngoài môi trường để thu thập được các dữ liệu về độ ẩm, ánh sáng, nhiệt độ

Trang 5

- Xây dựng hệ thống trên hệ điều hành FreeRTOS với các tác vụ quản lý task ứng với từng chức năng cụ thể: hiển thị, tính toán, cảnh báo…các thông số.

4 Hướng giải quyết vấn đề

- Tham khảo cách ghép nối giữa các module và phần cứng

- Tìm hiểu các chuẩn giao tiếp dữ liệu giữa các linh kiện

- Tìm hiểu các thao tác cụ thể với hệ điều hành FreeRTOS để xây dựng các task ứng với chức năng cụ thể

Chương 2: Cơ sở lý thuyết

Chương này sẽ giới thiệu các lý thuyết liên quan, trình bày các phương pháp nghiên cứu và thực hành cụ thể Đồng thời phân tích, đánh giá, làm rõ và lý giải cho sự các lựa chọn đó.

1 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 ra đầy đủ chân của vi điều khiển, có cổnggiao tiếp USB và cổng nạp SWD, sử dụng dòng vi điều khiển 32 Bit củadòng ST Thích hợp với những người tiếp cận dòng STM 32 Bit

Trang 7

Thông tin kỹ thuật:

 Nguồn: 3 -> 5 VDC

 Dòng sử dụng: 2.5mA max (khi truyền dữ 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 1 lần)

 Kích thước 15mm x 12mm x 5.5mm

 4 chân, khoảng cách chân 0.1”

3 Cảm biến dộ ẩm đất

Trang 8

• Cảm biến độ ẩm đất được hoạt động với 2 chế độ ngõ ra (Analog & Digital), trạng thái đầu ra mức thấp (0V), khi đất nhiều nước sẽ ở mức cao (5V).

• Cảm biến đất: Hai đầu của cảm biến được cắm vào đất để phát hiện

độ ẩm Dùng dây nối giữa cảm biến và module chuyển đổi Thông tin

về độ ẩm đất sẽ được đọc và gửi về module chuyển đổi.

• Module chuyển đổi: Module chuyển đổi có cấu tạo chính gồm một IC

so sánh LM393, một biến trở, 4 điện trở dán 100 Ohm và 2 tụ dán Biến trở có chức năng định ngưỡng so sánh với độ ẩm đất đọc về từ cảm biến Ngưỡng so sánh và tín hiệu cảm biến sẽ là hai đầu vào của

IC so sánh LM393 Khi độ ẩm thấp hơn ngưỡng định trước, ngõ ra của

IC là mức cao (1), ngược lại là 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ả các pin trên module:

và 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 rất ít tài nguyên hệ thống và 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ự trên 4 dòng

- Chữ đen nền xanh lá

Trang 9

Module chuyển đổi I2C hỗ trợ các 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 các vi điều khiển hiện nay.

- Giao tiếp: I2C

- Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng 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 hoặc ngắt

- Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD

6 Keypad 4x4

Trang 10

Bàn phím ma trận Mềm 4x4 Keypad được thiết kế với giao diện đơn giản giúp dễ dàng giao tiếp với bất kì vi điều khiển nào Mặt sau dính thuận tiên để gắn bàn phím trong nhiều dự án.

Sơ đồ chân Keypad 4x4

7 Các lý thuyết liên quan

a) GPIO

GPIO là viết tắt của General Purpose Input Output GPIO chính là

“cổng” để vi điều khiển có thể kết nối được với những ngoại vi bên ngoài

Chức năng cơ bản của GPIO là xuất tín hiệu ra (output) và nhận tín hiệu vào (input), VD: output có làm sáng tắt bóng LED, input

có thể nối với nút nhấn

b) I2C (inter-integrated circuit)

I2C là chuẩn truyền thông nối tiếp 2 dây gồm 1 dây xung clock (SCL) và 1 dây dữ liệu (SDA) Các chip chủ-tớ được nối

Trang 11

chung với nhau trên hai đường dây này và được nối với điện trở treo.

Giao diện kết nối I2C

• Cơ chế đơn giản để xác thực dữ liệu được truyền

• Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên bus I2C

• Các mạng I2C dễ dàng mở rộng Các thiết bị mới có thể được 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) chỉ gồm hai dây và được đặt tên là Serial Clock Line (SCL) và Serial Data Line (SDA) Dữ liệu được truyền đi được gửi qua dây SDA và được đồng bộ với tín hiệu đồng hồ (clock) từ SCL Tất cả các thiết bị / IC trên mạng I2C được kết nối với cùng đường SCL và SDA như sau:

Bus vật lý I2C

Cả hai đường bus I2C (SDA, SCL) đều hoạt động như các bộ lái cực máng hở (open drain) Nó có nghĩa là bất kỳ thiết bị / IC trên mạng I2C có thể lái SDA và SCL xuống mức thấp, nhưng không thể lái chúng lên mức cao Vì vậy, một điện trở kéo lên (khoảng 1

kΩ đến 4,7 kΩ) được sử dụng cho mỗi đường bus, để giữ cho chúng ở mức cao (ở điện áp dương) theo mặc định

Lý do sử dụng một hệ thống cực máng hở (open drain) là để không xảy ra hiện tượng ngắn mạch, điều này có thể xảy ra khi một thiết bị cố gắng kéo đường dây lên cao và một số thiết bị khác cố gắng kéo đường dây xuống thấp

Thiết bị chủ (Master) và tớ (Slave)

Các thiết bị kết nối với bus I2C được phân loại hoặc là thiết bị Chủ (Master) hoặc là thiết bị Tớ (Slave) Ở bất cứ thời điểm nào thì chỉ có duy nhất một thiết bị Master ở trang thái hoạt động trên bus I2C Nó điều khiển đường tín hiệu đồng hồ SCL và quyết định hoạt động nào sẽ được thực hiện trên đường dữ liệu SDA

Trang 12

Tất cả các thiết bị đáp ứng các hướng dẫn từ thiết bị Master này đều là Slave Để phân biệt giữa nhiều thiết bị Slave được kết nối với cùng một bus I2C, mỗi thiết bị Slave được gán một địa chỉ vật

lý 7-bit cố định

Khi một thiết bị Master muốn truyền dữ liệu đến hoặc nhận dữ liệu từ một thiết bị Slave, nó xác định địa chỉ thiết bị Slave cụ thể này trên đường SDA và sau đó tiến hành truyền dữ liệu Vì vậy, giao tiếp có hiệu quả diễn ra giữa thiết bị Master và một thiết bị Slave cụ thể

Tất cả các thiết bị Slave khác không phản hồi trừ khi địa chỉ của chúng được chỉ định bởi thiết bị Master trên dòng SDA

Giao thức truyền dữ liệu

Giao thức sau đây (tập hợp các quy tắc) được theo sau bởi thiết bịMaster và các thiết bị Slave để truyền dữ liệu giữa chúng

Dữ liệu được truyền giữa thiết bị Master và các thiết bị Slave thông qua một đường dữ liệu SDA duy nhất, thông qua các chuỗi

có cấu trúc gồm các số 0 và 1 (bit) Mỗi chuỗi số 0 và 1 được gọi

là giao dịch (transaction) và dữ liệu trong mỗi giao dịch có cấu trúc như sau:

c) Chuẩn giao tiếp 1-Wire

• 1-Wire là một chuẩn giao tiếp được thiết kế bởi Dallas

Semiconductor và đã được maxim mua lại năm 2001 Maxim là một hãng sản xuất chip lớn

• 1-Wrire dùng một 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 dữ liệu, truyền nhận dữ 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 như giao tiếp I2C, dây tín hiệu của 1 Wire phải được treo lên Vcc Và cấu hình GPIO dạng Open Drain Về nguyên lý, chuẩn Onewire có thể giao tiếp với nhiều thiết bị trongcùng một 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, 0 write1 , 1 write , Read

Write 1: truyền đi bit 1: Master kéo xuống 0 một khoảng A(us) rồi về mức 1 khoảng B

Write 0: truyền đi bit 0: Master kéo xuống 0 khoảng C rồi trả về 1khoảng D

Read: Đọc một Bi : Master kéo xuống 0 khoảng A rồi trả về 1 delay khoảng E rồi đọc giá trị slave gửi về delay F

Trang 13

Restart: Chuẩn bị giao tiế Master ké0 xuống 0 một khoảng H rồinhả lên mức 1 sau đó cấu hình Master là chân In delay I (us) rồi đọc giá trị slave trả về Nếu =0 thì cho phép giao tiếp =1 đường truyền lỗi hoặc slave đang bận.

Chuẩn 1-Wire điều cần chính xác nhất là thời gian Vậy để tối ưu đường truyền thì cần một bộ định thời để delay chính xác nhất

• Khung truyền – gói tin

Một gói tin (packet) của DHT 11 bao gồm 40bit, tương ứng với 5byte Trong đó:

- Byte 1: giá trị phần nguyên của độ ẩm (RH%)

- Byte 2: giá trị phần thập phân của độ ẩm (RH%)

- Byte 3: giá trị phần nguyên của nhiệt độ (TC)

- Byte 4: giá trị phần thập phân của nhiệt độ (TC)

- Byte 5: kiểm tra tổng (Check Sum) là tổng của 4byte phía trước cộng lại

DHT11 sẽ gửi MSB (bit có trọng số lớn nhất) tức là byte 1 sẽ được gửi đầu tiên, cuối cùng là byte 5

Gói tin của DHT11

• Chu trình nhận dữ liệu

Trạng thái bình thường DHT11 sẽ ở trạng thái tiêu thụ năng lượng thấp Khi có tín hiệu Reset, chúng sẽ được wakeup sau đó DHT11 phản hổi bằng cách kéo chân Data xuống 1 khoảng thời gian, rồi nhả ra

Sau đó 5byte dữ liệu sẽ được gửi đi, MCU sẽ đọc 5byte đó Kết thúc DHT11 nhả chân Data về lại mức 1 và trở về trạng thái tiết kiệm năng lượng Nó sẽ được đánh thức nếu có 1 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, chúng ta sẽ kéo chân Data xuống 0 ít nhất là 18ms, sau đó nhả ra 20-40us để chờ DHT11 phản hồi Nếu DHT11 phản hồi, nó sẽ kéo chân Data xuống 0 khoảng 80us, sau đó nhả về 1 80us

Tiếp theo sẽ là 80bit (5byte) dữ liệu ngay sau đó

• Cách nhận biết bit 0 và 1 trong giá trị trả về của DHT11

Với bit 0 DHT11 sẽ kéo chân Data xuống 0 50us và trả về 1 28us

Với bit 1 DHT11 sẽ kéo chân Data xuống 0 50us và trả về 1 70us

Thực tế, chúng ta chỉ cần đo thời gian Data ở mức 1 là 28us hay70us là đã có thể phân biệt được rồi

Trang 14

DHT11 bit 0

DHT11 bit 1

8 Tìm hiểu về 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), làmột hệ điều hành nhằm phục vụ các ứng dụng thời gian thực, với việc sử li

dữ liệu đầu vào mà không có sự chậm trễ của bộ đệm Các yêu cầu về thờigian xử lý được tính bằng phần mười của giây hoặc nhanh hơn nữa Quátrình xử lý phải được thực hiện trong một khoảng thời gian cố định chặtchẽ nếu không hệ thống có thể sẽ gặp sự cố Việc này có thể được thựchiện thông qua cơ chế chia thành các tác vụ với quyền ưu tiên khác nhau

b) Các thành phần trong RTOS

Bộ lịch trình (Scheduler): Là một tập các thuật toán để xác định tác

vụ (Task) nào được thực thi

Đối tượng (Object): Là những cấu trúc đặc biệt (Kernel) giúp ngườilập trình tạo ra các ứng dụng

Dịch vụ (Service): Là những điều khiển mà Kernel (lõi) thực thitrong đối tượng (object): chia thời gian (Timing), Ngắt (interrupt), Đáp ứng(handling) và quản lý tài nguyên hệ thống (resource management)

c) Các đối tượng trong RTOS

Tasks: Là các luồng (thread) thực thi cùng tồn tại và độc lập nhau cóthể “cạnh tranh” nhau để dành quyền thực thi

Semaphores: Là đối tượng bắt sự kiện để đồng bộ giữa các tasks, cóthể tăng hoặc giảm

Message Queues: Là một kiểu cấu trúc dữ liệu được dùng để đồng

bộ hóa hoặc trao đổi thông tin giữa các Tasks

Real-time embedded applications: Là sự kết nối giữa các đối tượngcủa Kernel để giải quyết vấn đề thời gian thực như sự đồng thời, sự đồng

bộ, và trao đổi dữ liệu

d) Giải thuật cho lịch trình theo chế độ ưu tiên

Hầu hết các Real – time Kernel sử dụng giải thuật lịch trình thay thếtheo độ ưu tiên (preemptive priority- based scheduling) làm mặc định

Trang 15

Các task sẽ được thực thi tại bất kì một thời điểm là task có độ ưutiên cao nhất so với các task khác đang ở trạng thái sẵn sàng Real –TimeKernel hỗ trợ 256 cấp độ ưu tiên, với 0 là độ ưu tiên cao nhất và 255 là độ

ưu tiên thấp nhất

Một số Kernel thì ngược lại với 255 là độ ưu tiên cao nhất và 0 là độ

ưu tiên thâp nhất Với bộ chuyển đổi theo đọ ưu tiên, mỗi task phải có một

độ ưu tiên, và task có độ ưu tiên cao nhất chạy đầu tiên Nếu một Task có

độ ưu tiên cao hơn task đang chạy trở nên sẵn sàng để chạy thì kernel sẽngay lập tức lưu lại trạng thái Task hiện tại và chuyển sang Task có độ ưutiên cao hơn

Mặc dù việc phân chia độ ưu tiên của Task được thực hiện khi task

đó được tạo nhưng độ ưu tiên của Task là có thể thay đổi một cách linhđộng sử dụng Lời gọi do kernel cung cấp (Kernel – provided calls) Khảnăng này dùng để thay đổi một cách linh động cho phép một ứng dụngnhúng có độ linh hoạt để ứng xử với sự kiện bên ngoài khi chúng xuất hiện,tạo ra một hệ thống thời gian thực và đáp ứng tốt Lưu ý là việc sử dụngkhông đúng khả năng thay đổi độ ưu tiên này có thể dẫn đến đảo độ ưu tiên(priority inversion), vùng chết (deadlock), và có thể dẫn đến treo hệ thống(system failure)

e) Quản lý task trong RTOS

Task là một luồng thực thi độc lập mà có thể cạnh tranh chiếm quyềnthực thi Một ứng dụng được chia ra làm nhiều Tasks đồng thời(Concurrent Task) để tối ưu khả năng đáp ứng vào ra trong luật thời gian

Một Task được định nghĩa thuần túy là một tập các tham số và cấutrúc dữ liệu Các thành phần của một Task: Khi được tạo ra, Task sẽ có tên,

ID duy nhất, độ ưu tiên, một block điều khiển Task (TCB), Stack, và Cácthủ tục thực thi Task

Ngày đăng: 07/11/2022, 22:10

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w