Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
2,73 MB
Nội dung
Học viện Cơng nghệ Bưu Viễn thơng BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI: HỆ THỐNG NÔNG NGHIỆP THƠNG MINH NHĨM BÀI TẬP LỚN: 06 THÀNH VIÊN: LÊ THANH BÌNH – B19DCCN067 PHẠM THỊ NGA – B19DCCN460 HÀ NỘI, 2023 Mục lục I Mục tiêu: II Sơ đồ hệ thống III Sơ đồ chức IV Quá trình phát triển 4.1 Phần cứng .5 4.1.1 Kít ESP32 DEVKITV1 Chân Input Only .6 Chân tích hợp Flash ESP32 Chân cảm biến điện dung Analog to Digital Converter (ADC) Digital to Analog Converter (DAC) Các chân thời gian thực RTC Chân PWM Chân I2C Chân Ngắt Ngoài .7 4.1.2 Thiết bị 4.1.3 Code Arduino 4.2 Phần mềm 13 4.2.1 Server 13 4.2.2 Web .16 I Mục tiêu: - Mục tiêu: Xây dựng hệ thống nơng nghiệp tự động nhà kính cho phép thực số công việc từ xa bao gồm: điều khiển đèn, điều khiển việc tưới tiêu, điều khiển việc đóng/mở cửa - Phần cứng: + Minicomputer: ESP32 DEVKITV1 + Sensor: cảm biến độ ẩm đất, cảm biến nhiệt độ độ ẩm khơng khí, quang trở, cảm biến đo mực nước + Thiết bị khác: đèn led, bơm, servor, relay 5V - Phần mềm: + Web: ReactJS + Server: Python, sử dụng phương thức gửi nhận liệu MQTT + Arduino: C++ - Chức năng: * Chức điều khiển: Hệ thống có chế độ: thủ cơng, tự đông lập lịch + Ở chế độ thủ cơng: Người dùng bật/tắt đèn, bật/bắt máy bơm, đóng/mở cửa bằng thao tác web + Ở chế độ lập lịch: Người dùng chọn mốc thời gian khoảng thời gian mà thiết bị hoạt động + Ở chế độ tự động: Hệ thống dựa số gửi từ sensor để đưa định điều khiển thiết bị * Chức hiển thị: + Hiển thị biểu độ nhiệt độ độ ẩm khơng khí + Hiển thị lượng nước bể chứa + Hiển thị dự báo thời tiết - Yêu cầu triển khai: + Web triển khai mạng cục + Các thiết bị triển khai mạng cục + Backend kết nối với thiết bị Arduino Web giao tiếp thông qua kênh xử lý MQTT theo mơ hình Pub, Sub II Sơ đồ hệ thống III Sơ đồ chức IV Quá trình phát triển 4.1 Phần cứng 4.1.1 Kít ESP32 DEVKITV1 ESP32 vi điều khiển giá rẻ, lượng thấp có hỗ trợ wifi dual-model Bluetooth (Bluetooth chế độ kép) ESP32 sản phẩm kế thừa từ vi điều khiển ESP8266 Bảng tra cứu chân ESP32 GPIO Pin Input Output pulled up OK TX pin OK OK OK OK RX pin OK OK OK OK X X X X X X X X Chức đặc biệt outputs PWM signal at boot debug output at boot connected to on board LED HIGH at boot outputs PWM signal at boot connected to the integrated SPI flash connected to the integrated SPI flash connected to the integrated SPI flash connected to the integrated SPI flash 10 X X 11 X X 12 OK OK 13 OK OK 14 OK OK 15 OK OK 16 17 18 19 21 22 23 25 26 27 32 33 34 35 36 39 GPIO Pin OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK Input OK OK OK OK OK OK OK OK OK OK OK OK Output pulled up OK TX pin OK OK OK OK OK RX pin OK OK OK connected to the integrated SPI flash connected to the integrated SPI flash boot fail if pulled high outputs PWM signal at boot outputs PWM signal at boot input only input only input only input only Chức đặc biệt outputs PWM signal at boot debug output at boot connected to on board LED HIGH at boot outputs PWM signal at boot Mô tả chân Chân Input Only GPIO từ 34 đến 39 GPI – chân đầu vào Các chân khơng có điện trở kéo lên kéo xuống bên Chúng sử dụng làm đầu ra, sử dụng chân làm đầu vào: Chân tích hợp Flash ESP32 GPIO đến GPIO 11 dùng để kết nối Flash SPI, khơng khuyến khích sử dụng ứng dụng khác Chân cám biến điện dung Các chân ESP32 có chức nút nhấn cảm ứng, phát thay đổi điện áp cảm ứng chân Analog to Digital Converter (ADC) ESP32 có kênh đầu vào ADC 18 x 12 bit (trong ESP8266 có ADC 1x 10 bit) Digital to Analog Converter (DAC) Có kênh DAC x bit ESP32 để chuyển đổi tín hiệu kỹ thuật số thành đầu tín hiệu điện áp tương tự Các kênh có độ phân giải bit, nghĩa có giá trị từ – 255 tương ứng với – 3.3V Các chân thời gian thực RTC Các chân có tác dụng đánh thức ESP32 chế độ Low Power Mode Sử dụng chân ngắt Chân PWM ESP32 LED PWM có 16 kênh độc lập định cấu hình để tạo tín hiệu PWM với thuộc tính khác Tất chân hoạt động đầu sử dụng làm chân PWM (GPIO từ 34 đến 39 khơng thể tạo PWM) Chân I2C ESP32 có hai kênh I2C chân đặt làm SDA SCL Khi sử dụng ESP32 với Arduino IDE, chân I2C mặc định là: GPIO 21 (SDA) GPIO 22 (SCL) Chân Ngắt Ngoài Tất chân ESP32 sử dụng ngắt 4.1.2 Thiết bị * Cảm biến đo độ ẩm đất Cảm biến độ ẩm đất Soil Moisture Sensor thường sử dụng mơ hình tưới nước tự động, vườn thông minh, , cảm biến giúp xác định độ ẩm đất qua đầu dò trả giá trị Analog, Digital qua chân tương ứng để giao tiếp với Vi điều khiển để thực vô số ứng dụng khác Thông số kỹ thuật: Điện áp hoạt động: 3.3~5VDC Tín hiệu đầu ra: Analog: theo điện áp cấp nguồn tương ứng Digital: High Low, điều chỉnh độ ẩm mong muốn biến trở thông qua mạch so sánh LM393 tích hợp Kích thước: x 1.6cm * Cảm biến đo nhiệt độ độ ẩm khơng khí Cảm biến nhiệt độ độ ẩm thiết bị cảm biến tạo nên từ thiết bị điện tử có độ nhạy cao, dùng để đo đạc mức độ ẩm nhiệt độ khơng khí Chúng đo mức độ ẩm tương đối, tuyệt đối cụ thể dựa vào phận cảm biến Nguyên lý hoạt động Cảm biến nhiệt độ độ ẩm hoạt động dựa theo nguyên lý hấp thụ nước để biến đổi tính chất, thành phần cảm nhận cảm biến từ làm cho thiết bị điện trở thay đổi giá trị, xuất biến đổi dòng điện nhờ xác định, đo lường độ ẩm thay đổi Với thiết bị cảm biến nhiệt độ độ ẩm điện dung khơng khí qua kim loại có thay đổi độ ẩm khơng khí tạo biến đổi điện dung * Cảm biến đo mực nước Cảm biến đo mức nước thiết bị đo mức chất lỏng bồn chứa giúp xác định mức chất lỏng cao hay thấp Theo phương pháp đo mức chất lỏng chia thành hai loại: loại có tiếp xúc loại khơng tiếp xúc Ngun lý hoạt động cảm biến đo mức nước đặt vào độ sâu định chất lỏng cần đo, áp suất bề mặt phía trước cảm biến chuyển thành độ cao mực chất lỏng Cơng thức tính Ρ = ρ.g.H + Po * Quang trở Quang trở gọi điện trở quang, photoresistor, photocell linh kiện tạo chất đặc biệt thay đổi điện trở ánh sáng chiếu vào Về bản, bạn hiểu tế bào quang điện hoạt động dựa theo nguyên lý quang dẫn Hay hiểu điện trở thay đổi giá trị theo cường độ ánh sáng Quang trở sử dụng nhiều mạch cảm biến ánh sáng, đèn đường, báo động ánh sáng, đồng hồ trời,… * Bảng chi tiết ghép nối thiết bị vào ESP32 Thiết bị Sensor độ ẩm đất Sensor nhiệt độ độ ẩm Sensor đo mực nước Chân VCC GND A0 VCC GND DATA S + Chân tương ứng với ESP32 VI GND 36 VI GND 17 33 3V Servo Relay Bơm ngang Led Led Led Led Led Led Quang trở VCC GND DATA VCC GND IN NO COM Chân đen Chân đỏ + + + + + + + - GND VI GND 14 3V GND 16 Bơm VI Relay GND 3V 23 3V 3V 18 3V 19 3V 21 3V 22 13 34 4.1.3 Code Arduino Khai báo thuộc tính phục vụ kết nối wifi Khai báo thuộc tính phục vụ kết nối server Trong đó: Link server: “broker.hivemq.com” Port: 1883 Khai báo input/output sensor thiết bị tương ứng bảng Hàm Setup: Thiết lập chân đầu cho cảm biến, kết nối wifi kết nối với server Hàm setup wifi: Hàm reconnect: Kết nối lại với server trường hợp timeout bị ngắt kết nối Hàm callback: Lấy thông điệp từ server gửi Thông điệp gửi phần cứng có dạng “device=status”, bao gồm thông điệp: “Analog=0” : Thông điệp yêu cầu gửi liệu nhiệt độ/ độ ẩm khơng khí mực nước cho server “Servo=on”; “Servo=off” : Mở/Đóng cửa “Pump=on”; “Pump=off” : Bật/tắt bơm “Light=on”; “Light=off” : Bật/tắt đèn Dữ liệu gửi từ kênh “device/update_status” có dạng: “device=status” Thực thao tác lấy giá trị “device” “status” để điều khiển thiết bị Hàm loop: Thực trì kết nối, gửi liệu liên tục (bao gồm độ ẩm đất, cường độ ánh sáng mực nước) hiển thị đèn theo mực nước 4.2 Phần mềm 4.2.1 Server - Sử dụng ngôn ngữ lập trình Python thư viện paho.mqtt để kết nối với mqtt Server thứ - Khởi tạo kênh kết nối Web Arduino bao gồm phần: Arduino Client Web Client Arduino Client giao tiếp với Server sau Server xử lý thơng tin nhận giao tiếp thông tin với bên Web Client - Kết nối với Server MQTT thông qua thông số khai báo - Hàm giao tiếp thơng tin theo mơ hình Pub, sub MQTT - Các hàm xử lý thông tin giao tiếp qua kênh Web Client Arduino Client 4.2.2 Web - Giao diện người dùng sử dụng frameworks ReactJs kết hợp thư viện MQTT.js để giao tiếp với server thứ MQTT - Các hàm xử lý giao tiếp MQTT theo mơ hình Pub, Sub - Các chức trang web: Hiện thị thông tin ngày tháng o o Hiện thị thời tiết HN thông qua call API OpenWeather o Phần giao tiếp xử lý với thiết bị nhúng Led, Pump Door qua giao thức MQTT Broker với giao thức WSS mơ hình Pub Sub Các chức bật tắt, tự động điều khiển, hẹn thiết bị o o Vẽ thông tin biểu đồ bảng liệu lên trang web o Chức nhận diện giọng nói giao tiếp thơng qua lệnh với thiết bị nhúng (Sử dụng Web Speech API - API Web Speech cho phép kết hợp liệu thoại vào ứng dụng web API Web Speech có hai phần: SpeechSynthesis (văn thành phát biểu) SpeechRecognition (nhận dạng giọng nói khơng đồng bộ.) Giao diện người dùng: