1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng bảng vi mạch Arduino Uno trong nông nghiệp thông minh

50 47 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 2,16 MB

Cấu trúc

  • CHƯƠNG 1. MỞ ĐẦU (3)
  • CHƯƠNG 2. GIỚI THIỆU CÁC THÀNH PHẦN CHÍNH CỦA HỆ THỐNG (6)
    • 2.1 PHẦN CỨNG (6)
    • 2.2 PHẦN MỀM (29)
  • CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG (0)
    • 3.1 THIẾT KẾ SƠ ĐỒ KHỐI HỆ THỐNG (33)
    • 3.2 TÍNH TOÁN THIẾT KẾ (34)
  • CHƯƠNG 4. KẾT LUẬN (49)
    • 4.1 KẾT QUẢ ĐẠT ĐƯỢC (49)
    • 4.2 HẠN CHẾ (49)
    • 4.3 HƯỚNG PHÁT TRIỂN (49)

Nội dung

Đềtài được đưa ra nghiên cứu như một bản báo cáo vềnông nghiệp thông minh. Qua đó, nhóm sẽđưa ra giải pháp và nghiên cứu ứng dụng Arduino vào phát triển nông nghiệp thông minh ởViệt Nam. Trong tương lai, những nghiên cứu của đềtài có thểđược mởrộng cho các đơn vịkhác hoặc làm tiền đềcho những nghiên cứu khác

GIỚI THIỆU CÁC THÀNH PHẦN CHÍNH CỦA HỆ THỐNG

PHẦN CỨNG

Giới thiệu chung về Arduino

Arduino đã tạo nên cơn sốt trong cộng đồng DIY toàn cầu, tương tự như sự ảnh hưởng của Apple trong lĩnh vực thiết bị di động Sự đa dạng và số lượng người dùng, từ học sinh đến sinh viên đại học, đã khiến ngay cả những nhà sáng lập cũng phải ngạc nhiên trước mức độ phổ biến của nó.

Hình 1: Những thành viên khởi xướng Arduino

Arduino là một nền tảng mã nguồn mở được nhiều sinh viên và nhà nghiên cứu tại các trường đại học hàng đầu như MIT, Stanford và Carnegie Mellon ưa chuộng Nó thu hút sự chú ý của các gã khổng lồ công nghệ như Google, khi họ phát triển bộ kit Arduino Mega ADK để hỗ trợ việc phát triển ứng dụng Android tương tác với cảm biến và thiết bị khác.

Arduino là một bo mạch vi xử lý cho phép lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ và đèn Điểm nổi bật của Arduino là môi trường phát triển dễ sử dụng và ngôn ngữ lập trình thân thiện, giúp người mới bắt đầu có thể học nhanh chóng Hiện tượng Arduino còn được thúc đẩy bởi mức giá phải chăng và tính chất nguồn mở từ phần cứng đến phần mềm.

$30, người dùng đã có thể sở hữu một bo Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị

Arduino được ra mắt tại thị trấn Ivrea, Ý, vào năm 2005, mang tên vị vua King Arduin từ thế kỷ thứ 9 Được phát triển bởi giáo sư Massimo Banzi dành cho sinh viên tại Interaction Design Institute Ivrea (IDII), Arduino ban đầu chỉ là một công cụ khiêm tốn Tuy không được tiếp thị mạnh mẽ, nhưng sự lan truyền nhanh chóng của Arduino nhờ vào những đánh giá tích cực từ người dùng đầu tiên đã giúp nó trở nên nổi tiếng Ngày nay, thị trấn Ivrea thu hút du khách đến tham quan nơi sản sinh ra Arduino.

Board Arduino Uno là một trong những board phổ biến và cơ bản nhất của Arduino, thường được nhắc đến khi nói về Arduino Ký hiệu "R3" chỉ thế hệ thứ ba của phiên bản này.

Arduino Uno là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển

Microchip ATmega328, được phát triển bởi Arduino.cc, là bộ vi điều khiển chính của bảng mạch Arduino Uno, cung cấp các chân đầu vào/đầu ra Digital và Analog để giao tiếp với các bảng mạch mở rộng Arduino Uno là lựa chọn lý tưởng cho những người mới bắt đầu tìm hiểu về điện tử và lập trình, nhờ vào nền tảng mở từ Arduino.cc, giúp dễ dàng xây dựng các dự án như lập trình Robot, xe tự hành, và điều khiển đèn LED.

Bảng 1: Chi tiết thông số Arduino UNO R3

Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O 30 mA

Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader

Arduino UNO sử dụng 3 vi điều khiển 8bit AVR: ATmega8, ATmega168 và ATmega328, cho phép thực hiện các tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, và xây dựng trạm đo nhiệt độ - độ ẩm với màn hình LCD.

Arduino UNO có thể nhận nguồn 5V qua cổng USB hoặc từ nguồn bên ngoài với điện áp khuyên dùng là 7-12V DC, trong khi giới hạn tối đa là 6-20V Sử dụng pin vuông 9V là lựa chọn hợp lý khi không có nguồn từ cổng USB Tuy nhiên, nếu nguồn cấp vượt quá giới hạn này, Arduino UNO có thể bị hỏng.

GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino UNO Khi sử dụng các thiết bị có nguồn điện riêng biệt, các chân GND này cần phải được kết nối với nhau để đảm bảo hoạt động ổn định.

• 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA

• 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA

• Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND

Chân IOREF trên Arduino UNO cho phép đo điện áp hoạt động của vi điều khiển, luôn duy trì ở mức 5V Tuy nhiên, bạn không nên sử dụng chân này để lấy nguồn 5V, vì chức năng chính của nó không phải là cung cấp điện.

• RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

Bộ vi điều khiển có 32KB bộ nhớ Flash để lưu trữ các đoạn lệnh lập trình Trong số này, khoảng vài KB thường được sử dụng cho bootloader, nhưng bạn không cần lo lắng vì hiếm khi bạn cần sử dụng quá 20KB bộ nhớ này.

SRAM (Static Random Access Memory) có dung lượng 2KB, nơi lưu trữ giá trị các biến mà bạn khai báo trong lập trình Số lượng biến bạn khai báo càng nhiều thì càng cần nhiều bộ nhớ RAM Tuy nhiên, bộ nhớ RAM thường không phải là vấn đề đáng lo ngại Lưu ý rằng dữ liệu trên SRAM sẽ bị mất khi có sự cố mất điện.

EEPROM (Electrically Erasable Programmable Read Only Memory) với dung lượng 1KB hoạt động như một ổ cứng mini, cho phép bạn đọc và ghi dữ liệu mà không lo mất mát khi mất điện, khác với dữ liệu trên SRAM.

Hình 3: Các cổng Arduino UNO R3

Arduino UNO có 14 chân digital để đọc và xuất tín hiệu, với mức điện áp 0V và 5V Mỗi chân có dòng vào/ra tối đa 40mA và được trang bị điện trở pull-up tích hợp trong vi điều khiển ATmega328, mặc dù các điện trở này không được kết nối mặc định.

Một số chân digital có các chức năng đặc biệt như sau:

• 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận

Arduino Uno có khả năng giao tiếp với các thiết bị khác qua hai chân RX và TX, cho phép nhận và truyền dữ liệu TTL Serial Kết nối Bluetooth thường được hiểu là một dạng kết nối Serial không dây Nếu không cần thiết phải giao tiếp Serial, bạn nên tránh sử dụng hai chân này.

PHẦN MỀM

Chuẩn giao tiếp One – Wire

1-Wire (One-Wire) là một chuẩn giao tiếp do Dallas Semiconductor phát triển và được Maxim mua lại vào năm 2001 Chuẩn này sử dụng một dây để truyền và nhận dữ liệu, nên có tốc độ thấp, phù hợp cho việc thu thập dữ liệu và truyền thông tin về thời tiết, nhiệt độ, cũng như các ứng dụng không yêu cầu tốc độ cao.

