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

kỹ thuật lập trình cơ điện tử đề tài điều khiển robot đo nhiệt độ độ ẩm và chất lượng không khí

22 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

2.2 Một số tính năng nổi bật của Firebase • Realtime Database: Firebase cung cấp một cơ sở dữ liệu thời gian thực, cho phép bạn lưu trữ và đồng bộ dữ liệu trong thời gian thực giữa các ứ

Trang 1

Đề tài: Điều khiển robot đo nhiệt độ, độ ẩm và chất lượng không khí

Giáo viên hướng dẫn: TS Trương Công TuấnSinh viên thực hiện:

Hoàng Công Phát - 20205390 Nguyễn Quang Vinh - 20205473Đàm Huy Việt – 20205468Nguyễn Thế Việt - 20205471

Trang 2

SVTH: 1

MỤC LỤC I TỔNG QUAN VỀ ĐỀ TÀI 2

1 ĐẶT VẤN ĐỀ 2

2 MỤC TIÊU 2

II CÁC THÀNH PHẦN CƠ BẢN CỦA XE ĐIỀU KHIỂN 3

1 CÁC THIẾT BỊ SỬ DỤNG 3

2 GIỚI THIỆU VỀ FIRE BASE 5

2.1 Khái niệm về Fire Base 5

2.2 Một số tính năng nổi bật của Firebase 5

3 NGÔN NGỮ LẬP TRÌNH C# 8

3.1 Khái niệm cơ bản 8

3.2 Gửi dữ liệu từ C# Winform lên Firebase 8

3.3 Giao tiếp ESP32 với Firebase 9

III HỆ THỐNG ĐIỀU KHIỂN CỦA XE 10

1 SƠ ĐỒ MẠCH ĐIỆN 10

2 GIAO DIỆN ĐIỀU KHIỂN 11

3 NGUYÊN LÝ TRUYỀN NHẬN TÍN HIỆU GIỮA ESP32 VÀ FIREBASE 12

1 CODE LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ NGOẠI VI 15

2 CODE LẬP TRÌNH THIẾT KẾ GIAO DIỆN 18

Trang 3

SVTH: 2

TÓM TẮT NỘI DUNG BÀI TẬP LỚN

1 Nêu khái quát mục tiêu, ý nghĩa và các yêu cầu của BTL 2 Tóm tắt các kết quả đạt được

3 Công việc cụ thể của các thành viên

trưởng

1 Đặt vấn đề

Hiện nay, việc đo chất lượng không khí, nhiệt độ và độ ẩm thường phụ thuộc vào các thiết bị cầm tay hoặc các trạm đo cố định Điều này gây khó khăn trong việc đo đạc chính xác và liên tục trên một phạm vi cụ thể Sự cần thiết là phải có một robot có khả năng điều khiên di chuyển từ xa và đo các thông số này để thu thập dữ liệu chất lượng môi trường.Với mục tiêu thu thập dữ liệu chất lượng không khí, nhiệt độ và độ ẩm trên một phạm vi cụ thể, việc thu thập và xử lý dữ liệu trở thành một thách thức Cần có công nghệ và phương pháp xử lý dữ liệu hiệu quả để lưu trữ và phân tích số liệu thu thập được từ robot Việc kết nối và truyền tải dữ liệu đo từ robot về một trung tâm quản lý là một yếu tố quan trọng Cần có phương thức kết nối không dây đáng tin cậy và an toàn để truyền tải dữ liệu một cách liên tục và đáng tin cậy về trung tâm quản lý

Xuất phát từ những vấn đề trên, cùng với sự phát triển của khoa học công nghệ, robot đo nhiệt độ, độ ẩm và chất lượng không khí có thể đáp ứng nhu cầu hiện nay của con người Trong những điều kiện môi trường độc hại, robot có thể đi tiên phong, nhằm tìm kiếm, phác họa địa hình, đo đạc các thông số như nhiệt độ, độ ẩm,…giúp con người đánh giá được mức độ nguy hiểm của môi trường và đưa ra những phương án tiếp cận hợp lí

2 Mục tiêu

Trang 4

SVTH: 3

Tìm hiểu và thiết kế được xe điều khiển Người dùng có thể điều khiển xe qua giao diện tự thiết kế, với các chức năng điều hướng, tăng giảm tốc độ, các thông số nhiệt độ, độ ẩm và chất lượng không khí.

Một số hình ảnh minh họa:

Vụ nổ nhà máy hạt nhân Xe thám hiểm trên sao Hỏa

1 Các thiết bị sử dụng

SoC

• Bộ nhớ: Flash ROM 4MB • RAM: Từ 520KB • Wi-Fi: Chuẩn Wi Fi 802.11 -

b/g/n 2.4GHz, hỗ trợ chế độ Access Point (AP) và Station (STA)

• Bluetooth: Chuẩn Bluetooth Low Energy (BLE) v4.2 và v5.0

• GPIO: Tổng cộng 30 chân GPIO (General Purpose Input/Output)

• Giao diện ngoại vi: UART, SPI, I2C, I2S, ADC, DAC, PWM

• Hỗ trợ các giao thức: TCP/IP, UDP, HTTP, MQTT • Hỗ trợ mã hoá bảo mật: AES,

RSA, SHA, SLL/TLS • Đầu vào nguồn: 2.2V đến

3.6V

• Hệ điều hành: Hỗ trợ FreeRTOS

Trang 5

SVTH: 4

• Kích thước: Tùy thuộc vào phiên bản, nhưng thông thường là khoảng 26mm x 18mm 2 Mạch điều khiển

động cơ L298N • Điện áp điều khiển: từ 5V đến 12V • Dòng điện tối đa: 2A cho mỗi

kênh động cơ

• Điện áp của tín hiệu điều khiển: 5V – 7V • Số kênh động cơ: 2 kênh • Công suất hao phí: 20W • Số lượng đầu vào tín hiệu điều

khiển: 3 đầu vào cho mỗi kênh động cơ (IN1, IN2, IN3, IN4) • Giao tiếp: PWM (Pulse Width Modulation) để điều khiển tốc độ động cơ

• Chức năng bảo vệ quá nhiệt và quá dòng

• Chế độ làm việc: chế độ điện áp cao (high voltage) hoặc chế độ PWM (Pulse Width Modulation) 3 Module cảm biến

nhiệt độ, độ ẩm DHT11

• Nguồn cung cấp 3.3-6V DC • Phạm vi đo độ ẩm tốt nhất:0-

100% RH; sai số:2-5% • Phạm vi đo nhiệt độ tốt nhất:-

40 ~ 80 ; sai số ±0.5°C • Độ phân giải hoặc độ nhạy

0,1% RH; nhiệt độ 0,1 độ C • Thời gian cảm biến trung bình:

2 giây 4 Module cảm biến

chất lượng không khí MQ135

• Điện áp hoạt động: 5V DC • Dòng điện tiêu thụ: Khoảng

150mA

• Dải đo: Từ 10ppm đến 1000ppm (Parts Per Million) • Độ nhạy: Từ 3.6 đến 4.4 ppm • Điện trở tải: 20kΩ đến 50kΩ

Trang 6

SVTH: 5

• Điện trở nhiệt: 33Ω ± 5% • Nhiệt độ hoạt động: Từ -10°C

đến +50°C

• Độ ẩm hoạt động: Từ 10% đến 90% không ngưng tụ • Tuổi thọ: Khoảng 5 năm 5 Màn hình hiển thị

LCD 16x2 • Số cột: 16 • Số dòng: 2

• Điện áp hoạt động: 5V DC • Kiểu hiển thị: LCD (Liquid

Crystal Display)

• Giao diện: Parallel (Song song) • Độ phân giải: 16x2 ký tự • Số chân kết nối: 16 chân • Đèn nền: Có thể điều chỉnh độ

sáng

• Kích thước màn hình: 84mm x 44mm

• Vùng hiển thị mỗi ký tự: 5x8 pixel

2 Giới thiệu về Fire Base 2.1 Khái niệm về Fire Base

Firebase là một tập hợp các nền tảng phát triển ứng dụng và dịch vụ điện toán đám mây phụ trợ do Google cung cấp Nó lưu trữ cơ sở dữ liệu, dịch vụ, xác thực và tích hợp cho nhiều ứng dụng, bao gồm Android, IOS, JavaScript, Node.js, Java, Unity, PHP và C++ 2.2 Một số tính năng nổi bật của Firebase

• Realtime Database: Firebase cung cấp một cơ sở dữ liệu thời gian thực, cho phép bạn lưu trữ và đồng bộ dữ liệu trong thời gian thực giữa các ứng dụng di động và web

• Authentication: Firebase hỗ trợ quản lý người dùng và đăng nhập bằng cách cung cấp các phương thức xác thực như email/password, đăng nhập xã hội (Google, Facebook, Twitter), và nhiều hơn nữa

