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

Thiết Kế Hệ Thống Tưới Tiêu Môn Hệ Thống Tự Động Hóa Số.pdf

21 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Thiết Kế Hệ Thống Tưới Tiêu
Tác giả Thành Viên Nhóm
Người hướng dẫn Giảng Viên
Chuyên ngành Hệ Thống Tự Động Hóa Số
Thể loại Báo Cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 21
Dung lượng 4,74 MB

Nội dung

Bằng cách kết hợp giữa vi điều khiển ESP8266 và các cảm bi n, hế ệ thống này mang lại khả năng tự động hóa và điều chỉnh quá trình tưới cây dựa trên điều ki n th c tệ ự ế, giúp tiết kiệm

Trang 1

3

BÁO CÁO

ĐỀ TÀI: THIẾT KẾ HỆ THỐNG TƯỚI TIÊU

MÔN: HỆ THỐNG TỰ ĐỘNG HÓA SỐ

GIẢNG VIÊN: Lớp:

Hà Nội, 09/05/2024

Trang 2

2

Lời mở đầu

Đầu tiên, nhóm em xin chân thành gửi lời cảm ơn tới tất cả các cá nhân, tổ chức đã hỗ trợ, giúp đỡ nhóm em trong suốt quá trình học tập, nghiên cứu đề tài này Sự quan tâm, giúp đỡ của thầy cô, bạn bè là nguồn động viên quý giá Em xin gửi lời cảm ơn sâu sắc, người đã chia sẻ những kiến thức quý báu trong quá trình học tập của chúng em Điều này đã giúp chúng em hoàn thành đề tài nghiên cứu của mình

Một lần nữa em xin chân thành cảm ơn thầy - người đã hỗ trợ, quan tâm và hướng dẫn nhóm em hoàn thành báo cáo

Không thể tránh khỏi những thiếu sót, nhóm mong nhận được những phản hồi quý báu từ các thầy cô để nâng cao kiến thức và nâng cao nhận thức của mình về lĩnh vực này

Nhóm em xin chân thành cảm ơn!

Trang 3

2.2:Tìm ểu hi các thiết b ị trên mô hình 5

2.4:Thuật toán điều khi n ể 9

2.4.1:Giới thiệu v b ề ộ điều khiển PID 9

2.4.2: Lưu đồ thuật toán PID 1

2.4.3: ng d ng b Ứ ụ ộ điều khiển PID vào điều khiển độ ẩm đất 2

2.4.4: Xác định hệ số của bộ điều khiển PID 3

2.5.Cài đặt viết code: 4và2.5.1: Code ESP8266 4

2.5.2: Code STM32 6

2.6.Đấu nối linh ện 8ki2.7 K t ế luận chương II 8

Chương III: Kết quả 10

3.1 Sản phẩm thự ế 10c t 3.2 Hướng d n s dẫ ử ụng 10

3.3 K t ế luận chương III 11

Kết luận chung 11

Tài liệu tham kh o 12ả

Trang 4

Với việc tưới cây truyền thống, việc theo dõi và điều chỉnh lượng nước tưới thường gặp ph i nhiả ều khó khăn Đôi khi, việc đo lường độ ẩm đất và xác định thời gian tưới không đảm bảo chính xác, dẫn đến lãng phí tài nguyên nước và thiếu chăm sóc đúng đắn cho cây trồng

Đây là lúc mà hệ ống IoT tưới cây trở nên quan trọ th ng Bằng cách kết hợp giữa vi điều khiển ESP8266 và các cảm bi n, hế ệ thống này mang lại khả năng tự động hóa và điều chỉnh quá trình tưới cây dựa trên điều ki n th c tệ ự ế, giúp tiết kiệm tài nguyên và đảm bảo sự phát triển kh e m nh cỏ ạ ủa cây trồng Hãy cùng khám phá chi tiế ề ệ thống này và t v hcách nó có thể giải quyết các vấn đề liên quan đến việc quản lý và chăm sóc cây cối trong thời đại hiện đại này