Hình 22 Sơ đồ hoạt động

Các tín hiệu sử dụng Restart, 0 write, 1 write , Read

Write 1: truyền đi bit 1: Master kéo xuống 0 một khoảng A(us) rồi về mức 1 khoảng B

Write 0: truyền đi bit 0: Master kéo xuống 0 khoảng C rồi trả về 1 khoảng D

Read: Đọc một Bit: Master kéo xuống 0 khoảng A rồi trả về 1 delay khoảng E rồi đọc giá trị slave gửi về delay F

Để chuẩn bị cho giao tiếp, hãy thực hiện thao tác khởi động lại: kéo Master xuống 0 một khoảng H rồi nhả lên mức 1 Tiếp theo, cấu hình Master với chân In delay I (us) và đọc giá trị trả về từ slave Nếu giá trị bằng 0, giao tiếp sẽ được phép diễn ra; nếu bằng 1, có thể có lỗi trong đường truyền hoặc slave đang bận.

Hình 24 Độ trễ tín hiệu

Thông thường chủ yếu sử dụng mode Standard

Chuẩn 1-Wire điều cần chính xác nhất là thời gian Vậy để tối ưu đường truyền thì cần một bộ định thời để delay chính xác nhất

Các frame byte truyền nhận với mỗi Ic có môt dạng Frame khác nhau vậy cần chú ý đọc datasheet

Khi bus dữ liệu ở trạng thái chờ mà không có dữ liệu trên đường truyền, cần duy trì mức cao cho bus dữ liệu bằng cách kéo lên nguồn qua một điện trở Giá trị điện trở này có thể được tham khảo trong datasheet của thiết bị hoặc các thiết bị slave.

I2C là giao thức truyền dữ liệu nối tiếp theo mô hình chủ - tớ, cho phép một thiết bị chủ giao tiếp với nhiều thiết bị tớ Để thực hiện giao tiếp, thiết bị chủ cần gửi đúng địa chỉ của thiết bị tớ nhằm kích hoạt nó trước khi thực hiện việc ghi hoặc đọc dữ liệu.

Hình 25 Sơ đồ nguyên lý

Giao tiếp I2C sử dụng hai dây chính: Serial Data (SDA) cho truyền dữ liệu hai chiều và Serial Clock (SCL) cho tín hiệu đồng hồ một chiều Khi một thiết bị ngoại vi được kết nối vào bus I2C, chân SDA của thiết bị sẽ nối với dây SDA của bus, trong khi chân SCL sẽ kết nối với dây SCL.

Mỗi dây SDA và SCL trong giao tiếp I2C được kết nối với nguồn điện dương qua một điện trở kéo lên, nhằm đảm bảo tín hiệu ổn định Các điện trở kéo này là cần thiết vì chân giao tiếp I2C của thiết bị ngoại vi thường ở trạng thái cực mở Giá trị của các điện trở này thay đổi tùy theo thiết bị và chuẩn giao tiếp, thường nằm trong khoảng từ 1K đến 4.7K.

Trong hệ thống bus I2C, nhiều thiết bị có thể kết nối mà không xảy ra nhầm lẫn nhờ vào địa chỉ duy nhất của từng thiết bị Mỗi thiết bị có thể hoạt động như thiết bị nhận hoặc truyền dữ liệu, hoặc cả hai, tùy thuộc vào vai trò của nó là thiết bị chủ (master) hay thiết bị tớ (slave) Khi kết nối với bus I2C, mỗi thiết bị không chỉ được phân biệt bằng địa chỉ mà còn được cấu hình rõ ràng với vai trò của mình.

TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG

THIẾT KẾ SƠ ĐỒ KHỐI HỆ THỐNG

Hệ thống gồm 5 khối ghép lại với nhau tạo nên một hệ thống hoạt động ổn định được trình bày trong sơ đồ khối:

Hình 26 Sơ đồ khối hệ thống

Khối nguồn đóng vai trò quan trọng trong việc cung cấp điện cho toàn bộ hệ thống, bao gồm khối xử lý trung tâm, khối cảm biến, khối relay, khối cơ cấu chấp hành và khối hiển thị.

• Khối xử lý trung tâm: Thu thập dữ liệu từ khối cảm biến sau đó xử lí và đưa tín hiệu ra khối hiển thị và khối relay

• Khối hiển thị: Cho phép người dùng theo dõi các thông số của hệ thống cây trồng

• Khối cảm biến: có nhiệm vụ đọc, thu thập các chỉ số của môi trường để đưa vào khối xử lý trung tâm

Khối Relay là thiết bị quan trọng trong hệ thống điện, có chức năng đóng ngắt các tiếp điểm theo sự điều khiển của khối xử lý trung tâm Nó giúp điều khiển thiết bị hiệu quả và tạo ra sự ngăn cách an toàn giữa mạch công suất và mạch điều khiển.

TÍNH TOÁN THIẾT KẾ

Khối nguồn Pin năng lượng mặt trời

Khối nguồn là nguồn cung cấp điện năng cho hệ thống, đảm bảo hoạt động độc lập mà không phụ thuộc vào điện lưới Hiện nay, giá thành pin năng lượng mặt trời đã phù hợp, vì vậy nhóm quyết định sử dụng pin mặt trời làm nguồn năng lượng chính Tuy nhiên, hệ thống điện lưới vẫn cần thiết trong trường hợp hệ thống năng lượng mặt trời gặp sự cố Trên thị trường có nhiều loại pin mặt trời, nhưng nhóm chọn pin mặt trời 12V – 50W cho mục đích nghiên cứu học tập.

Hệ thống hoạt động liên tục cả ngày đêm cần bộ lưu điện để sử dụng vào ban đêm và những ngày thiếu ánh sáng mặt trời Nhóm đã chọn bình pin Lithium để lưu trữ điện năng, nhờ vào những ưu điểm vượt trội như độ bền cao, thời gian sạc nhanh, trọng lượng nhẹ, khả năng chống nước, chống cháy nổ, và ít chịu tác động từ môi trường.

Bộ điều khiển sạc pin năng lượng mặt trời

Bộ điều khiển sạc pin năng lượng mặt trời giúp tối ưu hóa quá trình sạc từ pin mặt trời, đảm bảo hiệu suất cao nhất cho hệ thống Nó bảo vệ pin lưu trữ nhờ quy trình sạc thông minh PWM và tự động ngắt điện khi pin đã đầy.

Hình 27 Sơ đồ bộ điều khiển pin năng lượng mặt trời

Pin năng lượng mặt trời tạo ra điện áp từ 17.8V đến 21.6V tùy thuộc vào điều kiện ánh sáng Nguồn điện này được điều khiển và hạ áp xuống 12.6V Khi điện áp giảm xuống khoảng 8-9V (có thể điều chỉnh), tải sẽ ngắt để bảo vệ pin và kéo dài tuổi thọ Đồng thời, pin sẽ được sạc lại, và khi đạt đủ 12.6V, ắc quy sẽ được kích hoạt trở lại.

Mạch nguồn của bộ sạc là 12V, vì vậy để sử dụng cho các thiết bị 5V như Arduino, cần phải hạ áp nguồn Nhóm đã chọn mạch hạ áp LM2956, với ưu điểm giá thành rẻ, dải điện áp đầu vào lớn từ 2.5V đến 36V, và khả năng điều chỉnh điện áp đầu ra từ 1.25V đến 35V.

Hình 28 Mạch hạ áp LM2956

Bộ nguồn tổ ong chuyển đổi điện lưới 220V sang 12V DC, cung cấp nguồn điện dự phòng cho hệ thống pin năng lượng mặt trời khi gặp sự cố hoặc không đủ điện.

