Professional Documents
Culture Documents
MỤC LỤC
MỤC LỤC..........................................................................................i
DANH MỤC CÁC HÌNH ẢNH......................................................iii
DANH MỤC CÁC TỪ VIẾT TẮT...................................................v
LỜI CẢM ƠN...................................................................................vi
MỞ ĐẦU.........................................................................................vii
CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG TƯỚI NƯỚC TỰ
ĐỘNG................................................................................................1
1.1. Khái niệm về hệ thống tự động..................................................................1
1.2. Vai trò của tự động hóa trong quá trình sản xuất.......................................1
1.3. Ứ ng dụ ng củ a tự độ ng hóa trong tướ i tiêu cho cây trồ ng.........................2
1.4. Các dạng chính của hệ thống tưới tự động.................................................2
1.5. Các nghiên cứu ở nước ngoài...................................................................11
1.6. Các nghiên cứu trong nước......................................................................12
1.7. Quy trình công nghệ.................................................................................12
1.8. Các vấn đề cần nghiên cứu bổ sung.........................................................13
1.9. Kết luận chương 1....................................................................................13
CHƯƠNG 2 THIẾT KẾ HỆ THỐNG TƯỚI NƯỚC TỰ ĐỘNG. .14
2.1 Xây dựng sơ đồ khối.................................................................................14
2.2 Chức năng của từng khối...........................................................................15
2.2.1. Khối vi điều khiển PIC 18F4520.......................................................15
2.2.2. Khối cảm biến nhiệt độ và độ ẩm.......................................................21
2.2.3. Khối hiển thị thời gian thực Ds1307..................................................25
2.2.4. Khối hiển thị LCD..............................................................................29
2.2.5. Khối nguồn sử dụng LM2576............................................................31
2.2.6. Khối tạo dao động..............................................................................32
2.3. Giao thức I2C...........................................................................................32
ii
LỜI CẢM ƠN
Em xin chân thành cảm ơn quý thầy, cô trường Đại Học Công Nghiệp Hà
Nội đã tận tình dạy dỗ trong suốt những năm qua. Trong đó phải kể đến quý
thầy cô trong khoa Điện Tử đã tạo điều kiện cho em thực hiện đồ án tốt
nghiệp này.
Đặc biệt, em xin chân thành cảm ơn giáo viên hướng dẫn ThS. Xxx đã tận
tình giúp đỡ em trong quá trình lựa chọn đề tài và hỗ trợ em trong quá trình
thực hiện đề tài. Cung cấp cho em những kiến thức quý báu cũng như những
lời khuyên cực kỳ hữu ích. Tạo động lực cho em hoàn thành tốt nhiệm vụ của
mình.
Em xin cảm ơn những ý kiến đóng góp của các thầy cô giáo và các bạn
cho việc thực hiện đề tài này. Để hoàn thành em đã nỗ lực nghiên cứu, thiết
kế và chế tạo, nhưng do thời gian và kiến thức còn hạn chế nên không thể
tránh khỏi những thiếu sót, em rất mong nhận được những lời góp ý chân
thành từ thầy cô và các bạn để có thêm những hiểu biết và hoàn thiện hơn
trong quá trình làm việc sau này.
Em xin chân thành cảm ơn!
Sinh viên thực hiện
xxxxxxxxxxxxxxxx
vii
MỞ ĐẦU
Tính cấp thiết của đề tài
Nền nông nghiệp của nước ta là nền nông nghiệp vẫn còn lạc hậu cũng
như chưa có nhiều ứng dụng khoa học kĩ thuật được áp dụng vào thực tế. Rất
nhiều quy trình kĩ thuật trồng trọt, chăm sóc được tiến hành một cách thủ
công và không đảm bảo được đúng yêu cầu. Có thể nói trong nông học ngoài
những kỹ thuật trồng trọt, chăm sóc thì tưới nước là một trong các khâu quan
trọng nhất trong trồng trọt, để đảm bảo cây trồng sinh trưởng và phát triển
bình thường, tưới đúng và tươi đủ theo yêu cầu nông học của cây trồng sẽ
không sinh sâu bệnh, hạn chế thuốc trừ sâu cho sản phẩm an toàn, đạt năng
suất hiệu quả cao.
Mặt khác hiện nay nước ta đang trong giai đoạn công nghiệp hóa, hiện đại
hóa các thiết bị máy móc tự động được đưa vào phục vụ thay thế sức lao động
của con người. Vì vậy thiết bị tưới đang được nghiên cứu, thiết kế, chế tạo và
đưa vào thực tiễn ngày càng nhiều. Thiết bị tưới cũng rất đa dạng về chủng
loại (vòi phun nước, phun sương, vòi nhỏ giọt bù áp, dây tưới nhỏ giọt) có
thông số khác nhau phục vụ cho các loại cây trồng khác nhau được chế tạo từ
nhiều nước như Israel, Hàn Quốc, Đài Loan, Trung Quốc sẽ rất thuận tiện cho
người sử dụng lựa chọn phù hợp với nhu cầu của mình. Hệ thống tưới phun
đáp ứng độ ấm gốc, độ ẩm lả và không khí cho cây trồng phát triển tốt, hệ
thống tiết kiệm nước tạo điều kiện cho cây trồng hấp thụ dinh dưỡng không
gây rửa trôi, thoái hóa đất, không gây ô nhiễm môi trường. Hơn thế nữa, với
việc thiết kế một hệ thống tưới cây tự động sẽ giúp cho con người không phải
tưới cây, không phải tốn chi phí nhân công tưới nước cũng như giám sát thời
gian tưới cây, Với hệ thống này, việc tưới cây sẽ là tự động tùy theo nhiệt độ,
thời tiết nắng hay mưa, độ ẩm cao hay thấp, mùa nào trong năm . . . Tất cả các
điều kiện đó sẽ đưa vào hệ thống tính toán và đưa ra thời gian chính xác để
bơm nước. Người lao động sẽ không cần phải quan tâm đến việc tưới cây sẽ
viii
được sinh trưởng và phát triển tốt hơn nhờ việc tưới cây phù hợp và chính xác
hơn.
Lý do chọn đề tài
Hệ thống tưới tự động (tưới nhỏ giọt, phun sương . . .) là hệ thống thiết bị
tưới tốt nhất đáp ứng theo yêu cầu sinh trưởng cây trồng đang được ứng dụng
rộng ở các nước phát triển. Hệ thống tưới nước tự động là một hình thức tưới
nước hợp lý, tiết kiệm sức lao động và chi phí nhân công. Vốn đã rất phổ biến
tử nhiều nước trên thế giới. Tuy nhiên ở Việt Nam chỉ vài ba năm trở lại đây
việc vận dụng hệ thống này mới trở thành xu hướng. Hệ thống tưới nước tự
động cũng trở nên phổ biến hơn với người nông dân ở nông thôn cùng với quá
trình hiện đại hóa, nông nghiệp hóa nông thôn nhưng không phải người dân
nào cũng mạnh dạn đưa vào sử dụng vì chi phí đầu tư cao.
Mặt khác khoa học kỹ thuật phát triển mạnh mẽ đã làm thay đổi cuộc sống
con người, làm cho cuộc sống con người ngày càng trở nên tiện nghi và hiện
đại. Kỹ thuật điện tử phát triển con người đã tạo ra những thiết bị máy móc
hiện đại thay thế cho con người những công việc nặng nhọc và đòi hỏi độ
chính xác cao.
Ngành nông nghiệp nước ta hiện nay còn phụ thuộc nhiều vào khí hậu tự
nhiên và với những phương pháp canh tác truyền thống không mang lại năng
suất cao. Khi kinh tế xã hội phát triển thì nhu cầu con người càng được nâng
cao, đòi hỏi chất và lượng nâng cao. Do đó cần đến các thiết bị kỹ thuật tiên
tiến có khả năng đo đạc và điều khiển các thông số của môi trường như: nhiệt
độ, độ ẩm không khí, chất dinh dưỡng cung cấp phù hợp với từng giai đoạn
phát triển của cây trồng.
Xuất phát từ những vấn đề thực tiễn trên em đã nghiên cứu và tiến hành
thiết kế mô hình hệ thống tưới tự động
1
CHƯƠNG 1
TỔNG QUAN VỀ HỆ THỐNG TƯỚI NƯỚC TỰ ĐỘNG
1.1. Khái niệm về hệ thống tự động
Hệ thống điều khiển tự động là hệ thống, bao gồm các phần tử tự động
nhằm điều khiển các quy trình xảy ra trong thiên nhiên, cuộc sống mà không
có sự tham gia trực tiếp của con người.
Hệ thống tự động xuất hiện ngày nay rất phổ biến:
- Hệ thống điều hòa không khí.
- Hệ thống tự động báo cháy.
- Hệ thống điều chỉnh độ ẩm.
- Hệ thống tưới nước tự động . . .
Trong môi trường sản xuất:
- Các máy tự động.
- Các đường dây sản xuất, lắp ráp tự động.
- Các robot, máy tính . . .
1.2. Vai trò của tự động hóa trong quá trình sản xuất
Tự động hóa đang được ứng dụng rộng rãi trong rất nhiều lĩnh vực khác
nhau: công nghiệp sản xuất, gia công cơ khí, dây chuyền lắp ráp tự động, ứng
dụng kiểm soát chất lượng… Các hệ thống điều khiển thường dùng để vận
hành quá trình sản xuất bao gồm servo, PLC, mạch điện tử, G code… Các hệ
điều khiển này có thể bao gồm việc điều khiển từ đơn giản đến các thuật toán
phức tạp, điều khiển những máy móc đơn giản cho đến những hệ thống công
nghiệp lớn.
Có rất nhiều nhân tố ảnh hưởng tới quá trình tự động hóa của một quốc
gia, hoặc một lĩnh vực. Trong đó, có thể kể đến những nhân tố quan trọng
như: Công nghệ số hóa, trình độ nhân sự, nguồn lực vốn... Để quá trình này
được diễn ra thuận lợi, cần hiểu rõ bản chất tự động hóa trong từng lĩnh vực,
từng quy trình sản xuất, từ đó ứng dụng tối ưu, giúp tăng năng suất, giảm chi
phí.
2
1.3. Ứng dụng của tự động hóa trong tưới tiêu cho cây trồng
Công trường thực vật là căn cứ địa sản xuất nông nghiệp của hiện đại
hóa. Toàn bộ quá trình đều có thể điều khiển tự động để giảm bớt sức người,
nâng cao sản lượng… Mặc dù tự động hóa ứng dụng từ rất lâu cho việc tưới
tiêu, song nó chỉ phát triển ở một số nước phát triển, còn đối với các nước
chậm phát triển tuy nền nông nghiệp chiếm tỉ lệ lớn nhưng việc ứng dụng tự
động hóa cho việc tưới cây vẫn còn rất chậm. Hiện nay, được sự trợ giúp của
nước ngoài các nước đang phát triển đã đưa dần tự động hóa vào đời sống và
sản xuất, đặc biệt là các nước Đông Nam Á nói chung và trong đó có Việt
Nam.
Ngày nay với sự phát triển mạnh mẽ của công nghệ chế tạo thiết bị tự
động hóa, kết hợp với thành tựu trong công nghệ vi điện tử và công nghệ
thông tin, đã cho phép tạo nên một giải pháp tự động hóa trong mọi lĩnh vực
không chỉ trên lĩnh vực nông nghiệp. Có thể nói tự động hóa trở thành xu
hướng tất yếu cho bất kì quốc gia, vùng lãnh thổ nào muốn phát triển kinh tế
trên Thế giới.
1.4. Các dạng chính của hệ thống tưới tự động
Về cơ bản hệ thống tưới nước tự động có 4 dạng chính:
- Tưới phun mưa:
Đây là hệ thống tưới nước tạo các tia nước bắn ra xung quanh nhờ đầu
phun tạo mưa, phun trực tiếp lên bề mặt lá cây. Hệ thống này giúp bà con
nông dân tưới cây nhanh hơn, hiệu quả hơn, nâng cao hiệu quả kinh tế.
Phương pháp này có tác dụng làm tăng độ ẩm cho đất và làm mát cho cây
trồng, tạo điều kiện kích thích cây trồng sinh trưởng và phát triển. Hệ thống
này được áp dụng phổ biến nhất do phù hợp với nhiều mô hình canh tác từ
hoa màu cho đến cây ăn quả, cây công nghiệp. Nước ra vòi phun, béc phun
theo dạng mưa, từng hạt, từng hạt có khả năng văng xa, tùy theo áp lực nước.
Ưu điểm: Tưới phun mưa có hiệu quả sử dụng rất cao vì hạn chế cao
độ tổn thất nước do bốc hơi vì tia phun ngắn.
3
Cường độ tưới phun mưa và diện tích làm ướt có thể được điều chỉnh
cho phù hợp sự tăng trưởng của cây trồng. Không tạo nên dòng chảy trên mặt
đất. không phá vỡ cấu tượng đất do hạt mưa nhỏ.
Cường độ tưới phun mưa và diện tích làm ướt có thể được điều chỉnh
cho phù hợp sự tăng trưởng của cây trồng. Cường độ tưới phun mưa và diện
tích làm ướt có thể được điều chỉnh cho phù hợp sự tăng trưởng của cây
trồng.
Do toàn bộ hệ thống đường ống tưới phun mưa đặt ngầm nên tiết
kiệm đất. Thuận tiện việc chăm sóc, canh tác trên đồng ruộng. Mặt khác cũng
dễ dàng tự động hóa từng phần hoặc toàn phần hệ thống tưới phun mưa. Cũng
như việc cơ khí hoá và tự động hóa phần thiết bị điều khiển. Thiết bị tưới
phun mưa được điều khiển toàn bộ hệ thống từ xa theo chương trình lập sẵn.
Nên tiết kiệm sức lao động và nâng cao năng suất tưới.
Nâng cao năng suất tưới và năng suất các khâu canh tác nông nghiệp
khác. Sử dụng áp lực làm việc loại trung bình và thấp. Đồng thời lưu lượng
tưới phun mưa yêu cầu nhỏ nên tiết kiệm năng lượng và nguồn nước. Có tác
dụng cải tạo vi khí hậu khu tưới. Hạn chế sâu bệnh, cỏ dại phát triển. Kết hợp
được tưới tưới phun mưa với phun thuốc trừ sâu, bón phân hóa học. Rất phù
hợp với các cây trồng mềm yếu (vườn hoa, vườn ươm, cây đang ra hoa, thụ
phấn).
Thiết bị tưới phun sương cho phép người sử dụng có thể pha thêm
một số dung dịch an toàn chống lại sâu bệnh gây hại. Tuy nhiên, nếu phải
thường xuyên tiếp xúc với các chất này có thể ảnh hưởng đến sức khỏe con
người. Vì thế, sản phẩm này giúp đảm bảo sức khỏe của người dùng. Bên
cạnh đó, với mật độ phun đều, lượng nước và chất phòng ngừa sâu hại không
bị tồn đọng quá nhiều gây ngập úng hay dư thừa chất bảo vệ thực vật.
Nhược điểm:
4
Các loại béc tưới phun mưa dễ bị tắc nghẽn (khi nước tưới có nhiều
tạp chất), nhất là đối với các vòi phun sương mù (Mist Sdrayer) có các lỗ tưới
phun mưa rất nhỏ.
Yêu cầu trình độ nhất định trong thiết kế xây dựng và quản lý hệ
thống tưới phun mưa.
Vốn đầu tư cho hệ thống tưới phun mưa ban đầu cao hơn so với các
kỹ thuật tưới cổ điển.
Các đường ống tưới phun mưa và thiết bị hay hư hỏng, dễ bị mất mát,
phá hoại do con người và côn trùng tại mặt ruộng (điều này rất dễ xảy ra ở
Việt Nam).
được lắp trong các khu vườn ươm giống, các vườn hoa trong nhà kính, trồng
rau hữu cơ, rau thủy canh, trồng hoa, tưới cảnh quan…
Ưu điểm:
Có tác dụng ngăn bụi, điều hòa vi khí hậu, giúp không khí mát mẻ và
có thể tận dụng lúc tưới để phun các loại thuốc bổ trợ cho cây trồng. Kích
thước hạt nhỏ, mịn nên sẽ an toàn đối với hoa và cây trồng, không gây hại cho
cây.
Nhắc đến thiết bị tưới phun sương là phải nhắc đến công dụng đầu
tiên của sản phẩm này là chống lãng phí nước. Nếu so với việc tưới thủ công
tốn khá nhiều nước, thì thiết bị này giúp người trồng trọt tiết kiệm được
nguồn tài nguyên quý giá và không thể thiếu đối với sự sống của cây trồng.
Cường độ tưới có thể điều chỉnh cho thích hợp với từng loại cây trồng, cộng
thêm thiết bị có thể tưới trên diện rộng, nên thiết bị này không chỉ chống lãng
phí nước mà còn tiết kiệm thời gian tưới cây.
Lợi thế tiếp theo của thiết bị này là giúp cho người trồng trọt đỡ vất
vả, đỡ tốn công sức tưới hoặc thuê người tưới. Thay vì mất vài giờ đồng hồ
chỉ để tưới cây, trong khi thời gian là tiền bạc, chủ vườn cây có thể dành thời
gian đó để làm việc khác, hoặc ngồi ngắm nhìn khu vườn đang sai trĩu quả
hoặc đang trổ hoa đẹp mắt. Vừa tiết kiệm nước, vừa tiết kiệm công sức lao
động quả là thiết bị đáng phải xem xét để đầu tư.
Thiết bị tưới phun sương cho phép người sử dụng có thể pha thêm
một số dung dịch an toàn chống lại sâu bệnh gây hại. Tuy nhiên, nếu phải
thường xuyên tiếp xúc với các chất này có thể ảnh hưởng đến sức khỏe con
người. Vì thế, sản phẩm này giúp đảm bảo sức khỏe của người dùng. Bên
cạnh đó, với mật độ phun đều, lượng nước và chất phòng ngừa sâu hại không
bị tồn đọng quá nhiều gây ngập úng hay dư thừa chất bảo vệ thực vật.
Với sân vườn nhỏ, khách hàng có thể tự lắp ráp hệ thống tưới phun
sương tự động theo hướng dẫn ghi trên hộp, hoặc theo hướng dẫn của nhà
cung cấp. Đối với diện tích sân vườn lớn hơn, bạn vẫn có thể tự lắp ráp nhưng
6
tốt nhất là nên có sự hỗ trợ kỹ thuật từ phía người bán, vì họ có nhiều kinh
nghiệm và họ sẽ giúp bạn có được hệ thống tưới hiệu quả nhất. Tính năng tự
động không thể không nhắc đến khi nói về sản phẩm này. Người sử dụng chỉ
cần đứng ở đầu nguồn nước để mở vòi, hoặc lắp đặt hệ thống tưới tự động
hẹn giờ, lúc này thiết bị sẽ tưới theo đúng thời gian và lượng nước được cài
đặt sẵn.
Không gây dòng chảy mặt: Các hạt sương có kích thước nhỏ, di
chuyển với vận tốc bé trong không khí.
Độ ẩm đồng đều.
Nhược điểm:
Hệ thống này nếu muốn tưới tự động thì bạn cần đầu tư chi phí để
mua bộ thiết bị hẹn giờ, cảm biến mưa, các vòi phun và đường ống tốt. Đặc
biệt đối với hệ thống lắp đặt ngầm, bạn càng cần có sản phẩm tốt để có thể sử
dụng lâu dài mà không tốn công thay thế bộ phận, chi tiết hay phải sửa lại
đường ống nếu ống dẫn không tốt. Tuy vốn đầu tư ban đầu lớn, nhưng điều đó
không có nghĩa chi phí trung bình cao vì hệ thống thiết bị tưới phun sương có
thể sử dụng từ 10 đến 20 năm. Nếu bạn lấy vốn ban đầu chia cho số năm sử
dụng, bạn sẽ thấy được thiết bị này vừa tiện lợi, lại vừa tốn ít chi phí trung
bình phải bỏ ra.
• Thiết bị sử dụng công nghệ hiện đại đòi hỏi người sử dụng phải có
kiến thức nhất định về sản phẩm, cũng như cách dùng. Với diện tích đất trồng
hay sân vườn lớn, bạn cần có bản thiết kế hoàn chỉnh trước khi bắt tay vào lắp
đặt, chưa kể đến bạn cần có thông tin cách sử dụng sao cho hiệu quả nhất.
Tuy nhiên, bạn cũng không cần quá lo lắng, vì đa phần các nhà cung cấp thiết
bị tưới phun sương uy tín đều có đội ngũ nhân viên kỹ thuật giàu kinh
nghiệm. Họ sẽ giúp đỡ bạn từ khâu thiết kế, lắp đặt, đến vận hành hệ thống
tưới tự động này.
7
Tưới nhot giọt giúp tiết kiệm nước một cách tối đa, giảm đến mức
thấp nhất sự hao hụt về nước do thấm ra đất hay bốc hơi.
Tránh hiện tượng xói mòn, rửa trôi đất, tập trung muối về 1 nơi khiến
đất không đồng đều về dinh dưỡng.
8
Là bước đệm cho cơ giới hóa, tự động hóa trong nông nghiệp, năng
suất lao động tăng lên đáng kể nhưng lại ít tốn nhân công và giảm thời gian
lao động chân tay bởi vì thao tác bón phân hay bơm thuốc bảo vệ thực vật dễ
dàng kết hợp cùng quá trình tưới.
Tưới nhỏ giọt ít phụ thuộc vào cấu trúc địa hình, không phá vỡ kết cấu của
đất, thích hợp với mọi điều kiện địa hình ở nước ta.
Tiết kiệm năng lượng, giảm chi phí vận hành.
Góp phần ngăn chặn cỏ dại, sâu bệnh do chỉ đủ nước cho gốc cây chứ
không phung phí ra các vùng xung quanh.
Và đặc biệt, hệ thống tưới nhỏ giọt luôn duy trì độ ẩm ở mức độ tốt nhất,
phù hợp với từng loại cây trồng, do đó, tăng năng suất cây và giúp cây đạt
chất lượng vượt trội.
Nhược điểm:
Dễ bị tắc ngẽn do rong rêu, bùn, chất cặn trong dinh dưỡng hay
nguồn nước, do đó nguồn dung dịch đi qua ống tưới cần có bộ lọc trước khi
đến cây trồng.
Không thể làm mát cây và tăng khả năng quang hợp của lá nhưng các
hệ thống tưới khác.
Chi phí ban đầu khá cao.
Đòi hỏi người đầu tư phải am hiểu về kỹ thuật tưới nhỏ giọt mới vận
hành được.
Nếu quá trình tưới nhỏ giọt bị gián đoạn chất lượng cây trồng sẽ
xuống cấp cực kỳ nhanh so với những cách tưới khác.
Như vậy, sau khi so sánh những ưu – nhược điểm của hệ thống tưới nhỏ giọt
bạn có thể chọn cho mình cách tưới tiêu hợp lý nhất tùy vào loài cây và khả
năng tài chính của bạn.
Có 2 hệ thống tưới nước nhỏ giọt phổ biến:
9
Tưới nhỏ giọt dọc luống: Được áp dụng đầu tiên trong nông nghiệp
có lẽ là hình thức tưới nhỏ giọt dọc luống. Với khả năng nhân rộng cao, chủ
vườn chỉ cần lắp đặt một đường ống nước và đặt dọc theo các luống cây. Mỗi
gốc cây sẽ lắp thêm một béc để dòng nước chảy nhỏ giọt ra từ từ.
Tưới nhỏ giọt quanh gốc: Từ phương pháp tưới nhỏ giọt dọc luống
cũ, các nhà khoa học đã nghiên cứu và cải tạo thành tưới nhỏ giọt quấn quanh
gốc. Phương pháp này phù hợp để sử dụng cho những loại cây trồng có nhu
cầu cao về lượng nước, nhưng việc áp dụng các biện pháp tưới phun sương lại
không phù hợp.
tưới cảnh quan, sân vườn đều có thế áp dụng tưới tự động thống tưới tự động
thông qua các thiết bị điện tử như bộ hẹn giờ và các thiết bị cơ khí khác. . .
Việc áp dụng hệ thống tưới tự động có thể làm tăng chi phí ban đầu
nhưng về lâu dài các năm sau chi phí để chăm sóc cây trồng sẽ giảm thiểu tối
đa do giảm thiểu về nhân công lao động, tiền điện, tiền nước.
Ưu điểm
So với việc tưới cây thủ công thì hệ thống tưới cảnh quan tự động
giúp tiết kiệm được 60% lượng nước. Chính điều này đã giúp giảm chi phí
tiền nước hàng tháng của mỗi gia đình, mỗi công ty. Đồng thời cũng giúp
giảm được sức lực chăm sóc của con người. Không chỉ vậy, đặc điểm của hệ
thống này đó là được lắp đặt cố định nên nó sẽ giúp đảm bảo tuổi thọ lâu dài
cho các thiết bị tưới tiêu.
Bên cạnh đó, hệ thống tưới cảnh quan còn giúp bạn tiết kiệm được
nhiều thời gian chăm sóc cây, từ đó có thêm thời gian để tập trung vào những
việc khác trong cuộc sống. Khu vườn của bạn sẽ trở nên tươi mới, sống động
hơn nếu được lắp đặt hệ thống tưới cảnh quan tự động. Từ đó công trình sân
vườn do bạn tâm huyết chăm sóc sẽ trở nên ấn tượng và thu hút hơn rất nhiều.
Điều này cũng giúp con người thư thái và thoải mái hơn khi ngắm những loại
cây cảnh ưa thích. Vì hệ thống này có bộ cảm biến và tắt tự động vì vậy nó
giảm lượng bụi bẩn, ô nhiễm vào nguồn nước từ các dòng chảy, giúp bảo vệ
môi trường trong lành hơn.
Nhược điểm:
Nhược điểm của hệ thống tưới cảnh quan tự động là chi phí đầu tư
ban đầu khá cao so.
Để vận hành hệ thống hoạt động tốt và hiệu quả thì cần người có kỹ
thuật chuyên môn, am hiểu nguyên lý hoạt động của hệ thống tưới tự động
11
nước cũng như tần số tưới cho phù hợp với từng loại cây. Bên cạnh đó,
Droplet cũng tự tra cứu dữ liệu về tình hình thời tiết của địa điểm làm việc để
xác định mưa/nắng nhằm đưa ra lịch làm việc thích hợp. Bộ điều khiển tưới
cây tự động Israel dễ dàng được lập trình theo yêu cầu tưới của người sử
dụng. Chỉ cần vài thao tác lập trình, cung cấp cho hệ thống một nguồn nước
đầu vào và dẫn các đầu tưới đến các vị trí cần tưới là đã hoàn tất việc lắp đặt
hệ thống tưới tự động theo công nghệ tưới tiên tiến.
1.6. Các nghiên cứu trong nước
Ở nước ta đã có nhiều nghiên cứu và ứng dụng hệ thống tự động vào
trong cuộc sống. Người dân đã sáng tạo ra các hệ thống bán tự động giúp tiết
kiệm sức lao động, hiệu quả mang lại cao hơn so với tưới thủ công. Tuy nhiên
hệ thống này còn nhiều nhược điểm cần khắc phục để mang lại hiệu quả cao
nhất có thể. Ở các trường đại học chuyên ngành kĩ thuật đã có nhiều đề tài về
hệ thống tưới nước tự động do sinh viên thực hiện. Tuy nhiên vẫn còn nhiều
mặt hạn chế cần khắc phục.
Hệ thống tưới phun tự động đa năng- một công trình khoa học của 2
giảng viên rường Cao đẳng Công nghiệp (CĐCN) Huế: Tiến sĩ Lê Văn Luận
và thạc sĩ Lê Đình Hiếu. Các thiết bị chính của hệ thống tưới phun đa năng
này gồm có 1 cảm biến đo nhiệt độ và 1 cảm biến đo độ ẩm của đất được cài
đặt tại nhà màng trồng hoa, hệ điều khiển được lập trình trên PLC-S7- 1200.
Khi các cảm biến cho thông số độ ẩm của đất hoặc nhiệt độ không khí tại nhà
màng báo hiệu cần nước, tín hiệu này sẽ đưa đến hộp điều khiển PLC. Tại đây
các chức năng sẽ được điều khiển tự động để nhận nước và đưa tưới tự động
tưới phun theo các vòi phun lắp đặt, và sẽ tự ngừng trong đúng 5 phút, khi
cảm biến báo độ ẩm hoặc nhiệt độ đã đạt yêu cầu.
1.7. Quy trình công nghệ
- Cảm biến đo độ ẩm, nhiệt độ truyền dữ liệu đến bộ điều khiển để tưới nước
một cách tự động (khô thì tưới, thừa nước thì ngừng luôn duy trì độ ẩm ở mức
13
ổn định để cây phát triển nhanh). Có thể điều khiển tưới thước bằng tay khi
cần thiết.
- Cảm biến đo mức nước truyền dữ liệu đến bộ điều khiển để xác định xem có
cần bơm nước vào bình hay không (cạn thì bơm, đầy thi tự ngắt). Có thể điều
khiển máy bơm bằng tay khi cần thiết.
- Cảm biến đo áp nước trên đường ống từ máy bơm lên bể nước truyền dữ
liệu đến bộ điều khiển để xem áp suất nước có quả tải đường ống không.
- Khi nước được tưới ở đâu thì sẽ có đèn báo hiệu ở vị trí đó.
1.8. Các vấn đề cần nghiên cứu bổ sung
Các nghiên cứu ở trên đã được ứng dụng trong thực tiễn. Tuy nhiên, do
giá thành quá cao nên nhiều người chưa có điều kiện để sử dụng các thiết bị
đó. Vì vậy, em đã thực hiện nghiên cứu hệ thống tưới sử dụng cảm biến độ
ẩm của không khí để quyết định thời gian tưới cho cây trồng. Hệ thống chế
tạo đơn giản, chi phí thấp dễ sửa chữa…
1.9. Kết luận chương 1
Qua những thông tin về nền nông nghiệp, công nghiệp của Việt Nam và
của các nước phát triển trên thế giới nên trên. Chúng ta thấy rằng không áp
dụng công nghệ cao vào sản xuất nông nghiệp ở Việt Nam là một thiếu sót rất
lớn đối với một đất nước chủ yếu về nông nghiệp. Tuy nhiên để áp dụng công
nghệ hiện đại như ở Israel hay Nhật Bản vào nền nông nghiệp nước ta ngay
lúc này là điều rất khó khăn vì những hệ thống đó đòi hỏi phải đầu tư rất cao
với những người nông dân ở Việt Nam. Từ thực tế đó chúng em thấy rằng
mình hoàn toàn có thể học hỏi và thiết kế những hệ thống tự động hóa đơn
giản trong nông nghiệp với giá thành rẻ hơn nhưng vẫn đáp ứng được yêu cầu
của một hệ thống thông minh. Qua quá trình khảo sát tại một số khu vườn và
thực tế trồng trọt tại gia đình, để tài của em làm là “Thiết kế hệ thống tưới
nước tự động sử dụng vi điều khiển PIC 18F4520". Đây là một đề tài có tính
ứng dụng rất thực tế. Nội dung thiết kế chi tiết sẽ được trình bày ở các chương
tiếp theo.
14
CHƯƠNG 2
THIẾT KẾ HỆ THỐNG TƯỚI NƯỚC TỰ ĐỘNG
2.1 Xây dựng sơ đồ khối
Theo những gì đã trình bày ở trên và khảo sát thực tế. Em đưa ra sơ đồ
khối của hệ thống như sau
khiển sử dụng trong robot, các hệ thống đo lường giám sát, các hệ thống càng
thông minh, hiện đại thì vai trò của vi điều khiển càng ngày càng quan trọng.
Hiện nay trên thị trường có rất nhiều họ vi điều khiển như: 6811 của
Motorola, 8051 của Intel, Z8 của Zilog, PIC của Microchip Technology…
Trong đề tài này nghiên cứu về PIC 18f4520 vì nó có nhiều ưu điểm hơn
các loại vi điều khiển khác như: ADC 10 bit, PWM 10 bit, EEPROM 256
Byte, Comparater…ngoài ra nó còn được các trường đại học trên thế giới, đặc
biệt là các nước Châu Âu hầu hết xem PIC là một môn học trong bộ môn vi
điều khiển. Nói vậy các bạn cũng thấy sự phổ biến rộng rãi của nó. Ngoài ra
PIC còn được rất nhiều nhà sản xuất phần mềm tạo ra các ngôn ngữ hõ trợ
cho việc lập trình ngoài ngôn ngữ Assembly như: MPLAB, CCSC, HTPIC…
Các đặc tính ngoại vi bao gồm các khối chức năng sau:
- CPU tốc độ cao có 75 cấu trúc lệnh, nếu được cho phép có thể kéo dài
đến 83 cấu trúc lệnh.
- Hầu hết các cấu trúc lệnh chỉ mất một chù kì máy, ngoại trừ lệnh rẽ
nhánh chương trình mất hai chu kì máy.
- Tốc độ làm việc: Xung clock đến 40MHz, tốc độ thực thi lệnh 125ns.
- Bộ nhớ chương trình (Flash Program Memory) là 32 Kbyte.
- Bộ nhớ dữ liệu SRAM là 1536 byte.
- Bộ nhớ dữ liệu EEFROM là 256 byte.
- 5 port vào/ ra (PORTA, PORTB, PORT C, PORT D, PORT E).
- 4 bộ Timer (Timer 0, Timer 1, Timer 2, Timer 3).
- 1 capture/ compare/ PWM modules.
- 1 enhanced capture/ compare/ PWM modules.
- Các chuẩn giao tiếp nối SSP (Synchronous Serial Port), SPI (Serial
Peripheral Interface), I2C (Inter- Intergrated Circuit).
- Chuẩn giao tiếp USART nối với 9 bit địa chỉ.
- Cổng giao tiếp song song PSP (Parrallel Slave Port).
- 13 kênh chuyển đổi ADC 10 bit.
17
Bên cạnh đó là một vài đặc tính khác nhau của vi điều khiển như:
- Bộ nhớ Flash với khả năng ghi xóa 100.000 lần.
- Bộ nhớ EEFROM với khả năng ghi xóa 1.000.000 lần.
- Flash/ dữ liệu bộ nhớ EEFROM có thể lưu trữ hàng trăm năm.
- Khả năng tự nạp chương trình với sự điều khiển của phần phềm.
- Watchdog Timer với bộ dao động trong.
- Chức năng bảo mật mã chương trình.
- Chế độ Sleep.
- Có thể hoạt động với nhiều dạng Oscillator khác nhau.
2.2.1.2. Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC18F4520 gồm có bộ nhớ chương
trình (program memory), bộ nhớ dữ liệu RAM (Data RAM) và bộ nhớ dữ
liệu EEPROM (Data EERPROM).
Bộ nhớ chương trình: Dòng vi điều khiển Pic18xxxx là thiết bị với 21 bit
bộ đếm chương trình PC (Program counter) có thể quản lý 2Mbyte bộ nhớ
chương trình. Với Pic18F4520 có 32Kbytes bộ nhớ Flash có thể lưu trữ
lên tới 16,384 câu lệnh đơn, dòng Pic này có hai vector ngắt: Reset vector
có địa chỉ 0000H và Interrupt vector ở địa chỉ 0008H và 0018H.
18
này được điều khiến bởi thanh ghi TRISA (địa chi 92H). Muốn xác lập chức
năng của một chân trong PORTA là input, ta "set" bit điều khiến tương ứng
với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của
một chân trong PORTA là output, ta "clear" bit điêu khiến tương ứng với
chân đó trong thanh ghi TRISA. Thao tác này hoàn toàn tương tự đối với các
PORT và các thanh ghi điều khiến tương ứng TRIS (đối với PORTA là
TRISA, đối với PORTB là TRISB, đổi với PORTC là TRISC, đối với
PORTD là TRISD, đổi với PORTE là TRISE).
Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào
analog, ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP
(Master Synchronous Serial Port).
Các thanh ghi SFR liên quan đến PORTA bao gồm:
+ PORTA (địa chi 80H): chức giá trị các pin trong PORTA.
+ TRISA (địa chi 92H): điều khiển xuất nhập.
+CMCON (địa chỉ B4H): thanh ghi điều khiển bộ so sánh điện áp.
+ CVRCON (địa chỉ B5H): thanh ghi điều khiến bộ so sánh điện áp.
+ ADCON1 (địa chỉ ClH): thanh ghi điều khiển bộ ADC.
- PORTB:
PORTB(RB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là
TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá
trình. Nạp chương trình cho vi điều khiến với nhiều chế độ khác nhau.
PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích
hợp chức năng điện trở kéo lên được điều khiển bởi chương trình.
Các thanh ghi liên quan đến PORTB bao gồm:
+ PORTB (địa chỉ 81H): chứa giả trị các pin trong PORTB.
+ TRISB (địa chi 93H): điều khiển xuất nhập.
- PORTC:
PORTC (RC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương
ứng là TRISB. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so
21
sánh, bộ Timer1, bộ PWM và các chuân giao tiếp nối tiếp I2C, SPI, SSP,
USART.
Các thanh ghi liên quan đến PORTC:
+ PORTC (địa chi 82H): chứa giá trị các pin trong PORTC.
+ TRISC (địa chi 94H): điều khiến xuất nhập.
- PORTD:
PORTD (RD) gồm 8 chân I/O. Thanh ghi điều khiến tương ứng là TRISD.
PORTD còn là cổng xuất dữ liệu của chân giao tiếp PSP (Parallel Slave Port).
Các thanh ghi liên quan đến PORTD bao gồm:
+ PORTD (địa chỉ 83H): chứa giá trị các pin trong PORTD.
+ TRISD (địa chỉ 95H): điều khiển xuất nhập.
- PORTE:
PORTE (RE) gồm 3 chân I/O. Thanh ghi điều khiến xuất nhập tương ứng
là TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn
là các chân điều khiển của chuẩn giao tiếp PSP.
Các thanh ghi liên quan đến PORTE bao gồm:
+ PORTE (địa chỉ 85h): chứa giá trị các chân trong PORTE.
+ TRISE (địa chỉ 96h): điều khiển xuất nhập và xác lập các thông số cho
chuẩn giao tiếp PSP.
+ ADCON1(địa chỉ C1H): thanh ghi điều khiển khối ADC.
2.2.2. Khối cảm biến nhiệt độ và độ ẩm.
2.2.2.1. Một số cảm biến nhiệt đô và độ ẩm thông dụng
Hiện nay trên thị trường có rất nhiều cảm biến do nhiệt độ và độ ẩm như:
- LM35, LM335…: Cảm biến đo nhiệt độ.
22
IC555. Như vậy chỉ cần đo tần số đầu ra là có thể đo được điện dung
của HS1101.
ghi này thông qua giao diện I2C. Bộ nhớ DS1307 có tất cả 64 thanh ghi 8 bit
được đánh địa chỉ từ 0 đến 63 từ 00H đến 3FH theo hệ hexa). Tuy nhiên thực
chất chỉ có 8 thanh ghi đầu là dùng cho chức năng “đồng hồ" (RTC) còn lại
56 thanh ghi bỏ trống có thể dùng chứa biến tạm như RAM nếu muốn. Bảy
thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao gồm: giây
(SECOND), phút (MINUTES), giờ (HOURS), thứ (DAY), ngày (DATE),
tháng (MONTH) và năm (YEAR). Việc ghi giá trị vào 7 thanh ghi này tương
đương với việc “cài đặt" thời gian khởi động cho RTC. Việc đọc giá trị từ 7
thanh ghi là đọc thời gian thực mà chip tạo ra.
2.2.3.3. Sơ đồ tổ chức bộ nhớ của Ds1307
Hình 2. 13. Tổ chức bộ nhớ của các thanh ghi thời gian của Ds1307 [8]
Tổ chức của các thanh ghi thời gian:
- Thanh ghi giây (SECONDS):
29
+ Thanh ghi này là thanh ghi đầu tiên trong bộ nhớ của Ds1307 có địa chỉ là
0x00.
+ Bốn bit thấp của thanh ghi này chứa mà BCD 4 bit của chữ số hàng đơn vị
của giá trị giây. Do giá trị cao nhất của chữ số hàng chục là 5 (không có giây
60) nên chi cần 3 bit (các bit SECOND là 6:4) là có thể mà hóa được (số 5=
101). Bit cao nhất (bit 7) là 1 điều khiển có tên CH (Clock halt - treo đông
hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị vô hiệu hóa đồng
hồ không hoạt động. Vì vậy, nhiết thiết phải reset bit này xuống 0 ngay từ
đầu.
- Thanh ghi phút (MINUTES):
+ Có địa chỉ 0x01H chứa giá trị phút của đồng hồ.
+ Tương tự như thanh ghi SECONDS chi có 7 bit của thanh ghi này được
dùng lưu mã BCD của phút, bit 7 luôn luôn bằng 0.
- Thanh ghi giờ (HOURS):
+ Đây là thanh ghi phức tạp nhất trong các thanh ghi thời gian. Có địa chỉ là
0x02H.
+ Trước hết 4bit thấp của thanh ghi này được dùng cho chữ số hàng đơn vị
của giờ. Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ (gọi là mode) là 12h
và 24h. Bit 6 xác lập hệ thống giờ. Nếu bit 6 = 0 thì hệ thống 24h được chọn
khi đó 2 bit cao 4 và 5 dùng mã hóa chữ số hàng chục của giá trị giờ. Do giá
trị lớn nhất của chữ số hàng chục trong trường hợp này là 2 (= 10 binary) nên
2 bit 4 và 5 là đủ để mã hóa. Nếu bit 6 bằng 1 thì hệ thống 12h được chọn, với
trường hợp này chỉ có bit 4 dùng mã hóa chữ số hàng chục của giờ, bit 5 chỉ
buổi trong ngày (AM hoặc PM). Bit 5 = 0 là AM, bit 5 = 1 là PM. Bit 7 luôn
bằng 0.
- Thanh ghi thứ (DAY):
+ Nằm ở địa chi 0x03H.
+ Thanh ghi DAY chi mang giá trị từ 1 đến 7 tương ứng từ chủ nhật đến thứ 7
trong 1 tuần. Vì thế chỉ có 3 bit thấp trong thanh ghi này có nghĩa.
30
- Các thanh ghi còn lại có cấu trúc tương tự, DATE chứa ngày trong 1 tháng
(1 đến 31), MONTH chứa tháng trong 1 năm (1 đến 12) và YEAR chứa năm
(00 đến 99). Thanh ghi YEAR của DS1307 chỉ dùng cho 100 năm, nên giá trị
năm chỉ có 2 chữ số, phần đầu của năm do người dùng tự thêm vào (ví dụ
20xx). Ngoài các thanh ghi trong bộ nhớ, DS1307 còn có một thanh ghi năm
riêng khác gọi là con trỏ địa chỉ hay thanh ghi địa chỉ (Address Register). Giá
trị của thanh ghi này là địa chỉ của thanh ghi trong bộ nhớ mà người dùng
muốn truy cập.
2.2.4. Khối hiển thị LCD
LCD 16x2 giao tiếp theo phương pháp song song kết hợp mã lệnh với
chân điều khiển.
Chức năng các chân:
+ Vss: Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của
mạch điều khiển.
+ VDD: Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
VCC = 5V của mạch điều khiển.
+ VEE: Điều chỉnh độ tương phản của LCD.
+ RS: Chân chọn thanh ghi (Registor select). Nối chân RS với mức logic "0"
(GND) hoặc mức logic "1" (VCC) để chọn thanh ghi. Logic "0": Bus DB0 ->
DB7 sẽ nối với thanh ghi lệnh I của LCD (ở chế độ “ghi" – write) hoặc nối
với bộ đếm địa chỉ của LCD (ở chế độ “đọc" - read). Logic "1": Bus DB0 ->
DB7 sẽ nối với thanh ghi DR bên trong LCD. Chân chọn chế độ đọc/ghi
(Read/Write). Nổi chân R/W với mức logic "0" để LCD hoạt động ở chế độ
ghi, hoặc R/W nối với logic "1" để LCD ở chế độ đọc.
+ R/W: Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên 9. bus DB0
-> DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chấn E. Chế
độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào (chấp nhận) thanh ghi bên
trong nó khi phát hiện một xung (high- to- low transition) của tín hiệu chân E.
Chế độ đọc: Dữ liệu được LCD xuất ra DB0> DB7 khi phát hiện sườn lên
(low - to- high transition) ở chân E và được LCD giữ ở bus đến khi nào chân
E xuống mức thấp.
+ DB0 ->DB7: Tám đường của bus dữ liệu dùng để trao đối thông tin với
MPU.
Có 2 chế độ sử dụng 8 đường bus này:
+Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường với bit MSB là bit DB7.
+ Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 -> DB7 bit MSB là
bit DB7.
+A: Nguồn dương cho đèn nền.
32
Hai ngõ ra được mắc vào hai chân 13 (OSCI) và 14 (OSC2) để cung
cấp xung cho vi điều khiển làm việc.
2.3. Giao thức I2C
2.3.1. Giới thiệu
Đầu năm 1980 Phillips Semiconductor đã phát triển một chuẩn giao
tiếp nối tiếp 2 dây được gọi là I2C. I2C là tên viết tắt của cụm từ Inter-
Intergrated Circuit. Đây là đường Bus giao tiếp giữa các IC với nhau. I2C
mặc dù được phát triển bởi Phillips, nhưng nó đã được rất nhiều nhà sản xuất
IC trên thế giới sử dụng. I2C trở thành một chuẩn công nghệ cho các giao tiếp
điều khiển, có thể kể ra đây một vài tên tuổi ngoài Phillips như: Texas
Intrument (TI), MaximDallas, Analog Device, National Semiconductor... Bus
I2C được sử dụng là bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau
như các loại vi điều khiển 8051, PIC, AVR, ARM…chip nhớ như: RAM tĩnh
(Static Ram), EEPROM, bộ chuyển đổi tương tự số (ADC)…
2.3.2. Đặc điểm giao tiếp I2C
Sau đây là một số đặc điểm quan trọng của giao thức giao tiếp I2C:
- Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết bị / IC
nào trên mạng I2C
- Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao
tiếp UART. Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ
khi nào cần thiết
- Cơ chế đơn giản để xác thực dữ liệu được truyền
- Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên
bus I2C
34
- Các mạng I2C dễ dàng mở rộng. Các thiết bị mới có thể được kết nối
đơn giản với hai đường bus chung
Hình 2. 16. Kết nối thiết bị vào bus I2C ở chế độ chuẩn [11]
Cả hai đường bus I2C (SDA, SCL) đều hoạt động như các bộ lái cực
máng hở (open drain). Nó có nghĩa là bất kỳ thiết bị / IC trên mạng I2C có thể
lái SDA và SCL xuống mức thấp, nhưng không thể lái chúng lên mức cao. Vì
vậy, một điện trở kéo lên (khoảng 1 kΩ đến 4,7 kΩ) được sử dụng cho mỗi
đường bus, để giữ cho chúng ở mức cao (ở điện áp dương) theo mặc định.
Lý do sử dụng một hệ thống cực máng hở (open drain) là để không xảy
ra hiện tượng ngắn mạch, điều này có thể xảy ra khi một thiết bị cố gắng kéo
đường dây lên cao và một số thiết bị khác cố gắng kéo đường dây xuống thấp.
Như hình về ta thấy có thể có rất phiều thiết bị (ICs) cùng được kết nối
vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị
bởi môi thiết bị sẽ được nhận ra bởi một địa chỉ duy nhất với một quan hệ chủ
tớ (Master/Slave) tồn tại trong thời gian kết nối. Mỗi thiết bị có thể hoạt động
35
như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận. Hoạt
động truyền hay nhận còn phụ thuộc vào việc thiết bị đó là chủ hay tớ.
Một thiết bị hay một IC khi kết nối với bus I2C ngoài một địa chỉ (duy
nhất) để phân biệt nó còn được cấu hình là thiết bị chủ hay tớ. Sở dĩ có sự
phân biệt này là bởi vì trên một bus I2C thì quyền điều khiển thuộc về thiết bị
chủ. Thiết bị chủ nắm vai trò tạo xung đồng hồ cho toàn hệ thống, khi giữa 2
thiết bị chủ - tớ giao tiếp thì thiết bị chủ giữ vai trò chủ động, còn thiết bị tớ
giữ vai trò bị động trong việc giao tiếp.
2.3.3. Chế độ hoạt động (tốc độ truyền)
Các bus I2C có thể hoạt động ở ba chế độ, hay nói cách khác các dữ
liệu trên bus I2C có thể được truyền trong ba chế độ khác nhau.
- Chế độ tiêu chuẩn (Standard mode)
-Chế độ nhanh (Fast mode) - Chế độ cao tốc High-Speed (HS) mode
• Chế độ tiêu chuẩn:
- Chế độ tiểu chuẩn ban đầu được phát hành vào đầu những năm 80. Nó
có tốc độ dữ liệu tối đa là 100kbps.
- Nó sử dụng 7 bit địa chỉ và 112 bit địa chỉ tớ.
• Chế độ tăng cường hoặc chế độ nhanh:
- Tốc độ dữ liệu tối đa được tăng lên đến 400 kbps.
- Để ngăn chặn gai tiếng ổn, ngõ vào của thiết bị Fast mode là Schmitt -
triggered.
- Chân SCL và SDA của một thiết bị tớ I2C ở trạng thái trở kháng cao
khi không cấp nguồn.
• Chế độ cao tốc:
- Chế độ này được tạo ra chủ yếu để tăng tốc độ dữ liệu lên đèn 36 lần
so với chế độ tiêu chuẩn.
- Nó cung cấp 1.7Mbps (với Cb = 400pF) và 3.4Mbps (Cb= 100pF).
Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau:
- Một chủ một tớ (one master - one slave).
36
- Khi thiết bị tớ trên bus I2C có địa chỉ đúng với địa chỉ mà thiết chủ gửi
sẽ phản hồi lại bằng một xung ACK.
- Giao tiếp giữa thiết bị chủ và tớ trên bus dữ liệu bắt đầu. Cả chủ và thể
nhận hoặc truyền dữ liệu tùy chọn vào việc truyền thông là đọc hay ghi.
Bộ truyền gửi 8 bit dữ liệu tới bộ nhận, bộ nhận trả lời với một bit
ACK.
- Để kết thúc quá trình giao tiếp, thiết bị chủ tạo ra một điều kiện Stop.
2.3.4. Tín hiệu START và STOP.
START và STOP là những điều kiện bắt buộc phải có khi một thiết bị
chủ muốn thiết lập giao tiếp với một thiết bị nào đó trên bus I2C. START là
điều kiện khởi đầu, báo hiệu bắt đầu của giao tiếp, còn STOP báo hiệu kết
thúc một giao tiếp. Hình dưới đây mô tả điều kiện START và STOP.
Ban đầu khi chưa thực hiện quá trình giao tiếp, cả hai đường SDA và
SCL đều ở mức cao (SDA = SCL = HIGH). Lúc này bus I2C được coi là rỗi
(“bus free”), sẵn sàng cho một giao tiếp. Hai điều kiện START và STOP là
không thể thiếu trong việc giao tiếp giữa các thiết bị I2C với nhau.
38
Tín hiệu START: một sự chuyển đổi trạng thái từ cao xuống thấp trên
đường SDA trong khi đường SCL đang ở mức cao (cao = 1, thấp = 0) báo
hiệu một tín hiệu START.
Tín hiệu STOP: một sự chuyển đổi trạng thái từ mức thấp lên cao trên
đường SDA trong khi đường SCL đang ở mức cao. Cả hai tín hiệu START và
STOP đều được tạo ra bởi thiết bị chủ. Sau tín hiệu START, bus I2C coi như
đang trong trạng thái làm việc (“busy”). Bus I2C sẽ rỗi, sẵn sàng cho một giao
tiếp mới sau khi nhận tín hiệu STOP từ phía thiết bị chủ.
Sau khi có một tín hiệu START, trong quá trình giao tiếp, khi có một
tin hiệu START lặp lại thay vì một tín hiệu STOP thì bus I2C vẫn tiếp tục
trong trạng thái bận. Tín hiệu START và lặp lại START (Repeated START)
đều có chức năng giống nhau là khởi tạo một giao tiếp.
Truyền dữ liệu: Mỗi xung clock có một bit dữ liệu được truyền. Mức
tín hiệu SDA chỉ được thay đổi khi xung clock đang ở mức thấp và ổn định
khi xung clock ở mức cao. Thiết bị tớ có thể lấy mẫu dữ liệu khi xung clock ở
mức cao.
39
động và chức năng của từng khối. Bên cạnh đó chúng ta cũng cần tìm hiểu
thêm về các giao thức truyền dữ liệu của vi điều khiển PIC 18F4520 với các
thiết bị ngoại vi như: Giao thức I2C, RS232… để phục vụ cho việc viết
chương trình cho mạch điện ở chương tiếp theo.
41
CHƯƠNG 3
MÔ HÌNH THỰC NGHIỆM VÀ KẾT QUẢ
3.1. Mô hình thực nghiệm
3.1.1. Sơ đồ nguyên lí
Hình 3. 1. Sơ đồ nguyên lí
Sơ đồ nguyên lí gồm 7 khối: Khối nguồn, khối thời gian thực, khối nút
nhấn, khối vi điều khiển, khối cảm biến, khối LCD, khối thiết bị (máy bơm).
Khi mạch được cấp điện áp 12VDC, khối cảm biến và khối thời gian thực sẽ
lấy các giá trị nhiệt độ, độ ẩm và thời gian đưa về khối vi điều khiển để xử lí.
Sau khi nhận dữ liệu từ các khối hỗ trợ, vi điều khiển tiến hành so sánh các
giá trị thời gian, nhiệt độ, độ ẩm với các giá trị tương ứng được nhập từ 4 nút
nhấn ở khối Button. Sau khi kiểm tra và tính toán các giá trị trên, nếu thỏa mã
điều kiện cài đặt, vi điều khiển sẽ phát tín hiệu cho khối thiết bị (ở đây là máy
bơm), khi máy bơm nhận được tín hiệu của vi điều khiển sẽ thực hiện bơm
nước tự động trong khoảng thời gian cài đặt tại khối nút nhấn. Tất cả các giá
trị thời gian, nhiệt độ, độ ẩm và các bước cài đặt cho hệ thống sẽ được hiển
thị trên LCD 16x2.
42
Hình 3. 2. Mạch in 2D
43
Khi thời gian của mạch chưa được cập nhật so với thực tế, ta tiến hành
cài đặt thời gian thông qua nút Set_BT.
được mạch điện thông qua phần mềm Proteus. 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à
công cụ mô phỏng cho các loại vi điều khiển khá tốt, nó hỗ trợ các dòng vi
điều khiển PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430,
ARM7/LPC2000 ... 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 cách hiệu quả. Proteus là bộ
công cụ chuyên về mô phỏng mạch điện tử.
- Viết chương trình cho hệ thống dựa trên phần mềm CCS. Đây là trình
biên dịch bằng ngôn ngữ C cho dòng vi điều khiển PIC đang được sử dụng
phổ biến hiện nay hơn một số trình biên dịch khác vì nó là sự tích hợp của 3
trình biên dịch riêng biệt cho 3 dòng PIC khác nhau: PCB cho dòng PIC 12-
bit opcodes, PCM cho dòng PIC 14-bit opcodes, PCH cho dòng PIC 16 và 18-
bit. Tất cả 3 trình biên dich này đuợc tích hợp lại vào trong một chương trình
bao gồm cả trình soạn thảo và biên dịch là CCS, phiên bản mới nhất là
PCWH Compiler Ver 3.227. Giống như nhiều trình biên dich C khác cho PIC,
CCS giúp cho người sử dụng nắm bắt nhanh được vi điều khiển PIC và sử
dụng PIC trong các dự án. Các chương trình điều khiển sẽ được thực hiện
nhanh chóng và đạt hiệu quả cao thông qua việc sử dụng ngôn ngữ lạp trình
cấp cao – Ngôn ngữ C Tài liệu hướng dẫn sử dụng có rất nhiều, nhưng chi tiết
nhất chính là bản Help đi kèm theo phần mềm (tài liệu Tiếng Anh). Trong bản
trợ giúp nhà sản xuất đã mô tả rất nhiều về hằng, biến, chỉ thị tiền xủa lý, cấu
trúc các câu lệnh trong chương trình, các hàm tạo sẵn cho người sử dụng…
Bên cạnh đó, đi sâu vào tìm hiểu giao thức I2C- là chuẩn giao tiếp
ngoại vi cho rất nhiều loại IC khác nhau như: PIC, AVR, ARM…
Thiết kế được hệ thống đơn giản và đã chạy thực nghiệm trong thực tế.
3.2.2. Kết luận chương 3
Đề tài có tính ứng dụng khá nhiều trong cuộc sống:
- Tiết kiệm nước: Với việc sử dụng cảm biến đo nhiệt độ và độ ẩm.
46
Người sử dụng có thể thiết lập được thời gian máy bơm hoạt động để tưới
nước trong một khoảng thời gian hợp lí.
- Tiết kiệm thời gian: Với khả năng hoạt động độc lập và không cần
nhiều sự tác động của con người. hoàn toàn có thể tự vận hành. Với các hệ
thống có khả năng “cảm nhận” nhiệt độ hoặc độ ẩm thì nó hoàn toàn có khả
năng đáp ứng đúng lúc và kịp thời nhu cầu của cây trồng dù trời mưa hay
nắng.
- Thêm nữa, hệ thống này giúp giảm thiểu tối đa nhân công và số lượng
người lao động nếu ứng dụng trên một diện tích tưới lớn.
Do việc thiết kế chỉ dừng lại ở mô hình nên chưa áp dụng được một số
công nghệ mới, hiện đại: Trí tuệ nhân tạo (AI), IOT…
Hướng phát triển
Đề tài có thể phát triển thêm không chỉ tự động tưới mà chúng ta có thể
theo dõi và điều khiển hệ thống qua Internet, module SIM hoặc máy tính để
có thể điều khiển hệ thống từ xa chỉ cần các thiết bị được kết nối với mạng
Internet, thuận tiện cho việc điều khiển hệ thống khi đi công tác để đảm bảo
hệ thống có thể hoạt động một cách tối ưu nhất.
Vì lí do thời gian và những lí do khách quan nên đồ án được thực hiện
vẫn còn nhiều khiếm khuyết. Em rất mong nhận được những ý kiến đóng góp
quý báu của thầy cô.
47
PHỤ LỤC
#include <main.h>
#include <define_18f4520.h>
#use i2c(Master, sda = PIN_C4, scl=PIN_C3)
#include <sht.c>
#include <ds1307.c>
#define Slave_add 0x68 //Dia chi thanh ghi Ds1307
#define Read 1
#define Write 0
#define temp_add 10 //Dia chi eeproom nhiet do
#define humi_add 15 //Dia chi eeproom do am
#define hour_add 1 //Dia chi eeproom gio kiem tra
#define minute_add 2 //Dia chi eeproom phut kiem tra
#define time_set_start_add 20 // Dia chi eeprom thoi diem bat dau kiem tra
nhiet do , do am
#define time_turn_on_pump_add 25 //Dia chi eeproom bat may bom trong
bao lau
#include <lcd.c>
// Tong so phut tinh tu 1 thang 1, vi du : het thang 2,tinh tu 1/1 da troi qua
84960 phut
boolean flag_turn_on_pump = 0;
int32 time_work;
void display_time();
void display_tem();
void main_ini();
void write_float_eeporm(long int n, float data);
float read_float_eeprom(long int n);
void write_int32_eeporm(long int n, int32 data);
int32 read_int32_eeprom(long int n);
void control_input_value_int(int8 *input_value);
void set_time();
void control_input_value_float(float *input_value);
void set_conditon_turn_on_pump();
void check_turn_on_pump();
void check_turn_off_pump();
void check_before_start();
void main()
{
main_ini();
lcd_init();
lcd_gotoxy(1,1);
lcd_putc(" Duc Quynh ");
delay_ms(2000);
ds1307_init();// khoi tao DS1307
51
// ds1307_set_date_time(6,5,20,5,22,48,0);
ds1307_get_date(day,month,yr,dow);
ds1307_get_time(hrs,min,sec);
if (Set_BT == 0 )
{
set_time(); // Set time by BUTTON
}
delay_ms(2);
SHT_Init(SHT_14_12_BIT);
check_before_start();
while(TRUE)
{
ds1307_get_date(day,month,yr,dow);
ds1307_get_time(hrs,min,sec);
// delay_us(1);
display++;
///display= 30 ; //Test chi hien thi do am
if (display < 40)display_time(); // 2s hien thi thoi gian
if (display >= 40) // 2s hien thi nhiet do , do am
{
display_tem();
if (display >= 80)display = 0;
}
SHT_ReadTemHumi(&nhiet_do,&do_am);
check_turn_on_pump();
check_turn_off_pump();
if (Set_BT == 0 )
{
52
set_conditon_turn_on_pump();
}
if (Up_BT == 0 )
{
Led_test =1 ;
May_Bom=1;
}
if(Down_BT == 0)
{
Led_test = 0 ;
May_Bom=0;
}
}
}
void display_time()
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Time: %d:%d:%d ",hrs,min,sec);
if (flag_turn_on_pump ==0)
{
lcd_gotoxy(1,2);
printf(lcd_putc,"Check:%d:%dIn%d ",hrs_point,min_point,
time_turn_on_pump );
}
else
{
53
lcd_gotoxy(1,2);
printf(lcd_putc,"%d-%d/Remain: %Lu ",hrs_point,min_point,
(time_turn_on_pump- time_work-1) );
}
}
void display_tem()
{
lcd_gotoxy(1,1);
printf(lcd_putc," T:%2.1f/H:%2.1f ",nhiet_do,do_am);
lcd_gotoxy(1,2);
printf(lcd_putc,"Set:%2.1f&%2.1f ",temp_point,humi_point);
}
void main_ini()
{
//Set Pin OF LCD is Output
TRISB3 = 0 ;
TRISB5 = 0 ;
TRISB4 = 0 ;
TRISB2 = 0 ;
TRISB1 = 0 ;
TRISB0 = 0 ;
TRISD7 = 0 ;
TRIS_Led_test = 0 ;
TRIS_May_Bom = 0 ;
TRIS_Up_BT = 1;
54
TRIS_Down_BT = 1;
TRIS_Set_BT = 1;
TRIS_Next_BT = 1;
// Read eeprom
temp_point = read_float_eeprom(temp_add);
humi_point = read_float_eeprom (humi_add);
hrs_point = read_EEPROM (hour_add);
min_point = read_EEPROM (minute_add);
time_turn_on_pump = read_EEPROM (time_turn_on_pump_add);
}
void write_float_eeporm(long int n, float data)
{
int i;
for (i=0;i<4;i++)
{
write_eeprom(i+n,*((int8*)&data + i));
}
}
float read_float_eeprom(long int n)
{
int i;int8 read_data = 0;
float data;
55
for(i=0;i<4;i++)
{
read_data = read_EEPROM(i+n);
*((int8*)&data + i ) = read_EEPROM(i+n);
}
return(data);
}
void write_int32_eeporm(long int n, int32 data)
{
int i;
for (i=0;i<4;i++)
{
write_eeprom(i+n,*((int8*)&data + i));
}
}
int32 read_int32_eeprom(long int n)
{
int i;int8 read_data = 0;
int32 data;
for(i=0;i<4;i++)
{
read_data = read_EEPROM(i+n);
*((int8*)&data + i ) = read_EEPROM(i+n);
}
return(data);
}
void control_input_value_int(int8 *input_value)
{
int8 control_value = *input_value;
56
if (Up_BT == 0 )
{delay_ms(200);control_value = control_value + 1 ;}
if (Down_BT == 0 )
{delay_ms(200);control_value = control_value -1 ;}
*input_value = control_value;
}
void set_time()
{
lcd_gotoxy(1,1);
lcd_putc("Set Time : ");
delay_ms(1000);
while(Set_BT == 0){delay_ms(100);}
while(TRUE)
{
switch(process_control)
{
case 0: //Set date
lcd_gotoxy(1,1);
printf(lcd_putc,"Set date: %d ",day);
control_input_value_int(&day);
if (day > 31)day = 1;
if (day == 0 ) day= 31;
break;
case 1: //Set month
lcd_gotoxy(1,1);
printf(lcd_putc,"Set month: %d ",month);
control_input_value_int(&month);
if (month>12) month = 1;
57
{
process_control = 0;
ds1307_set_date_time(day,month,yr,5,hrs,min,0);
break;
}
}
if (Set_BT == 0 )
{
while(Set_BT == 0)delay_ms(100);
process_control--;
if (process_control < 0){process_control = 0;}
}
}
}
void control_input_value_float(float *input_value1)
{
float control_value = *input_value1;
if (Up_BT == 0 )
{delay_ms(100);control_value = control_value + 0.1 ;}
if (Down_BT == 0 )
{delay_ms(100);control_value = control_value - 0.1 ;}
*input_value1 = control_value;
}
void set_conditon_turn_on_pump()
{
lcd_gotoxy(1,1);
lcd_putc("Set time turn ");
lcd_gotoxy(1,2);
59
lcd_gotoxy(1,2);
printf(lcd_putc," ");
control_input_value_int(&hrs_point);
if (hrs_point > 23) hrs_point = 0 ;
if (hrs_point < 0) hrs_point = 23 ;
break;
case 3: //Set Minute
lcd_gotoxy(1,1);
printf(lcd_putc,"Set Minute: %d ",min_point);
lcd_gotoxy(1,2);
printf(lcd_putc," ");
control_input_value_int(&min_point);
if (min_point >59) min_point = 0;
if (min_point<0) min_point =59;
break;
case 4: // Set time turn on Pump
lcd_gotoxy(1,1);
printf(lcd_putc,"Time turn on Pump ");
lcd_gotoxy(1,2);
printf(lcd_putc," %d ",time_turn_on_pump);
control_input_value_int(&time_turn_on_pump);
break;
}
if (Next_BT == 0 )
{
while(Next_BT == 0)delay_ms(100);
process_control++;
if (process_control == 5)
{
61
process_control = 0;
write_float_eeporm(temp_add, temp_point);
delay_ms(1);
write_float_eeporm(humi_add, humi_point);
delay_ms(1);
write_eeprom(hour_add , hrs_point);
delay_ms(1);
write_eeprom(minute_add , min_point);
delay_ms(1);
write_eeprom(time_turn_on_pump_add, time_turn_on_pump);
lcd_gotoxy(1,1);
printf(lcd_putc,"Set done ");
lcd_gotoxy(1,2);
printf(lcd_putc," ");
May_Bom = 0;
Led_test =0 ;
flag_turn_on_pump = 0 ;
delay_ms(1000);
break;
}
}
if (Set_BT == 0 )
{
while(Set_BT == 0)delay_ms(100);
process_control--;
if (process_control < 0){process_control = 0;}
}
}
62
}
void check_turn_on_pump()
{
if (hrs == hrs_point && min == min_point && sec < 5)
{
if (nhiet_do > temp_point || do_am < humi_point)
{
May_Bom = 1;
Led_test =1 ;
if (month == 1 )
{
time_set_start = (day-1) * 24 * 60 + hrs * 60 + min;
}
else
{
time_set_start = minute_number[month-2] + (day-1) * 24 * 60 + hrs *
60 + min;
}
if (flag_turn_on_pump ==0)
{
write_int32_eeporm (time_set_start_add, time_set_start);
}
flag_turn_on_pump = 1;
}
}
}
void check_turn_off_pump()
63
if (flag_turn_on_pump == 1 )
{
if (month == 1 )
{
time_set_finish = (day-1) * 24 * 60 + hrs * 60 + min;
}
else
{
time_set_finish = minute_number[month-2] + (day-1) * 24 * 60 + hrs *
60 + min;
}
time_work = time_set_finish-time_set_start;
{
time_set_finish = (day-1) * 24 * 60 + hrs * 60 + min;
}
else
{
time_set_finish = minute_number[month-2] + (day-1) * 24 * 60 + hrs *
60 + min;
}