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

(Đồ án hcmute) thiết kế và thi công mô hình hệ thống iot dành cho nhà kính

111 1 0

Đ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

Tiêu đề Thiết Kế Và Thi Công Mô Hình Hệ Thống IoT Dành Cho Nhà Kính
Tác giả Trần Đức Huy, Nguyễn Quốc Chương
Người hướng dẫn ThS. Trương Quang Phúc
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điện Tử - Viễn Thông
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2022
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 111
Dung lượng 3,99 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (17)
    • 1.1. Giới thiệu đề tài (17)
      • 1.1.1. Đặt vấn đề (17)
      • 1.1.2. Tính cấp thiết của đề tài (17)
    • 1.2. Mục tiêu nghiên cứu (18)
    • 1.3. Đối tượng nghiên cứu (18)
    • 1.4. Phạm vi nghiên cứu (18)
    • 1.5. Nhiệm vụ của đề tài (18)
    • 1.6. Phương pháp nghiên cứu (19)
    • 1.7. Bố cục đồ án (19)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (20)
    • 2.1 Mô hình Iots ứng dụng trong nông nghiệp (0)
      • 2.1.1 Điều kiện khí hậu (20)
      • 2.1.2 Canh tác hiệu quả (21)
      • 2.1.3 Giám sát nhà kính (21)
      • 2.1.4 Phân tích dữ liệu (22)
    • 2.2 Các chuẩn truyền dữ liệu trong Iots (23)
      • 2.2.1 Chuẩn giao tiếp SPI (23)
      • 2.2.2 Chuẩn giao tiếp UART (26)
      • 2.2.3 Chuẩn giao tiếp I2C (29)
    • 2.3 Giới thiệu phần cứng (36)
      • 2.3.1 Giới thiệu KIT Arduino Uno R3 (36)
      • 2.3.2 Module Lora SX1278 433Mhz Ra-02 (39)
      • 2.3.3 Cảm biến nhiệt độ - độ ẩm DHT 11 (40)
      • 2.3.4 Cảm biến độ ẩm đất (41)
      • 2.3.5 Cảm biến cường độ ánh sáng GY-302 BH1750 (42)
      • 2.3.6 Module Relay 5V OPTO cách ly quang 2 kênh (44)
      • 2.3.7 Động cơ bơm nước mini (45)
      • 2.3.8 Mạch phun sương siêu âm (45)
      • 2.3.9 Module NodeMCU ESP32 DEVKIT V1 (46)
      • 2.3.10 Module LCD20x4 I2C (47)
      • 2.3.11 Quạt (48)
      • 2.3.12 Module I2C (49)
      • 2.3.13 Module PCF8574 (50)
      • 2.3.14 Module ESP32 CAM (50)
      • 2.3.15 Module Keypad (51)
    • 2.4 Ngôn ngữ HTML (52)
    • 2.5 Ngôn ngữ CSS (53)
    • 2.6 Ngôn ngữ JavaScript (54)
    • 2.7 Cơ sở dữ liệu firebase realtime database (54)
  • CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG (70)
    • 3.1 Giới thiệu (70)
    • 3.2 Yêu cầu hệ thống (70)
    • 3.3 Sơ đồ khối hệ thống (70)
    • 3.4 Tính toán và thiết kế phần cứng (71)
      • 3.4.1 Khối xử lý và điều khiển trung tâm (71)
      • 3.4.2 Khối xử lý và điều khiển phụ (72)
      • 3.4.3 Khối cảm biến (75)
      • 3.4.4 Khối thiết bị (76)
      • 3.4.5 Khối nút nhấn (77)
      • 3.4.6 Khối hiển thị (77)
      • 3.4.7 Khối camera (78)
      • 3.4.8 Khối nguồn (79)
    • 3.5 Thiết kế phần mềm (80)
    • 3.6 Lưu đồ giải thuật của hệ thống (0)
    • 3.7 Sơ đồ nguyên lý toàn mạch (85)
    • 3.8 Mạch in của hệ thống (89)
    • 3.9 Thiết kế cơ sở dữ liệu firebase (90)
    • 3.10 Thiết kế web (93)
  • CHƯƠNG 4: KẾT QUẢ (95)
    • 4.1 Kết quả của hệ thống (95)
      • 4.1.1 Mô hình phần cứng của hệ thống (95)
      • 4.1.2 Web giám sát và điều khiển (100)
    • 4.2 Kết quả hoạt động phần mềm của hệ thống (102)
      • 4.2.1 Database và web giám sát (102)
      • 4.2.2 Các thiết bị hoạt động (103)
    • 4.3 Kiểm tra, đánh giá khoảng cách truyền tin của Lora (104)
  • CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (107)
    • 5.1 Kết luận (107)
    • 5.2 Hướng phát triển (107)
  • TÀI LIỆU THAM KHẢO (109)

Nội dung

TỔNG QUAN

Giới thiệu đề tài

Hiện nay trong quá trình công nghiệp hóa hiện đại hóa đất nước, việc ứng dụng các công nghệ mới vào trong sản xuất đã trở nên phổ biến và ứng dụng rộng rãi trong các ngành nghề khác nhau như công nghiệp, chăn nuôi, trồng trọt, ….Các sản phẩm các công nghệ ngày càng trở nên nhỏ gọn, máy tính, điện thoại thông minh thuở ban đầu rất to, cồng kềnh và có ít chức năng Tuy nhiên điện thoại, máy tính ngày nay trở nên nhỏ gọn và có nhiều chức năng hơn, có thể đem theo bên mình bất cứ lúc nào, do đó có thể giải quyết công việc một cách dễ dàng.

Vì vậy điện thoại, máy tính ngày càng trở thành một vật bất ly thân của rất nhiều người.

Khi chưa ứng dụng các công nghệ mới vào các ngành sản xuất, đặc biệt là ngành nông nghiệp (một ngành thế mạnh của nước ta), thì người dân phải dự đoán thời tiết bằng các kinh nghiệm mà người xưa để lại, nhưng cách trên có thể không chính xác hoàn toàn Hơn nữa nếu muốn sản lượng được năng suất và chất lượng thì phải tốn rất nhiều công sức và chi phí Do đó, đã có rất nhiều kế hoạch đã ứng dụng công nghệ Iot cho trồng trọt như : thu thập các thông số môi trường để điều khiển thiết bị một cách tự động, gắn camera để giám sát cây trồng cũng như là các thiết bị, … Cũng vì muốn giúp ít thêm cho người nông dân có thể đạt năng suất và hiệu quả tốt nhất nên nhóm em muốn vân dụng các kiến thức mình đã được học cũng như tìm hiểu thêm để ứng dụng công nghệ Lora để có thể điều khiển hệ thống từ xa và hoạt động tối ưu nhất.

1.1.2 Tính cấp thiết của đề tài:

Việt Nam là một quốc gia đang phát triển và là một nước có truyền thống nông nghiệp. Tuy nhiên ngoài việc làm nông nghiệp để đảm bảo khả năng đáp ứng lương thực, thực phẩm thì việc xuất khẩu nông sản cũng là thế mạnh và là nguồn kinh tế không hề , nhưng để xuất khẩu nông sản vào các thị trường khó tính như các nước phương Tây, Hàn Quốc, Nhật Bản,

… là một vấn đề khó vì các nước này có tiêu chuẩn nhập khẩu khá khắt khe, vậy để giải quyết vấn đề tăng chất lượng và sản lượng nông sản, chúng ta phải áp dụng khoa học kỹ thuật và nông nghiệp, mà IoT là một trong số đó.

IoT là mạng lưới thiết bị kết nối với nhau thông qua Internet Với việc thu thập tín hiệu từ các cảm biến hệ thống ứng dụng IoT sẽ tự phân tích, đưa ra quyết định theo những lập trình được cài đặt Từ đó, giúp người sử dụng có thể kiểm soát và điều khiển vận hành hệ thống theo mong muốn thông qua các thiết bị như điện thoại thông minh, máy tính có kết nối Internet.

Mục tiêu nghiên cứu

Mục tiêu của nhóm chúng em khi thực hiện đề tài này là xây dựng một hệ thống IoT trồng nông nghiệp có khả năng thu nhập các thông tin dữ liệu như : nhiệt độ, độ ẩm đất độ ẩm không khí, cường độ ánh sáng từ các loại cảm biến nhằm ổn định các điều kiện môi trường thông qua các thiết bị (máy bơm, quạt, máy phun sương) Hệ thống này có thể tùy chỉnh các thao tác hoạt động(tự động hay thủ công) trên trang web hay keypad 4x4 và cung cấp dữ liệu hình ảnh cho tiện việc theo dõi và chăm sóc.

Đối tượng nghiên cứu