1.2: Ứng dụng thực tế của hệ thống

Hệ thống IoT tưới cây tích hợp ESP8266 và STM32 đại diện cho sự kết hợp độc đáo gi a hai n n tữ ề ảng công nghệ m nh mạ ẽ để ạ t o ra m t giộ ải pháp tưới cây thông minh và hi u qu Bệ ả ằng cách tích hợp vi điều khi n STM32 v i khể ớ ả năng xử lý mạnh mẽ và vi điều khiển ESP8266 có khả năng kết nối internet, hệ thống này không chỉ có khả năng điều khiển tưới cây một cách chính xác và linh hoạt mà còn cung cấp khả năng truy cập t ừ xa và quản lý thông qua mạng internet

Hệ thống này cho phép người dùng thiế ập và điềt l u chỉnh các thông số tưới cây như lịch trình, thời lượng và tần suất tướ ựa trên nhiều yếu t i d ố khác nhau như điều kiện thời tiết, độ ẩm đất và nhu cầu cụ ể c a t ng loth ủ ừ ại cây trồng Bằng cách tích hợp c m biả ến và các chức năng phân tích dữ liệu thông minh, hệ thống có khả năng tự động điều chỉnh việc tưới cây để đảm bảo sự phát triển và sinh trưởng tối ưu của cây trồng

1.3: K t lu n ếậ chương I

Với sự kế ợp ct h ủa ESP8266 và STM32, hệ thống IoT tưới cây này không chỉ mang lại s n lự tiệ ợi và linh hoạt cho người dùng mà còn đóng góp vào việc tối ưu hóa sử ụng tài dnguyên và bảo vệ môi trường trong hoạt động nông nghiệp và chăm sóc cây cối Việc tích hợp vi điều khiển STM32 cho phép hệ thống xử lý các tác vụ điều khiển và quản lý một cách mạnh mẽ và chính xác Trong khi đó, vi điều khiển ESP8266 mang lại khả năng kết nối internet và điều khi n t xa, mể ừ ở ra các khả năng quản lý và giám sát h ệ thống t b t k ừ ấ ỳ đâu, bất kỳ lúc nào

Trang 5

5

Chương II:Xây dựng hệ thống 2.1: Tổng quan về mô hình

Hình 2.1: Vi điều khiển STM32F103C8T6

- Vi điều khiển STM32F103C8T6 là một vi điều khi n d a ể ự trên kiến trúc ARM M3 Nó thuộc vào dòng vi điều khiển STM32F1 của STMicroelectronics, được phát triển dựa trên công nghệ 32-bit ARM

Cortex Đặc điểm k ỹ thuật chính của vi điều khi n STM32F103C8T6 bao gể ồm:

Trang 6

6  B x ộ ử lý ARM Cortex-M3 32-bit với tốc độ ối đa t 72 MHz  B nhộ ớ Flash tích hợp 64 KB cho lưu trữ chương trình và 20 KB RAM cho lưu

trữ d ữ ệu li Có các giao diện ngoại vi như UART, SPI, I2C, GPIO, ADC và PWM, cho phép

kết nối và giao tiếp với các thiết bị ngoại vi khác nhau. Hỗ trợ tương thích nguồn điện từ 2.0V đến 3.6V, giúp tăng tính linh hoạt trong

thiết kế vi mạch. B chuyộ ển đổi ADC 12-bit với tốc độ ấ l y m u tẫ ối đa 1 Msps (mẫu trên giây). Cung cấp các tính năng điều khiển năng lượng để tiết kiệm năng lượng và mở

rộng tu i th pin ổ ọ Hỗ ợ tr giao thức giao tiếp USB 2.0  Hỗ ợ tr các chức năng bảo mật và mã hóa phần cứng

2.2.2: ESP8266

