Tải bản đầy đủ (.pdf) (36 trang)

Đề Tài Hệ Thống Chăm Sóc Và Theo Dõi Quá Trình Sinh Trưởng Cây Cà Chua Bi.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.21 MB, 36 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐHQG HÀ NỘI </b>

<b>NGÀNH CN KỸ THUẬT CƠ ĐIỆN TỬ</b>

<b>---o0o---BÁO CÁO ĐỀ TÀI LẬP TRÌNH NÂNG CAO</b>

<b>Nhóm 5</b>

<b>Đề tài: Hệ thống chăm sóc và theo dõi q trìnhsinh trưởng cây cà chua bi</b>

<b>Giảng Viên: Nguyễn Quang Nhã</b>

<b>Sinh viên : Kiều Văn Tiến – 20021195Đoàn Trung Nghĩa – 20021170Bùi Tá Phong - 20021174</b>

<b>Hà Nội, tháng 4, năm 2023</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Lời nói đầu</b>

Chúng ta đang sống trong thời đại 4.0, thời đại của cơng nghiệp hố, hiện đại hố với mục tiêu là biến q trình sản xuất mà trước kia ta phải làm thủ công thành một dây chuyền tự động. Tự động hố khơng chỉ trong cơng nghiệp mà nó cịn được ứng dụng mạnh mẽ trong nhiều lĩnh vực khác như nông nghiệp, dịch vụ,…. Hệ thống tưới cây tự động là một công nghệ đang được áp dụng rộng rãi trong lĩnh vực nông nghiệp. Đây là một phương tiện hiệu quả để cung cấp nước và chất dinh dưỡng cho cây trồng một cách tự động và hiệu quả hơn so với phương pháp tưới nước thủ cơng truyền thống.

Hệ thống tưới cây tự động có nhiều lợi ích như giảm chi phí, tiết kiệm thời gian và nước, tăng năng suất và chất lượng sản phẩm, cải thiện mơi trường. Ngồi ra, hệ thống tưới cây tự động cũng được ứng dụng trong các ứng dụng khác như tưới nước cho các công viên, khu đô thị và các bảo tàng vườn quốc gia.

Trong bài viết này, chúng ta sẽ tìm hiểu thêm về hệ thống tưới cây tự động, cách thức hoạt động, các thành phần và lợi ích của nó. Hy vọng những thơng tin này sẽ giúp mọi người hiểu rõ hơn về hệ thống tưới cây tự động cũng như áp dụng công nghệ này một cách hiệu quả trong cơng việc của mình.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Mục Lục</b>

<b>CHƯƠNG I : Tổng Quan Về Hệ Thống Chăm Sóc và Theo dõi Q Trình </b>

sinh Trưởng của cây cà chua bi Giới Thiệu Tính Năng Hệ Thống

Khả năng ứng dụng trong thực tế của để tài

<b>CHƯƠNG II : Phân tích cơng nghệ hệ thống</b>

Giới thiệu linh kiện và cảm biến Phân tích quy trình thực hiện

<b>CHƯƠNG III : Thiết kế, chế tạo và lập trình điều khiển hệ thống</b>

Sơ đồ hệ thống Sơ đồ thuật toán Nguyên Lý Hoạt Động

<b>CHƯƠNG IV : Thiết kế giao diện điều khiển giám sát</b>

Trình tự các bước, thao tác chính thiết kế hệ thống Vận hành giao diện điều khiển giám sát

<b>CHƯƠNG V : Kết Luận và Kiến NghịPhụ Lục</b>

<b>Tài Liệu Tham Khảo</b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>CHƯƠNG I</b>

Tổng quan về hệ thống thăm sóc và theo dõi q trình sinh trưởng của cây cà chua bi

1.1. Giới thiệu tính năng hệ thống