Để thực hiện các mục tiêu mà đề tài đã đặt ra, nhóm chúng em đã tìm hiểu các tài liệu, thông tin về ngôn ngữ lập trình web HTML, CSS, Java Hiểu được các nguyên lý hoạt động và mạch ứng dụng Chipset WIFI ESP32 và vi điều khiển Arduino uno Ngoài ra, chúng em còn tham khảo các thông tin cũng như nguyên lý hoạt động của các module sử dụng trong đề tài: cảm biến nhiệt độ, độ ẩm DHT11, cảm biến độ ẩm đất MS-84, cảm biến ánh sángBH1750 GY-302, ESP32 cam, module LCD 20x4 I2C, module Lora SX1278 433Mhz Ra-02Ai-Thinker, module PCF8574, Relay Opto cách ly quang 2 kênh, 4x4 keypad.

Phạm vi nghiên cứu

Sau khi trao đổi thảo luận và tìm kiếm các thông tin nhóm em đã có thể giao tiếp và điều khiển các thiết bị sử dụng trong đề tài, truyền nhận dữ liệu giữa web và phần cứng ESP32.Nhóm em còn tính toán, lựa chọn thiết bị đóng/ cắt tải công suất sao cho phù hợp với mục tiêu mà nhóm đã đề ra ngay từ ban đầu.

Nhiệm vụ của đề tài

Muốn giúp đỡ cho người nông dân tiết kiệm được chi phí cũng như sức lực đề tài của nhóm em đã đáp ứng được những nhiệm vụ sau:

● Giá cả phù hợp với túi tiền của người nông dân.

● Hệ thống điều khiển các thiết bị hoạt động một cách ổn định bằng web hay keypad.

● Có thể hiển thị các thông số như : độ ẩm đất, nhiệt độ, độ ẩm không khí, cường độ ánh sáng lên LCD cũng như web.

● Người sử dụng có thể quan sát từ thông qua các hình ảnh từ ESP32 cam.

Phương pháp nghiên cứu

Để giải quyết vấn đề ta thực hiện phương pháp nghiên cứu như sau:

- Khảo sát các hệ thống đã có.

- Phân tích và tổng hợp các lý thuyết có liên quan như ngôn ngữ lập trình C, Javascript, HTML, CSS, ….

- Tham khảo ý kiến, góp ý từ giáo viên hướng dẫn, anh chị, các bạn đã và đang làm những đề tài liên quan.

- Thực nghiệm trên mô hình.

Bố cục đồ án

Chương 1: Tổng quan: Trong chương này, nhóm trình bày tổng quan về tình hình nghiên cứu về các công nghệ hiện nay Mục tiêu, đối tượng và mục tiêu nghiên cứu của đề tài.

Chương 2: Cơ sở lý thuyết: Trong chương này, nhóm sẽ giới thiệu sơ lược về các linh kiện nhóm em đã sử dụng bao gồm ESP8266, Temperature sensor DHT11, Cảm biến độ ẩm, cảm biến cường độ ánh sáng BH1750, ma trận phím 4x4, GLCD, relay 2 kênh, relay 1 kênh, ESP 32 cam, ….

Chương 3: Thiết kế và thi công: Trong chương này, nhóm sẽ đưa ra các yêu cầu khi thiết kế, các thiết kế về phần cứng và phần mềm.

Chương 4: Kết quả thi công: Trong chương này, nhóm sẽ đưa ra kết quả mà đạt được, video, hình ảnh hệ thống sau khi thi công.

Chương 5: Kết luận và hướng phát triển: Trong chương này, nhóm sẽ đưa ra kết luận, những hạn chế và hướng phát triển của đề tài.

CƠ SỞ LÝ THUYẾT

Các chuẩn truyền dữ liệu trong Iots

Giao tiếp ngoại vi nối tiếp hoặc SPI (Serial Peripheral Interface) là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full – duplex) tức trong cùng một thời điểm có thể xảy ra đồng thời quá trình truyền và nhận.

Giao tiếp ngoại vi nối tiếp (SPI) là một loại giao thức kiểu Master – Slave cung cấp một giao diện chi phí đơn giản và chi phí thấp giữa vi điều khiển và các thiết bị ngoại vi của nó.

Hình 2.3 Hình minh họa giao tiếp SPI

+ MOSI (đầu ra master/đầu vào slave) - đường truyền cho master gửi dữ liệu đến slave. + MISO (đầu vào master/đầu ra slave) - đường cho slave gửi dữ liệu đến master. + SCLK (clock) - đường cho tín hiệu xung nhịp.

+ SS/CS (Slave Select/Chip Select) - đường cho master chọn slave nào để gởi tín hiệu.

Tín hiệu xung nhịp đồng bộ hóa đầu ra của các bit dữ liệu từ master để lấy mẫu các bit của slave Một bit dữ liệu được truyền trong mỗi chu kỳ xung nhịp, do đó tốc độ truyền dữ liệu được xác định bởi tần số của tín hiệu xung nhịp Giao tiếp SPI được khởi tạo bởi master kể từ khi master cấu hình và tạo ra tín hiệu xung nhịp.

Bất kỳ giao thức giao tiếp nào mà các thiết bị chia sẻ tín hiệu xung nhịp thì đều được gọi là đồng bộ SPI là một giao thức giao tiếp đồng bộ Ngoài ra còn có các phương thức không đồng bộ không sử dụng tín hiệu xung nhịp Ví dụ, trong giao tiếp UART, cả hai bên đều được đặt thành tốc độ truyền được cấu hình sẵn để chỉ ra tốc độ và thời gian truyền dữ liệu.

Tín hiệu xung nhịp trong SPI có thể được sửa bằng cách sử dụng các thuộc tính của phân cực xung nhịp và pha xung nhịp Hai thuộc tính này làm việc cùng nhau để xác định khi nào các bit được xuất ra và khi được lấy mẫu Phân cực xung nhịp có thể được thiết lập bởi master để cho phép các bit được xuất ra và lấy mẫu trên cạnh lên hoặc xuống của chu kỳ xung nhịp Pha xung nhịp có thể được đặt để đầu ra và lấy mẫu xảy ra trên cạnh đầu tiên hoặc cạnh thứ hai của chu kỳ xung nhịp, bất kể nó đang tăng hay giảm.

Master có thể chọn slave mà nó muốn giao tiếp bằng cách đặt đường CS/SS của slave ở mức điện áp thấp Ở trạng thái idle, không truyền tải, dòng slave select được giữ ở mức điện áp cao Nhiều chân CS/SS có thể có sẵn trên thiết bị master cho phép đấu dây song song nhiều slave Nếu chỉ có một chân CS/SS, nhiều slave có thể được kết nối với master bằng cách nối chuỗi.

SPI có thể thiết lập để hoạt động với một master và một slave duy nhất, và nó có thể được thiết lập với nhiều slave do một master duy nhất điều khiển Có hai cách để kết nối nhiều slave với master Nếu master có nhiều chân slave select, các slave có thể được nối dây song song như thế này:

Hình 2.4 Giao tiếp SPI trong trường hợp có nhiều chân Slave

Nếu chỉ có một chân slave select, các slave có thể được nối chuỗi như sau:

Hình 2.5 Giao tiếp SPI trong trường hợp có 1 chân Slave MOSI và MISO

Master gửi dữ liệu đến slave từng bit, nối tiếp qua đường MOSI Slave nhận dữ liệu được gửi từ master tại chân MOSI Dữ liệu được gửi từ master đến slave thường được gửi với bit quan trọng nhất trước.

Slave cũng có thể gửi dữ liệu trở lại master thông qua đường MISO nối tiếp Dữ liệu được gửi từ slave trở lại master thường được gửi với bit ít quan trọng nhất trước.

Các bước truyền dữ liệu SPI

1 Master ra tín hiệu xung nhịp.

2 Master chuyển chân SS/CS sang trạng thái điện áp thấp, điều này sẽ kích hoạt slave.

3 Master gửi dữ liệu từng bit một tới slave dọc theo đường MOSI Slave đọc các bit khi nó nhận được.

4 Nếu cần phản hồi, slave sẽ trả lại dữ liệu từng bit một cho master dọc theo đường MISO Master đọc các bit khi nó nhận được. Ưu điểm của chuẩn giao tiếp SPI

+ Không có bit bắt đầu và dừng nên dữ liệu có thể truyền liên tục mà không bị gián đoạn. + Không có địa chỉ Slave phức tạp như I2C.

+ Tốc độ truyền nhanh hơn I2C (nhanh gần gấp đôi).

+ Các đường MOSI, MISO riêng biệt nên có thể truyền và nhận dữ liệu cùng lúc.

Nhược điểm của chuẩn giao tiếp SPI

+ Sử dụng 4 dây trong khi UART và I2C chỉ sử dụng hai dây.

+ Không xác nhận được là dữ liệu đã được nhận thành công.

+ Không có hình thức kiểm tra lỗi chẵn lẻ.

+ Chỉ cho phép duy nhất một thiết bị Master.

Giới thiệu phương thức giao tiếp UART

