1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn đề tài hệ thống nông nghiệp thông minh

18 3 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 đề Hệ Thống Nông Nghiệp Thông Minh
Tác giả Lê Thanh Bình, Phạm Thị Nga
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Hệ Thống Nông Nghiệp Thông Minh
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 18
Dung lượng 2,73 MB

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

Nội dung

Mục tiêu:- Mục tiêu: Xây dựng một hệ thống nông nghiệp tự động trong nhà kính cho phép thực hiện một số công việc từ xa bao gồm: điều khiển đèn, điều khiển việc tưới tiêu, điều khiển việ

Trang 1

Học viện Công nghệ Bưu chính Viễn thông

BÁO CÁO BÀI TẬP LỚN

ĐỀ TÀI: HỆ THỐNG NÔNG NGHIỆP THÔNG MINH

 NHÓM BÀI TẬP LỚN: 06

THÀNH VIÊN:

LÊ THANH BÌNH – B19DCCN067 PHẠM THỊ NGA – B19DCCN460

HÀ NỘI, 2023

Trang 2

Mục lục

I Mục tiêu: 3

II Sơ đồ hệ thống 4

III Sơ đồ chức năng 4

IV Quá trình phát triển 5

4.1 Phần cứng 5

4.1.1 Kít ESP32 DEVKITV1 5

Chân Input Only 6

Chân tích hợp Flash trên ESP32 6

Chân cảm biến điện dung 7

Analog to Digital Converter (ADC) 7

Digital to Analog Converter (DAC) 7

Các chân thời gian thực RTC 7

Chân PWM 7

Chân I2C 7

Chân Ngắt Ngoài 7

4.1.2 Thiết bị 7

4.1.3 Code Arduino 9

4.2 Phần mềm 13

4.2.1 Server 13

4.2.2 Web 16

Trang 3

I Mục tiêu:

- Mục tiêu: Xây dựng một hệ thống nông nghiệp tự động trong nhà kính cho phép thực hiện một số công việc từ xa bao gồm: điều khiển đèn, điều khiển việc tưới tiêu, điều khiển việc đóng/mở cửa

- Phần cứng:

+ Minicomputer: ESP32 DEVKITV1 + Sensor: cảm biến độ ẩm đất, cảm biến nhiệt độ và độ ẩm không khí, quang trở, cảm  biến đo mực nước

+ Thiết bị khác: đèn led, bơm, servor, relay 5V

- Phần mềm:

+ Web: ReactJS + Server: Python, sử dụng phương thức gửi nhận dữ liệu MQTT + Arduino: C++

- Chức năng:

* Chức năng điều khiển: Hệ thống có 3 chế độ: thủ công, tự đông và lập lịch + Ở chế độ thủ công: Người dùng có thể bật/tắt đèn, bật/bắt máy bơm, đóng/mở cửa  bằng thao tác trên web

+ Ở chế độ lập lịch: Người dùng có thể chọn mốc thời gian và khoảng thời gian mà các thiết bị trên sẽ hoạt động

+ Ở chế độ tự động: Hệ thống dựa trên các chỉ số được gửi về từ các sensor để đưa ra quyết định điều khiển các thiết bị

* Chức năng hiển thị:

+ Hiển thị biểu độ nhiệt độ và độ ẩm không khí + Hiển thị lượng nước trong bể chứa

+ Hiển thị dự báo thời tiết

- Yêu cầu về triển khai:

+ Web được triển khai dưới mạng cục bộ + Các thiết bị được triển khai dưới mạng cục bộ + Backend kết nối với các thiết bị Arduino và Web giao tiếp thông qua kênh xử lý MQTT theo mô hình Pub, Sub

Trang 4

II Sơ đồ hệ thống

III Sơ đồ chức năng

Trang 5

IV Quá trình phát triển

4.1 Phần cứng

4.1.1 Kít ESP32 DEVKITV1 ESP32 là một vi điều khiển giá rẻ, năng lượng thấp có hỗ trợ wifi và dual-model Bluetooth (Bluetooth chế độ kép) ESP32 là sản phẩm kế thừa từ vi điều khiển ESP8266

 

Bảng tra cứu các chân của ESP32

Trang 6

10 X X connected to theintegrated SPI flash

 Mô tả các chân

Chân Input Only GPIO từ 34 đến 39 là GPI – chân chỉ đầu vào Các chân này không có điện trở kéo lên hoặc kéo xuống bên trong Chúng không thể được sử dụng làm đầu ra, vì vậy chỉ sử dụng các chân này làm đầu vào:

Chân tích hợp Flash trên ESP32 GPIO 6 đến GPIO 11 dùng để kết nối Flash SPI, không khuyến khích sử dụng trong các ứng dụng khác

Trang 7

Chân cám biến điện dung Các chân ESP32 này có chức năng như 1 nút nhấn cảm ứng, có thể phát hiện sự thay đổi về điện áp cảm ứng trên chân

Analog to Digital Converter (ADC) ESP32 có các kênh đầu vào ADC 18 x 12 bit (trong khi ESP8266 chỉ có ADC 1x 10 bit) Digital to Analog Converter (DAC)

Có các kênh DAC 2 x 8 bit trên ESP32 để chuyển đổi tín hiệu kỹ thuật số thành đầu ra tín hiệu điện áp tương tự Các kênh này chỉ có độ phân giải 8 bit, nghĩa là có giá trị từ 0 – 255 tương ứng với 0 – 3.3V

Các chân thời gian thực RTC Các chân này có tác dụng đánh thức ESP32 khi trong chế độ Low Power Mode Sử dụng như

1 chân ngắt ngoài

Chân PWM ESP32 LED PWM có 16 kênh độc lập có thể được định cấu hình để tạo tín hiệu PWM với các thuộc tính khác nhau Tất cả các chân có thể hoạt động như đầu ra đều có thể được sử dụng làm chân PWM (GPIO từ 34 đến 39 không thể tạo PWM)

Chân I2C ESP32 có hai kênh I2C và bất kỳ chân nào cũng có thể được đặt làm SDA hoặc SCL Khi sử dụng ESP32 với Arduino IDE, các chân I2C mặc định là:

Chân Ngắt Ngoài Tất cả các chân ESP32 đều có thể sử dụng ngắt ngoài

4.1.2 Thiết bị

* Cảm biến đo độ ẩm đất Cảm biến độ ẩm đất Soil Moisture Sensor thường được sử dụng trong các mô hình tưới nước

tự động, vườn thông minh, , cảm biến giúp xác định độ ẩm của đất qua đầu dò và trả về giá trị Analog, Digital qua 2 chân tương ứng để giao tiếp với Vi điều khiển để thực hiện vô số các ứng dụng khác nhau

Thông số kỹ thuật:

Điện áp hoạt động: 3.3~5VDC  Tín hiệu đầu ra:

Trang 8

Analog: theo điện áp cấp nguồn tương ứng.

Digital: High hoặc Low, có thể điều chỉnh độ ẩm mong muốn bằng biến trở thông qua mạch

so sánh LM393 tích hợp

Kích thước: 3 x 1.6cm

* Cảm biến đo nhiệt độ và độ ẩm không khí Cảm biến nhiệt độ độ ẩm là thiết bị cảm biến được tạo nên từ những thiết bị điện tử có độ nhạy cao, được dùng để đo đạc mức độ ẩm và nhiệt độ trong không khí Chúng có thể đo được mức độ ẩm tương đối, tuyệt đối hoặc cụ thể dựa vào bộ phận cảm biến

Nguyên lý hoạt động

Cảm biến nhiệt độ độ ẩm sẽ hoạt động dựa theo nguyên lý hấp thụ hơi nước để biến đổi tính chất, thành phần cảm nhận trong cảm biến từ đó làm cho thiết bị điện trở thay đổi giá trị, xuất hiện sự biến đổi của dòng điện nhờ vậy sẽ xác định, đo lường được độ ẩm thay đổi

Với thiết bị cảm biến nhiệt độ độ ẩm điện dung thì khi không khí đi qua 2 tấm kim loại thì khi

có sự thay đổi độ ẩm không khí sẽ tạo được sự biến đổi điện dung giữa các bản

* Cảm biến đo mực nước Cảm biến đo mức nước là thiết bị đo mức chất lỏng trong bồn chứa giúp xác định mức chất lỏng quá cao hay quá thấp Theo phương pháp đo mức chất lỏng có thể chia thành hai loại: loại có tiếp xúc và loại không tiếp xúc

 Nguyên lý hoạt động của cảm biến đo mức nước là khi đặt nó vào một độ sâu nhất định trong chất lỏng cần đo, áp suất trên bề mặt phía trước của cảm biến sẽ được chuyển thành độ cao mực chất lỏng

Công thức tính là Ρ = ρ.g.H + Po