Hệ Thống chăm sóc và theo dõi q trình sinh trưởng của cây cà chua bi do nhóm tự thiết kế và phát triển, dựa trên các linh kiện như Raspberry pi 3, Esp32, Module Sim 800I, cảm biến ánh sáng....

Hệ thống được thiết kế dựa trên ý tưởng của 1 hệ thống có khả năng dựa vào độ ẩm khơng khí, đất; nhiệt độ trong khơng khí; cường độ ánh sáng; từ đó hệ thống sẽ tự động đưa ra các phương pháp tưới nước hợp lý. Trước khi xử lý tình huống, hệ thống sẽ sao lưu kết quả đo đạc và gửi lên web và gmail.

Hình 1.1. Tổng quan thiết bị

1.2. Khả năng ứng dụng trong thực tế của đề tài

Trong thực tế, việc môi trường đang thay đổi thời tiết ngày một khó lường thìviệc có 1 hệ thống có khả năng thay thế con người trong việc theo dõi thời tiết,thực hiện chăm sóc cây trồng một cách tự động là hoàn toàn cần thiết. Người sửdụng hệ thống hồn tồn có thể chủ động hơn trong việc chăm sóc cây trồng, cùngvới đó là đưa ra những phương pháp đáp ứng kịp thời đối với mỗi tình huống đã và

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

đang xảy ra.

Hiện nay, việc chế tạo nên 1 hệ thống có khả năng như trên đã khơng cịn làhiếm,có thể dễ dàng tìm thấy những hệ thống tự động tương tự trên web. Nhóm đãchọn đề tài này do nó có khá nhiều ứng dụng thiết thực trong thực tế cũng như đápứng được những yêu cầu mà môn học đề ra, cùng với đó là niềm hứng thú khi cóthể tự chế tạo nên 1 hệ thống tuy chưa hồn chỉnh nhưng đã có thể áp dụng trongđời sống.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Raspberry Pi 3 là một board máy tính đơn nhỏ, giá rẻ, kích thước chỉ bằng một thẻ tín dụng, tiết kiệm điện năng (vì nguồn điện cung cấp cho RPi chỉ có 5V) được giới thiệu bởi Raspberry Pi Foundation, đi kèm với CPU, GPU, cổng USB và các chân I/O và có khả năng thực hiện một số chức năng đơn giản như một máy tính thơng thường.

Thơng số kỹ thuật chính

1,4 GHz 64 bit, Bộ xử lý lõi tứ Broadcom BCM2387 ARM Cortex-A53, nhanh hơn 10 lần so với Raspberry Pi 1.

RAM 1GB (LPDDR2 SDRAM) cho phép bạn chạy các ứng dụng nâng cao

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

HDMI hỗ trợ phiên bản 1.3/1.4 và Composite RCA (PAL and NTSC) 10/100 BaseT Ethernet socket

Camera interface (CSI), để kết nối với camera

Display interface (DSI): được sử dụng để kết nối Raspberry Pi với màn hình cảm ứng

Khe cắm thẻ microSD: đễ lưu trữ dữ liệu Micro USB power source

VideoCore IV multimedia/3D graphics core @ 400MHz/300MHz

2.1.2.ESP 32

Hình 2.2. ESP 32

Giới thiệu

<b>ESP32 là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng thấp</b>

có tích hợp WiFi và dual-mode Bluetooth (tạm dịch: Bluetooth chế độ kép). Dòng ESP32 sử dụng bộ vi xử lý Tensilica Xtensa LX6 có hai biến thể lõi kép và lõi đơn, và bao gồm các cơng tắc antenna tích hợp, RF balun, bộ khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản lý năng lượng.

Thông số kỹ thuật chính

CPU: Xtensa Dual-Core LX6 microprocessor.Chạy hệ 32 bit

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Tốc độ xử lý từ 160 MHz đến 240 MHz ROM: 448 Kb

