BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ
ĐỐ ÁN ĐIỆN CÔNG NGHIỆP
THIẾT KẾ HỆ THỐNG TƯỚI CÂY TỰ
ĐỘNG SỬ DỤNG ARDUINO
Cán bộ hướng dẫn:
Sinh viên thực hiện:
Ths. Hoàng Đăng Khoa
Lê Trường Thuận B1603753
Phan Thành Nam B1603734
Đồ án điện công nghiệp
GVHD: Th.s Hoàng Đăng Khoa
Trang 2
Đồ án điện công nghiệp
LỜI NÓI ĐẦU
Ngày nay khoa học công nghệ ngày càng phát triển, vi điều khiển AVR và vi
điều khiển PIC ngày càng thông dụng và hoàn thiện hơn. Nhưng có thể nói sự xuất
hiện của Arduino vào năm 2005 tại Italia đã mở ra một hướng đi mới cho vi điều
khiển. Sự xuất hiện của Arduino đã hỗ trợ cho con người rất nhiều trong lập trình
và thiết kế, nhất là đối với những người mới bắt đầu tìm tòi về vi điều khiển mà
không có quá nhiều kiến thức, hiểu biết sâu sắc về vật lý và điện tử. Phần cứng
của thiết bị đã được tích hợp nhiều chức năng cơ bản và là mã nguồn mở. Ngôn
ngữ lập trình trên nền Java lại vô cùng dễ sử dụng tương thích với ngôn ngữ C/C++
và hệ thống thư viện rất phong phú và được chia sẻ miễn phí. Chính vì những lý do
như vậy nên Arduino hiện đang dần phổ biến và được phát triển ngày càng mạnh
mẽ trên toàn thế giới...Trong đề tài này, em sẽ thiết kế một hệ thống tưới cây tự
động được xây dựng với trung tâm là Arduino UNO R3 (một trong các loại Board
Arduino), chi phí thấp, thiết kế đơn giản, có ứng dụng rộng rải từ mô hình nhỏ đơn
giản đến mô hình lớn phức tạp.
GVHD: Th.s Hoàng Đăng Khoa
Trang 3
Đồ án điện công nghiệp
LỜI CẢM ƠN
Qua đồ án này, nhóm em xin cảm ơn thầy Hoàng Đăng Khoa đã giúp đỡ cho
chúng em trong quá trình hoàn thành đồ án. Giúp chúng em hiểu rõ hơn về mạch
Arduino, cách thiết kế mạch, chạy code hay biết được nhiều ứng dụng hay của
mạch Arduino. Ngoài ra, nhờ thầy hướng dẫn nên chúng em cũng đã hoàn thành
mạch in, hiểu được một quá trình làm một mạch in với các công đoạn thiết kế, làm
mạch, khoan và hàn các linh kiện. Qua đó giúp chúng em tiến bộ hơn và đã có bước
đầu hiểu hơn về các mạch điện tử. Thông qua đồ án, chúng em đã tích lũy và học
được một ít kinh nghiệm thực tế rất có ít cho việc học tập và công việc của chúng
em sau này. Bên cạnh đó còn có nhiều mặt hạn chế do lần đầu tiếp xúc với linh
kiện điện tử thực tế và còn do kỹ năng yếu kém nên dẫn đến sản phẩm còn nhiều
khuyết điểm, mông thầy sẽ thông cảm và bỏ qua cho chúng em. Một lần nửa tụi em
xin cảm ơn thầy Hoàng Đăng Khoa đã giúp đở nhóm em hoàng thành đồ án này.
GVHD: Th.s Hoàng Đăng Khoa
Trang 4
Đồ án điện công nghiệp
MỤC LỤC
LỜI NÓI ĐẦU
i
LỜI CẢM ƠN
ii
MỤC LỤC
1
MỤC LỤC HÌNH ẢNH
3
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
1.1.
Đặt vấn đề
1.2.
Mục tiêu và phạm vi nghiên cứu đề tài..............................................4
4
CHƯƠNG 2. GIỚI THIỆU CÁC LINH KIỆN TRONG MẠCH
2.1. Arduino UNO R3
5
2.1.1. Các thông số cơ bản của Arduino UNO R3........................................6
2.1.2. Vi điều khiển
6
2.1.3. Các chân của Arduino
6
2.1.4. Lập trình cho Arduino
7
2.2. Cảm biến độ ẩm và module chuyển đổi.................................................7
2.2.1. Cảm biến độ ẩm
7
2.2.2. Module chuyển đổi
7
2.3. Module 5VDC 2 kênh
9
2.4. Động cơ bơm 12V
10
2.5. Điện trở 220Ω và Led
11
2.6. Bộ nguồn nhiều ngõ ra
12
CHƯƠNG 3.GIỚI THIỆU ARDUINO IDE & PROTEUS VÀ MÔ PHỎNG HỆ
THỐNG
3.1. Phần mềm mô phỏng Proteus 13
3.2. Thư viện Arduino cho Proteus 14
3.3. Arduino IDE và lập trình cho Arduino...................................................14
3.4. Mô phỏng hệ thống
15
3.4.1 Mô phỏng mạch nguyên lý trên Proteus..............................................16
GVHD: Th.s Hoàng Đăng Khoa
Trang 5
Đồ án điện công nghiệp
3.4.2 Nguyên lý hoạt động
16
3.4.3 Viết code chương trình cho Arduino...................................................16
CHƯƠNG 4. THIẾT KẾ MẠCH
4.1. Thiết kế mạch in
21
4.2. Thi công mạch
21
CHƯƠNG 5. NHẬN XÉT VÀ KẾT LUẬN
5.1. Nhận xét
23
5.2. Kết luận
23
TÀI LIỆU THAM KHẢO
24
GVHD: Th.s Hoàng Đăng Khoa
Trang 6
Đồ án điện công nghiệp
MỤC LỤC HÌNH ẢNH
Hình 1. Hình dáng bên ngoài của Arduino 5
Hình 2. Thông số cơ bản của Arduino
6
Hình 3. Cảm biến độ ẩm
7
Hình 4. Module chuyển đổi
7
Hình 5. Module relay 5VDC 2 kênh
9
Hình 6. Động cơ bơm 12V
10
Hình 7. Điện trở 220Ω
11
Hình 8. Led
11
Hình 9. Bộ nguồn nhiều ngõ ra
12
Hình 10. Giao diện phần mềm Proteus 8.713
Hình 11. Các linh kiện trong thư viện Arduino cho Proteus...................................14
Hình 12. Giao diện phần mềm Arduino IDE..........................................................15
Hình 13. Mạch nguyên lý vẽ trên Proteus 16
Hình 14. Viết code bằng Arduino IDE
16
Hình 15. Sơ đồ mạch in trên Proteus
21
Hình 16. Mạch thực tế sau khi hoàn thành22
Hình 17. Mô hình thực tế sau khi lắp đặt 22
GVHD: Th.s Hoàng Đăng Khoa
Trang 7
Đồ án điện công nghiệp
CHƯƠNG 1. TỔNG QUANG VỀ ĐỀ TÀI
1.1
ĐẶT VẤN ĐỀ
Thực tế trong cuộc sống ngày càng bận rộn, nhiều người vẫn có thú vui là
trồng những cây cảnh, vườn rau trong không gian trống của nhà mình như sân
thượng, ban công. Tuy nhiên, trong những lúc bạn bận các công việc hằng ngày thì
những cây cảnh và vườn hoa ở nhà sẽ không được ai tưới nước. Ngoài phương
pháp tưới cây phổ thông, chúng ta có thể tạo ra những hệ thống tưới cây tự động
đơn giản cho khu vườn nhỏ của mình thậm chí có thể mở rộng hệ thống tưới cây
cho cả một khu vườn lớn.
1.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 tiế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.
GVHD: Th.s Hoàng Đăng Khoa
Trang 8
Đồ án điện công nghiệp
CHƯƠNG 2. GIỚI THIỆU CÁC LINH KIỆN TRONG MẠCH
2.1
ARDUINO UNO R3
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 với trình độ trải rộng từ bậc phổ
thông đến bậc đại học.
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).
Hình 1: Hình dáng bên ngoài Arduino
2.1.1
Các thông số cơ bản của Arduino UNO R3
GVHD: Th.s Hoàng Đăng Khoa
Trang 9
Đồ án điện công nghiệp
Hình 2: Thông số cơ bản của Arduino
2.1.2
Vi điều khiển.
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ỏ
ra/vào được đánh số từ 0 đến 13. Song song đó, ta có thêm 6 ngỏ nhậ tín hiệu analog
đượ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õ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ ACDC adapter hay
thông qua ắcquy nguồn.
2.1.3
Các chân của Arduino.
Các chân năng lượng: GND (Ground), 5V, 3.3V, Vin (Voltage Input), IOREF,
RESET.
GVHD: Th.s Hoàng Đăng Khoa
Trang 10
Đồ án điện công nghiệp
Các cổng ra/vào: Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín
hiệu và 6 chân analog (A0 A5) cung cấp độ phân giải tín hiệu 10bit, để đọc giá trị
điện áp trong khoảng 0V 5V.
GVHD: Th.s Hoàng Đăng Khoa
Trang 11
Đồ án điện công nghiệp
2.1.4
Lập trình cho Arduino.
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng. Ngôn
ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung và Wiring lại
là một biến thể của C/C++. Có người gọi nó là Wiring, một số khác thì gọi là C hay
C/C++ và tên gọi phổ biến nhất là ngôn ngữ Arduino. Ngôn ngữ Arduino bắt nguồn
từ C/C++ phổ biến hiện nay do đó rất dễ học và từ việc lập trình ta có thể thiết kế
mạch theo ý muốn của mình và vận hành một cách hiệu quả và tối ưu nhất.
2.2
CẢM BIẾN ĐỘ ẨM ĐẤT VÀ MODULE CHUYỂN ĐỔI.
2.2.1
Cảm biến độ ẩm đất.
Hình 3. Cảm biến độ ẩm đất
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.
2.2.2
Module chuyển đổi.
GVHD: Th.s Hoàng Đăng Khoa
Trang 12
Đồ án điện công nghiệp
Hình 4. Module chuyển đổi
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 tín hiệu độ ẩm đất đọc về từ cảm biến.
Đặc điểm:
Điện áp hoạt động: 3.3V5V
Kích thước PCB: 3cm × 1.6cm
Led báo hiệu
o
Led đỏ báo nguồn
o
Led xanh báo mức độ ẩm ở pin DO
Mô tả các pin trên module
Nguyên lý hoạt động của cảm biến độ ẩm
GVHD: Th.s Hoàng Đăng Khoa
Trang 13
Đồ án điện công nghiệp
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 AO 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.
2.3
MODULE RELAY 5VDC 2 KÊNH
GVHD: Th.s Hoàng Đăng Khoa
Trang 14
Đồ án điện công nghiệp
Hình 5. Module relay 5VDC 2 kênh
Relay 2 Kênh gồm 2 rơ le hoạt động tại điện áp 5VDC, chịu được
hiệu điện thế lên đến 250VAC 10A. Relay 2 kênh được thiết kế chắc chắn,
khả năng cách điện tốt. Trên module đã có sẵn mạch kích relay sử dụng
transistor và IC cách ly quang giúp cách ly hoàn toàn mạch điều khiển (vi
điều khiển) với relay, bảo đảm vi điều khiển hoạt động ổn định.
Mạch relay 2 kênh sử dụng chân kích mức thấp (0V), mức cao (5V)
tùy thuộc vào chọn Jumper. Ứng dụng với relay module khá nhiều bao gồm
cả điện DC hay AC.
Thông số kỹ thuật:
Điện áp hoạt động: 5VDC.
Tín hiệu kích: High (5V) hoặc Low (0V) chọn bằng Jumper.
Nguồn cấp: 5VDC.
Tiếp điểm đóng ngắt max: 250VAC10A hoặc 30VDC10A
Kích thước: 52mm × 41mm × 19mm.
Điện áp hoạt động: 5VDC
GVHD: Th.s Hoàng Đăng Khoa
Trang 15
Đồ án điện công nghiệp
Có thể sử dụng relay để điều khiển các thiết bị có công suất 30VDC10A
hoặc 250VAC10A
Điện áp kích mức thấp
2.4
ĐỘNG CƠ BƠM 12V
Hình 6. Động cơ bơm 12V
Thông số kỹ thuật:
Máy bơm có điện áp: DC 12V
Dòng tiêu thụ: 0.62A
Công suất: 512W
Lưu lượng bơm: 12 lít/phút
Kích thước: 90×40×35 mm.
2.5
ĐIỆN TRỞ 220Ω VÀ LED
Điện trở 220V
GVHD: Th.s Hoàng Đăng Khoa
Trang 16
Đồ án điện công nghiệp
Hình 7. Điện trở 220Ω
Led:
Led hoạt động ở mức 1,8 đến 3V,
dòng 10 đến 20mA.
Hình 8. Led
GVHD: Th.s Hoàng Đăng Khoa
Trang 17
Đồ án điện công nghiệp
2.6
BỘ NGUỒN NHIỀU NGÕ RA
Hình 9. Bộ nguồn nhiều ngõ ra
Thông số kỹ thuật:
Điện áp ngõ vào: AC 220V
Điện áp ngõ ra: DC 3.3V, 5V, 9V, 12V
Cường độ dòng điện: 1A
Sử dụng nguồn DC 9V cấp cho Arduino UNO R3 qua jack cắm, s ử
dụng nguồn DC 12V cấp cho động cơ bơm.
GVHD: Th.s Hoàng Đăng Khoa
Trang 18
Đồ án điện công nghiệp
CHƯƠNG 3 GIỚI THIỆU ARDUINO IDE & PROTEUS VÀ
MÔ PHỎNG HỆ THỐNG
3.1 PHẦN MỀM MÔ PHỎNG PROTEUS
Phần mềm Proteus là phần mềm cho phép mô phỏng hoạt động của mạch
điện tử bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi
điều khiển MCS51, PIC, AVR,... Proteus là phần mềm mô phỏng mạch điện tử của
Labcenter Electronic, mô phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc
biệt hỗ trợ cho các MCU như PIC, 8051, AVR, Motorola.
Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và ARES
dùng để vẽ mạch in. Proteus là phần mềm mô phỏng cho các loại vi điều khiển khá
tốt, hỗ trợ các dòng vi điều khiển PIC, 8051, dsPIC, AVR, HC11,... các giao tiếp I2C,
SPI, CAN, USB, Ethenet,... ngoài ra còn mô phỏng các mạch số, mạch tương tự một
GVHD: Th.s Hoàng Đăng Khoa
Trang 19
Đồ án điện công nghiệp
cách hiệu quả.
Hình 10. Giao diện phần mềm Proteus 8.7
3.2 THƯ VIỆN ARDUINO TRONG PROTEUS
Thư viện Arduino là một bổ sung rất hay cho phần mềm Proteus, nó giúp cho
việc mô phỏng Arduino được thuận tiện và dễ dàng hơn thay vì chỉ mô phỏng được
chip Atmega328 (nhân của Arduino), thư viện này được phát triển bởi các kỹ sư
Cesar, Osaka, Daniel Cezar, Roberto Bauer và được đăng tải trên blog tiếng Bồ Đào
Nha />GVHD: Th.s Hoàng Đăng Khoa
Trang 20
Đồ án điện công nghiệp
Thư viện bao gồm các linh kiện sau:
Arduino UNO (Phiên bản chip Atmega328 chân DIP)
Arduino UNO (Phiên bản chip Atmega328 chân SMD)
Arduino mega
Arduino Lilypad
Arduino Nano
Cảm biến siêu âm Ultrasonic V2
Hình 11. Các linh kiện trong thư viện Arduino cho Proteus
3.3 ARDUINO IDE VÀ LẬP TRÌNH CHO ARDUINO
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại
nhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần
mềm. Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ
hiểu và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật. Và quan
trọng hơn là số lượng thư viện code được viết sẵn và chia sẽ bởi cộng đồng nguồn
mở là cực kỳ lớn.
GVHD: Th.s Hoàng Đăng Khoa
Trang 21
Đồ án điện công nghiệp
Hình 12. Giao diện phần mềm Arduino IDE
Arduino IDE là phần mềm dùng để lập trình cho Arduino. Môi trường lập
trình cho Arduino là IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là
Windows, Macintosh OSX là Linux. Do có tính chất nguồn mở nên môi trường lập
trình này hoàn toàn miển phí và có thể mở rộng bởi người dùng có kinh nghiệm
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++. Và ngôn
ngữ lập trình này dựa trên nền tảng của ngôn ngữ C của AVR nên người dùng hoàn
toàn có thể nhúng thê code viết bằng AVR vào chương trình nếu muốn. Hiện tại,
Arduino IDE có thể download từ trang chủ />
3.4 MÔ PHỎNG HỆ THỐNG
3.4.1
Mô phỏng mạch nguyên lý trên Proteus
GVHD: Th.s Hoàng Đăng Khoa
Trang 22
Đồ án điện công nghiệp
Hình 13. Mạch nguyên lý vẽ trên Proteus
3.4.2
Nguyên lý hoạt động:
Giá trị độ ẩm của đất được nhận biết qua cảm biến độ ẩm và đưa về bộ điều
khiển là Arduino UNO R3 bằng tín hiệu Digital. Khi đất không đủ độ ẩm giá trị tín
hiệu gởi về là 0, bộ điều khiển đưa tín hiệu cho đóng Rờ le và động cơ máy bơm
bắt đầu hoạt động bơm nước tưới vào chậu. Khi đã đủ nước, độ ẩm cao, cảm biến
sẽ gởi về tín hiệu có giá trị là 1, bộ điều khiển đưa tín hiệu ngắt rờ le, máy bơm
dừng hoạt động.
Led đỏ có tác dụng báo hiệu độ ẩm thấp, chậu cây đang thiếu nước.
Led xanh có tác dụng báo hiệu độ ẩm cao, chậu cây đã đủ nước.
Led vàng có tác dụng báo hiệu trạng thái hoạt động và dừng của máy bơm.
3.4.3
Viết code chương trình cho Arduino
GVHD: Th.s Hoàng Đăng Khoa
Trang 23
Đồ án điện công nghiệp
Khởi động phần mềm Arduino IDE và soạn code. Sau khi lập trình xong, nhấn
để biên dịch code sau vài giây phần mềm sẽ biên dịch cho ta 1 file hex của
chương trình
Hình 14. Viết code bằng Arduino IDE
Sau khi tạo được file hex t nạp file vào linh kiện Arduino trong proteus để
chạy mô phỏng hệ thống.
Mã code của hệ thống:
/**
* Automatic Watering using Arduino
* Cao Hieu 2016
*/
int const SENSOR_MH_D_PIN = 4;
int const SENSOR_MH_A_PIN = A0;
int const T_RELAY_PIN = 2;
int const TIME_TO_GET_SAMPLE = 5000; //5s
int const SAMPLE_TIME = 500; //0.5 s
int const LED_PIN = 13;
GVHD: Th.s Hoàng Đăng Khoa
Trang 24
Đồ án điện công nghiệp
int const LED_BLUE_PIN = 10;
int const LED_YEWLOW_PIN = 9;
int const LED_RED_PIN = 8;
int const TREE_WATER_LEVEL_HIGH = 600;
int const TREE_WATER_LEVEL_LOW = 300;
int sensorMHValue = 0;//store sensor value
int bumpStatus = 0;
int waterStatus = 0;// -1: less water, 0: enough water,
water
void setup() {
//serial print
// Serial.begin(9600);
pinMode(SENSOR_MH_D_PIN,INPUT);
pinMode(T_RELAY_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(LED_BLUE_PIN, OUTPUT);
pinMode(LED_YEWLOW_PIN, OUTPUT);
pinMode(LED_RED_PIN, OUTPUT);
}
void loop() {
// process and checking to watering
wateringProcess();
// Send information to serial port
//printToSerialPort();
//show the led status
showLedInfo();
}
void wateringProcess(){
int sensorStatus = digitalRead(SENSOR_MH_D_PIN);
int sensorValue = getSensorSampleValue();
if(sensorStatus == 0){
if(sensorValue > TREE_WATER_LEVEL_HIGH){
digitalWrite(T_RELAY_PIN, HIGH);
bumpStatus = 1;
waterStatus = -1;
GVHD: Th.s Hoàng Đăng Khoa
Trang 25
+1 : more