Tải bản đầy đủ (.docx) (22 trang)

đề tài xây dựng hệ thống tưới tự động dựa trên độ ẩm đất và theo dõi từ xa trên điện thoại thông qua blink app

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 (1.56 MB, 22 trang )

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

<b>TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤTKhoa: Cơng Nghệ Thơng Tin</b>

<b>ĐIỆN THOẠI THƠNG QUA BLINK APP</b>

<b>Giáo viên hướng dẫn :</b> Nguyễn Thùy Dương

<b>Thành viên nhóm :Mã sinh viên</b>

Phan Thị Ngọc Ánh 2121050704Trần Ngô Mạnh Hưng 2021050812

<small>~ Hà Nội – 2024 ~</small>

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

<b>Mục lục</b>

LỜI MỞ ĐẦU...3

Chương 1: TỔNG QUAN VỀ ĐỂ TÀI...5

1.1 Giới thiệu tổng quan về IoT...5

1.2 Mục tiêu ý tưởng đề tài...5

1.3 Sơ đồ khối hệ thống và nguyên lý hoạt động của hệ thống...6

Chương 2: THIẾT KẾ HỆ THỐNG IOT...10

2.1 Lập bảng dữ liệu...10

2.2 Thiết kế sơ đồ mạch điện...11

2.3 Lưu đồ thuật toán (Flowchart)...12

2.4 Thiết kế ứng dụng trên điện thoại thơng minh...12

2.5 Viết code chương trình điều khiển...16

Chương 3: KIỂM TRA HOẠT ĐỘNG CỦA HỆ THỐNG...18

Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN...20

Tài liệu tham khảo...21

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

<b>LỜI MỞ ĐẦU</b>

Trong thời đại công nghệ ngày nay, việc áp dụng các giải pháp thôngminh vào việc quản lý và sử dụng tài nguyên tự nhiên trở nên ngày càngphổ biến và cần thiết. Trong lĩnh vực nông nghiệp, việc tự động hóa quytrình tưới cây có thể mang lại nhiều lợi ích khơng chỉ về mặt tài chính màcịn về môi trường và năng suất.

Bài báo cáo tập trung vào việc xây dựng một hệ thống tưới tự động dựatrên độ ẩm và khả năng theo dõi từ xa thông qua điện thoại. Trong bối cảnhmôi trường nông nghiệp đang đối mặt với những thách thức của biến đổikhí hậu và sự cần thiết của tiện lợi và hiệu quả, việc sử dụng công nghệ đểcải thiện quản lý tưới cây không chỉ là một lựa chọn thơng minh mà cịn làbước tiến quan trọng.

Bài báo cáo này sẽ trình bày một phương pháp cụ thể để xây dựng hệthống tưới tự động, từ việc lựa chọn các linh kiện cần thiết đến việc lậptrình và tích hợp các phần mền điều kiển tự xa. Áp dụng công nghệ vàonông nghiệp và quản lý tài nguyên một cách thông minh và hiệu quả

<b>Phân công công việc</b>

Nguyễn Tiến Quý - 2121050723 Viết code, chuẩn bị thiết bị,lắp đặt thiết bị, build BlynkApp + Web, viết báo cáo,

Cả nhóm cùng thực hiện đều hồn thành cơng việc của mình được giao, có tinh thần tránh

nhiệm , giúp đỡ thành viên trong nhómPhan Thị Ngọc Ánh - 2121050704 Viết báo cáo, lên ý tưởng,

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

<small>4</small>

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

<b>Chương 1: TỔNG QUAN VỀ ĐỂ TÀI</b>

<b><small> 1.1 Giới thiệu tổng quan về IoT</small></b>