- ESP8266 là một module Wi-Fi nh gỏ ọn và mạnh mẽ được phát triển b i Espressif ởSystems Nó kết hợp vi điều khiển chính dựa trên kiến trúc Xtensa LX106 và một giao di n Wi-ệ Fi tích hợp, cung c p khấ ả năng kết n i mố ạng không dây cho các ứng dụng nhúng

- Đặc điểm k ỹ thuật chính của ESP8266 bao gồm: Vi điều khi n Xtensa LX106 32-bit v i tể ớ ốc độ xung nhịp có thể lên đến 160 MHz  B nh ộ ớ Flash tích hợp cho lưu trữ chương trình, thường là 512 KB hoặc 4 MB  Giao di n Wi-Fi chu n IEEE 802.11 b/g/n, hệ ẩ ỗ trợ chế độ Access Point (AP) và

Station (STA)  Hỗ trợ các giao thức mạng TCP/IP và các giao thức truyền thông nổ ếng như i ti

MQTT, HTTP, và WebSocket  Có các giao diện ngoại vi như GPIO, SPI, I2C, UART và ADC, cho phép kết nối

và giao tiếp với các thiết bị ngoại vi khác nhau. Hỗ ợ tr chế độSleep và Deep Sleep để tiết kiệm năng lượng  Cung cấp các tính năng bảo mật như mã hóa SSL/TLS và chứng thực mạng

Trang 7

7 Hình 2.2: Mô đun ESP8266

- Mạch điều khiển động cơ L298 là một mạch tích hợp được sử dụng để điều khiển động cơ DC và động cơ bước (stepper motor) trong các ứng dụng nhúng Nó cung cấp khả năng điều khiển hướng, tốc độ và độ mạnh yếu của động cơ

- Đặc điểm k ỹ thuật chính của mạch điều khiển động cơ L298 bao gồm: Hỗ ợ tr động cơ DC với dòng điệ ối đa lên đến 2A và động cơ bướn t c với dòng

điện tối đa lên đến 2A/phase  Điện áp hoạt động từ 5V đến 35V  Có hai kênh đầu ra độc lập, mỗi kênh điều khiển một động cơ. Hỗ ợ tr kiểm soát hướng quay với chế Forward (tiđộ ến) và Reverse (lùi). Cung cấp kh ả năng điều khi n tể ốc độ thông qua kỹ thuật PWM (Pulse Width

Modulation)  Có các chân điều khiển đơn giản để kết nối với vi điều khiển như Arduino hoặc

Raspberry Pi

Hình 2.3: Mạch điều khiển động cơ L298

2.2.4: M t s thi t b ộ ốếị khác

Hình 2.5: Cảm biến độ ẩ m

Trang 8

8 Hình 2.6: Mô tơ DC bơm nước

2.3: Sơ đồ khối

Hệ thống ch y th cạ ử ủa chúng ta bao gồm: vi điều khiển STM32, vi điều khi n ESP8266, ểmạch điều khiển động cơ L298, ả c m biến độ ẩm, máy bơm mini và hệ thống ng dố ẫn nước STM32 là bộ xử lý trung tâm và ESP8266 đóng vai trò như một Webserver Hai vi điều khiển này giao tiếp với nhau qua chuẩn Uart.Ngoài ra STM32 còn có vai trò gần giống như một bi n t nế ầ , và đầu ra được ắn vào động cơ thông qua mạch điềg u khiển Web

sever Giao diện

web

Động cơ bơm nước DC và h ệ thống ống dẫn Vi điều khi n ể

ESP8266

Vi điều khi n ểSTM32

Mạch điều khi n ểL298N

C m bi n ả ếđộ ẩm

Trang 9

9 L298N C m biả ến độ ẩm g n v i STM32, ắ ớ với c m biả ến độ ẩm, nếu đầu ra của nó là dạng dòng điện 4-20mA và vi điều khiển STM32 của chúng ta cũng có mộ ổng vào analog t cAI2 (Analog Input 2) 4-20mA, ta có thể k t n i c m bi n tr c ti p vế ố ả ế ự ế ới STM32 mà không cần s d ng mử ụ ột bộ ến đổi tín hiệ bi u.

2.4: Thuật toán điều khi n

2.4.1: Gi i thi u v b ớệề ộ điều khi n PID

- PID là viết t t c a "Proportional-Integral-ắ ủ Derivative", là một trong những phương pháp điều khiển phổ biến nhất trong lĩnh vực tự động hóa và điều khiển Phương pháp này được sử d ng rụ ộng rãi trong các hệ thống điều khiển để điều chỉnh động cơ, máy móc, h ệ thống nhiệt độ, và nhiề ứu ng dụng khác

 Proportional (P): Ph n t l (P) cầ ỉ ệ ủa điều khi n PID phể ản ứng v i sai s hi n tớ ố ệ ại giữa giá trị đặt trước (setpoint) và giá trị đo được Càng lớn h s t lệ ố ỉ ệ, điều khi n ểs ph n ng m nh mẽ ả ứ ạ ẽ hơn đối với sự sai lệch này

 Integral (I): Phần tích phân (I) của PID đóng vai trò trong việc loại bỏ sai số dài hạn Nó tích lũy và điều chỉnh điều khi n dể ựa trên tổng lỗi tích phân qua thời gian Phần này giúp loại bỏ hiệu ứng của sai số không đố ứng xung quanh giá i xtrị setpoint

 Derivative (D): Phần đạo hàm (D) đối phó với tốc độ thay đổi của sai số Nó giúp ổn định h ệ thống và tránh overshoot (quá tín hiệu setpoint) hoặc ổn định h ệ thống nếu có sự ến đổi nhanh chóng bi

Bằng cách kết h p ba phợ ần này, điều khiển PID có thể ả c i thi n sệ ự ổn định và đáp ứng của hệ thống điều khiển, giúp hệ thống duy trì giá trị setpoint mong muốn một cách chính xác và ổn định

Hình 2.7: Cấu trúc của hệ thống điều khiển PID Trong đó:

Ysp: Tín hiệu đặt e (t): Sai số y (t): Tín hiệu thực tế

Kp: Hệ s t l ố ỉ ệKi: Hệ s ố tích phânKd: Hệ s ố vi phân

Trang 10

2.4.2: Lưu đồ thuật toán PID

Trang 11

2

2.4.3: Ứng d ng b ụộ điều khiển PID vào điều khiển độ ẩm đất

Đặt: u(t) e (t)

(-)

Mô hình hệ thống -Việc ứng d ng bụ ộ điều khiển PID vào điều khiển độ ẩm đất là một ứng d ng ph biụ ổ ến trong lĩnh vực nông nghiệp và tự động hóa hệ thống thủy canh, nhà kính, và các ứng dụng liên quan đế trồng cây Điền u khiển độ ẩm đất là một y u t quan trế ố ọng để đảm b o s ả ự phát triển và sản xuất hiệu qu cả ủa cây trồng

- Cách bước thiết lập một bộ điều khiển PID điều khiển độ ẩm đất:

1 Thiế ật l p hệ thống đo lường: Để áp dụng điều khiển PID vào điều khiển độ ẩm đất, trư c tiên cớ ần thi t l p h th ng cảm biến hoặc cảm biế ậ ệ ố ến để đo lường độ ẩm đất Cảm biến độ ẩm thường được sử dụng để đo lường nồng độ nước trong đất.2 Xác định setpoint và phản hồi: Người điều khi n cể ần xác định mức độ ẩm mục

tiêu (setpoint) mà mình muốn duy trì trong đất cho cây trồng cụ thể Bộ điều khi n PID sể ẽ so sánh giá trị độ ẩm đo đượ ừ ảc t c m bi n vế ới setpoint để xác định s ự sai lệch và điều chỉnh điều khi n ể bơm nướ để đạc t đư c đ ẩợ ộ m mong mu n ố3 Thiế ật l p b ộ điều khiển PID: Sau khi có dữ liệu đo và setpoint, bộ điều khiển PID