Tốc độ xung nhịp từ 40 Mhz ÷ 80 Mhz (có thể tùy chỉnh khi lập trình) RAM: 520 Kb SRAM liền chip. Trong đó 8 Kb RAM RTC tốc độ cao – 8 Kb RAM RTC tốc độ thấp (dùng ở chế độ DeepSleep).

2 bộ chuyển đổi số sang tương tự (DAC) 8 bit 18 kênh bộ chuyển đổi tương tự sang số (ADC) 12 bit. 2 cổng giao tiếp I²C

3 cổng giao tiếp UART

3 cổng giao tiếp SPI (1 cổng cho chip FLASH ) 2 cổng giao tiếp I²S

10 kênh ngõ ra điều chế độ rộng xung (PWM)

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Cảm biến độ ẩm đất có thể sử dung tưới hoa tự động khi khơng có người quản lý khu vườn của bạn hoặc dùng trong những ứng dụng tương tự như trồng cây.

Độ nhạy của cảm biến độ ẩm đất có thể tùy chỉnh được (bằng cách điều chỉnh chiết áp màu xanh trên board mạch). Phần đầu DO được cắm vào đất để phát hiện độ ẩm của đất, khi độ ầm của đất đạt ngưỡng thiết lập, đầu ra DO sẽ chuyển trạng thái từ mức thấp lên mức cao.

Thông số kỹ thuật

Điện áp làm việc 3.3V ~ 5V Có lỗ cố định để lắp đặt thuận tiện PCB có kích thước nhỏ 3.2 x 1.4 cmỗ

Sử dung chip LM393 để so sánh, ổn định làm việc

2.1.4. Cảm biến độ ẩm, nhiệt độ khơng khí

Hình 2.4. Cảm biến DHT11

Giới thiệu

DHT11 là một cảm biến kỹ thuật số giá rẻ để cảm nhận nhiệt độ và độ ẩm. Cảmbiến này có thể dễ dàng giao tiếp với bất kỳ bộ vi điều khiển vi nào như Arduino,Raspberry Pi, ... để đo độ ẩm và nhiệt độ ngay lập tức. DHT11 là một cảm biến độẩm tương đối. Để đo không khí xung quanh, cảm biến này sử dụng một điện trởnhiệt và một cảm biến độ ẩm điện dung. Cảm biến DHT11 bao gồm một phần tửcảm biến độ ẩm điện dung và một điện trở nhiệt để cảm nhận nhiệt độ. Tụ điệncảm biến độ ẩm có hai điện cực với chất nền giữ ẩm làm chất điện môi giữa chúng.Thay đổi giá trị điện dung xảy ra với sự thay đổi của các mức độ ẩm. IC đo, xử lýcác giá trị điện trở đã thay đổi này và chuyển chúng thành dạng kỹ thuật số. Để đo

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

nhiệt độ, cảm biến này sử dụng một nhiệt điện trở có hệ số nhiệt độ âm, làm giảm giá trị điện trở của nó khi nhiệt độ tăng. Để có được giá trị điện trở lớn hơn ngay cả đối với sự thay đổi nhỏ nhất của nhiệt độ, cảm biến này thường được làm bằng gốm bán dẫn hoặc polymer.

Thông số kỹ thuật

Điện áp hoạt động: 3,3 ~ 5V.

Dòng tiêu thụ: max 2,5mA khi truyền dữ liệu. Dải đo độ ẩm: 20% - 90% RH, sai số ±5%RH. Dải đo nhiệt độ: 0°C ~ 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: 23*12*5 mm.

2.1.5. Máy bơm RS385

Hình 2.5. Máy bơm RS385

Giới thiệu

Chức năng chính của Máy Bơm RS385 6-12VDC 1.5-2L/Min là bơm nước lên cao, cung cấp nước cho hòn non bộ, các khu vực cần tản nhiệt hay cần di chuyển nước từ các thiết bị, khu vực khác nhau.

Thơng số kỹ thuật chính