Thuật ngữ Internet of things ( viết tắt là Iot) được hiểu một cách đơn giản là mộtmạng lưới vạn vật kế nối với nhau thông qua Internet. Chúng bao gồm các đồ vật, conngười được cung cấp một định danh của mình và tất cả có khả năng truyền tải hay traođổi thông tin hay dữ liệu qua mạng lưới duy nhất mà không cần đến sự tương tác trựctiếp giữa người với người, hay người với máy tính. IoT đã phát triển từ sự hội tụ củacông nghệ không dây, công nghệ vi cơ điện tử và quan trọng hơn là sự có mặt củaInternet. Nói đơn giản IoT là một tập hợp các thiết bị có khả năng kết nối mọi thứ lạivới nhau với Internet và với thế giới bên ngoài để thực hiện một cơng việc nào đó. Cóthể nói IoT có mặt trong hầu hết các lĩnh vực đời sống của chúng ta hiện nay từ vănhóa, du lịch, giáo dục, y học, truyền thông... Tất cả các lĩnh vực trên đều được úngdụng từ các thành tự của IoT cả. Như trước đây nếu chúng ta muốn thông tin liên lạcvới nhay thì khơng cịn cách nào khác đó là viết thư và truyền thư thơng qua ngườigiao nhận. Cịn bây giờ thông qua các thiết bị thông mịn, chúng được kết nối với nhauthông qua hệ thống wifi, 3G hay các ứng dụng riêng của từng hãng. Chưa đầy 10schúng ta đã có thể gửi tin nhắn đến một người hay nhiều người khác. Bên cạnh đó thìcịn có nhiều ứng dụng khác như:

 Quản lý môi trường

 Quản lý hệ thống máy móc  Hệ thống mua sắn trực tuyến  Hệ thống kiểm soát an ninh  Nhà thơng minh

 Ứng dụng quản lý tồn bộ thiết bọ cá nhân thông qua việc đồng bộ

<b><small> 1.2 Mục tiêu ý tưởng đề tài </small></b>

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

Notification và hiện thị LCD “ độ ẩm cao”

+ Trên NodeMCU: Bật LED vàng, ngắt relay tắt máy bơm *Nếu độ ẩm thấp hơn ngưỡng dưới:

+ Trên Blynk: Bật LED đỏ, gửi cảnh báo “ độ ẩm thấp”, LCD “ đang tưới nước”+ Trên NodeMCU: Bật LED đỏ, đóng relay để mở máy bơm

*Nếu độ ẩm trong ngưỡng thì:

+ Trên Blynk: Bật LED xanh, LCD “ độ ẩm BT”

+ Trên NodeMCU: Bật LED xanh, đóng relay để tắt máy bơm4. Chế độ Manual:

+ Sử dụng nút nhấn button (V9) trên Blynk app để điều khiển đóng ngắt relay Về thực nghiệm: Chạy thành công hệ thống tưới nước dựa trên độ ẩm đất vàtheo dõi từ xa trên ứng dụng

<b><small> 1.3 Sơ đồ khối hệ thống và nguyên lý hoạt động của hệ thống </small>a) Sơ đồ khối:</b>

<b>b) Nguyên lý hoạt động * Mode Auto </b>

Cảm biến thu tín hiệu độ ẩm về chân A0 của NodeMCU => Hiện thị trên Blynkthông qua Value Display (V1)

Sau đó gửi tín hiệu về NodeMCU để thực thi các lệnh đã ràng buộc

<b>* Mode Manual</b>

- Điều khiển đóng tắt relay thông qua BlynkApp bằng button (V9)<small>7</small>

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

- Bật: Xuất tín hiệu HIGH về chân D2 trên NodeMCU để đóng relay mở máy bơm- Tắt : Xuất tín hiệu LOW về chân D2 trên Node MCU để đóng relay tắt máy bơm

<b>c) Lựa chọn phần cứng cho hệ thống: </b>

Trên cơ sở phân tích yêu cầu của hệ thống ở Bước 1, chúng ta sẽ chọn linh kiệnphần cứng cho phù hợp như:

 Board mạch điều khiển: NodeMCU

+ NodeMCU V1.0 được phát triển dựa trên Chip WiFi ESP8266EX bên trongModule ESP-12E dễ dàng kết nối WiFi với một vài theo tác. Board cịn tích hợp ICCP2102, giúp dễ dàng giao tiếp với máy tính thơng qua Micro USB để thao tác vớiboard. Và có sẵn nút nhấn, led để tiện quá trình học, nghiên cứu.

+ Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại viđể tạo thành project, sản phẩm mẫu một cách nhanh chóng.

+ Thơng số kỹ thuật: - Chip : ESP82666EX

- WiFi: 2.4 GHz hỗ trợ chuẩn 802.11b/g/n

- Điện áp hoạt động : 3.3 V

- Điện áp vào: 5V thông qua cổng USB - Số chân I/O: 11 (tất cả các chân I/O

đều có Interrupt/PWM/12C/One –wire, trừ chân D0)

- Số chân Analog Input: 1 (điện áp vàotối đa 5 V)