• Cloud Firestore: Đây là một dịch vụ cơ sở dữ liệu linh hoạt và mạnh mẽ, cho phép lưu trữ dữ liệu theo dạng tài liệu (document) và bộ sưu tập (collection) để quản lý dữ liệu phân tán

Trang 7

SVTH: 6

• Cloud Storage: Firebase cung cấp dịch vụ lưu trữ đám mây, cho phép bạn lưu trữ và quản lý các tệp tin (hình ảnh, video, tài liệu) trong ứng dụng của bạn

• Cloud Functions: Đây là một tính năng cho phép bạn viết và triển khai mã máy chủ trong môi trường đám mây của Firebase, để thực hiện các chức năng phức tạp như xử lý dữ liệu, tính toán, gửi thông báo, và nhiều hơn nữa

• Hosting: Firebase cung cấp dịch vụ lưu trữ và phân phối ứng dụng web của bạn Bạn có thể dễ dàng triển khai và quản lý ứng dụng web của mình trên cơ sở hạ tầng toàn cầu của Firebase • Analytics: Firebase cung cấp công cụ phân tích ứng dụng, giúp

bạn hiểu rõ hơn về hành vi người dùng, hiệu suất ứng dụng, và sự tương tác của người dùng với ứng dụng của bạn

2.2.1 Nguyên lý hoạt động của Realtime Database

• Nguyên lý hoạt động của Realtime Database là dựa trên mô hình publish-subscribe (đăng ký và đăng báo) Khi bạn lưu trữ dữ liệu trong Realtime Database, dữ liệu được tổ chức theo dạng cây JSON Mỗi nút trong cây đại diện cho một đường dẫn trong cơ sở dữ liệu

• Khi có bất kỳ sự thay đổi nào trong cơ sở dữ liệu, như thêm, sửa đổi hoặc xóa dữ liệu, Realtime Database sẽ tự động thông báo và gửi cập nhật đến tất cả các thiết bị hoặc ứng dụng đã đăng ký lắng nghe (subscribe) đến nút dữ liệu tương ứng

• Các thiết bị và ứng dụng có thể lắng nghe các sự kiện cập nhật từ Realtime Database bằng cách sử dụng các API cung cấp bởi Firebase Khi nhận được thông báo về sự thay đổi, các thiết bị và ứng dụng có thể tự động cập nhật và hiển thị dữ liệu mới nhất cho người dùng

• Mô hình publish-subscribe giúp Realtime Database đảm bảo tính thời gian thực trong việc đồng bộ dữ liệu Thay vì phải thực hiện các yêu cầu lấy dữ liệu liên tục để kiểm tra sự thay đổi, các thiết bị và ứng dụng chỉ cần đăng ký lắng nghe và sẽ nhận thông báo ngay lập tức khi có sự thay đổi xảy ra • Điều này giúp cải thiện hiệu suất ứng dụng, giảm tải cho

máy chủ và đảm bảo rằng người dùng luôn được cung cấp thông tin mới nhất mà không cần làm mới trang hoặc tương tác với ứng dụng

2.2.2 Mô hình Publish-Subscribe

Trang 8

SVTH: 7

Trong mô hình publish subscribe (đăng ký và đăng báo) được sử dụng trong Realtime Database, có ba thành phần chính: nhà cung cấp (publisher) và người đăng ký (subscriber) và kênh (channels)

-• Nhà cung cấp (publisher): Là entity (thực thể) hoặc ứng dụng có trách nhiệm gửi các thông báo cập nhật đến Realtime Database khi có sự thay đổi dữ liệu Khi có sự thay đổi, nhà cung cấp gửi thông điệp chứa dữ liệu mới đến Realtime Database

• Người đăng ký (subscriber): Là entit hoặc ứng dụng muốn y nhận thông báo về sự thay đổi dữ liệu Người đăng ký đăng ký lắng nghe (subscribe) đến một hoặc nhiều nút dữ liệu trong Realtime Database mà họ quan tâm Khi có sự thay đổi tại các nút dữ liệu đã đăng ký, người đăng ký sẽ nhận được thông báo và có thể xử lý dữ liệu mới

