Tính cấp thiết của đề tài
Nền nông nghiệp Việt Nam hiện vẫn còn lạc hậu, với việc ứng dụng khoa học kỹ thuật chưa phổ biến Nhiều quy trình chăm sóc và kỹ thuật trồng trọt vẫn được thực hiện một cách chủ quan, không đảm bảo tiêu chuẩn Trong nông học, bên cạnh việc chăm sóc cây trồng, tưới nước được coi là một trong những yếu tố quan trọng nhất trong quá trình trồng trọt.
Rau sạch hiện đang là mối quan tâm hàng đầu của người tiêu dùng, khi họ phải đối mặt với nguy cơ từ dư lượng thuốc trừ sâu, hóa chất độc hại có trong rau củ quả Lo lắng về chất lượng và sức khỏe cho bản thân và gia đình đã thúc đẩy nhiều hộ gia đình áp dụng các phương pháp trồng rau sạch tại nhà Tuy nhiên, việc chăm sóc rau để đảm bảo an toàn thực phẩm lại đòi hỏi nhiều thời gian và công sức.
Trên nhiều tuyến đường trong thành phố, tình trạng ùn tắc giao thông và mất an toàn xảy ra do sự xuất hiện của các xe chở nước tưới cây.
Hiện nay, nước ta đang trong giai đoạn công nghiệp hóa, hiện đại hóa, với việc áp dụng thiết bị tự động hóa để thay thế sức lao động con người Thiết bị tưới cây ngày càng được nghiên cứu và chế tạo đa dạng, từ vòi phun sương, phun mưa đến hệ thống tưới nhỏ giọt, phục vụ cho nhiều loại cây trồng khác nhau Hệ thống tưới này không chỉ tiết kiệm nước mà còn giúp tăng năng suất và chất lượng sản phẩm, đồng thời bảo vệ môi trường Việc thiết kế hệ thống tưới tự động giúp tiết kiệm thời gian và chi phí lao động, tự động điều chỉnh theo điều kiện thời tiết, đảm bảo cây trồng được tưới đúng cách Hệ thống này còn hỗ trợ trong việc kiểm soát độ ẩm và dinh dưỡng cho cây, giúp cây sinh trưởng tốt hơn, hạn chế sâu bệnh và giảm thiểu sử dụng thuốc trừ sâu, từ đó nâng cao hiệu quả sản xuất nông nghiệp.
Kết cấu đồ án
Đồ án được bố cục thành 3 chương:
TỔNG QUAN VỀ HỆ THỐNG TƯỚI CÂY TỰ ĐỘNG 5 1.1 Khái niệm hệ thống tự động
Vị trí và tầm quan trọng của hệ thống tự động
Lịch sử phát triển công cụ và phương tiện sản xuất đã trải qua giai đoạn cơ giới hóa và điện khí hóa, dẫn đến những đột phá trong công nghệ vật liệu, điện tử và tin học Sự phát triển mạnh mẽ của công nghệ tự động hóa mang lại nhiều lợi ích cho xã hội, từ việc tăng năng suất, cải thiện chất lượng đến giảm giá thành sản phẩm Việc áp dụng tự động hóa trong sản xuất giúp nâng cao hiệu quả, giảm chi phí, cải thiện điều kiện làm việc và đáp ứng nhu cầu sản xuất hiện đại Tương lai gần, tự động hóa sẽ trở thành một phần thiết yếu trong cả sản xuất và đời sống con người, thay thế con người trong những công việc nặng nhọc, nguy hiểm và tinh vi, đồng thời phục vụ nhu cầu sống hàng ngày.
Ứng dụng của tự động hóa trong tưới tiêu cho cây trồng
Mặc dù tự động hóa trong tưới tiêu đã phát triển từ lâu, nhưng chỉ phổ biến ở một số nước phát triển, trong khi các nước chậm phát triển, dù có nền nông nghiệp lớn, vẫn chậm chạp trong việc áp dụng Hiện nay, nhờ sự hỗ trợ từ nước ngoài, các nước đang phát triển, đặc biệt là Việt Nam và các nước Đông Nam Á, đang dần đưa tự động hóa vào sản xuất Sự phát triển mạnh mẽ của công nghệ chế tạo thiết bị tự động hóa, cùng với tiến bộ trong công nghệ vi điện tử và công nghệ thông tin, đã mở ra giải pháp tự động hóa cho mọi lĩnh vực Tự động hóa đang trở thành xu hướng tất yếu cho mọi quốc gia và vùng lãnh thổ.
Một số hệ thống tưới cây tự động trên thị trường
Việt Nam đã tiến hành nhiều nghiên cứu và ứng dụng hệ thống tự động trong đời sống, trong đó nổi bật là các hệ thống tưới cây bán tự động, giúp tiết kiệm sức lao động và nâng cao hiệu quả so với phương pháp tưới thủ công Mặc dù vậy, những hệ thống này vẫn tồn tại nhiều nhược điểm cần được cải thiện để đạt hiệu quả tối ưu Tại các trường đại học chuyên ngành kỹ thuật, sinh viên đã thực hiện nhiều đề tài nghiên cứu về hệ thống tưới nước tự động, tuy nhiên vẫn còn nhiều hạn chế cần khắc phục.
Một số hệ thống ở Việt Nam
Hệ thống tưới rau bằng điện thoại của Bùi Ngọc Minh Tâm tại TP.HCM cho phép người dùng tưới rau sạch tại nhà qua tin nhắn Bằng cách gửi mã code tới hộp điều khiển, các béc nước sẽ hoạt động sau 10 giây Nông dân có thể điều khiển hệ thống bằng tay hoặc thông qua tin nhắn khi không có mặt tại nhà, giúp tiết kiệm thời gian và công sức trong việc chăm sóc cây trồng.
Hệ thống tưới phun tự động đa năng được phát triển bởi tiến sĩ Lê Văn Luận và thạc sĩ Lê Đình Hiếu tại trường Cao đẳng Công nghiệp Huế, bao gồm cảm biến đo nhiệt độ và độ ẩm đất lắp đặt trong nhà màng trồng hoa Hệ thống điều khiển PLC-S7-1200 tự động nhận tín hiệu từ cảm biến khi cần tưới nước, kích hoạt vòi phun để tưới trong 5 phút và tự ngừng khi đạt yêu cầu độ ẩm hoặc nhiệt độ Đây là một sản phẩm khoa học có ý tưởng sáng tạo và tính ứng dụng cao, đã được thử nghiệm hiệu quả.
GIỚI THIỆU VỀ CÁC PHẦN TỬ TRONG MẠCH ĐIỀU KHIỂN HỆ THỐNG TƯỚI CÂY TỰ ĐỘNG 8 2.1 Vi điều khiển AT89C55
Sơ đồ chân của vi điều khiển AT89C55
Hình 2.1 : Sơ đồ chân của VĐK AT89C55
Chip AT89C55 có đặc điểm sau:
- 20K Byte bộ nhớ chương trình trên chip
- Dao động với thạch anh bên ngoài trong khoảng từ 0Hz đến 33Mhz
- Bộ nhớ RAM dùng cho dữ liệu 8x256
- 32 đường dẫn vào/ra lập trình được
- 3 Timer/ Counter 16 bit Timer 0,1,2 Timer 2 có các chức năng
- Có thể giao tiếp với bộ nhớ bên ngoài
Cấu trúc của vi điều khiển AT89C55
- AT89C55 có tất cả 40 chân
Chức năng của các chân vi điều khiển:
P1.0 đến P1.7 (Chân 1 đến chân 8): Đây là chân vào/ra hai hướng của cổng 1 với một điện trở kéo lên dương nguồn đã đặt sẵn trên chip
Chân RST (Chân 9) : là lối vào Reset Lối vào thường được sử dụng xóa vi điều khiển về trạng thái ban đầu hoặc khởi động lại.
Chân P3.0 (Chân 10) là chân vào/ra hai hướng, được kết nối với một điện trở kéo lên nguồn dương đã được cài đặt trên chip Chân này cũng đóng vai trò là lối vào nhận dữ liệu (RxD) khi vi điều khiển hoạt động như một bộ truyền nhận không đồng bộ (UART) để tiếp nhận dữ liệu nối tiếp.
Chân P3.1 (Chân 11) là chân vào/ra hai hướng, được kết nối với một điện trở kéo lên dương nguồn trên chip Chân này cũng đóng vai trò là lối ra truyền dữ liệu (TxD) khi vi điều khiển hoạt động như một bộ truyền nhận không đồng bộ (UART) để thực hiện truyền dữ liệu nối tiếp.
Chân P3.2 (Chân 12) là chân vào/ra hai hướng, được kết nối với một điện trở kéo lên dương nguồn có sẵn trên chip Ngoài ra, chân này còn được sử dụng làm chân ngắt ngoài với số hiệu 0 (INT0).
Chân P3.3 (Chân 13) là chân vào/ra hai hướng, được kết nối với một điện trở kéo lên nguồn dương đã được tích hợp trên chip Ngoài ra, chân này còn đóng vai trò là chân ngắt ngoài với số hiệu INT1.
Chân P3.4 (Chân 14) là chân vào/ra hai hướng, được kết nối với một điện trở kéo lên dương nguồn đã được cài đặt sẵn trên chip Đây là chân lối vào của bộ đếm T0.
Chân P3.5 (Chân 15) là chân vào/ra hai hướng, được kết nối với một điện trở kéo lên nguồn dương đã được thiết lập sẵn trên chip Đây là chân lối vào của bộ đếm T1.
P3.6 (Chân 16): Đây là chân vào/ra hai hướng Đây là chân ghi vào bộ nhớ ngoài (WR)
P3.7 (Chân 17): Đây là chân vào/ra hai hướng dùng cho bit 7 của cổng 3.
Chân này là chân đọc bộ nhớ dữ liệu bên ngoài (RD)
XTAL1 và XTAL2 (Chân 18 và 19) được sử dụng để kết nối với một bộ cộng hưởng thạch anh bên ngoài, nhằm tạo ra một bộ dao động bên trong vi mạch.
GND (Chân 20): Chân nối đất
P2.0 đến P2.7 (Chân 21 đến chân 28): Đây là 8 chân vào/ra của cổng 2 vi điều khiển Các chân này có các điện trở nối lên nguồn dương.
Chân PSEN (Chân 29) trên vi điều khiển 8051 chuẩn cho phép lưu trữ chương trình từ bộ nhớ bên ngoài Chân này sẽ được kích hoạt khi vi điều khiển thực hiện các mã lệnh từ nguồn lưu trữ ngoài.
Chân ALE/PROG (Chân 30) trên các vi điều khiển 8051 chuẩn cho phép chốt địa chỉ, được sử dụng để chốt thấp (LOW) của địa chỉ khi truy cập bộ nhớ ngoài.
EA/VPP (Chân 31): Đây là chân cho phép truy cập bên ngoài Chân EA phải được nối với nguồn VCC khi thực thi chương trình bên ngoài.
P0.0 đến P0.7 (Chân 39 đến chân 32): Đây là 8 chân vào/ra của cổng 0 của vi điều khiển Các chân này không có các điện trở nối lên dương nguồn
VCC (chân 40) : Nguồn nuôi vi điều khiển, nối với nguồn dương.
Các bộ timer của AT89C55
Bộ vi điều khiển AT89C55 có 3 bộ Timer 16 bit đó là: Timer0, Timer1, Timer2.
Người ta sử dụng các timer để:
Tạo tốc độ baud cho port nối tiếp trong 89C55.
Trong các ứng dụng định khoảng thời gian, timer được lập trình để hoạt động ở các khoảng thời gian đều đặn, với cờ tràn timer được sử dụng nhằm đồng bộ hóa chương trình Cờ này cho phép thực hiện các tác động như kiểm tra trạng thái ngõ vào hoặc gửi sự kiện ra ngõ ra Ngoài ra, việc tạo ra xung nhịp đều đặn từ timer còn có thể được ứng dụng để đo thời gian trôi qua giữa hai sự kiện, chẳng hạn như đo độ rộng xung.
2.1.4 Điều khiển ngắt (INTERRUPT) của AT89C55
Một ngắt là một sự kiện hoặc điều kiện xảy ra, dẫn đến việc tạm dừng chương trình chính để xử lý điều kiện đó bằng một chương trình khác.
Các ngắt đóng vai trò quan trọng trong thiết kế và cài đặt ứng dụng vi điều khiển, cho phép hệ thống phản hồi một cách bất đồng bộ với các sự kiện Điều này giúp xử lý sự kiện trong khi một chương trình khác đang được thực hiện.
Vi điều khiển AT89C55 chuẩn có 6 nguồn ngắt, cụ thể là:
Hai ngắt ngoài (INT1 và INT0)
Hai bộ ngắt định thời
Một ngắt nhận cổng nối tiếp
Một ngắt truyền cổng nối tiếp
Đồng hồ thời gian thực DS1307
DS1307 là một chip đồng hồ thời gian thực (RTC) do Dallas Semiconductor, thuộc Maxim Integrated Products, sản xuất Chip này cung cấp thời gian tuyệt đối theo giây, phút và giờ, với 7 thanh ghi 8-bit để lưu trữ thông tin về giây, phút, giờ, ngày trong tuần, ngày, tháng và một thanh ghi trống có thể sử dụng như RAM DS1307 giao tiếp qua giao diện I2C (TWI của AVR), giúp cấu trúc bên ngoài trở nên đơn giản Chip có sẵn trong hai loại gói SOIC và DIP với 8 chân.
Hình 2.2: Hai gói cấu tạo chip DS1307
Các chân của nó được mô tả như sau:
- X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động cho chip.
- V BAT : cực dương của một nguồn pin 3V nuôi chip.
- GND: chân mass chung cho cả pin 3V và Vcc.
Vcc là nguồn cung cấp cho giao diện I2C, thường là 5V và được sử dụng chung với vi điều khiển Cần lưu ý rằng nếu Vcc không được cấp nguồn nhưng VBAT vẫn được cung cấp, thì DS1307 vẫn hoạt động, tuy nhiên không thể thực hiện việc ghi và đọc dữ liệu.
SQW/OUT là chân tạo xung vuông (Square Wave / Output Driver) với tần số lập trình được Chân này không ảnh hưởng đến chức năng chính của DS1307 là đồng hồ thời gian thực, vì vậy chúng ta có thể bỏ qua chân này khi kết nối mạch.
- SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C mà chúng ta đã tìm hiểu trong bài TWI của AVR.”(AVR tutorial 2015)
Ghép nối DS1307 với vi điều khiển
Việc ghép nối DS1307 với vi điều khiển bằng một mạch điện đơn giản như trong hình sau:
Hình 2.3: Ghép nối DS1307 với VĐK
Cảm biến nhiệt độ và độ ẩm
DHT11 làcảm biến nhiệt độ và độ ẩm Nó sử dụng giao tiếp số theo chuẩn 1 dây.
Hình 2.4: Cảm biến nhiệt độ và độ ẩm DHT11
Nó có cấu tạo gồm 4 chân như hình :
-Chân 1: Chân nối nguồn VCC 5VDC
-Chân 2: Chân dữ liệu để giao tiếp với vi điều khiển theo chuẩn 1 dây.
-Chân 3: Chân NC (No connect).
-Chân 4: Chân GND nối đất.
Sơ đồ kết nối vi xử lý:
Hình 2.5: Sơ đồ kết nối vi điều khiển
- 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 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.
- Bước 1 : Gửi tín hiệu Start
MCU thiết lập chân DATA là Output và kéo chân DATA xuống 0 trong thời gian lớn hơn 18ms Hành động này cho phép DHT11 nhận biết rằng MCU muốn đo nhiệt độ và độ ẩm.
MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào.
Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11.
Chân DATA của DHT11 sẽ duy trì ở mức thấp 80us trước khi được kéo lên cao trong 80us Bằng cách theo dõi chân DATA, MCU có thể xác định khả năng giao tiếp với DHT11 Khi tín hiệu từ DHT11 chuyển lên cao, quá trình giao tiếp giữa MCU và DHT11 sẽ được hoàn tất.
- Bước 2 : đọc giá trị trên DHT11
DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó:
Byte 1 : giá trị phần nguyên của độ ẩm (RH%)
Byte 2 : giá trị phần thập phân của độ ẩm (RH%)
Byte 3 : giá trị phần nguyên của nhiệt độ (TC)
Byte 4 : giá trị phần thập phân của nhiệt độ (TC)
Nếu Byte 5 được tính bằng tổng của Byte 1, Byte 2, Byte 3 và Byte 4 (mỗi byte 8 bit), thì giá trị độ ẩm và nhiệt độ sẽ chính xác Ngược lại, nếu không đúng, kết quả đo sẽ không có ý nghĩa.
Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về MCU, tương ứng chia thành 5 byte kết quả của nhiệt độ và độ ẩm.
Sau khi tín hiệu trở về 0, chúng ta chờ chân DATA của MCU được DHT11 kéo lên 1 Nếu chân DATA có giá trị 1 trong khoảng 26-28 micro giây thì đó là bit 0, còn nếu giá trị 1 kéo dài 70 micro giây thì đó là bit 1 Trong lập trình, ta bắt đầu bằng cách theo dõi sườn lên của chân DATA, sau đó delay 50 micro giây Nếu giá trị đo được là 0, chúng ta ghi nhận bit 0, và nếu giá trị đo được là 1, chúng ta ghi nhận bit 1 Quá trình này tiếp tục để đọc các bit tiếp theo.
Màn hình LCD
Trong đồ án này, tôi đã chọn sử dụng màn hình LCD 16x4 với 4 dòng và 16 cột, nhờ vào khả năng hiển thị rộng rãi và tiện lợi cho việc tùy chỉnh cài đặt tự động Màn hình LCD hiện nay rất phổ biến trên thị trường và tiêu thụ nguồn điện thấp, chỉ từ 2,5 đến 5V Ngoài ra, LCD hoạt động hiệu quả ở hai chế độ: 4 bít và 8 bít.
Hình 2.6: Sơ đồ chân và kết nối LCD với VĐK
LCD16x4 được ghép nối thông qua Port P2 (từ P2.0 đến P2.7 không sử dụng P2.3) P2.0 nối với chân RS, P2.1 nối chân R/W, P2.2 nối chân E và chân P2.4 đến P2.7 là chân dữ liệu vào.
-VDD: Chân nối nguồn 5VDC
-VEE: Chân chọn độ tương phản , chân này được nối với 1 biến trở 10k 1 đầu nối VCC, 1 đầu nối mass để tùy chỉnh độ tương phản cho màn hình LCD.
- Chân chọn thanh ghi RS, có 2 chế độ chọn thanh ghi
Trong chế độ ghi lệnh vào LCD, tín hiệu RS được thiết lập là 0, cho phép thực hiện các lệnh như xóa màn hình hoặc bật tắt con trỏ Ngược lại, khi RS bằng 1, LCD chuyển sang chế độ ghi dữ liệu, cho phép hiển thị các ký tự, chữ và số trên màn hình.
-Chân chọn chế độ đọc/ghi R/W: cho phép người dùng ghi thông tin lênLCD R/W=0 hoặc đọc thông tin LCD R/W=1.
Chân cho phép E (Enable) hoạt động khi nhận tín hiệu từ chân dữ liệu Khi có xung từ mức cao xuống mức thấp (xung cho phép) của chân E, các lệnh sẽ được chấp nhận và thực hiện.
-Chân D0-D7: Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD.
Rơ le (relay)
Rơ le là một thiết bị chuyển đổi hoạt động bằng điện, hoạt động như một công tắc với hai trạng thái ON và OFF Trạng thái của rơ le phụ thuộc vào việc có dòng điện chạy qua nó hay không.
Hình 2.7: Rơ le 5V và sơ đồ các chân.
Khi dòng điện chạy qua rơ le, nó kích hoạt cuộn dây bên trong, tạo ra một từ trường hút Từ trường này tác động lên đòn bẩy, dẫn đến việc đóng hoặc mở các tiếp điểm điện, từ đó thay đổi trạng thái của rơ le Số lượng tiếp điểm điện thay đổi có thể là một hoặc nhiều, tùy thuộc vào thiết kế của rơ le.
Tụ điện
Tụ điện là linh kiện điện tử thụ động phổ biến trong các mạch điện tử, đóng vai trò quan trọng trong việc lọc nguồn, lọc nhiễu, truyền tín hiệu và tạo dao động Chúng có khả năng nạp và xả điện, đồng thời giúp ổn định điện áp đầu ra.
“Cấu tạo bởi hai bề mặt dẫn điện được ngăn cách bởi điện môi.
Cấu tạo tụ gốm Cấu tạo tụ hóa
- Điện dung chỉ khả năng tích điện của tụ điện
Tụ phân cực, hay còn gọi là tụ hóa, là loại tụ điện có hai đầu phân biệt rõ ràng (-) và (+), và không thể đảo ngược trong mạch điện một chiều (DC) Thông thường, tụ phân cực bao gồm tụ hóa học và tụ tantalium.
Hình 2.8 : Ký hiệu và hình dạng thực tế của tụ hóa
-Tụ điện không phân cực (tụ gốm): Là tụ không qui định cực tính,
Hình 2.9 : Ký hiệu và hình dạng thực tế của tụ gốm
Cuộn cảm
Cuộn cảm là một thiết bị điện từ được tạo thành từ dây quấn nhiều vòng xung quanh một lõi, có thể là không khí, sắt bụi hoặc sắt lá Các đặc trưng quan trọng của cuộn cảm bao gồm khả năng lưu trữ năng lượng từ trường và ảnh hưởng đến dòng điện trong mạch.
Hệ số tự cảm là đại lượng thể hiện khả năng cảm ứng điện từ của ống dây, phản ánh sự thay đổi từ thông do biến đổi dòng điện trong mạch.
- Cuộn dây lõi không khí : thường sử dụng trong mạch điện có tần số rất cao.
Hình 2.10: Ký hiệu v0à hình ảnh thực tế cuộn dây
- Cuộn dây lõi sắt bụi (Ferrite): thường sử dụng trong mạch điện có tần số cao.” (Trần Văn Thiệt, Phạm Duy Phương, Bùi Quốc Trưởng, 6)
Hình 2.11: Ký hiệu và hình ảnh thực tế cuộn dây lõi sắt bụi
Điện trở
“Điện trở là một linh kiện điện tử thụ động trong mạch điện có biểu tượng
Hình 2.12: Ký hiệu điện trở
Nó được tạo ra từ những chất có khả năng cản trở dòng điện như carbon, niken, crôm, vv…
- Trị số điện trở : Cho biết mức độ cản trở dòng điện của điện trở.
Điện trở được ký hiệu bằng đơn vị Ω (Ohm) và có các đặc điểm riêng biệt Các loại điện trở thường có giá trị cố định được thể hiện qua các vòng màu, với điện trở thông thường được ký hiệu bằng 4 vòng màu, trong khi điện trở chính xác sử dụng 5 vòng màu để biểu thị giá trị của nó.
Hình 2.13: Các loại điện trở có giá trị cố định
THIẾT KẾ BỘ ĐIỀU KHIỂN 23 3.1 Xây dựng bài toán
Thiết kế mạch điều khiển
3.2.1 Sơ đồ nguyên lý của hệ thống điều khiển tưới cây
Sử dụng phần mềm Altium để thiết kế sơ đồ bố trí mạch.
Hình 3.2: Sơ đồ mạch nguyên lý
- Khối nguồn sử dụng IC LM2576 –T cho điện áp ra cố định 5V Đây là IC làm việc ổn định, cho dòng điện đầu ra lớn, lên tới 3A.
Khi cấp nguồn cho mạch, việc duy trì điện áp liên tục là rất quan trọng Các tụ C2 (1000uF/25V) và C4 (104) có vai trò bù đắp điện áp, giúp ngăn chặn hiện tượng mạch bị reset liên tục trong quá trình hoạt động.
- Cuộn cảm L1 và tự C3(470uF) và C1(104) có chức năng lọc điện áp đầu ra, tạo điện áp ổn định 5V.
- Diode IN4004 để bảo vệ mạch khi LM2576 hỏng.
- Sử dụng Rơle 5V/10A – 250VAC , cho phép cường độ dòng điện tối đa qua tiếp điểm rơ le với hiệu điện thế nhỏ hơn 250 V xoay chiều là 10A.
Khối giao tiếp LCD Khối cảm biến nhiệt độ và độ ẩm
Khối giao tiếp I2C DS1307 Khối nút bấm
3.3.2 Mạch in thực tế sau khi thiết kế
Altium Designer là phần mềm chuyên dụng trong thiết kế mạch điện tử, cho phép quản lý các dự án riêng lẻ hoặc trong không gian làm việc chung Phần mềm hỗ trợ thư viện phong phú với nhiều loại IC và linh kiện được cập nhật thường xuyên Người dùng có thể thiết kế mạch in với các tính năng như cài đặt kích thước dây, phương pháp đi dây, và tự động kiểm tra lỗi Mặc dù chế độ tự động giúp việc thiết kế mạch in trở nên dễ dàng, việc đi dây bằng tay sẽ mang lại sự gọn gàng và thẩm mỹ cao hơn cho mạch điện tử.
Hình 3.3: Mạch in sau khi thiết kế
Hình 3.4: Mạch in hiển thị dưới dạng 3D
Lập trình vi điều khiển AT89C55 bằng ngôn ngữ C chuẩn sử dụng phần mềm Keil C mang lại trải nghiệm dễ dàng cho người dùng nhờ giao diện thân thiện và đơn giản.
Phần mềm biên soạn Keil C
Keil C là phần mềm lập trình mạnh mẽ cho vi điều khiển họ 8051, cho phép người dùng viết mã bằng ngôn ngữ C và hỗ trợ cả ngôn ngữ lập trình Assembly Nhờ vào tính linh hoạt này, người lập trình có thể lựa chọn giữa hai ngôn ngữ để phát triển ứng dụng cho vi điều khiển một cách hiệu quả.
Hình 3.5: Giao diện của phần mềm Keil C
3.3.4 Lưu đồ thuật toán hệ thống điều khiển.
-Khởi tạo giao tiếp DS1307
-Khởi tạo giao tiếp LCD -Menu=0
-Chỉnh nhiệt độ max -Chỉnh chu kì tưới
-Chỉnh nhiệt độ max -Chỉnh độ ẩm max -
-Tăng/giảm giờ, phút, ngày, tháng, năm
-Tăng/giảm nhiệt độ max, độ ẩm max, chu kì
Menu=3 -Tăng/giảm độ ẩm
Menu=4 -Tăng/Giảm giờ tưới 1,phút 1
Menu=5 -Tăng /Giảm độ ẩm và thời gian tưới của giờ tưới 1
-Đọc thời gian từ DS1307
-Đọc nhiệt độ,độ âm
-Chỉnh giờ,phút -Chỉnh ngày,tháng,năm Lưu vào DS1307
-Chỉnh thời gian làm mát theo độ ẩm môi trường -
Hình 3.6 :Lưu đồ thuật toán hệ thống tưới cây tự động Đ S
-Hẹn giờ tưới 1 -Chọn van mở
-Tăng/Giảm độ ẩm và thời gian tưới của giờ tưới 2
-Tăng/Giảm giờ tưới 2, phút 2
-Tăng /Giảmđộ ẩm và thời gian tưới của giờ tưới 3
NEXT=0 Điều chỉnh thời gian tưới 1 theo độ ẩm
-Hẹn giờ tưới 2 -Chọn van mở Điều chỉnh thời gian tưới 2 theo độ ẩm
-Hẹn giờ tưới 3 -Chọn van mở Điều chỉnh thời gian tưới 3 theo độ ẩm
Dịch chuyển vị trí con trỏ
3.3.4 Mạch sau khi chạy mô phỏng bằng phần mềm Proteus.
Hình 3.7: Mạch sau khi chạy mô phỏng
Rơle đã đóng ngắt chính xác sau khi chạy thử mô phỏng.
3.3.5 Mạch thực tế sau khi chạy thử
Mạch thực tế sau khi chạy thử đã điều khiển đóng ngắt chính xác thiết bị điện theo thời gian cài đặt.
Hình 3.8: Mạch thực tế sau khi thiết kế và chạy thử
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Kỹ thuật điện tử đang ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực như công nghiệp, giao thông vận tải và hàng không vũ trụ Các thiết bị điều khiển tự động đóng vai trò quan trọng, góp phần thúc đẩy sự tiến bộ trong các lĩnh vực này Tuy nhiên, ngành nông nghiệp Việt Nam vẫn phụ thuộc nhiều vào khí hậu tự nhiên và các phương pháp canh tác truyền thống, dẫn đến năng suất chưa cao.
Trong quá trình thực hiện đề tài, em đã nghiên cứu về hệ thống tưới cây tự động, một yếu tố lý thuyết quan trọng cho dự án này Hệ thống tự động hóa không chỉ tối ưu hóa việc tưới cây mà còn nâng cao hiệu quả trong việc chăm sóc cây trồng.
Tìm hiểu về vi điều khiển AT89C55, phương pháp sử dụng vi điểu khiển để xử lý và hiển thị kết quả lên LCD
Thiết kế mạch và viết chương trình cho vi điều khiển, đảm bảo hệ thống hoạt động tốt
Giới hạn của đề tài
Do điều kiện có hạn nên em chỉ thực hiện thiết kế mạch điều khiển đóng/ngắt thiết bị điện theo nhiệt độ và độ ẩm.
Hướng phát triển của đề tài:
Bạn có thể lập trình để tăng số giờ tưới trong ngày, vượt qua 3 lần tưới hiện tại Đồng thời, hệ thống cũng cho phép điều khiển thêm nhiều thiết bị khác, bao gồm các van điện từ, để tối ưu hóa quy trình tưới tiêu.
Thiết kế thêm hệ thống quạt thông gió và hệ thống đóng rèm tự động khi nhiệt độ tăng cao và độ ẩm tăng cao.
Phát triển một bộ kit nghiên cứu cây trồng với nhiều cảm biến đa dạng như cảm biến độ ướt lá, bức xạ mặt trời, pH, tốc độ và hướng gió, độ mặn của đất và độ dẫn điện Bộ kit này sẽ cung cấp tất cả các thông số cần thiết cho việc nghiên cứu và cải thiện sự phát triển cây trồng.
1 Ngô Diên Tập 2006 Vi điều khiển với lập trình C , Nhà xuất bản khoa học và kỹ thuật Hà Nội.
2 Trần Văn Thiệt, Phạm Duy Phương, Bùi Quốc Trưởng 2008 Điện tử căn bản TP HCM: Kỹ thuật công nghệ Hùng Vương.
1 AVR tutorial 2015 “Đồng hồ thời gian thực DS1307”, truy cập ngày 12/11/2015 http://www.hocavr.com/index.php/app/ds1307.
2 Forum nông học 2013 “Hệ thống tưới tự động”, truy cập ngày 12/11/2015 http://forumnongnghiep.com/baiviet/5964-He-thong-tuoi-tu-dong.html?s=&p180.
3 Hồ Quốc Dũng 2015 “Tính toán máy bơm nước, ống nước”, truy cập ngày 12/11/2015 https://sites.google.com/site/nhietlanhcn/he-thong-co-dhien-toa-nha.
4 Hữu Ký 2015 “Hệ thống tưới rau qua điện thoại di động”, truy cập ngày 14/11/2015 http://danviet.vn/nha-nong/tuoi-rau-bang-nhan-tin-dien-thoai- 584930.html.
5 Nguyên Thu 2014 “Hệ thống tưới phun tự động đa năng”, truy cập ngày 14/11/2015 http://www.hethongtuoi.vn/tin-chi-tiet/32/he-thong-tuoi-phun-tu- dong-da-nang-khi-khoa-hoc-ho-tro-nha-nong.html?lang=eng.
6 Tuấn Minh 2015 “Điốt bán dẫn”, truy cập ngày 12/11/2015 https://vi.wikipedia.org/wiki/%C4%90i%E1%BB%91t_b%C3%A1n_d%E1%BA
7 Võ Đình Tiến 2015 “Các bước thiết kế hệ thống tưới”, truy cập ngày 14/11/2015 http://hethongtuoi.vn/tin-chi-tiet/64/thiet-ke-he-thong-tuoi-
%E2%80%93-cac-buoc-thiet-ke-he-thong-tuoi.html
#define VAN2 P3_6 uint8_t str[20]; uint8_t dht_nhiet_do,dht_do_am; unsigned char * code Days[] =
The article outlines a structured system for managing time and scheduling with various variables such as days of the week (SUN, MON, TUE, etc.), time components (Hour, Minute, Second), and alarm settings It includes multiple unsigned char and char data types to define parameters like alarm times, humidity levels, and maximum thresholds Additionally, it features bit variables to track status flags for different functionalities, indicating the operational modes of the system The setup also incorporates a timer and user interface elements, such as menus and cursors, allowing for efficient interaction and configuration of the device Overall, this system is designed for precise time management and environmental monitoring.
ON1=0,ON2=0,van1=1,van2=0,van3=1,van4=0,ON3=0,van5=1,van6=0,ON4=0
/* Dieu chinh cac thong so = nut bam
} void ngat_chuyenkenh(void) interrupt 0
{ while(MODE==0); menu++; if (menu=) menu=0; //chuyen trang man hinh cursor=0; cursor2=0; cursor3=0; cursor4=0; alarm=0;
{ cursor++; cursor2++; cursor3++; cursor4++; //di chuyen vi tri con tro if (cursor==6) cursor=0; if (cursor3==3) cursor3=0; if (cursor4==4) cursor4=0;
//chinh thoi gian if ((TANG==0)&&(menu==1))
{ while(TANG==0); switch(cursor) { case 0: zhour++; case 1: zmin++;break; case 2: zday++;;break; case 3: zdate++;break; case 4: zmonth++ ;break; case 5: zyrs++;break;
{ while(GIAM==0); switch(cursor) { case 0: zhour ;break; case 1: zmin ;break; case 2: zday ;;break; case 3: zdate ;break; case 4: zmonth ;break; case 5: zyrs ;break;
//chinh nhiet do ,do am if ((TANG==0)&&(menu==2))
{ while(TANG==0); switch(cursor3) { case 0: ON4=1;break; case 1: t_max++;break; case 2: if(ON4==1)
{ h_max++; if(MODE==0) { while(MODE==0); menu=4;
{ case 0:ON4=0;break; case 1:t_max ;break; case 2: if(ON4==1)
{ h_max ; if(MODE==0) { while(MODE==0); menu=4;
/* -lam mat theo do am -*/ if ((TANG==0)&&(menu==3))
The code snippet continuously loops while the variable TANG is equal to zero It uses a switch statement to execute different cases based on the value of the cursor For each case, specific variables such as muc_am7, muc_am8, and muc_am9 are incremented, while phunsuong1, phunsuong2, and phunsuong3 are also incremented but reset to zero if they exceed 59 This structured approach allows for efficient management of multiple counters within the program.
The code snippet demonstrates a loop that continues until the variable GIAM equals zero Within this loop, a switch statement evaluates the value of the cursor For case 0, the variable muc_am7 is decremented In case 1, phunsuong1 is decreased, and if it falls below zero, it triggers phunsuong1Y Similarly, case 3 decreases phunsuong2, with a condition to trigger phunsuong2Y if it goes negative Case 4 increments muc_am9, while case 5 decreases phunsuong3, also triggering phunsuong3Y if it becomes less than zero.
// - HEN GIO1 - - - if ((TANG==0)&&(menu==4))
The code snippet involves a loop that continues until the variable TANG equals zero It utilizes a switch statement to manage different cases based on the value of cursor4 In case 0, it activates a flag (ON1) In case 1, it increments the hour of the first alarm, resetting it to zero if it reaches a specified maximum Case 2 increments the minutes of the first alarm, also resetting to zero when it exceeds a limit Finally, case 3 sets one variable (van1) to active while deactivating another (van2).
The code snippet involves a control structure that continuously checks a condition while a variable GIAM is equal to zero It utilizes a switch statement based on the value of cursor4, executing different actions for each case: resetting ON1 to zero, decrementing hour_alarm_first and ensuring it does not fall below zero, reducing min_alarm_first by five while also preventing it from going negative, and toggling the states of van1 and van2.
// -thoi gian tuoi1 - if ((TANG==0)&&(menu==5))
The code snippet demonstrates a loop that continues until the variable TANG equals zero Within this loop, a switch statement evaluates the variable cursor to increment specific counters For case 0, the variable muc_am1 is increased, while case 1 increments thoi_gian_tuoi1, resetting it to zero if it exceeds 59 Similarly, case 2 increments muc_am2, and case 3 increases thoi_gian_tuoi2, also resetting it after 59 Cases 4 and 5 follow the same pattern for muc_am3 and thoi_gian_tuoi3, respectively.