* Quang trở Quang trở còn được gọi là điện trở quang, photoresistor, photocell là một trong những linh kiện được tạo bằng một chất đặc biệt có thể thay đổi điện trở khi ánh sáng chiếu vào Về cơ  bản, bạn có thể hiểu nó là một tế bào quang điện được hoạt động dựa theo nguyên lý quang dẫn Hay có thể hiểu nó là một điện trở có thể thay đổi được giá trị theo cường độ ánh sáng

Quang trở được sử dụng nhiều trong các mạch cảm biến ánh sáng, đèn đường, báo động ánh sáng, đồng hồ ngoài trời,…

* Bảng chi tiết ghép nối các thiết bị vào ESP32 Thiết bị Chân Chân tương ứng với ESP32

Sensor nhiệt độ và độ ẩm VCC VI

Trang 9

- GND

4.1.3 Code Arduino

 Khai báo thuộc tính phục vụ kết nối wifi

 Khai báo thuộc tính phục vụ kết nối server Trong đó:

Link server: “broker.hivemq.com”

Port: 1883

Khai báo các input/output của các sensor và thiết bị tương ứng như trong bảng

Trang 10

 Hàm Setup: Thiết lập các chân đầu ra cho các cảm biến, kết nối wifi và kết nối với server

 Hàm setup wifi:

Hàm reconnect: Kết nối lại với server trong trường hợp timeout hoặc bị ngắt kết nối

Trang 11

 Hàm callback: Lấy thông điệp từ server gửi về Thông điệp gửi về phần cứng có dạng “device=status”, bao gồm các thông điệp:

“Analog=0” : Thông điệp yêu cầu gửi dữ liệu là nhiệt độ/ độ ẩm không khí và mực nước cho server

“Servo=on”; “Servo=off” : Mở/Đóng cửa

“Pump=on”; “Pump=off” : Bật/tắt bơm

“Light=on”; “Light=off” : Bật/tắt đèn

Dữ liệu gửi về từ kênh “device/update_status” có dạng: “device=status” Thực hiện thao tác lấy ra 2 giá trị “device” và “status” để điều khiển thiết bị

Trang 12

 Hàm loop: Thực hiện duy trì kết nối, gửi dữ liệu liên tục (bao gồm độ ẩm đất, cường

độ ánh sáng và mực nước) và hiển thị đèn theo mực nước

Trang 13

4.2 Phần mềm

4.2.1 Server

- Sử dụng ngôn ngữ lập trình Python và thư viện paho.mqtt để kết nối với mqtt Server thứ 3

- Khởi tạo kênh kết nối giữa Web và Arduino bao gồm 2 phần: Arduino Client và Web Client Arduino Client sẽ giao tiếp với Server sau đó Server sẽ xử lý thông tin cũng như nhận và giao tiếp thông tin với bên Web Client

- Kết nối với Server MQTT thông qua các thông số đã khai báo trên

Trang 14

- Hàm giao tiếp thông tin theo mô hình Pub, sub MQTT

- Các hàm xử lý thông tin và giao tiếp qua 2 kênh Web Client và Arduino Client

Trang 16

4.2.2 Web

- Giao diện người dùng sử dụng frameworks ReactJs và kết hợp thư viện MQTT.js để giao tiếp với server thứ 3 MQTT

- Các hàm xử lý giao tiếp MQTT theo mô hình Pub, Sub

Trang 17

- Các chức năng trên trang web:

o Hiện thị thông tin ngày tháng hiện tại

o Hiện thị thời tiết hiện tại ở HN thông qua call API của OpenWeather

o Phần giao tiếp và xử lý với các thiết bị nhúng như Led, Pump và Door qua giao thức MQTT Broker với giao thức WSS và mô hình Pub Sub

o Các chức năng bật tắt, tự động điều khiển, hẹn giờ các thiết bị

o Vẽ thông tin biểu đồ và bảng dữ liệu lên trang web

o Chức năng nhận diện giọng nói và giao tiếp thông qua các lệnh cơ bản với các thiết bị nhúng (Sử dụng Web Speech API - API Web Speech cho phép kết hợp dữ liệu thoại vào các ứng dụng web API Web Speech có hai phần: SpeechSynthesis (văn bản thành bài phát biểu) và SpeechRecognition (nhận dạng giọng nói không đồng bộ.)

Trang 18

Giao diện người dùng:

Ngày đăng: 23/05/2023, 09:24

TỪ KHÓA LIÊN QUAN

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

w