Tính toán thời gian sử dụng pin

Sơ đồ nguyên lý mạch

Hình 29 Sơ đồ nguyên lý của mạch

Khối hiển thị là thiết bị dùng để hiển thị các thông số môi trường Để giải quyết vấn đề khó khăn trong việc đấu nối do màn LCD 1602 có quá nhiều chân và chiếm dụng nhiều chân trên Arduino, nhóm đã quyết định sử dụng module I2C Để sử dụng màn LCD qua giao thức I2C, cần cài đặt thêm thư viện LiquidCrystal_I2C.

• Điện áp hoạt động: 2.5-6V DC

• Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780)

• Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)

• Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt

• Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD

Hình 30 Sơ đồ đấu nối

Do đầu ra của Arduino chỉ cung cấp tín hiệu điều khiển 5V, trong khi các thiết bị như bơm nước, đèn LED và quạt gió yêu cầu điện áp 12V, cần có một thiết bị trung gian để điều khiển Vì vậy, nhóm đã quyết định sử dụng Relay, không chỉ để chuyển đổi điện áp mà còn đảm bảo an toàn cho khối trung tâm trong trường hợp sự cố hoặc chập cháy xảy ra.

Relay là một loại công tắc (khóa K) đặc biệt, được kích hoạt bằng điện thay vì bằng tay Nhờ vào tính năng này, Relay thường được sử dụng như một công tắc điện tử Giống như các công tắc thông thường, Relay cũng có hai trạng thái cơ bản: đóng và mở.

Để sử dụng Relay, cần cấp nguồn vào hai chân + và – của cuộn dây Khi cuộn dây không có điện, tiếp điểm Relay ở vị trí NC Khi có điện, tiếp điểm sẽ chuyển từ NC sang NO Để điều khiển thiết bị, nối dây vào hai chân COM và NO Cách mắc Relay sẽ được trình bày trong phần tiếp theo.

Khối cơ cấu chấp hành

Khi các thông số môi trường từ cảm biến không phù hợp với sự phát triển của cây trồng, khối xử lý trung tâm sẽ điều chỉnh các thông số khu vườn thông qua cơ cấu chấp hành và thiết bị liên quan.

• Khi cần tác động vào độ ẩm đất thì sẽ sử dụng hệ thống bơm nước

Để điều chỉnh nhiệt độ môi trường, hệ thống quạt hút và đèn sưởi được sử dụng Trong khi đó, để tác động đến độ ẩm không khí, hệ thống quạt hút là giải pháp hiệu quả.

• Khi cần tác động vào cường độ ánh sáng thì sử dụng hệ thống đèn led

Nhóm nghiên cứu đã chọn máy bơm mini 12V – 25W với lưu lượng 2.2 lít/phút và áp lực 0.4 Mpa, đáp ứng nhu cầu cơ bản trong phạm vi học tập Các thông số kỹ thuật này phù hợp với hệ thống nguồn điện hiện có.

Khi độ ẩm đất giảm xuống dưới mức cài đặt, tín hiệu từ Arduino sẽ được gửi đến Relay của bơm Relay sẽ xử lý tín hiệu này, đóng khóa 12V và kích hoạt hệ thống bơm nước.

Bơm aước được kết nối và điều khiển qua Relay như hình minh họa

Hình 33 Đấu nối máy bơm

Mỗi loài cây đều có những điều kiện nhiệt độ nhất định để sinh trưởng và phát triển Tuy nhiên, khoảng nhiệt độ lý tưởng cho sự phát triển của đa số cây trồng nông nghiệp thường chỉ dao động trong một giới hạn hẹp.

40 độ hẹp hơn; có thể từ 15-40 độ C Ở nhiệt độ cao hay thấp hơn khoảng giới hạn này thì sự sinh trưởng sẽ bị giảm 1 cách nhanh chóng

Ngày đăng: 24/09/2021, 20:30

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w