- Bộ nhớ Flash: 4MB

- Giao tiếp: Cable Micro USB- Hỗ trợ bảo mật: WPA/WPA2- Tích hợp giao thức TCP/IP

- Lập trình trên các ngơn ngữ: C/C++,Micropython, NodeMCU – Lua

 Cảm biến độ ẩm đất

<small>8</small>

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

+Thông số :

- Mô đun cảm biến độ ẩm đất- Điện áp hoạt động : 3.3 ~ 5V- Sử dụng chip so sánh LM393,

ổn định

- Chỉ báo nguồn (đỏ) và chỉ báođầu ra công tắc kỹ thuật số(xanh lá)

- Kích thước bảng mạch PCBnhỏ: 3cm * 1.6cm

- VCC bên ngoài 3.3V-5V- GND bên ngoài

- DO - Giao diện đầu ra kỹ thuậtsố bảng nhỏ (0 và 1)

- AO - Giao diện đầu ra analog bảng nhỏ Thiết bị chấp hành (Relay 5V) :

+ Thông số kĩ thuật:

- Sử dụng điện áp nuôi DC 5V.- Relay mỗi Relay tiêu thụ dòng

khoảng 80mA.

- Điện thế đóng ngắt tối đa:AC250V ~ 10A hoặc DC30V~ 10A.

- Có đèn báo đóng ngắt trên mỗiRelay.

- Có thể chọn mức tín hiệu kích0 hoặc 1 qua jumper.

- Kích thước: 1.97 in x 1.02 in x0.75 in (5.0 cm x 2.6 cm x 1.9cm)

- Weight: 0.60oz (17g)  Nguồn tổ ong

<small>9</small>

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

+ Thông số kĩ thuật:

- Điện áp đầu vào: AC 110V/220V – 50Hz/60Hz.- Điện áp đầu ra: DC 5V

- Cơng suất: 20W- Dịng ra: 4A

- Kích thước: 85*58*32mm  Mô tơ 5V

+ Thông số kĩ thuật :- Điện Áp: 3 - 5V DC- Dịng : 100-200ma- Kích Thước: 23x43mm- Đầu Hút Nước Vào: 5mm- Đầu Nước Ra:

+ Đầu Chui 45mm

+ Đầu Bao Ngoài: 75mm- Lưu lượng :1.1-1.6L/Phút.- Dây USB dài 1m

 Đèn Led 3V

<small>10</small>

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

<b>Chương 2:THIẾT KẾ HỆTHỐNG IOT</b>

<b><small>2.1 Lập bảng dữ liệu</small></b>

<b>Chân kết nối</b>

<b>Code Adruino IDE</b>

Hiên thị giá trị cảm biến

A0 nối vớicảm biến độẩm đất

// 0 1023

analogVal = analogRead(analogPin);

phantram=map( analogVal,0, 1023, 100, 0);

Điều chỉnh chế độ Auto /Manual

D5 nối vớiled đỏ

D6 nối vớiled xanhD7 nối vớiled vàng

// điều chỉnh chế độBLYNK_WRITE(V2) { value1 = param.asInt();}

Blynk.syncVirtual(V2);V3,V4 Numetic Lấy giá trị

ngưỡng trên và dưới từ app Blynk

//Lấy giá trị ngưỡng trênBLYNK_WRITE(V3){ Refl=param.asInt();}

Blynk.syncVirtual(V3);//Lấy giá trị ngưỡng dướiBLYNK_WRITE(V4){ Ref2=param.asINT();}

Blynk.syncVirtual( V4);V9 Button Bật tắt

relay ở

D2 kết nốivới relay

// nút nhấn bật tắt relayBLYNK_WRITE(V9){

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

chế độ manual

Button=param.asInt();}

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

<b><small>2.3 Lưu đồ thuật toán (Flowchart)</small></b>

<b><small>2.4 Thiết kế ứng dụng trên điện thoại thông minh </small>2.4.1 Giới thiệu về Blynk</b>

Blynk là một ứng dụng chạy trên nền tảng iOS và Android để điều khiển vàgiám sát và giám sát thiết bị thông qua internet. Blynk không ràng buộc vớinhững phần cũng cụ thể nào cả, thay vào đó, nó hỗ trợ phần cứng cho bạn lựachọn như Arduino, Raspberry Pi, ESP8266 và nhiều module phần cúng phổbiến khác.