cần được thi t l p vế ậ ới các thông số t lỉ ệ, tích phân và đạo hàm phù hợp Các thông s ố này sẽ ảnh hưởng đến hi u suệ ất và ổn định của hệ thống điều khi n ể4 Hoạt động c a b ủ ộ điều khi n: B ể ộ điều khi n PID s ể ẽ liên tục đọc giá trị độ ẩm đ t ấ

t c m biừ ả ến, so sánh với setpoint, và tự động điều chỉnh các thiết bị như hệ thống tưới nước để duy trì độ ẩm đất ở mức mong muốn Các chỉ thị điều khiển như mức nước trong h ệ thống tưới nước sẽ được điều ch nh t ỉ ự động để duy trì độ ẩm đấ ởt mức mong muốn

Máy tính

Bộ điều khi n ể Vi xử lý ( STM32)

Thiết bị điều khiển

độ ẩm

( C m biảến độ ẩm )

Y (t)

Trang 12

3

Sau khi l y m u d ấ ẫ ữ liệu, chúng ta sẽ ử ụng công cụ Matlab Identification toolbox để s dxác định mô hình của hệ thống

- Công cụ Matlab Idenfication Toolbox sẽ tính toán và đưa ra hàm truyền của hệthông như hình:

- Ta thu đươc độ kh p giớ ữa mô hình tính toán và hệ thống thực:

Trang 13

4 -Ta xấp x ỉ đối tượng v ề khâu quán tính bậc 2:

𝐺(𝑠) = 29.1911 + 18.907𝑠𝑒

−1.201𝑠= 29.191(1 +18.907𝑠)(1 + 1.201𝑠)- Sau khi tính toán các tham số PID bằng phương pháp Zieghler-Nichols ta thu được b ng sau: ả

Công thức tham số Giá trị tham số

𝐾𝑝=1.2𝑇𝑘𝐿 = 0.6471 𝑇𝐼= 2𝐿 = 2.402 𝑇𝐷= 0.5𝐿 = 0.6005

k = 29.191 T = 18.907 L = 1.201

-Để chuẩn b ị cho việc nạp chương trình vào các vi điều khiển thì ta cần phải cài đ t ặmột số ph n mầ ềm để tiến hành việc nạp chương trình như : ARDUINO IDE, STM32 CubeProgrammer, và một số drive chocác linh kiện

2.5.1: Code ESP8266

#defineBLYNK_TEMPLATE_NAME"MAY BOM"

#defineBLYNK_AUTH_TOKEN"NcKeD_wUkJC2KZ2TC5R5qh0O2Xn6faYU"

#defineBLYNK_PRINT Serial #include<ESP8266WiFi.h>

#include<BlynkSimpleEsp8266.h>

// Set password to "" for open networks.

char ssid[] = "Diamond A"; char pass[] = "88888888";

#include<SoftwareSerial.h>

SoftwareSerial mySerial(D5, D6); // RX, TX

#defineHUMI V0#defineBLYNK_TEMPLATE_ID"TMPL6ixYDepI1"

#defineHMIN V1 #defineHMAX V2 #defineRUNMODE V3 #defineSPEEDV4int speed; int hmin=30; int hmax=90; bool runMode; unsigned long timeSendData=millis();

voidsetup() {

Trang 14

5

mySerial begin.(9600); Blynk begin.(BLYNK_AUTH_TOKEN, ssid, pass); }

voidloop() { Blynk run.(); if(millis()-timeSendData>1000){ String data = String(speed)+ +";"String(hmin)+ +";"String(hmax)+ +";"String(runMode); mySerial println.(data);

Serial println.(data); timeSendData=millis(); }

if(mySerial available.()> ){0

String data = mySerial.readStringUntil('\n'); int adcValue = getValue(data,';',0toInt(); int speed = getValue(data,';',1toInt(); Serial println.("ADC VALUE:"+String(adcValue)); Serial println.("SPEED:"+String(speed)); Serial println.("==========================="); Blynk virtualWrite.(HUMI,adcValue);

} }

BLYNK_CONNECTED() { Blynk syncAll.(); }

BLYNK_WRITE(SPEED){ speed = param.asInt(); }

BLYNK_WRITE(HMIN){ hmin = param.asInt();}

BLYNK_WRITE(HMAX){ hmax = param.asInt();}

BLYNK_WRITE(RUNMODE){ runMode = param.asInt();}

String getValue(String data, char separator, index){ int int found = ; 0

int strIndex[] = { 0, -1}; int maxIndex = data length.() - ; 1

for ( i = ; i <= maxIndex && found <= index; i++) { int0

if (data.charAt(i) == separator || i == maxIndex) { found++;

strIndex[0] = strIndex[1] + 1

strIndex[1] = (i == maxIndex) ? i+1 : i; }

}

Trang 15

6

}

2.5.2: Code STM32

#include<SoftwareSerial.h>

SoftwareSerial mySerial(PA10, PA9); // Khai báo và cấu hình giao tiếp Serial Software trên chân PA10 (RX) và PA9 (TX)

unsigned long timeReadSensor = millis(); // Biến lưu thời gian để đọc cảm biến

#defineout1 PA1 // Định nghĩa chân điều khiển đầu ra 1

#defineout2 PA2 // Định nghĩa chân điều khiển đầu ra 2

#defineadcPin PA0 // Định nghĩa chân đầu vào analog

#defineledMode PA3 // Định nghĩa chân điều khiển LED

int speed; // Tốc độ của máy bơm

int hmin; // Giá trị độ ẩm tối thiểu

int hmax; // Giá trị độ ẩm tối đa

bool runMode; // Chế độ hoạt động của máy bơm

double integral = 0; // Thuật ngữ tổng hợp

double prevError = ;0 // Sai số trước đó

double input; // Đầu vào của PID

double output; // Đầu ra của PID

double setpoint; // Giá trị mục tiêu cho PID

#include<PID_v1.h>

double Kp = 0.6471; // Hằng số Proportional của PID

double Ki = 2.402; // Hằng số Integral của PID

double Kd = 0.6005; // Hằng số Derivative của PID

PID myPID(&input, &output, &setpoint, Kp, Ki, Kd, DIRECT); // Khởi tạo đối tượng PID với các hằng số đã cho

voidsetup() { mySerial begin.(9600); // Khởi động giao tiếp Serial với baudrate 9600

pinMode(out1, OUTPUT); // Cấu hình chân điều khiển đầu ra 1 là đầu ra

pinMode(out2, OUTPUT); // Cấu hình chân điều khiển đầu ra 2 là đầu ra

pinMode(adcPin, INPUT); // Cấu hình chân đầu vào analog là đầu vào

pinMode(ledMode, OUTPUT); // Cấu hình chân điều khiển LED là đầu ra

myPID SetMode.(AUTOMATIC); // Đặt PID vào chế độ tự động

myPID SetSampleTime.(1000); // Thiết lập thời gian mẫu của PID là 1000 ms

myPID SetOutputLimits.(0255); // Đặt giới hạn đầu ra cho PID từ 0 đến 255

}

voidloop() { if (millis() - timeReadSensor > 1000) { // Nếu đã đủ thời gian đọc cảm biến

int adcValue = analogRead(adcPin); // Đọc giá trị từ cảm biến analog

adcValue = map(adcValue, 01023, , 0 100); // Chuyển đổi giá trị analog thành phần trăm độ ẩm

input = adcValue; // Đặt giá trị đầu vào cho PID là giá trị đọc từ cảm biến

setpoint = hmax; // Đặt giá trị mục tiêu của PID là giá trị độ ẩm tối đa

Ngày đăng: 18/09/2024, 16:24

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

TÀI LIỆU LIÊN QUAN

w