LỜI CẢM ƠNBài báo cáo môn học Internet vạn vật với đề tài “Xây dựng hệ thống tưới cây tự động” là kết quả của quá trình cố gắng không ngừng nghỉ của nhóm em và nhận được sự hướng dẫn tận
TỔNG QUAN VỀ ĐỀ TÀI
Tổng quan về Internet vạn vật
Internet vạn vật (IoT) là khái niệm kết nối các thiết bị với nhau và với Internet IoT là một mạng lưới khổng lồ gồm các vật (things) và con người được kết nối - tất cả đều thu thập và chia sẻ dữ liệu với nhau Việc kết nối có thể thực hiện qua Wifi, Bluetooth…
Năm 1999, Kevin Ashton đã đưa ra cụm từ Internet of Things nhằm để chỉ các đối tượng có thể được nhận biết cũng như sự tồn tại của chúng. Đến năm 2016, Internet Vạn Vật khẳng định được bước tiến của mình nhờ sự hội tụ của nhiều công nghệ, bao gồm truyền tải vô tuyến hiện diện dầy đặc, phân tích dữ liệu thời gian thực, máy học, cảm biến hàng hóa, và hệ thống nhúng Điều này có nghĩa là tất cả các dạng thức của hệ thống nhúng cổ điển, như mạng cảm biến không dây, hệ thống điều khiển tự động hóa, (bao gồm nhà thông minh và tự động hóa công trình), vân vân đều đóng góp vào việc vận hành Internet Vạn Vật (IoT).
IoT được coi là chìa khóa thành công của con người trong tương lai gần, nó tác động tích cực đến đời sống, công việc thông qua nhiều ứng dụng:
Tự động hóa hệ thống nhà thông minh
Quản lý các thiết bị cá nhân bằng kết nối mạng
Mua sắm thông minh qua các phần mềm máy tính, điện thoại
Quản lý môi trường, chất thải trong các nhà máy, xí nghiệp
Quản lý, lập kết hoạch công việc cho các doanh nghiệp, công ty
Theo dõi sức khỏe từ xa
Hầu hết các ngành nghề hiện nay đều phát triển hơn dựa trên sự kết nối linh hoạt của mạng lưới IoT Bao gồm từ giáo dục, nông nghiệp, công nghiệp, y tế,… Điển hình như các nhà máy sản xuất bắt đầu áp dụng cảm biến cho các thành phần làm ra sản phẩm Từ đó theo dõi hoạt động của chúng và nâng cao chất lượng. Hay các doanh nghiệp sử dụng công nghệ IoT để quản lý nhân sự, dữ liệu công ty cải thiện hiệu suất làm việc.
IoT khuyến khích giao tiếp giữa các thiết bị, còn được gọi là giao tiếp Machine-to- Machine (M2M) Các thiết bị vật lý có thể duy trì kết nối do đó sẽ đem đến việc kết hợp nhuần nhuyễn giữa chúng giúp đạt chất lượng sản phẩm cao hơn.
Tự động hóa giúp giám sát thiết bị tốt hơn: Đây là ưu điểm vượt trội của IoT IoT cho phép bạn tự động hóa và kiểm soát các nhiệm vụ được : thực hiện hàng ngày Không cần đến sự can thiệp của con người, các máy móc có thể giao tiếp với nhau giúp gia tăng tốc độ cũng như chất lượng sản phẩm.
Các cuộc cách mạng công nghiệp đã phát triển nhiều hơn về đầu mối cũng như nguồn thông tin về mọi thứ Doanh nghiệp bạn chỉ cần chuẩn bị những thứ cần thiết và tra cứu thông tin để có thể ra quyết định ngay tập tức.
Màn hình, máy quan sát: Ưu điểm rõ ràng của IoT là giám sát Nó biết chính xác số lượng vật tư hoặc chất lượng không khí, sản phẩm trong nhà bạn và cũng có thể cung cấp thêm thông tin mà trước đây bạn gặp khó khăn khi thu thập
Sự tương tác giữa máy với máy mang lại hiệu quả tốt hơn và cho kết quả chính xác. Thay vì phí thời gian để lặp lại các nhiệm vụ tương tự mỗi ngày, nó cho phép mọi người thực hiện các công việc sáng tạo khác.
Tiết kiệm tiền bạc: Ưu điểm lớn nhất của IOT là tiết kiệm tiền IoT rất hữu ích khi giúp cho thói quen hàng ngày của mọi người bằng cách làm cho các thiết bị giao tiếp với nhau hiệu quả Chúng sẽ cảnh báo kịp thời những vấn đề, sự cố phát sinh Vì vậy, bạn có thể tiết kiệm năng lượng cũng như chi phí sửa chữa, duy trì nhiều sản phẩm.
IoT là một mạng lưới đa dạng và phức tạp, vì vậy với bất kỳ lỗi hoặc lỗi trong phần mềm hoặc phần cứng có thể gây ra hậu quả nghiêm trọng Khi mất điện cũng có thể gây ra nhiều bất tiện trong các hệ thống và thao tác của nhiều thiết bị vì chúng được kết nối với nhau.
Quyền riêng tư / Bảo mật:
Cuộc sống của chúng ta sẽ ngày càng được kiểm soát bởi công nghệ, và sẽ phụ thuộc vào nó Nếu tất cả dữ liệu IoT này được truyền đi, nguy cơ mất quyền riêng tư sẽ tăng lên.
Tất cả các thiết bị gia dụng, máy móc công nghiệp, dịch vụ khu vực công và nhiều thiết bị khác đều được kết nối với Internet Vì vậy, nó đã tạo ra một kho thông tin khổng lồ có sẵn trên các thiết bị đó và những thông tin này dễ bị tấn công bởi tin tặc Sẽ rất nghiêm trọng nếu thông tin cá nhân cũng như bí mật của riêng bạn những kẻ xâm nhập trái phép lan truyền.
1.2.1 Mục tiêu và phạm vi nghiên cứu đề tài
Mục tiêu của đề án là thiết kế một hệ thống tưới cây tự động đơn giản với nguyên lý là thông qua cảm biến độ ẩm của đất để truyển tín hiệu cho hệ thống để biết lúc nào nên vận hành động cơ bơm nước cho khu vườn Tất cả mọi việc đều tự động diễn ra trong quá trình cài đặt sẵn và qua các cảm biến để điều tiết việc tưới cây hợp lí trong mọi thời thiết.
Với mô hình mạch đơn giản, chi phí thấp, dễ thiết kế, nên có thể áp dụng rộng rãi vào cuộc sống thực tế của chúng ta
1.2.2 Khái quát về tưới tiêu tự động
1.2.2.1 Tìm hiểu về tưới tiêu tự động
Tưới tự động là gì? Ngay cái tên đã nói lên được điểm căn bản và cốt lõi của phương pháp này Hiểu một cách đơn giản thì nó chính là việc cung cấp nước
CƠ SỞ LÝ THUYẾT
Arduino
2.1.1 Lịch sử phát triển Arduino
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên tại Ivrea, Italy Vào thời điểm đó các sinh viên sử dụng một "BASIC Stamp" (con tem
Cơ Bản) có giá khoảng $100, xem như giá dành cho sinh viên Massimo Banzi, một trong những người sáng lập, giảng dạy tại Ivrea Cái tên "Arduino" đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của dự án này thường xuyên gặp mặt Bản thân quán bar này lấy tên là Arduino, Bá tước của Ivrea, và là vua của Italy từ năm 1002 đến 1014.
Lý thuyết phần cứng được đóng góp bởi một sinh viên người Colombia tên là Hernando Barragan Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đã làm việc với nhau để giúp nó nhẹ hơn, rẻ hơn, và khả dụng đối với cộng đồng mã nguồn mở Trường này cuối cùng bị đóng cửa, vì vậy các nhà nghiên cứu, một trong số đó là David Cuarlielles, đã phổ biến ý tưởng này.
Giá hiện tại của board mạch này dao động xung quanh $30 và được làm giả đến mức chỉ còn $9 Một mạch bắt chước đơn giản Arduino Mini Pro có lẽ được xuất phát từ Trung Quốc có giá rẻ hơn $4, đã trả phí bưu điện.
Arduino thực sự đã gây sóng gió trên thị trường thế giới trong nhiều năm qua với số lượng người dùng cực lớn và đa dạng.
Arduino Uno R3 là một trong những mạch Arduino được sử dụng phổ biến nhất. Hiện nay, dòng mạch này đã phát triễn đến thế hệ thứ 3 (R3) Đây là board mạch được đánh giá là tốt nhất cho những người mới bắt đầu về điện tử và lập trình Nó được sử dụng nhiều nhất trong các board mạch thuộc họ Arduino
Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5~12V DC (khuyên dùng)
Tần số hoạt động 16 MHz
Dòng tiêu thụ Khoảng 30mA Điện áp vào giới hạn 19V DC
Số chân Digital I/O 14 (6 chân 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
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader
Arduino Uno được xây dụng với phân nhân là vi điều khiển Atmega328P sử dụng thạch anh có chu kỳ dao động là 16 MHz Với vi điều khiển này, ta có 14 ngõ
9 ra/vào được đánh số từ 0 đến 13 Song song đó, ta có thêm 6 ngõ nhận tín hiệu anolog được đánh ký hiệu từ A0 đến A5.
Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ sử dụng nguồn cấp jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay thông qua ắc-quy nguồn.
Các chân năng lượng: GND (Ground), 5V, 3.3V, Vin (Voltage Input), IOREF, RESET.
Các cổng ra/vào: Arduino Uno có 14 chân digital để đọc hoặc xuất tín hiệu vào
6 chân analog (A0 – A5) cung cấp độ phân giải tín hiệu 10 bit, để đọc giá trị điện trong khoảng 0V – 5V
2.1.6 Ứng dụng của Arduino Uno R3
Aruino Uno R3 được sử dụng phổ biến trong việc tự thiết kế ra các mạch điện tử như điều khiển led, gửi dữ liệu lên lcd, điều khiển motor, hay được gắn thêm các Shield để kết nối nhiều module cảm biến khác để thực hiện thêm nhiều chức năng mở rộng như gửi dữ liệu qua wifi.
2.2.1 Giới thiệu phần mềm Proteus
Phần mềm vẽ Proteus là phần mềm vẽ mạch điện tử được phát triển bởi công ty Lancenter Electronics Phần mềm có thể mô tả hầu hết các linh kiện điện tử thông dụng hiện nay, đặc biệt hỗ trợ cho cả các phần mềm như 8051, PIC, Motorola, AVR.
Proteus có khả năng mô phỏng hoạt động của các mạch điện tử bao gồm phần thiết như kế mạch và viết trình điều khiển cho các loại vi điều khiển nhưMCS-51, AVR, PIC…
2.2.2 Mô phỏng Arduino trên Proteus
Hình 2.2 Mô phỏng Arduino trên Proteus
Cảm biến và module chức năng
2.3.1 Cảm biến độ ẩm đất
Hình 2.3 Cảm biến độ ẩm đất
Cảm biến đo độ ẩm đất hay còn được gọi là máy đo độ ẩm đất Nó chủ yếu được sử dụng để đo hàm lượng thể tích nước của đất, theo dõi độ ẩm của đất, tưới tiêu nông nghiệp và bảo vệ lâm nghiệp.
POWER A TM EGA328P AT M E L www.arduino.cc blogembarcado.blogspot.com
Hai đầu đo 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ề và gửi tới module chuyển đổi.
• Kích thước PCB: 3cm * 1.6cm
• DO: Đầu ra tín hiệu số (0 và 1)
• AO: Đầu ra Analog (Tín hiệu tương tự) Ứng dụng:
Đo nhiệt độ đất, đo độ ẩm đất Nhà kính.
Đo dữ liệu độ ẩm đất, nhiệt độ đất giúp nhà nông giám sát chất lượng vườn cây trồng.
Tích hợp các hệ thống tưới thông minh.
Các ứng dụng phù hợp giám sát đo độ ẩm đất, nhiệt độ đất cần độ chính xác cao, ổn định và tiện lợi.
Nguyên lý hoạt động: Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:
- Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại.
- Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đo được.
Dòng sử dụng: 2.5mA max (khi truyền dữ liệu).
Khoảng đo độ ẩm: 20%-90% RH (sai số 5%RH)
Khoảng đo nhiệt độ: 0-50°C (sai số 2°C)
Tần số lấy mẫu tối đa: 1Hz (1 giây / lần)
Kích thước 15mm x 12mm x 5.5mm.
Cảm biến nước mưa (Rain Water Sensor ) được sử dụng để phát hiện mưa, nước hoặc các dung dịch dẫn điện tiếp xúc với bề mặt cảm biến sẽ phát ra tín hiệu để làm các ứng dụng tự động: phát hiện mưa, báo mực nước tự động,
Điện áp sử dụng: 5VDC
Kích thước tấm cảm biến mưa: 54 x 40mm
Kích thước board PCB: 30 x 16mm
Tín hiệu đầu ra: Digital TTL (0VDC / 5VDC) và đầu ra Analog A0 trả giá trị điện áp tuyến tính theo lượng nước tiếp xúc với cảm biến.
Lỗ cố định bu lông dễ dàng để cài đặt
Có đèn báo hiệu nguồn và đầu ra
Độ nhạy có thể được điều chỉnh thông qua chiết áp
LED sáng lên khi không có mưa đầu ra cao, có mưa, đầu ra thấp LED tắt
D0: Đầu ra tín hiệu TTL chuyển đổi
A0: Đầu ra tín hiệu Analog
Hình 2.6 Module cảm biến độ ẩm đất
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 tin hiệu độc ẩm đất đọc về từ cảm biến. Đặc điểm:
Kích thước PCB: 3cm x 1.6cm
Mô tả các pin trên module:
D0 Đầu ra tín hiệu số (0 và 1)
A0 Đầu ra Analog (tín hiệu tương tự)
Nguyên lý hoạt động: Khi module cảm biến độ ẩm phát hiện, khi đó sẽ có sự thay đổi điện áp ngay tại đầu vào của ic LM393 Ic này nhận biết có sự thay đổi nó sẽ đưa ra một tín hiệu 0V để báo hiệu và thay đổi như thế nào sẽ được tính toán để đọc độ ẩm đất
Cảm biến độ ẩm đất rất nhạy với độ ẩm môi trường xung quanh, thường được sử dụng để phát hiện độ ẩm của đất
Khi độ ẩm đất vượt quá giá trị được thiết lập, ngõ ra của module D0 ở mức giá trị là 0V
Ngõ ra D0 có thể được kết nối trực tiếp với vi điều khiển như: Arduino, PIC, AVR, STM để phát hiện cao và thấp, và do đó để phát hiện độ ẩm của đất
Đầu ra Analog A0 có thể được kết nối với bộ chuyển đổi ADC, có thể nhận được các giá trị chính xác hơn độ ẩm của đất.
Điện áp làm việc: DC 12V
Áp suất đầu ra: 1-2,5 kg
Độ sâu hút nước đạt được: 1-2,5 mét
Tuổi thọ làm việc bình thường: 2-3 năm.
Đường kính đầu vào và đầu ra: đường kính ngoài 8mm
Chiều dài động cơ: 32MM
Đường kính động cơ: 28MM
Bơm đường kính: * 35MM 40mm
Hình 2.5 Điện trở 220 Ω Điện trở 220 Ohm 1/4W là loại điện trở có giá trị cố định được sản xuất theo công nghệ Carbon film bằng cách kết tinh Carbon trên lõi gốm Điện trở cắm 1/4W Carbon film có giá trị dung sai rất nhỏ 5%, và chất lượng cao (nhiễu nhiệt nhỏ, đặc tính tần cao) Tuy nhiên, điện trở Carbon fim có công suất rất thấp chỉ 1/4W Điện trở cắm
100 Ohm 1/4W có kích thước nhỏ chiều dài chỉ 6.5mm, rộng 2mm, chân cắm 0,5mm Nhiệt độ hoạt động từ -55 C đến 155 C và dải điện áp rộng thích hợp với nhiều mạch o o điện tử.
Linh kiện xuyên lỗ: 0.5mm
Loại: Điện trở cố định
Led hoạt động ở mức 1,8 đến 3V, dòng 10 đến 20mA.
LCD 20x4 là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong bảng mã ASCII Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các chấm này kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các kí tự cần hiển thị và mỗi ô chỉ hiển thị được một kí tự duy nhất.
LCD 20x4 nghĩa là loại LCD có 4 dòng và mỗi dòng chỉ hiển thị được 20 kí tự. Đây là loại màn hình được sử dụng rất phổ biến trong các loại mạch điện.
Thông số kĩ thuật của LCD 20x4:
- Màu sắc: xanh lá hoặc xanh dương
- Module hỗ trợ giao tiếp với vi điều khiển: LCD I2C 16x2
2.3.9 Mạch mở rộng chân I/O expander giao tiếp I2C
Hình 2.8 Mạch mở rộng chân I/O expander giao tiếp I2C
Mạch mở rộng chân I/O Expander PCF8574 được sử dụng để mở rộng chân giao tiếp I/O của Vi điều khiển qua giao tiếp I2C, mạch có khả năng mở rộng 8 I/O giúp bạn giao tiếp được với nhiều thiết bị chỉ qua một vài bước thiết đặt đơn giản, mạch tích hợp DIP Switch giúp dễ dàng thay đổi địa chỉ I2C.
Điện áp hoạt động : 2.5~6VDC
Giao tiếp : I2C, thiết lập địa chỉ bằng DIP Switch.
Số chân giao tiếp mở rộng: 8 I/O.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Đặc tả hệ thống
Hệ thống tưới tự động cho máy bơm nước tự động được biểu diễn như hình 3.1 như sau:
Sơ đồ 3.1 Hệ thống tưới cây tự động
Tín hiệu đặt là do người lập trình đặt ra các điều kiện điều khiển cho hệ thống. Các giá trị thay đổi về thời tiết, nhiệt độ, độ ẩm được nhận biết qua các cảm biến. Các giá trị cảm biến đó sẽ đưa về bộ điều khiển so sánh với các giá trị cài đặt qua bộ điều khiển Bộ điều khiển xử lý sẽ đưa ra các tín hiệu điều khiển sang bộ biến đổi để thực hiện việc điều khiển động cơ hoạt động hợp lí Động cơ hoạt động sẽ đưa nước tới các téc phun tưới cây đảm bảo việc chăm sóc cây trồng phát triển
THĐ BĐK BBĐ ĐC V N ƯỜ
CB tốt Hệ thống làm việc liên tục khoa học tránh các thao tác thừa khi điều khiển động cơ.
Sơ đồ đấu nối
Hình 3.1 Sơ đồ đấu nối
Code hệ thống tưới cây tự động
PO W ER ATMEG A328P ATM EL www.arduino.cc blogembarcado.blogspot.com
83 or ens n S Rai ww w.T heE ngi nee rin gP roj ect s.c om
Soil Moisture Sensor www.TheEngineeringProjects.com
#define motor 8 int rainSensor = 6; const int DHTPIN = 2; const int DHTTYPE = DHT11;
DHT dht(DHTPIN, DHTTYPE); void setup() {
Serial.begin(9600); dht.begin(); lcd.init(); lcd.backlight(); lcd.setCursor(3, 0); lcd.print("TUOI CAY TU DONG"); lcd.clear(); pinMode(rainSensor, INPUT); pinMode(sensor, INPUT); pinMode(led, OUTPUT); pinMode(motor, OUTPUT);
} void loop() { float doam = dht.readHumidity(); float nhietdo = dht.readTemperature(); int cbm= digitalRead(rainSensor); int dad = analogRead(sensor); dad = map(dad, 0, 1023, 0, 100); lcd.setCursor(0, 1); lcd.print("Nhiet do:"); lcd.setCursor(11, 1); lcd.print(nhietdo); lcd.setCursor(15, 1); lcd.print("(C)"); lcd.setCursor(0, 2); lcd.print("Do am:"); lcd.setCursor(11, 2); lcd.print(doam); lcd.setCursor(15, 2); lcd.print("(%)"); lcd.setCursor(0,3); lcd.print("Do am dat:"); lcd.setCursor(11, 3); lcd.print(dad); lcd.setCursor(15, 3); lcd.print("(%)"); if (cbm == HIGH) {
Serial.println("Không mưa"); lcd.setCursor(0, 0); lcd.print("Khong mua"); if (dad < 100||nhietdo