- Điều khiển, giám sát thiết bị ở bất kỳ đây thông qua internet với khảnăng đồng bộ hóa trạng thái và thiết bị.

<small>13</small>

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

Library Blynk – support cho hầu hết tất cả nền tảng phần cứng phổ biến – chophép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và đi.

Theo dõi lịch sử dữ liệu

Thông tin liên lạc từ thiết bị đến thiết bọ bằng Widget Gửi email, tweet, thơng báo realtime, v,v.

... được cập nhật các tính năng liên tục!

<b>2.4.2 cấu hình các nút chức năng</b>

<small>14</small>

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

1. Chức năng Gauge(V1) 2. Chức năng button(V2, V9)

3. Chức năng Numeric Input (V3,V4) 4. Chức năng SuperChart(V1)

<b>2.4.3 Giao diện ứng dụng hoàn chỉnh của Blynk app</b>

<small>15</small>

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

<b>2.4.3 Giao diện ứng dụng hoàn chỉnh của Blynk Web</b>

<small>16</small>

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

<b><small>2.5 Viết code chương trình điều khiển</small>a, Phần kết nối và khai báo các biến: </b>

<small>/* Comment this out to disable prints and save space */</small>

<small>#defineBLYNK_PRINT Serial</small>

<small>#defineBLYNK_TEMPLATE_NAME"Tuoi cay tu dong"</small>

<small>BlynkTimer timer;</small>

<small>// Your WiFi credentials.</small>

<small>// Set password to "" for open networks.</small>

<small>char ssid[] = "Nguyen An";</small>

<small> Serial.begin(9600)</small>

<small> //pinMode(5, INPUT_PULLUP);// test cam bien</small>

<small> Blynk.begin(auth, ssid, pass); pinMode(ledr,OUTPUT)</small>

<small> pinMode(ledy,OUTPUT)</small>

<small> pinMode(ledg,OUTPUT)</small>

<small> pinMode(relay,OUTPUT); Blynk.syncVirtual(V1); Blynk.syncVirtual(V2); Blynk.syncVirtual(V3); Blynk.syncVirtual(V4); Blynk.syncVirtual(V9);</small>

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

<small> Ref1=param.asInt();</small>

<small>BLYNK_WRITE(V4) // LấSy giá trị ngưỡng duoi26</small>

<small> Ref2=param.asInt();</small>

<small>BLYNK_WRITE(V9) // Nut nhan bat tat relay</small>

<small> button=param.asInt();</small>

<b>c, Phần dịng lệnh chạy chương trình và các điều lệnh ràng buộc </b>

<small> Blynk.run(); timer.run();</small>

<small> analogVal = analogRead(analogPin) // 0 --> 1023</small>

<small> phantram=map(analogVal, 0, 1023, 100, 0; // chuyen sang phantram</small>

<small> Blynk.virtualWrite(V1,phantram); // hiềRn thị giá trị caRm biềSn</small>

<small> elseifphantram < Ref2){ // độ ấRm thấSp</small>

<small> digitalWrite(ledr,HIGH); digitalWrite(ledg,LOW)</small>

<small> digitalWrite(relay,LOW); }</small>

<small> }}</small>

<small>18</small>

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

<b>Chương 3: KIỂM TRA HOẠT ĐỘNG CỦA HỆ THỐNG </b>

<b>3.1 Tình huống 1: </b>

<b> Kiểm tra kết nối sever giữa NodeMCU và Blynk App có đang hoạt động tốt</b>

khơng. Tránh trường hợp mất kết nối hệ thống không hiện các thông báo về độ ẩm đất.Chúng ta sẽ không thể theo dõi được tình hình của độ ẩm để có thể điều khiển cácngưỡng cũng như tắt mở bơm nước gây ảnh hưởng xấu đến cây trồng

Lỗi trên là do Blynk app và NodeMCU không giao tiếp được với do 1 trong sốnhững nguyên nhân sau:

+ Lỗi kết nối do mất mạng, mất wifi

+ Do NodeMCU bị mất nguồn hoặc cổng USB bị hỏng + Do chưa cắm cổng USB của NodeMCU vào nguồn + Do khơng tìm được băng thơng kết nối

<b>3.2. Tình huống 2:</b>

Kiểm tra đọ nhạy của cảm biến độ ẩm đất.