Điện áp đầu vào: 6 – 12V ( điện áp khuyên dùng: 9 – 12 V DC – 1A)Dòng điện tiêu thụ: 0.5 – 0.7 A

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Đường kính động cơ: 27mm Đường kinh đầu máy bơm: 44mm Tổng chiều dài máy bơm: 60mm Lưu lượng bơm: 1,5 – 2L /Min Chiều dài ống hút giới hạn: 2m Khả năng đẩy cao: 3m

Arduino Uno R3 là một board mạch vi điều khiển được phát triển bởi Arduino.cc, một nền tảng điện tử mã nguồn mở chủ yếu dựa trên vi điều khiển AVR Atmega328P.

Phiên bản hiện tại của Arduino Uno R3 đi kèm với giao diện USB, 6 chân đầu vào analog, 14 cổng kỹ thuật số I / O được sử dụng để kết nối với các mạch điện tử, thiết bị bên ngoài. Trong đó có 14 cổng I / O, 6 chân đầu ra xung PWM cho phép các nhà thiết kế kiểm soát và điều khiển các thiết bị mạch điện tử ngoại vi một cách trực quan.

Thơng số kỹ thuật chính

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Vi điều khiển: ATmega328P(8bits) Điện áp hoạt động: 5V

Tần số hoạt động: 16 MHz

Điện áp đầu vào khuyên dùng: 7VDC - 12VDC Điện áp vào giới hạn: 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 30 mA

<b>LCD 2004 sử dụng driver HD44780, có khả năng hiển thị 4 dịng với mỗi dịng</b>

20 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ sử dụng thích hợp cho những người mới học và làm dự án.

Thông số kỹ thuật Điện áp hoạt động là 5V Kích thước: 98 x 60 x 13.5 mm

Chữ đen, nền xanh dương/ chữ trắng, nền xanh dương

Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

Phụ Lục

<b>Code của Raspberry pi 3b</b>

# Khai báo các thư viện thời gian, firebase.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

if ser.in_waiting > 0: # nếu nhận tín hiệu gửi từ arduino

Doamdat = float(ser.readline().decode('utf-8').rstrip()) # đọc dữ liệu từ arduino bỏ các ký tự /n, khoảng trắng... và ép về kiểu nguyên

print("Do am dat: " + str(Doamdat))

# tạo dữ liệu trên firebase

dulieu1 = {"DoAmDat": Doam, "NhietDoKhongKhi": Nhietdokk,"Doamcaidat": Doamcaidat} dulieu2 = {"Giay": Giay, "Gio": Gio, "Phut": Phut}

# Khởi tạo dữ liệu trên firebase set liên tục

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

SoftwareSerial serialSIM900(RX_PIN, TX_PIN); // Cài đặt modulsim const int DHTTYPE = DHT11;

DHT dht(DHTpin, DHTTYPE); // Cảm biến nhiệt độ, độ ẩm khơng khí

void tinnhan(float nhietdo, float doamkk, float doamdat) { // Thông báo bằng tin nhắn //Nội dung tin nhắn muốn gửi

//Thiết lập định dạng tin nhắn là ASCII để có thể gửi tin nhắn dạng text serialSIM900.println("AT+CMGF=1\r\n");

delay(1000); //Cứ mỗi lệnh AT ta cần có thời gian delay để Sim800 thực thi //Cài đặt số điện thoại muốn gửi tin nhắn đến, và nội dung tin nhắn

void inramanhinh(float temp, float humi, float doamdat) { lcd.clear(); // Xóa màn hình trước khi hiển thị lại

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

// Tính thời gian tính được ở đơn vị giờ, phút, giây unsigned long thoigiangiay = thoigianbom / 1000; unsigned long gio = thoigiangiay / 3600; unsigned long phut = (thoigiangiay % 3600) / 60; unsigned long giay = (thoigiangiay % 3600) % 60;

// Tính thời gian tính được ở đơn vị giờ, phút, giây unsigned long thoigiangiay = thoigianbom / 1000; unsigned long gio = thoigiangiay / 3600; unsigned long phut = (thoigiangiay % 3600) / 60; unsigned long giay = (thoigiangiay % 3600) % 60;

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

// Tính thời gian tính được ở đơn vị giờ, phút, giây unsigned long thoigiangiay = thoigianbom / 1000; unsigned long gio = thoigiangiay / 3600; unsigned long phut = (thoigiangiay % 3600) / 60; unsigned long giay = (thoigiangiay % 3600) % 60;

dht.begin(); //Khởi động cảm biến

serialSIM900.begin(9600); // Định tốc độ bau với modulsim 800A

float h = dht.readHumidity(); //Đọc độ ẩm khơng khí float t = dht.readTemperature(); //Đọc nhiệt độ khơng khí float doamdat = map(analogRead(cbdoam), 330, 1020, 100, 0); float anhsang = analogRead(cbanhsang);

unsigned long thoigianbatdau = 0; unsigned long thoigianbom = 0; int doamcaidat1 = 70; delay(1000);

if (Serial.available() > 0) { int Chonchedo = Serial.parseInt(); int CdDACD = Serial.parseInt(); lcd.setCursor(0, 3);

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

int tinhieubom = Serial.parseInt(); int tinhieuden = Serial.parseInt();

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

.card { background-color: white; box-shadow: 2px 2px 12px 1px rgba(140,140,140,.5); } .cards { max-width: 700px; margin: 0 auto; display: grid; grid-gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }

.reading { font-size: 2.8rem; }

.timestamp { color: #bebebe; font-size: 1rem; } .card-title{ font-size: 1.2rem; font-weight : bold; } .card.temperature { color: #B10F2E; }

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<p><span style="font-size:30px"> CHỌN CHẾ ĐỘ </span></p>

<p><label>CHẾ ĐỘ TỰ ĐỘNG : </label><button onclick="cdtd()">Auto</button></p> <p><label>CHẾ ĐỘ CÀI ĐẶT : </label><button onclick="cdcd()">Set</button></p> <p><label>CHẾ ĐỘ THỦ CÔNG : </label><button onclick="cdtc()">Manual</button></p> <div class="card temperature">

<p class="card-title"><i class="fas fa-thermometer-half"></i> NHIỆT ĐỘ </p><p><span class="reading"><span id="t1"></span> &deg;C</span></p><p class="timestamp">Last Reading: <span id="rt1"></span></p>

</div>

<div class="card humidity">

<p class="card-title"><i class="fas fa-tint"></i> ĐỘ ẨM KHƠNG KHÍ </p><p><span class="reading"><span id="h1"></span> &percnt;</span></p><p class="timestamp">Last Reading: <span id="rh1"></span></p>

</div>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

class="reading"><span id="h2"></span> &percnt;</span></p><p class="timestamp">Last Reading: <span id="rh1"></span></p>

</div>

<div class="card temperature">

<p class="card-title"><i class="fas fa-tint"></i> THỜI GIAN BƠM </p><p><span class="reading"><span id="t2"></span></span></p><p class="timestamp">Last Reading: <span

<p><span style="font-size:30px"> TRẠNG THÁI ĐÈN </span><div id="tt2"></div></p> <label class="switch" id="switch1" >

<input type="checkbox" checked id="myCheck1" onclick="myFunction1()"> <span class="slider round"></span>

</label>

<p><span style="font-size:30px"> TRẠNG THÁI BƠM </span><div id="tt3"></div></p> <label class="switch" id="switch1" >

<input type="checkbox" checked id="myCheck2" onclick="myFunction2()"> <span class="slider round"></span>

</label>

<p><span style="font-size:30px"> CẤU HÌNH WIFI ĐO </span></p>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<label>PASS1: </label>

<input type="text" id="pass1"><br><br> <button onclick="sendwifiinfo()"> Send</button>

</div>

×