UART (Universal Asynchronous Receiver-Transmitter – Bộ truyền nhận dữ liệu nối tiếp bất đồng bộ) là một trong những giao thức truyền thông giữa thiết bị với thiết bị được sử dụng nhiều nhất Bạn có thể thấy giao tiếp UART được sử dụng nhiều trong các ứng dụng để giao tiếp với các module như: Wifi, Bluetooth, Xbee, module đầu đọc thẻ RFID với Raspberry

Pi, Arduino hoặc vi điều khiển khác.

Hình 2.6 Hình minh họa giao tiếp UART

Trong một sơ đồ giao tiếp UART:

+ Chân TX (truyền) của một chip kết nối trực tiếp với chân RX (nhận) của chip kia và ngược lại Thông thường, quá trình truyền sẽ diễn ra ở 3.3V hoặc 5V UART là một giao thức một master, một slave, trong đó một thiết bị được thiết lập để giao tiếp với duy nhất một thiết bị khác.

+ Dữ liệu truyền đến và đi từ UART song song với thiết bị điều khiển (ví dụ: CPU). + Khi gửi trên chân TX, UART đầu tiên sẽ dịch thông tin song song này thành nối tiếp và truyền đến thiết bị nhận.

+ UART thứ hai nhận dữ liệu này trên chân RX của nó và biến đổi nó trở lại thành song song để giao tiếp với thiết bị điều khiển của nó.

UART truyền dữ liệu nối tiếp, theo một trong ba chế độ:

- Full duplex: Giao tiếp đồng thời đến và đi từ mỗi master và slave.

- Half duplex: Dữ liệu đi theo một hướng tại một thời điểm.

- Simplex: Chỉ giao tiếp một chiều.

Giới thiệu phần cứng

2.3.1 Giới thiệu KIT Arduino Uno R3

Arduino UNO có thể sử dụng ba vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328 Arduino UNO R3 là kit Arduino UNO thế hệ thứ 3, có thể được dùng lập trình cho các ứng dụng điều khiển phức tạp do được trang bị các loại bộ nhớ ROM, RAM và Flash, các chân vào ra digital I/O trong đó có nhiều chân có khả năng xuất tín hiệu PWM, các chân đọc tín hiệu analog và các chuẩn giao tiếp như UART, SPI, TWI (I2C).

Kit được ứng dụng rộng rãi và có nhiều cộng đồng, diễn đàn để trao đổi Bộ KitArduino đáp ứng được đầy đủ các chức năng nâng cao, vượt trội nhưng chi phí rẻ nên thích hợp dùng để nghiên cứu học tập.

Hình 2.20 Vi điều khiển atmega328P (Kit Arduino UNO)

Bảng 2.1 Thông số kỹ thuật Arduino UNO

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

USB) Điện áp vào khuyên dùng 7-12V DC

Tần số hoạt động 16 MHz Điện áp giới hạn 6-20V DC

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

Dòng điện trên mỗi chân I/O 20 - 40mA

Dòng điện trên mỗi chân 5V 500 mA

Dòng điện trên mỗi chân 3, 3V 50 mA

(2KB được sử dụng bởi bootloader)

Môi trường lập trình trên Kit Arduino UNO R3: Để lập trình cho các loại kit Arduino nói chung, nhóm phát triển của Arduino đã cũng cấp đến cho người dùng một môi trường lập trình Arduino được gọi là Arduino IDE môi trường lập trình chủ yếu theo kiểu một trình soạn thảo và biên dịch Và phẩn mềm Arduino IDE được nhiều người lựa chọn để lập trình Arduino.

Hình 2.21 Phần mềm Arduino IDE.

Arduino IDE có nhiều tính năng thông minh, có thể thao tác dễ dàng và linh hoạt,giao diện thân thiện với người dùng.

Hình 2.22 Giao diện chương Arduino IDE.

- Vùng 1: vùng soạn thảo Đây là nơi người dùng soạn thảo chương trình cho thiết bị

- Vùng 2: là vị trí của các cửa sổ chức năng, cho phép quản lý các thư viện hoặc board, quản lý các chương trình, compile project và verify project dùng để nạp và kiểm tra các đoạn mã code trong trình soạn thảo.

- Vùng 3: cửa sổ Build Output Hiển thị các thông tin trong quá trình biên dịch chương trình.

- Vùng 4: cửa sổ Serial Hiển thị các thông số kết quả được yêu cầu hiển thị ra để tương tác với người viết chương trình

2.3.2 Module Lora SX1278 433Mhz Ra-02

Mạch thu phát RF Lora SX1278 433Mhz Ra-02 sử dụng chip SX1278 của 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, 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 lĩnh vực IoT.

Hình 2.23 Lora SX1278 433Mhz Ra-02

Mạch thu phát RF SPI Lora SX1278 433Mhz Ra-02 có thiết kế dạng module, có thể dễ dàng khoảng cách truyền xa nhất, ngoài ra mạch còn có lớp bảo vệ bên ngoài nên có độ bền cao và khả năng hoạt động ổn định.

LoRa SX1278 hoạt động với giao thức truyền thông SPI nên có thể được sử dụng với bất kỳ vi điều khiển nào hỗ trợ SPI Bắt buộc phải sử dụng Ariel (ăng-ten) cùng với module khác, nó có thể làm hỏng module vĩnh viễn Module chỉ nên được cấp nguồn với 3, 3V và dòng SPI có thể được kết nối với uP / uC như trong hình bên dưới.

Hình 2.24 Sơ đồ nguyên lí Lora SX1278 433Mhz Ra-02.

Bảng 2.2 Thông số kỹ thuật của Lora SX1278 433Mhz Ra-02 Điện áp hoạt động

420 - 450MHz SPI / GPIO -40 đến +85 độ.

2.3.3 Cảm biến nhiệt độ - độ ẩm DHT 11

