Phần cứng trạm thu thập dữ liệu khu vực

Một phần của tài liệu (Đồ án tốt nghiệp) THIẾT kế hệ THỐNG điều KHIỂN và GIÁM sát PHÂN tán vườn THÔNG MINH sử DỤNG VI điều KHIỂN THÔNG QUA MẠNG LORA và INTERNET 2 (Trang 39 - 48)

CHƯƠNG 3 : MƠ HÌNH VƯỜN THƠNG MINH PHÂN TÁN TRONG ĐỀ TÀI

3.2.2.Phần cứng trạm thu thập dữ liệu khu vực

3.2. Tính tốn lựa chọn linh kiện phần cứng

3.2.2.Phần cứng trạm thu thập dữ liệu khu vực

Phần cứng của trạm khu vực bao gồm các linh kiện chính sau:

− Cảm biến nhiệt độ, độ ẩm DHT11 − Cảm biến độ ẩm đất

− Vi điều khiển Arduino

− Mạch thu phát sóng RF SPI Lora SX1278 433Mhz Ra-02 Ai-Thinker.

Hình 3. 6: Cảm biến nhiệt độ, độ ẩm DHT11 [10]

Cảm biến nhiệt độ, độ ẩm DHT11 (Hình 3.6) là cảm biến rất thơng dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1 dây (giao tiếp digital 1 dây truyền dữ liệu duy nhất). Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp bạn có được dữ liệu chính xác mà khơng phải qua bất kì tính tốn nào. Tuy nhiên so với cảm biến đời mới hơn là DHT22 thì DHT11 có khoảng đo và độ chính xác kém hơn. [10]

Thơng số kỹ thuật:

• Nguồn: 3->5V

• Dịng sử dụng: 2.5mA (Max khi truyền dữ liệu)

• Khoảng đo nhiệt độ: 0-50˚C (sai số 2˚C)

• Khoảng đo độ ẩm: 20%-90% RH (Sai số 5% RH)

• Tần số lấy mẫu tối đa: 1Hz (1 giây 1 lần)

• Kích thước: 15mm x 12mm x 5.5mm

Sơ đồ kết nối cảm biến với vi điều khiển:

Theo như sơ đồ kết nối cảm biển được thể hiện trong Hình 3.7, có thể thấy chân dữ liệu được kết nối với chân I/O của vi điều khiển và một điện trở kéo lên được sử dụng. Chân dữ liệu này xuất ra giá trị của cả nhiệt độ và độ ẩm dưới dạng dữ liệu nối tiếp.

Hình 3. 7: Sơ đồ kết nối cảm biến DHT11 với vi điều khiển [10]

3.2.2.2. Cảm biến độ ẩm đất

Cảm biến độ ẩm đất Soil Moisture Sensor (Hình 3.8) thường được sử dụng trong các mơ hình tưới nước tự động, vườn thông minh, … cảm biến giúp xác định độ ẩm của đất qua đầu dò và trả về giá trị Analog, Digital qua 2 chân tương ứng để giao tiếp với vi điều khiển để thực hiện vô số các ứng dụng khác nhau.

Hình 3. 8: Cảm biến độ ẩm đất (Soil Moisture Sensor) [11]

Bình thường, đầu ra cảm biến ở mức thấp (đối với đầu ra Digital), khi đất thiếu nước, đầu ra sẽ ở mức cao.

Độ nhạy của cảm biến độ ẩm đất có thể điều chỉnh được (Bằng cách điều chỉnh biến trở màu xanh trên Board mạch).

Phần đầu dò được cắm vào đất để phát hiện độ ẩm, khi độ ẩm của đất đạt được ngưỡng thiết lập, đầu ra D0 sẽ chuyển trạng thái từ mức thấp lên mức cao.

Ngồi ra, đầu ra Analog có thể được kết nối với bộ chuyển đổi ADC, chúng ta có thể nhận được các giá trị chính xác hơn về độ ẩm của đất.

Thơng số kĩ thuật:

• Điện áp hoạt động: 3.3V-5V.

• Kích thước PCB: 3cm x 1.6cm.

• Led đỏ báo nguồn, Led xanh báo độ ẩm.

• IC só sánh: LM393.

• Tín hiệu đầu ra:

o Analog: theo điện áp cấp nguồn tương ứng.

o Digital: High hoặc Low, có thể điều chỉnh độ ẩm mong muốn bằng biến trở thơng qua mạch so sánh tích hợp. [11]

Bảng sơ đồ chân:

Sơ đồ chân của cảm biến độ ẩm đất được trình bày trong bảng 3.2: Bảng 3. 1: Bảng sơ đồ chân cảm biến độ ẩm đất [11]

VCC 3.3V – 5V

GND GND của nguồn ngồi

D0 Đầu ra tín hiệu số (mức cao hoặc mức thấp) A0 Đầu ra tín hiệu tương tự (Analog)

3.2.2.3. Vi điều khiển Arduino

Hiện nay, nhắc tới vi điều khiển, nhiều người sẽ nghĩ ngay đến Arduino. Tuy nhiên định nghĩa chính xác Arduino là gì thì thật khó. Arduino bao gồm Arduino Board và Arduino IDE. Arduino giúp gắn kết các nhiệm vụ một cách đơn giản nhất.

Aruino Board (Hình 3.9) là một board mạch nguồn mở nhằm đưa tới cho người dùng một sản phẩm dễ sử dụng, dễ kết nối và lập trình. Arduino board được thiết kế gồm một vi xử lý dòng AVR (Arrduino Due là dòng ARM), cổng USB, các chân analog input, digital I/O… Ngơn ngữ lập trình cho Arduino dựa trên Wiring (ngơn ngữ Arduino) và được viết trên phần mềm IDE (Hình 3.10).

Hình 3. 9: Arduino Board [12]

Arduino có nhiều dịng sản phẩm:

• Board: Arduino Uno, Arduino Nano, Arduino Pro, Arduino Zero, … • Module: Arduino Pro Mini, Arduino Micro, Arduino LCD Module, …

• Shield: Arduino Proto Shield, Arduino Enthernet Shield, Arduino GMS Shield,

Arduino Wifi Shield 101, …

Tuy Arduino có rất nhiều loại, nhưng Board Arduino Uno và Arduino Nano rất phổ biến tại Việt Nam. Do đó, trong đồ án này, nhóm em quyết định dùng Arduino Uno và Arduino Nano cho đề tài của nhóm.

a) Arduino Uno

Arduino Uno có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328. Bộ não này có thể xử lí những 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, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD, … hay những ứng dụng khác mà có thể bạn đã thấy.

Arduino UNO có thể được cấp nguồn 5V thơng qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp nguồn bằng pin vng 9V là hợp lí nhất nếu bạn khơng có sẵn nguồn từ cổng USB. Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng Arduino UNO.

Một vài thông số kỹ thuật của Arduino Uno R3:

Bảng 3.3 sau thể hiện một vài thông số kỹ thuật của Arduino Uno R3. Bảng 3. 2: Thông số của Arduino Uno R3 [12]

Vi điều khiển Atmega328 họ 8bit

Điện áp hoạt động 5V DC

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

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)

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

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

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

Bộ nhớ Flash

32KB (Atmega328) với 0.5KB dùng bởi bootloader

SRAM 2KB (Atmega328)

EEPROM 1KB (Atmega328)

Lưu ý khi sử dụng Arduino:

• Arduino UNO khơng có bảo vệ cắm ngược nguồn vào. Do đó ta phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO. Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy. Nên dùng nguồn từ cổng USB nếu có thể.

• Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị khác, không phải là các chân cấp nguồn vào. Việc cấp nguồn sai vị trí có thể làm hỏng board. Điều này khơng được nhà sản xuất khuyến khích.

• Cấp nguồn ngồi khơng qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board.

• Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328.

• Cường độ dịng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển.

• Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển.

• Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển. Do đó nếu khơng dùng để truyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng. [12]

b) Arduino Nano

Arduino Nano là một bảng vi điều khiển thân thiện, nhỏ gọn, đầy đủ. Arduino Nano nặng khoảng 7g với kích thước từ 1,8cm - 4,5cm.

Arduino Nano có chức năng tương tự như Arduino Duemilanove nhưng khác nhau về dạng mạch. Nano được tích hợp vi điều khiển ATmega328P, giống như

Arduino UNO. Sự khác biệt chính giữa chúng là bảng UNO có dạng PDIP (Plastic Dual-In-line Package) với 30 chân cịn Nano có sẵn trong TQFP (plastic quad flat pack) với 32 chân. Trong khi UNO có 6 cổng ADC thì Nano có 8 cổng ADC. Bảng Nano khơng có giắc nguồn DC như các bo mạch Arduino khác, mà thay vào đó có cổng mini-USB. Cổng này được sử dụng cho cả việc lập trình và bộ giám sát nối tiếp. Tính năng hấp dẫn của arduino Nano là nó sẽ chọn cơng xuất lớn nhất với hiệu điện thế của nó.

Thơng số kỹ thuật Arduino Nano:

Một vài thông số kỹ thuật cần chú ý của Arduino Nano được trình bày trong bảng 3.4. Bảng 3. 3: Thông số kỹ thuật Arduino Nano [13]

Arduino Nano Thông số kỹ thuật

Số chân analog I/O 8

Cấu trúc AVR

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

Dòng tiêu thụ I/O 40mA

Số chân Digital I/O 22

Bộ nhớ EEPROM 1 KB

Bộ nhớ Flash 32KB, trong đó 2KB dùng cho bootloader

Điện áp ngõ vào (7-12) Volts

Vi điều khiển Atmega328P

Điện áp hoạt động 5V

Kích thước bo mạch 18x45 mm

Ngõ ra PWM 6

SRAM 2KB

Cân nặng 7gms

Sơ đồ chân của Arduino Nano

Hình 3.11 mơ tả sơ đồ và chức năng của các chân của một một mạch Arduino Nano.

Hình 3. 11: Sơ đồ chân Arduino Nano [13]

Chân ICSP

ICSP là viết tắt của In Circuit Serial Programming, đại diện cho một trong những phương pháp có sẵn để lập trình bảng Arduino. Thơng thường, một chương trình bộ nạp khởi động Arduino được sử dụng để lập trình một bảng Arduino, nhưng nếu bộ nạp khởi động bị thiếu hoặc bị hỏng, ICSP có thể được sử dụng thay thế. ICSP có thể được sử dụng để khôi phục bộ nạp khởi động bị thiếu hoặc bị hỏng.

Mỗi chân ICSP thường được kết nối với một chân Arduino khác có cùng tên hoặc chức năng. Ví dụ: MISO của Nano nối với MISO / D12 (Pin 15). Lưu ý, các chân MISO, MOSI và SCK được ghép lại với nhau tạo nên hầu hết giao diện SPI.

Chúng ta có thể sử dụng Arduino để lập trình Arduino khác bằng ICSP (xem Hình 3.12).

Hình 3. 12: Chân ICSP của Arduino Nano [13]

Kết nối các chân ICSP với vi điều khiển khác khi dùng Arduino Nano là mạch nạp ISP được trình bày rõ ràng trong bảng 3.5 sau:

Bảng 3. 4: Kết nối các chân ICSP với vi điều khiển khác khi Arduino là mạch nạp [13]

Arduino là ISP Atmega328

Vcc/5V Vcc GND GND MOSI/D11 D11 MISO/D12 D12 SCK/D13 D13 D10 Reset

Một phần của tài liệu (Đồ án tốt nghiệp) THIẾT kế hệ THỐNG điều KHIỂN và GIÁM sát PHÂN tán vườn THÔNG MINH sử DỤNG VI điều KHIỂN THÔNG QUA MẠNG LORA và INTERNET 2 (Trang 39 - 48)