Sơ đồ khối và chức năng của toàn bộ hệ thống

Một phần của tài liệu 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 33)

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

3.1. Sơ đồ khối và chức năng của toàn bộ hệ thống

Từ ý tưởng ban đầu, nhóm em đã đưa ra sơ đồ mơ tả tồn bộ hệ thống vườn thơng minh như Hình 3.1 và Hình 3.2 sau:

Hình 3. 1: Sơ đồ tồn bộ hệ thống vườn thơng minh

Từ hai sơ đồ trên, ta có thể hình dung được quy trình hoạt động của hệ thống. Đối với đề tài này, thay vì sử dụng dây điện để truyền dẫn tín hiệu như truyền thống hoặc là các phương thức truyền dữ liệu khác, nhóm em sử dụng mạng Lora để truyền nhận dữ liệu từ ESP8266 với Arduino. Lý do là vì Lora có thể truyền dữ liệu với khoảng cách rất xa mà tiêu tốn năng lượng rất thấp. So với Lora thì dùng dây điện để truyền thì tiêu hao năng lượng trên dây dẫn khá lớn, khó truyền khoảng cách xa đối với vi điều khiển. Cũng có nhiều phương thức truyền dữ liệu khơng dây như ZigBee, Wi-Fi, Bluetooth, … Nhưng so với Lora, các chuẩn truyền thông này không đáp ứng được nhu cầu của đề tài. Vậy thì mạng Lora là gì? Có ưu điểm như thế nào? Chúng ta sẽ cùng tìm hiểu trong mục 3.3.

Trong mơ hình hệ thống này bao gồm 4 bộ phận chính, đó là:

− Trạm điều khiển trung tâm.

− Trạm thu thập dữ liệu khu vực.

− Server.

− Giao diện người dùng (giám sát).

Trạm điều khiển trung tâm bao gồm một vi điều khiển ESP8266 chịu trách nhiệm xử lý dữ liệu nhận từ trạm thu thập dữ liệu khu vực và gửi lên Server. Đồng thời nhận các tín hiệu điều khiển từ Server về xử lý. Trạm trung tâm truyền và nhận dữ liệu với trạm khu vực thông qua mạng Lora. Các dữ liệu mà ESP8266 nhận về bao gồm nhiệt độ, độ ẩm và trạng thái thiết bị. Bên cạnh việc giao tiếp với trạm khu vực, trạm trung tâm còn giao tiếp, truyền nhận dữ liệu với Server thông qua Internet. Các dữ liệu nhận từ Server là tín hiệu điều khiển, chế độ làm việc được đưa vào từ người dùng.

Trạm thu thập dữ liệu khu vực bao gồm một vi điều khiển Arduino xử lý việc thu thập dữ liệu nhiệt độ, độ ẩm tại khu vực nhất định, và đồng thời điều khiển trạng thái các thiết bị vận hành. Khi có tín hiệu u cầu dữ liệu từ trạm trung tâm thì trạm khu vực sẽ gửi các dữ liệu nhiệt độ, độ ẩm đã thu thập được cho trạm trung tâm để xử lý. Ngược lại nếu đó là tín hiệu điều khiển thiết bị thì Arduino sẽ thực hiện điều khiển trạng thái của thiết bị tương ứng với tín hiệu điều khiển.

Server là nơi chứa các dữ liệu mà trạm trung tâm gửi lên, đồng thời cũng là nơi lưu các tín hiệu điều khiển từ người dùng. Nơi lưu dữ liệu ở đây là Database.

Giao diện người dùng là giao diện giám sát, điều khiển thiết bị dành cho người dùng. Trong giao diện giám sát bao gồm các dữ liệu nhiệt độ, độ ẩm tại vườn cập nhật theo thời gian và các biều đồ biểu diễn các giá trị đó trong một khoảng thời gian nhất

định. Ngồi ra cịn có giao diện điều khiển thiết bị vận hành cho phép người dùng điều khiển các thiết bị bằng tay hoặc tự động tùy theo chế độ được chọn.

Trong phần tiếp theo, việc lựa chọn linh kiện phần cứng trong mơ hình và các giao thức truyền thông kết nối để áp ứng được yêu cầu của điều khiển vườn thơng minh phân tán sẽ được trình bày.

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

Để có thể xây dựng được một mơ hình hệ thống vườn thơng minh, thì việc tính tốn lựa chọn các linh kiện là việc quan trọng vô cùng. Với từng trạm, ta có các linh kiện khác nhau, vì vậy trong phần này chúng ta sẽ thực hiện chọn linh kiện cho trạm điều khiển trung tâm và trạm thu thập dữ liệu khu vực.

3.2.1. Phần cứng trạm điều khiển trung tâm

Phần cứng của trạm điều khiển trung tâm gồm 2 linh kiện quan trọng chính đó là:

− Vi điều khiển ESP8266.

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

3.2.1.1. Mạch thu phát RF SPI Lora SX1278 433Mhz Ra-02 Ai-Thinker

Hình 3. 3: Mạch thu phát sóng RF SPI Lora SX1278 433Mhz Ra-02 Ai-Thinker [7] Mạch thu phát RF SPI Lora SX1278 433Mhz Ra-02 Ai-Thinker (Hình 3.3) được sản xuất bởi Ai-Thinker sử dụng chip SX1278 của nhà sản xuất SEMTECH chuẩn giao tiếp LORA (Long Range), chuẩn LORA mang đến hai yếu tố quan trọng là tiết kiệm năng lượng và khoảng cách phát siêu xa (Ultimate long range wireless solution). Ngoài ra, nó cịn có khả năng cấu hình để tạo thành mạng truyền nhận nên hiện tại được phát triển và sử dụng rất nhiều trong các nghiên cứu về IoT. [7]