Cảm biến độ ẩm và nhiệt độ DHT11 Temperature Humidity Sensor 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 wire (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 toán nào.

Hình 2.25 Cảm biến nhiệt độ, độ ẩm DHT11

DHT11 có kích thước nhỏ gọn, cực kì chính xác về các hiệu số độ ẩm, tiêu thụ điện năng thấp và khả năng truyền tín hiệu lên đến 20m và chỉ sử dụng 1 chân kết nối dữ liệu nên nó được xem là lựa chọn tốt nhất cho các ứng dụng khác nhau.

Dưới đây là một số thông số kỹ thuật cơ bản của DHT11:

Bảng 2.3 Thông số kỹ thuật DHT11 Điện áp hoạt động 5VDC

Chuẩn giao tiếp TTL,1Wire

Khoảng đo độ ẩm 20 to 70%RH với sai số 5%.

Khoảng đo nhiệt độ 0-50°C, sai số 2°C

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

2.3.4 Cảm biến độ ẩm đất:

Cảm biến độ ẩm đất Soil Moisture Sensor được dùng trong các mô hình cần thông số độ ẩm đất như: tưới nước tự động, vườn thông minh, Cảm biến có thể đo độ ẩm đất và trả về giá trị analog hoặc digital tùy theo nhu cầu của người dùng.

Hình 2.26 Cảm biến độ ẩm đất.

Hình 2.27 Sơ đồ chân của cảm biến độ ẩm đất

Cảm biến có 2 led báo hiệu (1 led báo trạng thái của cảm biến, 1 led khi D0 ở mức 1 sẽ sáng led).

Hai đầu đo của cảm biến được cắm vào đất để đo điện trở giữa hai đầu Sau đó module chuyển đổi sẽ trả về giá trị analog hoặc digital Người dùng có thể chuyển đổi các giá trị trên thành độ ẩm có thang đo từ 0 đến 100%.

Module chuyển đổi có cấu tạo chính gồm một IC so sánh LM393, một biến trở, 4 điện trở dán 100 và 2 tụ dán Biến trở coi như là ngưỡng để so sánh với tín hiệu độ ẩm đất đọc về từ cảm biến Ngưỡng so sánh và dữ liệu lấy từ cảm biến sẽ là 2 đầu vào của IC so sánh LM393 IC sẽ trả về mức 1 nếu dữ liệu lấy từ cảm biến nhỏ hơn ngưỡng định mức, rtar về mức 0 nếu dữ liệu lớn hơn ngưỡng định mức.

2.3.5 Cảm biến cường độ ánh sáng GY-302 BH1750

Cảm biến cường độ ánh sáng GY-302 BH1750 được sử dụng để đo ổn định và chính xác cường độ ánh sáng với đơn vị là lux, cảm biến có thể trả về giá trị cường độ ánh sáng trực tiếp mà không cần người lập trình phải xử lý hay tính toán, vì cảm biến được tích hợp ADC nội và bộ tiền xử lý nên dữ liệu được đo và xử lý trực tiếp trên cảm biến và trả về cường độ ánh sáng với giá trị là lux.

Hình 2.28 Cảm biến ánh sáng GY-302 BH1750

Hình 2.29 Sơ đồ nguyên lý của GY-302 BH1750

- APM: chuyển đổi dòng sang điện áp.

- OSC: bộ dao động bên trong.

- Logic+I2C Interface : giao tiếp theo chuẩn I2C.

Bảng 2.4 Thông số kỹ thuật của GY-302 BH1750 Điện áp hoạt động 3~5VDC

Phạm vi phát hiện sáng 0-65535lux

Cường độ ánh sáng ● Ban đêm: 0.001 - 0.02 lux.

● Trời mây trong nhà: 5 - 50 lux.

● Trời mây ngoài trời: 50 - 500 lux.

● Trời nắng trong nhà: 100- 1000 lux.

2.3.6 Module Relay 5V OPTO cách ly quang 2 kênh:

Relay được coi như là một công tắt Tác dụng của relay là khi nhận tín hiệu điều khiển, relay sẽ đóng lại, làm kín mạch công suất, khiến mạch công suất hoạt động Ngoài ra nó còn tác dụng là cách ly giữa mạch điều khiển với mạch công suất, trong trường hợp mạch công suất gặp sự cố, thì vẫn không gấy ảnh hưởng đến mạch điều khiển Relay có hai loại là: đóng ở mức thấp transistor là PNP và relay đóng ở mức cao thì transistor là NPN.

Hình 2.30 Module Relay 5V OPTO cách ly quang 2 kênh

Relay được xem như một công tắc điện tử sử dụng tín hiệu điều khiển bật tắt relay điều khiển các thiết bị có công suất lớn hơn nhiều so với tín hiệu điều khiển.

Bảng 2.5 Thông số kỹ thuật relay 5V 2 kênh Điện áp tối đa AC 250V-10A / DC 30V-10A Điện áp điều khiển 5VDC

Ngôn ngữ HTML

HTML viết tắt của Hypertext Markup Language là ngôn ngữ lập trình dùng để xây dựng và cấu trúc lại các thành phần có trong Website HTML tạm dịch là ngôn ngữ đánh dấu siêu văn bản Người ta thường sử dụng HTML trong việc phân chia các đoạn văn, heading, links, blockquotes …

HTML được tạo ra bởi Tim Berners-Lee, một nhà vật lý học của trung tâm nghiên cứu CERN ở Thụy Sĩ Hiện nay, HTML đã trở thành một chuẩn Internet được tổ chức W3C (World Wide Web Consortium) vận hành và phát triển Chúng ta có thể tự tìm kiếm tình trạng mới nhất của HTML tại bất kỳ thời điểm nào trên Website của W3C.

Phiên bản đầu tiên của HTML xuất hiện năm 1991, gồm 18 tag HTML Phiên bản HTML 4.01 được xuất bản năm 1999 Sau đó, các nhà phát triển đã thay thế HTML bằng XHTML vào năm 2000. Đến năm 2014, HTML được nâng cấp lên chuẩn HTML5 với nhiều tag được thêm vào markup, mục đích là để xác định rõ nội dung thuộc loại là gì (ví dụ như: ,

HTML hoạt động như thế nào

HTML document có đuôi file dạng html hoặc htm Chúng ta có thể xem chúng bằng các trình duyệt web hiện hành như Google Chrome, Firefox, Safari … Nhiệm vụ của trình duyệt là đọc những file HTML này và “biến đổi” chúng thành một dạng nội dung visual trên Internet sao cho người dùng có thể xem và hiểu được chúng.

Thông thường, một Website sẽ có nhiều HTML document (ví dụ: trang chủ, trang blog, trang liên hệ …) và mỗi trang con như vậy sẽ có một tệp HTML riêng Mỗi tài liệu HTML bao gồm 1 bộ tag (hay còn gọi là element) Nó tạo ra một cấu trúc tương tự như cây thư mục với các heading, section, paragraph … và một số khối nội dung khác Hầu hết tất cả các HTML element đều có một tag mở và một tag đóng với cấu trúc Ưu điểm và nhược điểm của HTML a Ưu điểm

HTML được sử dụng để tạo bố cục, cấu trúc trang web Nó có một số ưu điểm sau :

● Có nhiều tài nguyên hỗ trợ với cộng đồng người dùng vô cùng lớn.

● Có thể hoạt động mượt mà trên hầu hết mọi trình duyệt hiện nay.

● Học HTML khá đơn giản.

● Các markup sử dụng trong HTML thường ngắn gọn, có độ đồng nhất cao.

● Sử dụng mã nguồn mở, hoàn toàn miễn phí.

● HTML là chuẩn web được vận hành bởi W3C.

● cho web tĩnh Nếu muốn tạo các tính năng động, lập trình viên phải dùng thêm JavaScript hoặc ngôn ngữ backend của bên thứ 3 (ví dụ như: PHP)

● Mỗi trang HTML cần được tạo riêng biệt, ngay có khi có nhiều yếu tố trùng lặp như header, footer.

● Khó để kiểm soát cách đọc và hiển thị file HTML của trình duyệt (ví dụ, một số trình duyệt cũ không render được tag mới Do đó, dù trong HTML document có sử dụng các tag này thì trình duyệt cũng không đọc được).

● Một vài trình duyệt còn chậm cập nhật để hỗ trợ tính năng mới của HTML.

Các đặc điểm của HTML

HTML có nhiều thẻ định dạng, do đó có thể trình bày trang Web dễ dàng, hiệu quả với ngôn ngữ đánh dấu siêu văn bản này Với tôi, nó là một ngôn ngữ đánh dấu dễ dàng và đơn giản để sử dụng Chúng ta có thể sử dụng nó để thiết kế trang Web cùng với văn bản một cách linh hoạt.

Một đặc điểm khá hay là HTML có thể liên kết đến các trang Web khác, nhờ ngôn ngữ đánh này, chúng ta có thể thêm các Video, hình ảnh, âm thanh vào để các Website hấp dẫn, đẹp mắt và dễ tương tác hơn Đặc biệt, HTML có thể hiển thị trên bất kỳ nền tảng nào khác như Linux, Windows, và Max vì nó là một nền tảng độc lập.

Ngôn ngữ CSS

CSS là viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu HTML CSS là ngôn ngữ tạo phong cách cho các phần tử của trang web HTML có vai trò định dạng các phần tử trên website như tạo các đoạn văn bản, tiêu đề, bảng,…còn CSS sẽ giúp thêm vào các phần tử HTML đó như cân đổi bố cục, màu sắc trang, đổi màu chữ, font chữ, thay đổi cấu trúc…

CSS được phát triển bởi W3C World Wide Web Consortium vào năm 1996, vì

HTML không được thiết kế để giúp định dạng trang web.

CSS sẽ tìm dựa vào các vùng chọn mà người lập trình, vùng chọn có thể là tên một thẻ HTML, tên một ID, class hay nhiều kiểu khác Sau đó là nó tiến hành áp dụng các thuộc tính cần thay đổi lên vùng chọn đó.

HTML và CSS có quan hệ với nhau rất mật thiết HTML là ngôn ngữ markup (nền tảng của site) và CSS định hình phong cách (tạo nên giao diện website), chúng là không thể tách rời.

Ngôn ngữ JavaScript

JavaScript được phát triển bởi Brendan Eich tại hãng truyền thông Nestscape với tên đầu tiên là Mocha Sau đó, đổi tên thành LiveScript và cuối cùng là JavaScript được sử dụng tới bây giờ JavaScript là một trong những ngôn ngữ lập trình website phổ biến hiện nay, nó được nhúng vào HTML giúp website trở nên sống động hơn JavaScript cũng góp phần tạo nên một trang web.

JavaScript thường được nhúng trực tiếp vào trang web hoặc được tham chiếu qua file có đuôi js JavaScript là ngôn ngữ từ phía client nên sẽ được tải trực tiếp script về máy client khi truy cập và được xử lý tại đó thay vì tải về máy server xử lý, rồi phản hồi đến mát client.

Cơ sở dữ liệu firebase realtime database

Firebase được định nghĩa theo nhiều cách khác nhau tùy vào góc độ quan điểm của người dùng Tuy nhiên có 2 khái niệm cơ bản khi nói về firebase:

+ Thứ nhất, đây là 1 nền tảng để phát triển ứng dụng di động và trang web Nền tảng này sẽ bao gồm các API đơn giản mà không cần backend hay server.

+ Thứ hai, Firebase là 1 dịch vụ hệ thống backend được google cung cấp sẵn cho ứng dụng Nó sẽ giúp người dùng phát triển, triển khai và mở rộng quy mô của ứng dụng di động nhanh hơn rất nhiều.

Hình 2.42 Hình minh họa hệ thống Firebase

Khi đăng ký tài khoản trên Firebase bạn sẽ có một cơ sở dữ liệu thời gian thực và dữ liệu bạn nhận được dưới dạng JSON Ngoài ra nó còn được đồng bộ thời gian thực đến mọi kết nối client Ở đây nó được tự động cập nhập dữ liệu mới nhất khi các lập trình viên phát triển ứng dụng và tất cả các dữ liệu được truyền qua kết nối an toàn SSL có bảo mật với chứng nhận 2048 bit.

Các chức năng của firebase

Firebase Analystics: Với tính năng này nó sẽ mang đến rất nhiều thông tin hữu ích cho quá trình phát triển bất kỳ một sản phẩm công nghệ nào Ở đây có khả năng về phân tích các số liệu được thu thập thông qua quá trình tương tác của người dùng với ứng dụng Qua đó, bạn sẽ dễ dàng thống kê được các số liệu cần thiết và đưa ra những kết luận về sự hiệu quả của phần mềm này.

Firebase hosting: là một dịch vụ cho phép người dùng sử dụng các tiện ích có sẵn thay vì phải tự xây dựng hay đi thuê các sever thực Hơn nữa dịch vụ này phù hợp với cả hai hệ điều hành IOS và Android nên khi sử dụng Firebase Hosting bạn sẽ không cần phải lo lắng về tính bảo mật vì nó hoàn toàn an toàn

Firebase cloud messaging: Tính năng này dùng để xử lý các hoạt động xung quanh tin nhắn, bao gồm có tin nhắn gửi và nhận tin nhắn miễn phí, thông báo các tin nhắn quan trọng hay thông báo các thông tin chung về tin nhắn,… Bên cạnh đó nó còn cho phép người dùng gửi những tin nhắn yêu cầu trả lời cho một số các đối tượng nhất định và thông thường là yêu cầu feedback cho những khách quen. Ưu điểm nổi bật của firebase

1 Tạo tài khoản và dễ dàng sử dụng:

Firebase cho phép người dùng đăng nhập bằng tài khoản Google đơn giản Gói Spark của Firebase miễn phí và cung cấp nhiều tính năng để giúp các nhà phát triển bắt đầu sử dụng Khi yêu cầu ngày càng tăng, tôi chọn gói Blaze có trả phí với nhiều tính năng nâng cao hơn.

2 Tốc độ phát triển nhanh:

Với tôi, Firebase là một tùy chọn phát triển ứng dụng phù hợp có thể giúp các nhà phát triển tiết kiệm thời gian và giảm thời gian tiếp thị ứng dụng.

Thông thường, mọi Developer cần có quyền truy cập vào Server và Host để tạo, bảo trì cơ sở dữ liệu và dịch vụ phụ trợ Do đó, cần có một Backend Developer và một Frontend Developer để xây dựng các ứng dụng Tuy nhiên, việc này thường có thể dẫn đến lỗi và các vấn đề có thể gây ra sự cố ứng dụng và làm tăng chi phí phát triển.

Thông qua việc sử dụng Firebase và Firestore, Frontend Developer có thể quản lý, giảm thời gian cần thiết để hoàn thành tất cả công việc.

3 Nhiều dịch vụ trong một nền tảng:

Firebase cũng cung cấp danh sách đầy đủ các sản phẩm để hỗ trợ các Developer trong quá trình phát triển.

Hai tùy chọn cơ sở dữ liệu là Firestore và Realtime Database của Firebase Tương tự như vậy, Firebase cho phép bạn thực hiện lưu trữ Cloud Media dễ dàng Nó cũng cho phép phát triển ứng dụng không cần máy chủ thông qua việc tích hợp Cloud Functions.

Firebase bao gồm toàn bộ chu trình phát triển ứng dụng Nền tảng này chứa các tính năng để xây dựng, phát hành và giám sát các ứng dụng Ngoài ra, là bước cuối cùng của chu trình phát triển ứng dụng, nó cung cấp các công cụ để thu hút người dùng và giữ họ sử dụng nó Đây cũng là ưu điểm của Firebase mà tôi đánh giá khá cao.

4 Được cung cấp bới Google:

Firebase được cung cấp bởi Google, một trong những tên tuổi nổi bật và đáng tin cậy nhất trong thế giới công nghệ Theo tôi được biết, kể từ khi được mua lại, Firebase đã trải qua một loạt thay đổi, phát triển và trở thành nền tảng đáng tin cậy như ngày nay Nó khai thác sức mạnh của Google Cloud và nhiều dịch vụ của Google.

Firebase hiện là một phần của Google Cloud Platform Nó hoạt động tốt với các dịch vụ Google Cloud khác và tích hợp với nhiều dịch vụ của bên thứ ba.

5 Tập trung vào phát triển giao diện người dùng:

Một ưu điểm khác khiến tôi yêu thích Firebase đó là nó cho phép Developer tập trung vào việc tạo mã Frontend cho các ứng dụng di động Nền tảng này giúp cho việc phát triển ứng dụng trở nên thuận tiện và giúp giảm chi phí đáng kể.

Sử dụng Firebase cũng cho phép các công ty, Developer chuẩn hóa môi trường Backend theo một công nghệ duy nhất và dễ học Mẫu Backend làm giảm số lượng đào tạo cần thiết để hỗ trợ nó và cho phép Developer tập trung vào phát triển giao diện người dùng.

6 Firebase không có máy chủ:

THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG

Giới thiệu

Trong chương này, nhóm trình bày về sơ đồ khối, các tính toán, lựa chọn nguồn cho hệ thống, giải thích chức năng hoạt động cho từng khối sơ đồ nguyên lý của các mạch trong hệ thống.

Yêu cầu hệ thống

Thiết kế một hệ thống có khả năng thu thập thông tin về các điều kiện của môi trường như nhiệt độ, độ ẩm không khí, độ ẩm đất, cường độ ánh sáng…Dữ liệu có thể được thu thập từ xa, sau đó gửi về gateway, gateway sẽ lưu trự dữ liệu trên database và hiển thị ra web điều khiển Người dùng có thể so sánh với các thông số tối ưu cho cây trồng được hiển thị trên web điều khiển và điều khiển các thiết bị như: bơm, quạt, phun sương… để điều chỉnh môi trường phù hợp với cây trồng.

Sơ đồ khối hệ thống

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

- Khối xử lý và điều khiển trung tâm: khối có nhiệm vụ nhận dữ liệu về các thông tin của môi trường từ khối xử lý và điều khiển phụ, sau đó sẽ gửi lên databsase Chức năng thứ hai

54 là nhận tín hiệu điều khiển từ database hoặc nút nhấn, gửi tín hiệu này về khối xử lý và điều khiển phụ để điều khiển các thiết bị công suất như: quạt, bơm, phun sương,…

- Khối xử lý và điều khiển phụ: khối có chức năng thu tập thông tin từ các cảm biến gửi về khối xử lý và điều khiển trung tâm và nhận tín hiệu điều khiển từ khối xử lý trung tâm để điều khiển các thiết bị.

- Khối cảm biến gồm các cảm biến: khối này có chức năng đo các thông số cơ bản của môi trường, sau đó gửi về cho khối xử lý và điều khiển phụ.

- Khối thiết bị : khối này nhận tín hiệu điều khiển từ khối xử lý phụ và điều khiển các thiết bị công suất như quạt, bơm, phun sương,…hoạt động.

- Khối database: khối này có nhiệm vụ lưu trữ các thông tin về thông số của môi trường, trạng thái hoạt động của các thiết bị công suất và trạng thái điều khiển của chúng.

- Khối web giám sát và điều khiển: khối có chức năng giám sát các thông số môi trường và điều khiển các thiết bị từ xa.

- Khối nút nhấn: khối có chức năng điều khiển thiết bị bằng tay từ gateway.

- Khối camera: khối có chức năng ghi lại hình ảnh trong nhà kính và gửi về khối web giám sát và điều khiển.

- Khối hiển thị :hiển thị các thông số của môi trường, trạng thái hoạt động của các thiết bị như máy bơm, quạt, máy phun sương.

- Khối nguồn: khối có chức năng cung cấp nguồn cho toàn bộ hệ thống hoạt động.

Tính toán và thiết kế phần cứng

3.4.1 Khối xử lý và điều khiển trung tâm

Khối xử lý và điều khiển trung tâm được gọi là gateway, là nơi giao tiếp, truyền/nhận dữ liệu giữa database và các node Trong các hệ thống IOT thường sử dụng NodeMCU hoặc Raspberry Pi Tuy nhiên với giá thành rẻ, kích thước nhỏ gọn, các chức năng vừa đủ nên nhóm quyết định lựa chọn NodeMCU ESP32 DEVKIT V1 làm khối xử lý và điều khiển trung tâm.

3.4.1.2 Yêu cầu và chức năng của khối xử lý và điều khiển trung tâm:

Yêu cầu: thiết kế khối xử lý và điều khiển trung tâm (Gateway) có khả năng truyền/nhận dữ liệu giữa database và các khối xử lý và điều khiển phụ (node).

+ Nhận dữ liệu về các thông số cơ bản của môi trường từ các khối xử lý và điều khiển phụ (node), sau đó gửi lên database để lưu trữ.

+ Nhận tín hiệu điều khiển từ các nút nhấn hoặc web điều khiển, truyền tín hiệu về cho các khối xử lý và điều khiển phụ để điều khiển thiết bị.

3.4.1.3 Sơ đồ kết nối của khối xử lý và điều khiển trung tâm:

Hình 3.2 Sơ đồ kết nối của khối xử lý và điều khiển trung tâm Ở module ESP32, ta sử dụng hết các chân của module, cụ thể:

+ 2 chân GND của module Lora được nối lần lượt vào chân GND của ESP32.

+ Chân RST sẽ được nối với chân D0 của ESP8266.

+ 4 chân SCK, MISO, MOSI, SDA lần lượt được nối với các chân từ D5 – D8 của

3.4.2 Khối xử lý và điều khiển phụ

3.4.2.1 Lựa chọn phần cứng và giải thích:

Khối xử lý và điều khiển phụ còn được gọi là node, thông thường các vi điều khiển như PIC, STM, ATmega (Arduino), Tuy nhiên với yêu cầu cơ bản như nhận tín hiệu từ cảm biến và truyền nhận dữ liệu thì không cần vi điều khiển quá mạnh nên Arduino UNO R3 là phù hợp với yêu cầu đã đặt ra

3.4.2.2 Yêu cầu và chức năng của khối xử lý và điều khiển phụ:

+ Nhận dữ liệu về các thông số cơ bản của môi trường từ các cảm biến

+ Điều khiến các thiết bị hoạt động.

+ Truyền/nhận dữ liệu với khối xử lý và điều khiển trung tâm.

Chức năng: nhận dữ liệu từ các cảm biến và gửi cho khối xử lý và điều khiển trung tâm, nhận tín hiệu điều khiển từ khối xử lý và điều khiển trung tâm để điều khiển các thiết bị công suất hoạt động.

3.4.2.3 Sơ đồ kết nối của khối xử lý và điều khiển phụ:

Hình 3.3 Sơ đồ kết nối khối điều khiển phụ 1.

Arduino Uno R3 kết nối với module Lora thông qua các chân sau:

+ 2 chân GND của module Lora kết nối với chân GND của Arduino UNO.

+ Chân 3.3V của Arduino UNO được nối với chân 3.3 của module Lora

+ Các chân RST, DIO0, NSS, MOSI, MISO, SCK của module Lora được kết nối với Arduino UNO thông qua các chân lần lượt là: 8, 9, 10, 11, 12, 13

Arduino Uno R3 kết nối với module DHT11 thông qua các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ Chân OUT của module DHT11 kết nối với chân 4 của Arduino UNO.

Arduino Uno R3 kết nối với module Relay 2 kênh thông qua các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ 2 chân IN1, IN2 được nối lần lượt vào chân 2 và 3 của Arduino UNO.

Hình 3.4 Sơ đồ kết nối khối điều khiển phụ 2.

Arduino Uno R3 kết nối với module Lora thông qua các chân sau:

+ 2 chân GND của module Lora kết nối với chân GND của Arduino UNO.

+ Chân 3.3V của Arduino UNO được nối với chân 3.3 của module Lora

+ Các chân RST, DIO0, NSS, MOSI, MISO, SCK của module Lora được kết nối với Arduino UNO thông qua các chân lần lượt là: 8, 9, 10, 11, 12, 13

Arduino Uno R3 kết nối với module Relay 1 kênh thông qua các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ Chân IN1 được nối vào chân 2 của Arduino UNO.

Arduino Uno R3 kết nối với module GY-302 BH1750 thông qua các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ 2 chân SCL, SDA của module GY-302 BH1750 kết nối lần lượt với chân A4 và A5 của Arduino UNO.

Arduino Uno R3 kết nối với module SOIL MOITURE thông qua các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ Chân SIG được nối vào chân A0 của Arduino UNO.

3.4.3.1 Lựa chọn phần cứng và giải thích:

Khối cảm biến gồm có các cảm biến:

- Cảm biến độ ẩm - nhiệt độ: trên thị trường có nhiều loại cảm biến độ ẩm - nhiệt độ như: DHT11, DHT22, BME280,…thì DHT11 có giá thành rẻ nhất và tầm đo cũng vừa đủ với yêu cầu đo nhiệt độ trong nhà kính nên nhóm chọn DHT11 làm cảm biến nhiệt độ - độ ẩm.

- Cảm biến đo độ ẩm đất: MS-84, PH2.54-3P, Maker,…trong đó MS-84 là lọai phổ biến và có giá thành rẻ, phù hợp với yêu cầu đề tài nên nhóm chọn làm cảm biến đo độ ẩm đất.

- Cảm biến cường độ ánh sáng: Có hai loại cảm biến cường độ ánh sáng là GY-

30 BH1750 và GY-302 BH1750 Hai loại này đều đo cường độ ánh sáng với đơn vị là lux Tuy nhiên với giá thành rẻ hơn và công năng là như nhau nên nhóm chọn cảm biến GY-302 BH1750.

3.4.3.2 Yêu cầu và chức năng của khối cảm biến:

Yêu cầu: cần thu thập các thông số cơ bản từ môi trường

Chức năng: khối cảm biến gồm cảm biến độ ẩm không khí – nhiệt độ, cảm biến độ ẩm đất, cảm biến cường độ ánh sáng Khối có chức năng thu thập các thông số cơ bản của môi trường để lưu trữ và giám sát, từ đó người dùng có thể dựa vào các thông số để điều khiển thiết bị, tạo môi trường phù hợp cho cây trồng.

3.4.3.3 Sơ đồ kết nối của khối cảm biến:

Hình 3.5 Sơ đồ kết nối cảm biến khối xử lý phụ 1 (Node1)

Arduino Uno R3 kết nối với module DHT11 thông qua các chân sau:

+ 2 chân Vcc, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ Chân OUT của module DHT11 kết nối với chân 4 của Arduino UNO.

Hình 3.6 Sơ đồ kết nối cảm biến khối xử lý phụ 2 (Node2)

Arduino Uno R3 kết nối với module GY-302 BH1750 thông qua các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ 2 chân SCL, SDA của module GY-302 BH1750 kết nối lần lượt với chân A4 và A5 của Arduino UNO.

Arduino Uno R3 kết nối với module SOIL MOITURE thông qua các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ Chân SIG được nối vào chân A0 của Arduino UNO.

3.4.4.1 Lựa chọn phần cứng và giải thích:

Có nhiều loại thiết bị (bơm, quạt, phun sương) với nhiều kích cỡ và công suất khác nhau trên thị trường Tuy nhiên đối với đề tài này thì nhóm đang thử nghiệm ở mức mô hình nên các thiết bị công suất được chọn có kích thước nhỏ, và công suất phù hợp với mô hình Sau khi tìm hiểu thì các thiết bị mà nhóm đã chọn là:

+ Máy bơm chìm mini 5VDC

3.4.4.2 Yêu cầu và chức năng khối thiết bị công suất:

Yêu cầu: cần các thiết bị để bơm nước, làm mát, tăng độ ẩm cho cây trồng trong nhà kính.

Chức năng: khối thiết bị công suất có chức năng bơm nước, làm mát, tăng độ ẩm để điều khiển môi trường trở nên phù hợp, tạo điều kiện tốt nhất cho cây trồng trong nhà kính phát triển.

3.4.5.1 Lựa chọn phần cứng và giải thích:

Trên thị trường có nhiều loại nút nhấn như nhấn giữ, switch, công tắt lật, Tuy nhiên nhóm lựa chọn keypad 4x4, là dạng nút nhấn ma trận 4x4, có tính thẩm mĩ cao và vì nó có dạng module nên dễ dàng thay thế khi bị hỏng.

3.4.5.2 Yêu cầu và chức năng khối nút nhấn

Yêu cầu: gửi tín hiệu điều khiển cho khối xử lý và điều khiển trung tâm.

Chức năng: khối nút nhấn dùng để truyền tín hiệu điều khiển cho gateway, từ gateway gửi cho các node để điều khiển thiết bị.

3.4.5.3 Sơ đồ kết nối của khối nút nhấn:

Hình 3.7 Sơ đồ kết nối của khối nút nhấn

Module PCF8574 kết nối với Keypad 4x4 thông qua các chân sau:

+ Các chân 1, 2, 3, 4, 5, 6, 7, 8 của Keypad 4x4 được kết nối lần lượt với các chân

3.4.6.1 Lựa chọn phần cứng và giải thích:

Trên thị trường hiện có nhiều loại LCD như: GLCD, TFT LCD, LCD 16x2, LCD 20x4,…sau khi cân nhắc yêu cầu cũng như chức năng Nhóm chọn LCD20x4 làm màn hình hiển thị vì chỉ yêu cầu hiển thị cơ bản các thông số và thông tin đơn giản nên LCD 20x4 là

3.4.6.2 Yêu cầu và chức năng của khối hiển thị:

Yêu cầu: nhận dữ liệu từ khối điều khiển và xử lý trung tâm, hiển thị ra màn hình.

Chức năng: Nhận dữ liệu từ khối xử lý trung tâm và hiển thị các thông số cơ bản của môi trường và trạng thái các thiết bị.

3.4.6.3 Sơ đồ kết nối của khối hiển thị:

Hình 3.8 Sơ đồ kết nối của khối hiển thị

Module PCF8574 kết nối với LCD 20x4 thông qua module I2C bằng các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân VCC và chân GND của module

+ 2 chân SCL, SDA của module PCF8574 kết nối lần lượt với chân SCL và SDA của module I2C.

3.4.7.1 Lựa chọn phần cứng và giải thích:

Có nhiều loại camera dùng cho các hệ thống IOT nhưng phổ biến là ESP32 CAM và camera Raspberry Pi Nhóm quyết định chọn ESP32 CAM vì chất lượng hình ảnh vừa đủ với nhu cầu thực hiện đồ án này và nó còn có thể truyền hình ảnh về web thông qua Wi-Fi để giám sát.

3.4.7.2 Yêu cầu và chức năng khối camera:

Yêu cầu: quay toàn bộ nhà kính và gửi hình ảnh về web để có thể giám sát nhà kính từ xa.

Chức năng: quay lại hình ảnh các thiết bị và cây trồng, gửi về web giám sát.

3.4.7.3 Sơ đồ kết nối của khối camera:

Hình 3.9 Sơ đồ kết nối của khối camera

Arduino Uno R3 kết nối với ESP32 Cam thông qua các chân sau:

+ 2 chân VCC, GND được nối lần lượt vào chân nguồn 5V và chân GND của

+ Chân TX của Arduino Uno kết nối với chân RX của ESP32 Cam và chân TX của ESP32 Cam kết nối với chân RX của Arduino Uno.

3.4.8.1 Yêu cầu và chức năng của khối nguồn:

Yêu cầu: cung cấp năng lượng cho toàn hệ thống hoạt động.

Thiết kế phần mềm

Dựa theo thiết kế phần cứng thì và yêu cầu đặt ra thì phần mềm gồm ba phần chính:

● Viết chương trình cho hai Node 1 và 2 (kit Arduino UNO R3) dùng ngôn ngữ C và trình biên dịch Arduino IDE Chức năng của hai Node là thu thập dữ liệu từ cảm biến gửi cho Gateway, nhận dữ liệu điều khiển từ Gateway.

● Viết chương trình cho ESP32 DEVKIT V1 dùng ngôn ngữ C và trình biên dịch Arduino IDE Chức năng chính của Gateway là nhận dữ liệu từ hai Node, cập nhật dữ liệu lên database, gửi tín hiệu điều khiển cho hai Node.

● Viết chương trình kết nối giữa database web client dùng HTML, CSS và JS.

Hình 3.10 Lưu đồ giải thuật khối xử lý và điều khiển trung tâm (Gateway)

Giải thích lưu đồ: khi khối xử lý và điều khiển trung tâm được cấp nguồn,

ESP32 sẽ khỏi tạo các port dã được lập trình, khởi động Lora và kết nối với WIFI, nếu khởi động không thành công sẽ chờ cho tới khi khởi động thành công Sau khi đã khởi động thành công, ESP32 sẽ nhận gói dữ liệu từ các node gửi đến, đọc dữ liệu và gửi lên database và web giám sát.Nếu có tín hiệu điều khiển từ web giám sát hoặc nút nhấn thì ESP32 sẽ gửi tín hiệu điều khiển thông qua Lora cho các node và nhận các thông tin về trạng thái hoạt động của các thiết bị rồi cập nhật lên database.

Giải thích lưu đồ Node1: sau khi

Node được cấp nguồn thì sẽ tiến hành khởi tạo các port I/O, khởi động Lora và các cảm biến, nếu khởi động không thành công thì tiến hành khởi động lại đến khi thành công Sau đó thu thập dữ liệu từ cảm biến, đóng gói và gửi cho Gateway Nếu có lệnh điều khiển từ Gateway thì điều khiển thiết bị hoạt động theo lệnh và cập nhật trạng thái thiết bị.

Hình 3.11 Lưu đồ giải thuật Node1

Giải thích lưu đồ Node2: Sau khi được cấp nguồn, Node2 sẽ cấu hình các port, khỏi động Lora, các cảm biến, nếu khởi động không thành công thì khởi động lại đến khi thành công Sau khi đã khởi động thành công, Node2 nhận dữ liệu thu thập từ các cảm biến, đóng gói và gửi cho Gateway Nếu có lệnh điều khiển từ Gateway thì điều khiển theo lệnh và cập nhật trạng thái thiết bị.

Hình 3.12 Lưu đồ giải thuật Node2

Giải thích lưu đồ giải thuật: khi khởi động hệ thống, web giám sát sẽ cấu hình và khởi động kết nối với database để lấy dữ liệu về các thông số môi trường và trạng thái hoạt động của các thiết bị, cập nhật và hiển thị lên web Nếu người dùng bật hoặc tắt các thiết bị thì tiến hành cập nhật trạng thái các thiết bị trên database và hình ảnh thiết bị hoạt động để người dùng nắm thông tin.

Hình 3.13 Lưu đồ giải thuật khối web giám sát

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

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

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

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

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

3.8 Mạch in của hệ thống

Hình 3.18 Mạch PCB của Gateway

Hình 3.19 Mạch PCB của Node1

Các hình 3.18, 3.19, 3.20 lần lượt là kết quả của mạch PCB các khối điều khiển thứ nhất, thứ hai, từ xa mà nhóm em đã vẽ trên phần mềm Altium.

3.9 Thiết kế cơ sở dữ liệu firebase

Chức năng : giúp người sử dụng lưu trữ các thông số môi trường thu thập được từ các cảm biến cũng như biết được các trạng thái hoạt động của thiết bị và chế độ hoạt động của hệ thống. Yêu cầu: Có địa chỉ truy cập từ bên ngoài để có thể giao tiếp được với mạch điều khiển và có khả năng lưu trữ dữ liệu.

Dựa trên yêu cầu của hệ thống, nhóm em đã liệt kê ra 3 mục ( 3 trường ) cần được thiết kế trên firebase lần lượt là thiết bị ( Device ), chế độ ( Mode ), cảm biến ( Sensor ):

+Đối với trường thiết bị ( Device ), chức năng của trường này sẽ cập nhật, lưu trữ trạng thái mong muốn của các thiết bị ( quạt, bơm, phun sương ) và hiển thị trạng thái hoạt động của các thiết để cho người tiêu dùng biết có xảy ra hư hỏng không.

+Đối với trường chế độ ( Mode ), chức năng của trường này sẽ cập nhật, lưu trữ chế độ mà người dùng mong muốn là tự động hay thủ công.

+Đối với trường cảm biến ( Sensor ), chức năng của trường này sẽ cập nhật, lưu trữ các thông số môi trường được thu thập từ các cảm biến nhiệt độ, độ ẩm, ánh sáng, độ ẩm đất.

Tương ứng với mỗi trường, dữ liệu được cập nhật sẽ khác nhau và ghi lại thông tin khác nhau. Dựa trên điều này, nhóm em dự định thiết kế giao diện real-time firebase như sau:

Hình 3.21 3 trường thiết kế trên firebase

Như đã nói phần đầu, trong mỗi trường sẽ hiển thị những thông tin khác nhau, nhóm em cũng thiết kế hiển thị những thông tin bên trong mỗi trường như sau, đầu tiên là về trường “Device”:

Hình 3.22 Các dữ liệu trong trường “Device”

Tiếp theo là trường “Mode”:

Hình 3.23 Các dữ liệu trong trường “Mode”

Cuối cùng là trường “ Sensor”:

Hình 3.24 Các dữ liệu trong trường “Sensor”

Web được thiết kế để có thể :

+Hiển thị các thông số môi trường từ các cảm biến.

+Trạng thái hoạt động của các thiết bị.

+Chế độ hoạt động của thiết bị.

+Thông số phù hợp với cây trồng. Để có thể đáp ứng những yêu cầu đã đặt ra nhóm em đã thiết kế web dựa trên hình ảnh minh họa như sau:

Hình 3.25 Hình minh họa giao diện web

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

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

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

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

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

Mạch in của hệ thống

Hình 3.18 Mạch PCB của Gateway

Hình 3.19 Mạch PCB của Node1

Các hình 3.18, 3.19, 3.20 lần lượt là kết quả của mạch PCB các khối điều khiển thứ nhất, thứ hai, từ xa mà nhóm em đã vẽ trên phần mềm Altium.

Thiết kế cơ sở dữ liệu firebase

Chức năng : giúp người sử dụng lưu trữ các thông số môi trường thu thập được từ các cảm biến cũng như biết được các trạng thái hoạt động của thiết bị và chế độ hoạt động của hệ thống. Yêu cầu: Có địa chỉ truy cập từ bên ngoài để có thể giao tiếp được với mạch điều khiển và có khả năng lưu trữ dữ liệu.

Dựa trên yêu cầu của hệ thống, nhóm em đã liệt kê ra 3 mục ( 3 trường ) cần được thiết kế trên firebase lần lượt là thiết bị ( Device ), chế độ ( Mode ), cảm biến ( Sensor ):

+Đối với trường thiết bị ( Device ), chức năng của trường này sẽ cập nhật, lưu trữ trạng thái mong muốn của các thiết bị ( quạt, bơm, phun sương ) và hiển thị trạng thái hoạt động của các thiết để cho người tiêu dùng biết có xảy ra hư hỏng không.

+Đối với trường chế độ ( Mode ), chức năng của trường này sẽ cập nhật, lưu trữ chế độ mà người dùng mong muốn là tự động hay thủ công.

+Đối với trường cảm biến ( Sensor ), chức năng của trường này sẽ cập nhật, lưu trữ các thông số môi trường được thu thập từ các cảm biến nhiệt độ, độ ẩm, ánh sáng, độ ẩm đất.

Tương ứng với mỗi trường, dữ liệu được cập nhật sẽ khác nhau và ghi lại thông tin khác nhau. Dựa trên điều này, nhóm em dự định thiết kế giao diện real-time firebase như sau:

Hình 3.21 3 trường thiết kế trên firebase

Như đã nói phần đầu, trong mỗi trường sẽ hiển thị những thông tin khác nhau, nhóm em cũng thiết kế hiển thị những thông tin bên trong mỗi trường như sau, đầu tiên là về trường “Device”:

Hình 3.22 Các dữ liệu trong trường “Device”

Tiếp theo là trường “Mode”:

Hình 3.23 Các dữ liệu trong trường “Mode”

Cuối cùng là trường “ Sensor”:

Hình 3.24 Các dữ liệu trong trường “Sensor”

Thiết kế web

Web được thiết kế để có thể :

+Hiển thị các thông số môi trường từ các cảm biến.

+Trạng thái hoạt động của các thiết bị.

+Chế độ hoạt động của thiết bị.

+Thông số phù hợp với cây trồng. Để có thể đáp ứng những yêu cầu đã đặt ra nhóm em đã thiết kế web dựa trên hình ảnh minh họa như sau:

Hình 3.25 Hình minh họa giao diện web

KẾT QUẢ

Kết quả của hệ thống

4.1.1 Mô hình phần cứng của hệ thống

Dựa theo mục tiêu đã đặt ra khi tìm hiểu cũng như thực hiện đồ án, nhóm đã xây dựng một phần cứng như sau:

Hình 4.1 Tổng thể của toàn hệ thống

Sau thời gian tìm hiểu và thực hiện đồ án nhóm em đã thực hiện được mô hình hệ thống như hình 4.1 bao gồm: hộp điều khiển thứ nhất(node1), hộp điều khiển thứ hai(node2), hộp điều khiển từ xa và các thiết bị điều khiển (quạt, bơm, phun sương).

Hình 4.2 Hộp điều khiển thứ nhất (node1)

Hình 4.2 là kết quả chi tiết phần cứng của node1 bao gồm: cảm biến nhiệt độ, độ ẩm DHT11, vi điều khiển Arduino uno, Relay Opto cách ly quang 2 kênh, module Lora SX1278 433Mhz Ra-

Hình 4.3 Hộp điều khiển thứ hai (node2)

Hình 4.3 là kết quả phần cứng của node2 bao gồm: cảm biến độ ẩm đất MS-84, vi điều khiển Arduino uno, Relay Opto cách ly quang 2 kênh, module Lora SX1278 433Mhz Ra-02 Ai-Thinker, cảm biến ánh sáng BH1750 GY-302.

Hình 4.4 Hình thiết bị quạt trong hệ thống

Hình 4.5 Hình thiết bị bơm trong hệ thống

Hình 4.6 Hình thiết bị phun sương trong hệ thống

Hình 4.4, 4.5, 4.6 lần lượt là các thiết bị quạt, bơm ,phun sương mà nhóm em dùng để điều khiển nhằm thay đổi các thông số về môi trường nhằm giúp cây trồng phát triển tốt hơn gia tăng năng suất.

Hình 4.7 Cảm biến cường độ ánh sáng

Hình 4.8 Cảm biến độ ẩm đất

Hình 4.9 Cảm biến nhiệt độ/độ ẩm

Các hình 4.7, 4.8, 4.9 lần lượt là các cảm biến nhiệt độ/độ ẩm DHT11, cảm biến độ ẩm đất MS-84, cảm biến ánh sáng BH1750 GY-302 được đặt môi trường mô hình nhằm thu thập các giá trị về thông số môi trường cho các hộp điều khiển và web.

Hình 4.10 Hộp điều khiển từ xa (gateway)

Hình 4.10 là hộp điều khiển từ xa(gateway) bao gồm keypad 4x4 để điều khiển thiết bị và màn hình LCD 20x4

Màn hình LCD 20x4 sẽ hiển thị:

● Các giá trị thu thập từ cảm biến, thông số cài đặt

● Các trạng thái hoạt động của các thiết bị

4.1.2 Web giám sát và điều khiển

Sau khi kết nối thành công với database, web giám sát sẽ nhận dữ liệu về các thông số của môi trường và hiển thị để người dùng nắm thông tin.

Hình 4.11 Giao diện web giám sát và điều khiển

Hình 4,11 là giao diện web giám sát giúp chúng ta nắm bắt được các thông tin:

● Các giá trị thu tập từ cảm biến sẽ hiển thị lên màng hình web

● Ở chế độ tự động cho phép người dùng điều khiển thiết bị hoạt động tự động theo thông số đã thiết lập từ trước Các giá trị thu tập từ cảm biến sẽ hiển thị lên màng hình web

● Ở chế độ thủ công cho phép người dùng điều khiển thiết bị bằng các thao tác bằng tay.

● Hệ thống phát hiện được tình trang thiết bị và báo về trang web thiết bị có hư hỏng hay không.

Kết quả hoạt động phần mềm của hệ thống

4.2.1 Database và web giám sát

Hình 4.12 Dữ liệu thu nhập được gửi về database

Hình 4.12 thể hiện các dữ liệu được lưu trữ trên Firebase Các dữ liệu bao gồm: các thông số về môi trường mà các cảm biến thu thập được cũng như các trạng thái điều khiển của các thiết bị.

Hình 4.13 Hình ảnh qua camera giám sát

Hình 4.13 cho thấy hệ thống camera hoạt động tốt, có thể tùy chỉnh theo kích thước khung ảnh theo nhu cầu của người tiêu dùng, hệ thống có thể truyền dữ liệu hình ảnh cây trồng, tuy nhiên chất lượng hình ảnh chưa được tốt.

4.2.2 Các thiết bị hoạt động

Hình 4.15 Phun sương hoạt động

Các hình 4.14, 4.15, 4.16 là kết quả mà nhóm đã điều khiển các thiết bị hoạt động nhằm thay đổi các thông số về môi trường sao cho phù hợp với cây trồng.

Kiểm tra, đánh giá khoảng cách truyền tin của Lora

Khi Theo như giới thiệu của nhà sản xuất thì Module LoRa SX1278 433Mhz Ra-02 có thể truyền các gói tin với khoảng cách lên đến 10km Để kiểm tra khả năng truyền tin của LoRa nhóm đã thử nghiệm như sau:

Hình 4.17 các khu vực thực hiện kiểm tra truyền/nhận LoRA

Hình 4.17 thể hiện hai khu vực được chọn để thử nghiệm LoRa, khu A là khu vực gồm các bãi đất trống và ít nhà cao tầng, khu vực B là khu vực gồm nhiều nhà cửa và có một số nhà cao tầng khoảng 20

Hình 4.18 Khoảng cách khi truyền/nhận LoRA ở khu vực A

Hình 4.19 khoảng cách truyền/nhận LoRA khi ở khu vực B

Có thể thấy khi truyền tin ở khu vực nhiều bãi đất trống và ít vật cản thì LoRa có khả năng truyền xa và ít mất các gói dữ liệu hơn, ngược lại khi truyền ở nơi nhiều vật cản như khu dân cư thì khoảng cách truyền sẽ bị thu hẹp lại và các gói dữ liệu bị mất cũng sẽ nhiều hơn Kết quả chi tiết được thể hiện ở bảng 2 bên dưới.

Bảng 4.1 Tỉ lệ mất các gói dữ liệu ở hai khu vực

Khu vực Khoảng cách tới Số gói dữ liệu gửi đi Số gói dữ liệu bị mất Tỷ lệ gói dữ liệu bị

Ngày đăng: 15/11/2023, 06:07

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w