Theo thời gian có thể đầu cảm biến bị ăn mịn khơng cịn chính xác nên cầntheo dõi thường xun và đưa ra biện pháp xử lý thích hợp tránh trường hợp cảm biếnbị sai lệch ảnh hướng xấu đến cây trồng.

Lỗi trên do 1 một số nguyên nhân sau:

+ Lỗi cảm biến sử dụng lâu năm bị ăn mịn hu hại đến việc khơng cịn cập nhậtchính xác giá trị độ ẩm. Cần thay mới cảm biến.

+ Do lỗi kết nối giữa NodeMCU và Blynk app dẫn đến việc không thể chuyển

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

giá trị đah ẩm thu được từ chân NodeMCU lên Blynk app

<b>3.3 Tình huống 3;</b>

Kiểm tra hệ thống thông báo của Blynk app ( chức năng notifications)

Đôi khi xảy ra trường hợp độ ẩm vượt qua ngưỡng trên hoặc thấp hơnngưỡng supiws mà hệ thống thông báo ( chức năng nitifications) của Blynk không thểhiện thị thông báo dẫn đến chúng ta khơng biết được rủi ro xảy ra có thẻ có tác hại xấuđến cây trồng

Không hiện thị thông báo khi độ ẩm có thể do một số nguyên nhân sau: + Do sai lệch điều khiển hoặc thiết lâph sai chân Virtual trên Code và Blynkapp

+ Do chưa cập nhật phiên bản và chức năng timer run

<b>3.4. Đánh giá hoạt động của hệ thống:</b>

Hệ thống tưới phun mưa được sử dụng nhiều trong nông nghiệp với các cây trồngcần tưới nhiều nước tưới cho cả tán lá. Ngoài ra phương pháp này còn được áp dụngcho việc tưới các bãi cỏ, các tán cây cảnh các địa điểm công cộng, khu vực nghỉdưỡng với thiết kế đảm bảo cả tính mỹ quan.

Hệ thống do bọn mình thiết kế áp dụng tốt được trong phịng thí nghiệm và cácmơ hình trồng rau tại nhà. Ưu điểm của hệ thống là nhỏ gọn giá thành rẻ tiện dụng chocác mơ hình trồng rau nhỏ vừa, dễ chỉnh sủa phương thức có thể phát triển thànhnhững dự án lớn về phát triển nông nghiệp. Tuy nhiên, để mở rộng cho các dự án lớnhơn thì càn phải cải tiến hệ thống rất nhiêug về các mặt kỹ thuật cũng như cản biến

<small>20</small>

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

<b>Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN</b>

* Kết quả đạt được

Sau một thời gian tìm hiểu, tham khảo tài liệu từ nhiều nguồn khác nhau, cũng nhưđược sự giúp đỡ của giảng viên bộ mơn và bạn bè, nhóm em đã hoàn thành đề tài: “xây dựng hệ thống tưới tự động dựa trên độ ẩm đất và theo dõi từ xa thông qua điện diđộng”

Nhìn chung đề tài của nhóm em có ưu điểm:

 Mạch có cấu tạo và hoạt động đơn giản và khơng phức tạp nhưngtính chính xác và khả năng áp dụng thực tế cao, giảm bớt công sứccon người trong việc chăm sóc vườn .

 Mạch được thiết kế với các module có biến trở, ta có thể dàng điềuchỉnh tùy thuộc vào yêu cầu và trường hợp cụ thể.

 Các thiết bọ dễ mua được ngoài thị trường, giá thành rẻ. Dễ lắp ráp đối với người mới tập làm mạch điện tử  Có thể mở rộng và phát triển dễ dàng

Để tài trình bày được những nguyên lý cơ bản nhất của một hệ thống tướinước tự động và theo dõi từ xa, từ đây có thể phát triển đề tài thành hệ thống vườnthông minh phù hợp với nhu cầu xã hội .

- Đề xuất hướng phát triển

Với đề tài này nếu có đử thời gian nghiên cứu thì có thể mở rộng ra ngồi việc sửdụng cảm biến độ ẩm cịn có thể sử dụng thêm các loại cảm biến khác như: cảm biếnđộ ẩm, cảm biến nhiệt độ, cảm biến tốc độ động cơ có thể điều chỉnh lượng nước tướitiết kiệm hiệu quả, cảm biến đo độ pH để đo độ pH trong nước tưới, từ đó kịp thời xửlý nếu nước bị nhiễm phèn.

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

<b>Tài liệu tham khảo</b>

[1]

×