• Kênh (channels): Các kênh hoạt động như các kênh liên lạc trong Cơ sở dữ liệu thời gian thực Chúng đại diện cho các đường dẫn hoặc vị trí dữ liệu cụ thể trong hệ thống phân cấp cơ sở dữ liệu Nhà xuất bản xuất bản cập nhật dữ liệu cho các kênh cụ thể và người đăng ký đăng ký để nhận thông tin cập nhật từ các kênh đó

Mô hình pusblish-subscriber trong Realtime Database tuân theo quy trình làm việc cho phép cập nhật và thông báo dữ liệu theo thời gian thực Quy trình hoạt động của mô hình này:

1 Publishers: là entities hoặc ứng dụng thực hiện thay đổi dữ liệu và xuất bản chúng lên Realtime Database Họ có quyền ghi vào các đường dẫn hoặc vị trí dữ liệu cụ thể trong cơ sở dữ liệu

2 Subscriber: là entities hoặc ứng dụng muốn nhận các bản cập nhật theo thời gian thực từ Realtime Database Họ đăng ký các đường dẫn hoặc vị trí dữ liệu cụ thể và lắng nghe những thay đổi trong các đường dẫn đó 3 Channels: đại diện cho các đường dẫn hoặc vị trí dữ liệu cụ thể trong

Realtime Database Mỗi kênh được liên kết với một tập hợp dữ liệu mà nhà xuất bản có thể cập nhật và người đăng ký có thể nhận được 4 Publishing Data: Khi publisher thực hiện thay đổi dữ liệu, publisher sẽ

gửi yêu cầu cập nhật tới Realtime Data, chỉ định đường dẫn dữ liệu và giá trị mới Cơ sở dữ liệu nhận được bản cập nhật và xử lý nó

5 Event Triggering: Sau khi thay đổi dữ liệu được xử lý, Realtime Database sẽ kích hoạt các sự kiện để thông báo cho tất cả những người đăng ký đã đăng ký các kênh tương ứng Những sự kiện này chứa thông tin về dữ liệu được cập nhật

Trang 9

SVTH: 8

6 Data Propagation: Realtime Data gửi dữ liệu cập nhật tới các máy khách đã đăng ký qua kết nối liên tục Điều này cho phép người đăng ký nhận được các bản cập nhật trong thời gian thực mà không cần phải bỏ phiếu thường xuyên hoặc làm mới thủ công

7 Subscribers Response: Subscribers nhận được các bản cập nhật và có thể xử lý chúng dựa trên logic cụ thể của họ Họ có thể cập nhật giao diện người dùng, thực hiện tính toán, kích hoạt hành động hoặc thực hiện bất kỳ bước cần thiết nào khác dựa trên các thay đổi dữ liệu nhận được 8 Continous Listening: Subcribers duy trì kết nối tích cực với Realtime

Database và tiếp tục nghe để cập nhật thêm Điều này đảm bảo rằng chúng luôn được đồng bộ hóa với cơ sở dữ liệu và nhận các bản cập nhật theo thời gian thực miễn là chúng vẫn được đăng ký

Mô hình publish-subscribe trong Realtime Database cho phép đồng bộ hóa real-time data hiệu quả và có thể mở rộng giữa publishers và subscribers Nó cho phép subscribers nhận các bản cập nhật đồng thời, đảm bảo rằng tất cả các máy khách đã đăng ký đều được thông báo kịp thời về những thay đổi dữ liệu trong Database

3 Ngôn ngữ lập trình C# 3.1 Khái niệm cơ bản

C# (C sharp) là một ngôn ngữ lập trình hiện đại và hướng đối tượng được phát triển bởi Microsoft Nó là một phần của NET Framework và được sử dụng phổ biến để phát triển các ứng dụng đa dạng, bao gồm phần mềm desktop, ứng dụng web, ứng dụng di động, dịch vụ dựa trên đám mây, phát triển game, …

3.2 Gửi dữ liệu từ C# Winform lên Firebase Các bước cơ bản để thực hiện:

Bước 1: Cài đặt Firebase NET SDK thông qua NuGet Package Manager trong Visual Studio

Bước 2: Khởi tạo kết nối Firebase: Trước tiên, bạn cần khởi tạo kết nối tới dự án Firebase của mình bằng cách sử dụng thông tin cấu hình Firebase Code minh hoạ:

IfirebaseConfig config = new FirebaseConfig {

AuthSecret = "YOUR_AUTH_SECRET", BasePath = "YOUR_FIREBASE_URL" };

var firebaseClient = new FirebaseClient(firebaseConfig);

Trang 10

SVTH: 9

Bước 3: Gửi dữ liệu lên Firebase Realtime Database:

IFirebaseClient client = new FirebaseClient(config); SetResponse response = await client.SetAsync(dulieu); //dulieu là một class

3.3 Giao tiếp ESP32 với Firebase Các bước cơ bản để thực hiện:

Bước 1: Thiết lập Cơ sở dữ liệu thời gian thực Firebase: Đảm bảo rằng bạn đã thiết lập và định cấu hình dự án Firebase với Cơ sở dữ liệu thời gian thực Lưu ý URL cơ sở dữ liệu và thông tin đăng nhập xác thực

Bước 2: Định cấu hình ESP32 để kết nối Wi-Fi: Thiết lập thiết bị ESP32 để kết nối với mạng Wi-Fi của bạn Bạn sẽ cần cung cấp SSID và mật khẩu của mạng Wi-Fi của mình

Bước 3: Cài đặt Thư viện Arduino Firebase: Trong Arduino IDE, đi tới Phác thảo -> Bao gồm Thư viện > Quản lý Thư viện -Tìm kiếm "Firebase Arduino" và cài đặt thư viện của Cộng đồng Firebase

#include <WiFi.h>

#include <FirebaseESP32.h>

Bước 4: Thiết lập kết nối Firebase: Khởi tạo đối tượng FirebaseESP32 bằng thông tin đăng nhập Firebase và chi tiết Wi-Fi của bạn

#define FIREBASE_HOST "database-url" #define FIREBASE_AUTH "authentication-token" #define WIFI_SSID "wifi-ssid"

#define WIFI_PASSWORD "wifi-password" FirebaseData firebaseData;

void setup() {

Serial.begin(115200);

WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(500);

Serial.print("."); }

Trang 11

SVTH: 10

Serial.println("Connected to Wi-Fi");

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); }

Bước 5: Lấy dữ liệu từ Firebase truyền về ESP32 Sử dụng “Firebase.get” chức năng lấy dữ liệu của Firebase

Trang 12

SVTH: 11

Chức năng của các khối trong sơ đồ như sau :

- Khối động cơ: Dùng mạch cầu L298N, kết nối với Arduino thông qua 6 chân từ IN1 đến IN4 và ENA, ENB để điều khiển động cơ quay cùng/ngược chiều kim đồng hồ và thay đổi tốc độ của động cơ

- Khối trung tâm xử lí chính: sử dụng ESP32, chịu trách nhiệm điều khiển cảm biến nhiệt độ, độ ẩm DHT11, cảm biến chất lượng không khí MQ135 và giao tiếp với Fire Base

2 Giao diện điều khiển

Trang 13

SVTH: 12

3 Nguyên lý truyền nhận tín hiệu giữa ESP32 và Firebase - Khởi tạo kết nối WiFi trên ESP32 để kết nối với mạng WiFi - Khi ESP32 cần gửi dữ liệu lên Firebase, nó sẽ tạo một yêu cầu HTTP

POST chứa các thông tin cần gửi lên

- ESP32 sử dụng thư viện `FirebaseESP32.h` để gửi yêu cầu HTTP POST đến Firebase thông qua địa chỉ `FIREBASE_HOST` và mã xác thực `FIREBASE_AUTH`

- Firebase nhận yêu cầu HTTP POST từ ESP32, xác thực yêu cầu bằng mã xác thực

- Sau khi xác thực thành công, Firebase lưu trữ dữ liệu nhận được từ ESP32 vào cơ sở dữ liệu tương ứng

- Khi ESP32 cần lấy dữ liệu từ Firebase, nó sẽ tạo một yêu cầu HTTP GET để truy vấn dữ liệu từ Firebase

- ESP32 sử dụng thư viện `FirebaseESP32.h` để gửi yêu cầu HTTP GET đến Firebase thông qua địa chỉ `FIREBASE_HOST` và mã xác thực `FIREBASE_AUTH`

- Firebase nhận yêu cầu HTTP GET từ ESP32, xác thực yêu cầu bằng mã xác thực

- Sau khi xác thực thành công, Firebase truy vấn dữ liệu từ cơ sở dữ liệu tương ứng và gửi lại dữ liệu được yêu cầu đến ESP32

- ESP32 nhận dữ liệu từ Firebase thông qua yêu cầu HTTP GET và sử dụng nó vào các hoạt động hoặc tác động lên robot hoặc hiển thị lên màn hình LCD

Ngày đăng: 13/06/2024, 10:11

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w