Mạch thu phát RF SPI Lora SX1278 433Mhz Ra-02 Ai-Thinker có thiết kế nhỏ gọn dạng module giúp dễ dàng tích hợp trong các thiết kế mạch, mạch được thiết kế và

đo đạc chuẩn để có thể đạt cơng suất và khoảng cách truyền xa nhất. Ngồi ra mạch cịn có chất lượng kinh kiện và gia cơng tốt nên có độ bền cao và khả năng hoạt động ổn định. [7]

Thông số kỹ thuật:

• Model: Lora Ra-02 Ai_Thinker. • IC chính: SX1278 đến từ SEMTECH. • LoRaTM spread spectrum communication.

• +20dBm – 10mW. Statble RF output power when input voltage changed. • Half-duplex SPI communication.

• Programable bit rate can reach to 300kbps.

• Support FSK, GFSK, LoRaTM and OOK Modulation Mode. • 127dB RSSI wave range.

• Automatically detect RF signal, CAD mode and super high speed AFC. • With CRC 256 bytes data engine.

• Half hole (castellated hole) SMD package. • With metal shielding case.

• Pin pitch: 2.0mm. [7] Specifications: • Certification: FCC/CE. • Wireless Standard: 433Mhz. • Frequency range: 420 – 450Mhz. • Port: SPI/GPIO.

• Operating Voltage: 1.8 – 3.7V, default 3.3V. • Working Current:

o Receive: less than 10.8mA (LnaBoost closed, Band 1). o Transmit: less than 120mA (+20dBm).

o Sleep model: 0.2uA.

• Working temperature: -40 - +85 degree. [7]

Bảng 3.2: Chức năng của một số chân của mạch RF:

- ANT Antenna

1, 2 GND GND

3 3.3V 3.3V Power in

4 RESET Reset

5 DIO0 Digital IO0, software setting

6 DIO1 Digital IO1, software setting

7 DIO2 Digital IO2, software setting

8 DIO3 Digital IO3, software setting

9 GND GND

10 DIO4 Digital IO4, software setting

11 DIO5 Digital IO5, software setting

12 SCK SPI Clock input

13 MISO SPI data output

14 MOSI SPI data input

15 NSS SPI Selected-IN

16 GND GND

3.2.1.2. Vi điều khiển ESP8266

ESP8266, hay gọi đầy đủ là ESP8266EX là một vi mạch Wifi giá rẻ, có hỗ trợ bộ giao thức TCP/IP và có thể tích hợp vào thành phần của vi điều khiển, được sản xuất bởi hãng Espressif Systems ở Thượng Hải, Trung Quốc. [8]

Chip ESP8266 lần đầu tiên được các nhà sản xuất phương Tây chú ý vào tháng 8 năm 2014 với module ESP-01 (Hình 3.4), do nhà sản xuất bên thứ ba là Ai-Thinker sản xuất. Module cho phép các vi điều khiển kết nối với mạng Wifi và thực hiện các kết nối TCP/IP đơn giản bằng cách sử dụng các lệnh kiểu Hayes (Tập lệnh AT). [8]

Hình 3. 4: Module ESP-01 [8]

Hình 3. 5: Module thu phát Wifi ESP8266 NodeMCU Lua CH340 [9]

Kit RF thu phát Wifi ESP8266 ModeMCU Lua CH340 (Hình 3.5) là kit phát triển dựa trên nền chip Wifi SoC ESP8266 với thiết kế dễ sử dụng và đặt biệt là có thể sử dụng trực tiếp trình biên dịch của Arduino để lập trình và nạp code, điều này khiến việc sử dụng và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản.

Kit RF thu phát Wifi ESP8266 ModeMCU Lua CH340 được dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi, đặt biệt là các ứng dụng liên quan đến IoT.

Các module EPS8266 như ESP-01, ESP-12, … đều được thiết kế từ chip ESP8266EX. Trong đồ án này, nhóm em sử dụng Module ESP8266-12_E.

• Tương thích các chuẩn Wifi: 802.11 b/g/n. • Hỗ trợ: Wi-Fi Direct (P2P), soft-AP. • Tích hợp TCP/IP protocol stack.

• Tích hợp TR switch, balun, LNA, power amplifier and matching network. • Tích hợp bộ nhân tần số, ổn áp, DCXO and power managerment units. • +25dBm output power in 802.11b mode.

• Power down leakage current of <10uA.

• Intergrated low power 32-bit CPU could be used as application processor. • SDIO 1.1/2.0, SPI, UART.

• STBC, 1x1 MIMO, 2x1 MIMO.

• A-MPDU & MSDU aggregation & 0.4ms guard interval. • Wake up and transmit packet in <2ms.

• Dịng tiêu thụ ở Standby Mode < 1.0mW (DTIM3). [9]

Các chuẩn giao tiếp và các thông tin khác:

• SDIO 2.0, SPI, UART.

• Intergrated RF Switch, balun, 24dBm PA, DCXO, and PMU.

• Intergrated RISC processor, onchip memory and external memory interfaces. • Intergrated MAC/baseband processors.

• Quality of Service managerment.

• I2S interface for high fidelity audio applications.

• On-chip low-dropout linear regulators for all internal supplies. • Proprietary spurious-free clock genaration architecture.

• Integrated WEP, TKIP, AES, and WAPI engines. [9]

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.

Một phần của tài liệu 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 33)