Danh mục hình vẽ.................................................................................
Danh mục bảng biểu.............................................................................
Chương 1: Giới thiệu:...........................................................................
Chương 2: Phương pháp đo.................................................................
2.1 Chỉ tiêu chức năng:..........................................................................................
2.2 Chỉ tiêu phi chức năng.....................................................................................
2.3 Lựa chọn linh kiện:..........................................................................................
2.3.1 Khối nguồn: ............................................................................................... 8
2.3.2 Khối cảm biến ............................................................................................ 9
2.3.3 Khối điều khiển: ....................................................................................... 10
2.3.4 Khối hiển thị: ........................................................................................... 11
Chương 3: Dụng cụ đo ........................................................................ 12
3.1 Khoảng cách: ................................................................................................. 12
3.1.1 Cấu tạo..................................................................................................... 12
3.1.2 Nguyên lý hoạt động ................................................................................ 12
Chương 4: Tiến hành đo thực nghiệm .............................................. 13
4.1 Sơ đồ kết nối phần cứng: ............................................................................... 13
4.2 Lập trình cho ESP32: ..................................................................................... 13
4.2.1 Thuật toán: .............................................................................................. 13
4.2.2 Code:........................................................................................................ 14
4.3 Đóng gói sản phẩm: ....................................................................................... 17
Chương 5: Kết quả đo và xử lí sai số ................................................. 18
5.1 Bộ dữ liệu đầu vào ......................................................................................... 18
5.2 Kết quả đo và xử lý sai số: ............................................................................. 18
5.2.1 Khoảng cách: ........................................................................................... 18
5.2.2 So sánh với kết quả đo thực tế bằng thước kẻ ......................................... 19
5.3 Nhận xét: ........................................................................................................ 20
5.3.1 Sai số hệ thống: ....................................................................................... 20
5.3.2 Sai số ngẫu nhiên: ................................................................................... 20
5.3.3 Hạn chế sai số: ........................................................................................ 21
Chương 6: Kết luận ............................................................................. 22
Chương 7: Tài liệu tham khảo ........................................................... 23
Danh mục hình vẽ
Hình 2.1: Sơ đồ khối hệ thống......................................................................................7
Hình 2.2: Pin 9V..........................................................................................................9
Hình 2.3: Cảm biến HC-SR04....................................................................................10
Hình 2.4: Cảm biến HY-SRF05.................................................................................10
Hình 2.5: ESP-WROOM-32.......................................................................................11
Hình 2.6: Màn hình OLED SSD1306.........................................................................12
Hình 4.1: Mạch mô phỏng hệ thống...........................................................................14
Hình 4.2: Hình ảnh sản phẩm thực tế.........................................................................19
Danh mục bảng biểu
Bảng 2-1: Bảng so sánh giữa cảm biến HC-SR04 và HY-SRF05.............................10
Bảng 2-2: Bảng thông số kĩ thuật của ESP-WROOM-32..........................................11
Bảng 5-1: Kết quả đo khoảng cách............................................................................20
Bảng 5-2: Sai số dư khoảng cách..............................................................................21
Chương 1: Giới thiệu:
Trong lĩnh vực đo lường điện tử, độ chính xác và độ tin cậy của hệ thống đo đạc là yếu
tố then chốt để đảm bảo chất lượng và tính ứng dụng của kết quả. Đặc biệt, việc đo khoảng
cách sử dụng sóng siêu âm không chỉ yêu cầu sự chính xác còn đòi hỏi khả năng so sánh
với các chuẩn đo khác và xử lý sai số để cải thiện hiệu suất hệ thống.
Báo cáo này trình bày quá trình thiết kế và thử nghiệm một hệ thống đo khoảng cách sử
dụng cảm biến siêu âm HC-SR04, vi điều khiển ESP32 module hiển thị OLED SSD1306.
Sản phẩm được xây dựng nhằm thực hiện nhiều phép đo lặp lại, phân tích kết quả so với
các phương pháp đo chuẩn khác đánh giá sai số thông qua các kthuật xử dữ liệu.
Mục tiêu là không chỉ kiểm chứng độ chính xác của hệ thống mà còn nâng cao hiểu biết về
các yếu tố ảnh hưởng đến sai số trong đo lường điện tử.
Nội dung báo cáo bao gồm thiết kế phần cứng, phương pháp đo đạc, kết quả phân tích
sai số và các kết luận rút ra từ quá trình thực nghiệm. Qua đó, sản phẩm không chỉ đáp ứng
yêu cầu môn học còn minh chứng cho khả năng ứng dụng công nghệ IoT trong lĩnh vực
đo lường hiện đại.
Dưới sự hướng dẫn của Nguyễn Thúy Anh cùng với những kiến thức được học trong
học phần Đo lường điện tử, nhóm em đã hoàn thành được báo cáo cho bài tập lớn này. ong
Chúng em mong được cô góp ý thêm để nhóm chúng em có thể hoàn thiện.
Chương 2: Phương pháp đo
2.1 Chỉ tiêu chức năng:
Trong đề tài lần này, mục tiêu nhóm em mong muốn đạt được sử dụng vi
điều khiển để thu thập dữ liệu từ cảm biến siêu âm, từ đó xử lý kết quả thu được.
Đối tượng và đơn vị đo:
- Khoảng cách: cm
Dụng cụ đo: cảm biến siêu âm Input:
- Khoảng cách: 120cm
Output:
- Hình ảnh: 120cm hiển thị trên OLED:
Hnh 2.1: Sơ đồ khối hệ thống
2.2 Chỉ tiêu phi chức năng
Nguồn Pin vuông 9V:
- Loại pin: Pin than
- Điện áp: 9 V
- Kích thước: 48*26mm
Khối cảm biến:
- Điện áp hoạt động: 5V
- Khoảng cách phát hiện: 2~400cm
- Kích thước: 45 x 20 x 15 mm
- Dòng tiêu thụ: ~15 mA
- Độ chính xác: Sai số ±3 mm
- Tần số sóng siêu âm: 40 kHz
- Giao tiếp: Trigger: 10 µs; Echo: PWM tỷ lệ thuận với khoảng cách
đo- Góc quét: ~15 đ Màn hình OLED:
- Điện áp hoạt động: 3.3V
- Dòng tiêu thụ: ~20 mA
- Kích thước màn hình: 0.96 inch
- Độ phân giải: 128 x 64 pixels
- Giao tiếp: I2C (2 dây SDA và SCL)
- Màu sắc hiển thị: Trắng
- Kích thước vật lý: 27 mm x 27 mm x 4 mm
- Chip điều khiển: SSD1306
Ngoại quan và chi phí
- Chất liệu vỏ: Nhựa PLA.
- Thiết kế nhỏ gọn, thân thiện với người dùng.
- An toàn: không bị giật điện (Dùng nguồn DC)
- Chi phí: <200.000đ, có thể tái sử dụng
2.3 Lựa chọn linh kiện:
2.3.1 Khối nguồn:
Nguồn cung cấp cho mạch vô cùng quan trọng, nó quyết định tính cơ động và thời
gian hoạt động của sản phẩm. Chúng em đưa ra loại nguồn là pin vuông 9V.
Hnh 2.2: Pin 9V
Pin 9V tuy rẻ nhưng phải thay nhiều lần nên sử dụng lâu dài sẽ đắt hơn nếu so với sử
dụng adapter. Nhưng sản phẩm tốn quá nhiều điện và cần di chuyển nhiều nên tính động
là ưu tiên hàng đầu.
2.3.2 Khối cảm biến
Cảm biến siêu âm:
Cảm biến siêu âm yêu cầu thiết kế nhỏ gọn tiết kiệm chi phí. Thông qua khảo
sát thị trường thì chúng em đưa ra 2 linh kiện, đó cảm biến HC-SR04 HY-
SRF05.
Bảng 2-1: Bảng so sánh giữa cảm biến HC-SR04 và HY-SRF05
Tên sản phẩm
HC-SR04
HY-SRF05
Hình ảnh
Hnh 2.3: HC-SR04
Hnh 2.4: HY-SRF05
Điện áp hoạt động
5V DC
3.3V đến 5V DC
Dải đo
2 cm - 400 cm
2 cm - 450 cm
Sai số
±3 mm
±2 mm
Góc quét
~15°
~30°
Giá thành
20.000
28.000
Như vậy, giá thành rẻ hơn làm cho HC-SR04 trở thành lựa chọn phổ biến cho c
dự án DIY, giáo dục, hoặc các sản phẩm không yêu cầu độ chính xác cao. Đồng thời
dễ sử dụng, có tài liệu hướng dẫn và thư viện hỗ trợ phong phú, phù hợp với các ứng
dụng đo khoảng cách cơ bản như robot tránh vật cản, thiết bị đo lường đơn giản.
2.3.3 Khối điều khiển:
Điều khiển hoạt động của khối báo động và khối xử phần mềm và giao tiếp,
yêu cầu điều khiển chính xác, thiết kế nhỏ gọn, tiết kiệm chi phí. Chúng em đưa ra 2
loại board Arduino Maker Uno và Arduino Uno R3.
Hnh 2.5. ESP-WROOM-32
Tổng quan về ESP-WROOM-32:
Bảng 2-2: Bảng thông số kĩ thuật của ESP-WROOM-32
Vi điều khiển
Điện áp hoạt động
Wi-Fi
Bluetooth
Điện áp vào giới hạn
GPIO
Tiêu thụ năng lượng
Kích thước
2.3.4 Khối hiển thị:
Do đề i mục đích chính để đo xử dữ liệu đo được nhóm em quyết định in
kết quả lên 1 màn hình OLED 0.96 inch.
Màn hình OLED SSD1306:
- Kích thước và Số lượng ký tự:
Màn hình có kích thước 128x64 pixel, tức là có thể hiển thị 128 ký tự trên mỗi
dòng và có 64 dòng. Điều này làm cho nó phù hợp cho việc hiển thị các thông điệp,
dữ liệu hoặc thông tin ngắn.
- Lệnh và Dữ liệu:
Màn hình OLED sử dụng lệnh để thiết lập các chế độ hoạt động hiển thị dữ
liệu. Khi gửi dữ liệu, nó sẽ hiển thị thông tin được chọn.
Hnh 2.6: Màn hnh OLED SSD1306
Chương 3: Dụng cụ đo
3.1 Khoảng cách:
3.1.1 Cấu tạo
Cảm biến phát sóng siêu âm (Transmitter): Đây là bộ phận phát ra sóng
siêu âm tần s40 kHz. phát sóng theo hướng trực tiếp về phía vật
thể cần đo.
Cảm biến thu sóng siêu âm (Receiver): Bộ phận này nhận sóng siêu âm
phản xạ từ vật thể. Sau khi sóng siêu âm gặp vật thể phản xạ lại, sẽ
được thu nhận và gửi tín hiệu lại cho vi điều khiển.
Chân Trigger (TRIG): Chân này nhận xung từ vi điều khiển để bắt đầu
phát sóng siêu âm. Xung trigger được gửi đến cảm biến trong khoảng 10
µs.
Chân Echo (ECHO): Sau khi sóng siêu âm được phát ra phản xạ lại từ
vật thể, chân Echo sẽ gửi tín hiệu phản hồi (có thời gian trễ) về vi điều
khiển. Thời gian trễ này sẽ tương ng với khoảng cách từ cảm biến đến vật
thể.
3.1.2 Nguyên lý hoạt động
Gửi xung Trigger: Khi chân Trigger nhận một xung dài 10 µs từ vi điều khiển,
nó sẽ kích hoạt cảm biến phát sóng siêu âm.
Phát sóng siêu âm: Cảm biến phát ra một sóng siêu âm có tần số 40 kHz. Sóng
này di chuyển ra ngoài không gian cho đến khi gặp vật thể.
Sóng phản xạ: Khi sóng siêu âm gặp vật thể, chúng sẽ phản xạ trở lại cảm biến.
Nhận sóng đo thời gian: Khi cảm biến thu được sóng phản xạ, chân Echo sẽ
gửi một tín hiệu với thời gian phản hồi (delay). Vi điều khiển sẽ đo thời gian này.
Tính khoảng cách: Khoảng cách từ cảm biến đến vật thể có thể được tính bằng
công thức:
Khoảng cách = Thời gian * Tốc độ âm thanh / 2 (Chia
2 vì sóng phải di chuyển ra và về).
Chương 4: Tiến hành đo thực nghiệm
4.1 Sơ đồ kết nối phần cứng:
Hnh 4.3: Mạch mô phỏng hệ thống
4.2 Lập trình cho ESP32:
4.2.1 Thuật toán:
Khởi tạo hệ thống:
Cấu hình giao tiếp nối tiếp (Serial) để debug (in ra thông tin trên màn hình máy tính).
Khởi tạo giao tiếp I2C cho màn hình OLED thiết lập các pin cho cảm biến siêu
âm (Trig và Echo).
Kiểm tra nếu màn hình OLED không hoạt động, sẽ dừng lại và in lỗi.
Đo khoảng cách:
Gửi tín hiệu từ cảm biến siêu âm: Mạch gửi tín hiệu xung điện (10 micro giây)
qua chân Trig để phát ra sóng siêu âm.
Đo thời gian phản hồi: Mạch đọc thời gian mà sóng siêu âm cần để phản xạ lại
từ vật thể qua chân Echo bằng cách sử dụng hàm pulseIn(). Thời gian này được
tính bằng micro giây.
Tính toán khoảng cách: Dựa vào thời gian phản hồi và tốc độ âm thanh (0.034
cm/us), khoảng cách từ cảm biến đến vật thể được tính theo công thức trên
Lọc và xác nhận khoảng cách hợp lệ:
Kiểm tra nếu khoảng cách đo được quá ngắn (<2 cm) hoặc quá xa (>400 cm),
gán lại khoảng cách là 0 (giá trị không hợp lệ). Điều này nhằm loại bỏ các sai
số đo lường.
Hiển thị kết quả:
Trên màn hình OLED: In ra khoảng cách đo được với 1 chữ số thập phân, cùng
với đơn vị "cm". Đảm bảo rằng thông tin hiển thị được căn chỉnh vào giữa
màn hình.
In thông tin ra Serial Monitor: Cung cấp thông tin chi tiết về thời gian đo
(duration) khoảng cách trên màn hình máy tính (Serial Monitor) để kiểm tra.
Lặp lại quy trình: Sau khi đo và hiển thị kết quả, chương trình dừng trong 100ms trước
khi lặp lại quá trình đo lần sau.
4.2.2 Code:
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#dene SCREEN_WIDTH 128
#dene SCREEN_HEIGHT 64
#dene OLED_RESET -1
#dene SCREEN_ADDRESS 0x3C
// Ultrasonic Sensor Pins const int
trigPin = 5; const int echoPin = 18;
// Sound speed in cm/uS
#dene SOUND_SPEED 0.034
// Inialize the OLED display
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
long duraon; oat
distanceCm;
void setup() {
// Inialize serial communicaon
Serial.begin(115200);
// Inialize I2C communicaon with specic pins
Wire.begin(21, 22); // SDA, SCL
// Inialize OLED display
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocaon failed")); for(;;); // Don't proceed, loop forever }
// Inialize Ultrasonic Sensor Pins pinMode(trigPin,
OUTPUT); pinMode(echoPin, INPUT);
// Clear the display display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
}
void loop() {
// Clears the trigPin digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH);
delayMicroseconds(10); digitalWrite(trigPin, LOW);
// Reads the echoPin, with a meout to prevent hanging
duraon = pulseIn(echoPin, HIGH, 30000); // 30000 microseconds = 30 ms
meout
// Calculate the distance distanceCm = duraon *
SOUND_SPEED/2;
// More aggressive ltering
if (duraon == 0 || distanceCm < 2.0 || distanceCm > 400.0) { distanceCm = 0.0; // Invalid
or out-of-range measurement }
// Debugging output
Serial.print("Raw Duraon: ");
Serial.print(duraon);
Serial.print(" Distance: ");
Serial.println(distanceCm);
// Clear the display display.clearDisplay();
// Set text size and center alignment display.setTextSize(2); int16_t x1, y1; uint16_t width, height;
display.getTextBounds("Distance:", 0, 0, &x1, &y1, &width, &height); display.setCursor(
(display.width() - width) / 2,
(display.height() - height) / 2
);
// Print distance display.print(distanceCm, 1); // Print with 1 decimal place
display.println(" cm");
// Update the display display.display();
// Small delay to prevent overwhelming the display
delay(100);
}
4.3 Đóng gói sản phẩm:
Nhóm sử dụng nhựa PLA in 3D để đóng hộp cho sản phẩm, 1 mặt có đồng hồ hiển
thị, 1 mặt để cảm biến hoạt động, và 1 mặt gắn nút nguồn để bật tắt thiết bị
Hnh 4.2: Hnh ảnh sản phẩm thực tế
lOMoARcPSD| 59421307
Downloaded by Quoc Khai (quockhai36@gmail.com)
Chương 5: Kết quả đo và xử lí sai số
5.1 Bộ dữ liệu đầu vào
Dữ liệu đầu vào là khoảng cách. Chính vì vậy chúng em đã thực hiện 20 lần đo.
Môi trường đo: Phòng nhiệt độ thường, thiết bị được đặt trên mặt phẳng không bóng,
vuông góc với mặt phẳng cần đo
5.2 Kết quả đo và xử lý sai số:
5.2.1 Khoảng cách:
Thực hiện đo khoảng cách trong khoảng từ 10 cm đến 50 cm trong 20 lần đo., ta
thu được kết quả trong Bảng 5-1:
Bảng 5-1: Kết quả đo khoảng cách
Lần đo
1
2
3
4
5
6
7
8
9
10
Khoảng
cách (cm)
25.1
25.2
24.7
25.0
25.3
24.9
25.0
24.8
25.1
25.0
Lần đo
11
12
13
14
15
16
17
18
19
20
Khoảng
cách (cm)
24.9
25.2
24.8
25.1
25.0
24.9
25.0
25.3
24.9
25.0
Trị số trung bình cộng n lần đo:
1 n 1 20
a
i
=25.01
(ở đây 𝑎
𝑖
là kết quả đo thứ i, mà đã loại bỏ sai số hệ thống) Sai
số trung bình:
d=
Kiểm tra lại các sai số 𝜀
𝑖
= 𝑎
𝑖
a, nếu 𝜀𝑖 nào có trị sthỏa mãn 𝜀
𝑖
> |6𝑑|
thì kết quả lần đo tương ứng với 𝜀
𝑖
đó là sai. Nếu chỉ một, hai trường hợp như vậy,
thì ta loại bỏ và phải tiến hành tính toán lại từ đầu. Nếu là nhiều trường hợp
20
như vậy thì phép đo là có vấn đề, phải tiến hành đo lại. Với 𝜀
𝑖
= 𝑎
𝑖
a, ta có Bảng
5-2.
Bảng 5-2: Sai số dư khoảng cách
Lần đo
1
2
3
4
5
6
7
8
9
10
𝜀
𝑖
0.1
0.2
-0.3
0.0
0.3
-0.1
0.0
-0.2
0.1
0.0
Lần đo
11
12
13
14
15
16
17
18
19
20
𝜀
𝑖
-0.1
0.2
-0.2
0.1
0.0
-0.1
0.0
0.3
-0.3
0.0
Nhận thấy 𝜀
𝑖
> |6𝑑| ∀𝑖 = 1 … 20 nên không có phép đo sai.
Sai số trung bình bình phương:
Nếu tiến hành đo rất nhiều lần,
thể coi như một số liệu kết quả đo được, để rồi lại thể xét sự phân bố ngẫu nhiên
của tập hợp n kết quả đo bằng các a, ta giá trị trung bình bình phương của các a
là:
𝑋 = a ± 3σ
a
= 25.0 ±3 ×0.0648 =25.01 ±0.13 (cm)
5.2.2 So sánh với kết quả đo thực tế bằng thước kẻ:
Thực hiện đo khoảng cách trong khoảng từ 10 cm đến 20 cm trong 10 lần đo, ta thu
được kết quả trong bảng 5.3:
Lần
đo
1
2
3
4
5
6
7
8
9
10
Cảm
biến
10.
1
10.9
12.1
12.
9
14.0
15.2
16.
1
17.2
18.
0
19.1
Thước
kẻ
10.
2
10.9
12.3
13.
2
14.2
15.1
16.
3
17.1
18.
3
19.2
Sai số
0.1
0
0.1
0.3
0.2
0.1
0.2
0.1
0.3
0.1
Bảng 5.3. Bảng so sánh kết quả đo thực tế của cảm biến với thước kẻ -
Nhận xét
-Sai số giữa cảm biến thước kẻ tất ccác lần đo đều nhỏ (dao động từ 0
đến 0.3). Điều này cho thấy cảm biến có độ chính xác khá cao so với thước kẻ.
-Sai số không thay đổi lớn qua các lần đo, điều này cho thấy cảm biến hoạt
động ổn định và ít bị ảnh hưởng bởi các yếu tố bên ngoài.
-Sai số xu hướng dao động nhưng không dấu hiệu tăng hoặc giảm theo
một chiều hướng cụ thể. Điều này thể chỉ ra rằng sai số mang tính ngẫu nhiên
không chịu ảnh hưởng bởi hệ thống đo.
-Chênh lệch nhỏ giữa cảm biến và thước kẻ cho thấy cảm biến có thể được sử
dụng thay thế thước kẻ trong các phép đo tương tự, đặc biệt trong các ứng dụng cần
độ chính xác vừa phải.
5.3 Nhận xét:
- So với mức sai số nhà sản xuất đưa ra đặc tính kỹ thuật của HC-SR04 ±3
mm, mức sai số là chấp nhận được. Nguyên nhân sai số:
5.3.1 Sai số hệ thống:
- Do nhiệt điện trở NTC tụ đo độ ẩm bên trong DHT22 không hoạt độngchính
xác (có nội trở), dẫn đến kết quả đo được bị sai.
- Do điện trở bên trong MQ2 không hoạt động chính xác (có nội trở), dẫn đếnkết
quả đo được bị sai.
- Do trong quá trình gửi tin về Arduino, đường truyền gặp vấn đề dẫn đến tinnhận
được bị sai.
5.3.2 Sai số ngẫu nhiên:
- Do nguồn cung cấp không ổn định.
- Do ảnh hưởng từ môi trường gây nhiễu cho cảm biến.

Preview text:


Danh mục hình vẽ.................................................................................
Danh mục bảng biểu.............................................................................
Chương 1: Giới thiệu:...........................................................................
Chương 2: Phương pháp đo.................................................................
2.1 Chỉ tiêu chức năng:..........................................................................................
2.2 Chỉ tiêu phi chức năng.....................................................................................
2.3 Lựa chọn linh kiện:..........................................................................................
2.3.1 Khối nguồn: ............................................................................................... 8
2.3.2 Khối cảm biến ............................................................................................ 9
2.3.3 Khối điều khiển: ....................................................................................... 10
2.3.4 Khối hiển thị: ........................................................................................... 11
Chương 3: Dụng cụ đo ........................................................................ 12
3.1 Khoảng cách: ................................................................................................. 12
3.1.1 Cấu tạo..................................................................................................... 12
3.1.2 Nguyên lý hoạt động ................................................................................ 12
Chương 4: Tiến hành đo thực nghiệm .............................................. 13
4.1 Sơ đồ kết nối phần cứng: ............................................................................... 13
4.2 Lập trình cho ESP32: ..................................................................................... 13
4.2.1 Thuật toán: .............................................................................................. 13
4.2.2 Code:........................................................................................................ 14
4.3 Đóng gói sản phẩm: ....................................................................................... 17
Chương 5: Kết quả đo và xử lí sai số ................................................. 18
5.1 Bộ dữ liệu đầu vào ......................................................................................... 18
5.2 Kết quả đo và xử lý sai số: ............................................................................. 18
5.2.1 Khoảng cách: ........................................................................................... 18
5.2.2 So sánh với kết quả đo thực tế bằng thước kẻ ......................................... 19
5.3 Nhận xét: ........................................................................................................ 20
5.3.1 Sai số hệ thống: ....................................................................................... 20
5.3.2 Sai số ngẫu nhiên: ................................................................................... 20
5.3.3 Hạn chế sai số: ........................................................................................ 21
Chương 6: Kết luận ............................................................................. 22
Chương 7: Tài liệu tham khảo ........................................................... 23
Danh mục hình vẽ
Hình 2.1: Sơ đồ khối hệ thống......................................................................................7
Hình 2.2: Pin 9V..........................................................................................................9
Hình 2.3: Cảm biến HC-SR04....................................................................................10
Hình 2.4: Cảm biến HY-SRF05.................................................................................10
Hình 2.5: ESP-WROOM-32.......................................................................................11
Hình 2.6: Màn hình OLED SSD1306.........................................................................12
Hình 4.1: Mạch mô phỏng hệ thống...........................................................................14
Hình 4.2: Hình ảnh sản phẩm thực tế.........................................................................19
Danh mục bảng biểu
Bảng 2-1: Bảng so sánh giữa cảm biến HC-SR04 và HY-SRF05.............................10
Bảng 2-2: Bảng thông số kĩ thuật của ESP-WROOM-32..........................................11
Bảng 5-1: Kết quả đo khoảng cách............................................................................20
Bảng 5-2: Sai số dư khoảng cách..............................................................................21
Chương 1: Giới thiệu:
Trong lĩnh vực đo lường điện tử, độ chính xác và độ tin cậy của hệ thống đo đạc là yếu
tố then chốt để đảm bảo chất lượng và tính ứng dụng của kết quả. Đặc biệt, việc đo khoảng
cách sử dụng sóng siêu âm không chỉ yêu cầu sự chính xác mà còn đòi hỏi khả năng so sánh
với các chuẩn đo khác và xử lý sai số để cải thiện hiệu suất hệ thống.
Báo cáo này trình bày quá trình thiết kế và thử nghiệm một hệ thống đo khoảng cách sử
dụng cảm biến siêu âm HC-SR04, vi điều khiển ESP32 và module hiển thị OLED SSD1306.
Sản phẩm được xây dựng nhằm thực hiện nhiều phép đo lặp lại, phân tích kết quả so với
các phương pháp đo chuẩn khác và đánh giá sai số thông qua các kỹ thuật xử lý dữ liệu.
Mục tiêu là không chỉ kiểm chứng độ chính xác của hệ thống mà còn nâng cao hiểu biết về
các yếu tố ảnh hưởng đến sai số trong đo lường điện tử.
Nội dung báo cáo bao gồm thiết kế phần cứng, phương pháp đo đạc, kết quả phân tích
sai số và các kết luận rút ra từ quá trình thực nghiệm. Qua đó, sản phẩm không chỉ đáp ứng
yêu cầu môn học mà còn minh chứng cho khả năng ứng dụng công nghệ IoT trong lĩnh vực đo lường hiện đại.
Dưới sự hướng dẫn của cô Nguyễn Thúy Anh cùng với những kiến thức được học trong
học phần Đo lường điện tử, nhóm em đã hoàn thành được báo cáo cho bài tập lớn này. ong
Chúng em mong được cô góp ý thêm để nhóm chúng em có thể hoàn thiện.
Chương 2: Phương pháp đo
2.1 Chỉ tiêu chức năng:
Trong đề tài lần này, mục tiêu mà nhóm em mong muốn đạt được là sử dụng vi
điều khiển để thu thập dữ liệu từ cảm biến siêu âm, từ đó xử lý kết quả thu được.
• Đối tượng và đơn vị đo: - Khoảng cách: cm
• Dụng cụ đo: cảm biến siêu âm Input: - Khoảng cách: 120cm • Output:
- Hình ảnh: 120cm hiển thị trên OLED:
Hình 2.1: Sơ đồ khối hệ thống
2.2 Chỉ tiêu phi chức năng • Nguồn Pin vuông 9V: - Loại pin: Pin than - Điện áp: 9 V - Kích thước: 48*26mm • Khối cảm biến: -
Điện áp hoạt động: 5V -
Khoảng cách phát hiện: 2~400cm -
Kích thước: 45 x 20 x 15 mm - Dòng tiêu thụ: ~15 mA -
Độ chính xác: Sai số ±3 mm -
Tần số sóng siêu âm: 40 kHz -
Giao tiếp: Trigger: 10 µs; Echo: PWM tỷ lệ thuận với khoảng cách
đo- Góc quét: ~15 độ Màn hình OLED: -
Điện áp hoạt động: 3.3V - Dòng tiêu thụ: ~20 mA -
Kích thước màn hình: 0.96 inch -
Độ phân giải: 128 x 64 pixels -
Giao tiếp: I2C (2 dây SDA và SCL) -
Màu sắc hiển thị: Trắng -
Kích thước vật lý: 27 mm x 27 mm x 4 mm - Chip điều khiển: SSD1306 Ngoại quan và chi phí
- Chất liệu vỏ: Nhựa PLA.
- Thiết kế nhỏ gọn, thân thiện với người dùng.
- An toàn: không bị giật điện (Dùng nguồn DC)
- Chi phí: <200.000đ, có thể tái sử dụng
2.3 Lựa chọn linh kiện:
2.3.1 Khối nguồn:
Nguồn cung cấp cho mạch vô cùng quan trọng, nó quyết định tính cơ động và thời
gian hoạt động của sản phẩm. Chúng em đưa ra loại nguồn là pin vuông 9V.
Hình 2.2: Pin 9V
Pin 9V tuy rẻ nhưng phải thay nhiều lần nên sử dụng lâu dài sẽ đắt hơn nếu so với sử
dụng adapter. Nhưng sản phẩm tốn quá nhiều điện và cần di chuyển nhiều nên tính cơ động là ưu tiên hàng đầu.
2.3.2 Khối cảm biến
Cảm biến siêu âm:
Cảm biến siêu âm yêu cầu có thiết kế nhỏ gọn và tiết kiệm chi phí. Thông qua khảo
sát thị trường thì chúng em có đưa ra 2 linh kiện, đó là cảm biến HC-SR04 HY- SRF05.
Bảng 2-1: Bảng so sánh giữa cảm biến HC-SR04 và HY-SRF05 Tên sản phẩm HC-SR04 HY-SRF05 Hình ảnh
Hình 2.3: HC-SR04
Hình 2.4: HY-SRF05 Điện áp hoạt động 5V DC 3.3V đến 5V DC Dải đo 2 cm - 400 cm 2 cm - 450 cm Sai số ±3 mm ±2 mm Góc quét ~15° ~30° Giá thành 20.000 28.000
Như vậy, giá thành rẻ hơn làm cho HC-SR04 trở thành lựa chọn phổ biến cho các
dự án DIY, giáo dục, hoặc các sản phẩm không yêu cầu độ chính xác cao. Đồng thời
dễ sử dụng, có tài liệu hướng dẫn và thư viện hỗ trợ phong phú, phù hợp với các ứng
dụng đo khoảng cách cơ bản như robot tránh vật cản, thiết bị đo lường đơn giản.
2.3.3 Khối điều khiển:
Điều khiển hoạt động của khối báo động và khối xử lí phần mềm và giao tiếp,
yêu cầu điều khiển chính xác, thiết kế nhỏ gọn, tiết kiệm chi phí. Chúng em đưa ra 2
loại board là Arduino Maker Uno và Arduino Uno R3.
Hình 2.5. ESP-WROOM-32
Tổng quan về ESP-WROOM-32:
Bảng 2-2: Bảng thông số kĩ thuật của ESP-WROOM-32 Vi điều khiển
Dual-core 32-bit LX6, 240 MHz. 520 KB SRAM. Điện áp hoạt động 5V (USB Type-C) Wi-Fi IEEE 802.11 b/g/n Bluetooth v4.2 và BLE Điện áp vào giới hạn 6-20V DC GPIO 34 chân I/O Tiêu thụ năng lượng ~160 mA (10 µA khi ngủ) Kích thước 18 x 25.5 mm
2.3.4 Khối hiển thị:
Do đề tài mục đích chính để đo và xử lý dữ liệu đo được nhóm em quyết định in
kết quả lên 1 màn hình OLED 0.96 inch.
Màn hình OLED SSD1306:
- Kích thước và Số lượng ký tự:
Màn hình có kích thước 128x64 pixel, tức là có thể hiển thị 128 ký tự trên mỗi
dòng và có 64 dòng. Điều này làm cho nó phù hợp cho việc hiển thị các thông điệp,
dữ liệu hoặc thông tin ngắn. - Lệnh và Dữ liệu:
Màn hình OLED sử dụng lệnh để thiết lập các chế độ hoạt động và hiển thị dữ
liệu. Khi gửi dữ liệu, nó sẽ hiển thị thông tin được chọn.
Hình 2.6: Màn hình OLED SSD1306
Chương 3: Dụng cụ đo 3.1 Khoảng cách:
3.1.1 Cấu tạo
Cảm biến phát sóng siêu âm (Transmitter): Đây là bộ phận phát ra sóng
siêu âm có tần số 40 kHz. Nó phát sóng theo hướng trực tiếp về phía vật thể cần đo.
Cảm biến thu sóng siêu âm (Receiver): Bộ phận này nhận sóng siêu âm
phản xạ từ vật thể. Sau khi sóng siêu âm gặp vật thể và phản xạ lại, nó sẽ
được thu nhận và gửi tín hiệu lại cho vi điều khiển.
Chân Trigger (TRIG): Chân này nhận xung từ vi điều khiển để bắt đầu
phát sóng siêu âm. Xung trigger được gửi đến cảm biến trong khoảng 10 µs.
Chân Echo (ECHO): Sau khi sóng siêu âm được phát ra và phản xạ lại từ
vật thể, chân Echo sẽ gửi tín hiệu phản hồi (có thời gian trễ) về vi điều
khiển. Thời gian trễ này sẽ tương ứng với khoảng cách từ cảm biến đến vật thể.
3.1.2 Nguyên lý hoạt động
Gửi xung Trigger: Khi chân Trigger nhận một xung dài 10 µs từ vi điều khiển,
nó sẽ kích hoạt cảm biến phát sóng siêu âm.
Phát sóng siêu âm: Cảm biến phát ra một sóng siêu âm có tần số 40 kHz. Sóng
này di chuyển ra ngoài không gian cho đến khi gặp vật thể.
Sóng phản xạ: Khi sóng siêu âm gặp vật thể, chúng sẽ phản xạ trở lại cảm biến.
Nhận sóng và đo thời gian: Khi cảm biến thu được sóng phản xạ, chân Echo sẽ
gửi một tín hiệu với thời gian phản hồi (delay). Vi điều khiển sẽ đo thời gian này.
Tính khoảng cách: Khoảng cách từ cảm biến đến vật thể có thể được tính bằng công thức:
Khoảng cách = Thời gian * Tốc độ âm thanh / 2 (Chia
2 vì sóng phải di chuyển ra và về).
Chương 4: Tiến hành đo thực nghiệm
4.1 Sơ đồ kết nối phần cứng:
Hình 4.3: Mạch mô phỏng hệ thống
4.2 Lập trình cho ESP32:
4.2.1 Thuật toán:
Khởi tạo hệ thống:
Cấu hình giao tiếp nối tiếp (Serial) để debug (in ra thông tin trên màn hình máy tính). •
Khởi tạo giao tiếp I2C cho màn hình OLED và thiết lập các pin cho cảm biến siêu âm (Trig và Echo). •
Kiểm tra nếu màn hình OLED không hoạt động, sẽ dừng lại và in lỗi. Đo khoảng cách:
Gửi tín hiệu từ cảm biến siêu âm: Mạch gửi tín hiệu xung điện (10 micro giây)
qua chân Trig để phát ra sóng siêu âm. •
Đo thời gian phản hồi: Mạch đọc thời gian mà sóng siêu âm cần để phản xạ lại
từ vật thể qua chân Echo bằng cách sử dụng hàm pulseIn(). Thời gian này được tính bằng micro giây. •
Tính toán khoảng cách: Dựa vào thời gian phản hồi và tốc độ âm thanh (0.034
cm/us), khoảng cách từ cảm biến đến vật thể được tính theo công thức trên
Lọc và xác nhận khoảng cách hợp lệ:
Kiểm tra nếu khoảng cách đo được quá ngắn (<2 cm) hoặc quá xa (>400 cm),
gán lại khoảng cách là 0 (giá trị không hợp lệ). Điều này nhằm loại bỏ các sai số đo lường.
Hiển thị kết quả:
Trên màn hình OLED: In ra khoảng cách đo được với 1 chữ số thập phân, cùng
với đơn vị là "cm". Đảm bảo rằng thông tin hiển thị được căn chỉnh vào giữa màn hình. •
In thông tin ra Serial Monitor: Cung cấp thông tin chi tiết về thời gian đo
(duration) và khoảng cách trên màn hình máy tính (Serial Monitor) để kiểm tra.
Lặp lại quy trình: Sau khi đo và hiển thị kết quả, chương trình dừng trong 100ms trước
khi lặp lại quá trình đo lần sau. 4.2.2 Code: #include #include #include #include #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 #define SCREEN_ADDRESS 0x3C
// Ultrasonic Sensor Pins const int
trigPin = 5; const int echoPin = 18; // Sound speed in cm/uS #define SOUND_SPEED 0.034
// Initialize the OLED display
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); long duration; float distanceCm; void setup() {
// Initialize serial communication Serial.begin(115200);
// Initialize I2C communication with specific pins
Wire.begin(21, 22); // SDA, SCL // Initialize OLED display
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever }
// Initialize Ultrasonic Sensor Pins pinMode(trigPin,
OUTPUT); pinMode(echoPin, INPUT);
// Clear the display display.clearDisplay();
display.setTextColor(SSD1306_WHITE); } void loop() {
// Clears the trigPin digitalWrite(trigPin, LOW); delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH);
delayMicroseconds(10); digitalWrite(trigPin, LOW);
// Reads the echoPin, with a timeout to prevent hanging
duration = pulseIn(echoPin, HIGH, 30000); // 30000 microseconds = 30 ms timeout
// Calculate the distance distanceCm = duration * SOUND_SPEED/2; // More aggressive filtering
if (duration == 0 || distanceCm < 2.0 || distanceCm > 400.0) { distanceCm = 0.0; // Invalid or out-of-range measurement } // Debugging output
Serial.print("Raw Duration: "); Serial.print(duration); Serial.print(" Distance: "); Serial.println(distanceCm);
// Clear the display display.clearDisplay();
// Set text size and center alignment display.setTextSize(2); int16_t x1, y1; uint16_t width, height;
display.getTextBounds("Distance:", 0, 0, &x1, &y1, &width, &height); display.setCursor(
(display.width() - width) / 2,
(display.height() - height) / 2 );
// Print distance display.print(distanceCm, 1); // Print with 1 decimal place display.println(" cm");
// Update the display display.display();
// Small delay to prevent overwhelming the display delay(100); }
4.3 Đóng gói sản phẩm:
Nhóm sử dụng nhựa PLA in 3D để đóng hộp cho sản phẩm, 1 mặt có đồng hồ hiển
thị, 1 mặt để cảm biến hoạt động, và 1 mặt gắn nút nguồn để bật tắt thiết bị
Hình 4.2: Hình ảnh sản phẩm thực tế lOMoAR cPSD| 59421307
Chương 5: Kết quả đo và xử lí sai số
5.1 Bộ dữ liệu đầu vào
Dữ liệu đầu vào là khoảng cách. Chính vì vậy chúng em đã thực hiện 20 lần đo.
Môi trường đo: Phòng ở nhiệt độ thường, thiết bị được đặt trên mặt phẳng không bóng,
vuông góc với mặt phẳng cần đo
5.2 Kết quả đo và xử lý sai số:
5.2.1 Khoảng cách:
Thực hiện đo khoảng cách trong khoảng từ 10 cm đến 50 cm trong 20 lần đo., ta
thu được kết quả trong Bảng 5-1:
Bảng 5-1: Kết quả đo khoảng cách Lần đo 1 2 3 4 5 6 7 8 9 10 Khoảng 25.1 25.2 24.7 25.0 25.3 24.9 25.0 24.8 25.1 25.0 cách (cm) Lần đo 11 12 13 14 15 16 17 18 19 20 Khoảng 24.9 25.2 24.8 25.1 25.0 24.9 25.0 25.3 24.9 25.0 cách (cm)
Trị số trung bình cộng n lần đo: 1 n 1 20 a i=25.01
(ở đây 𝑎 là kết quả đo thứ i, mà đã loại bỏ sai số hệ thống) Sai 𝑖 số trung bình: d=
Kiểm tra lại các sai số dư 𝜀 = − > |6 𝑖 𝑎𝑖
a, nếu 𝜀𝑖 nào có trị số thỏa mãn 𝜀𝑖 𝑑|
thì kết quả lần đo tương ứng với 𝜀 đó là sai. Nếu chỉ có một, hai trường hợp như vậy, 𝑖
thì ta loại bỏ và phải tiến hành tính toán lại từ đầu. Nếu là nhiều trường hợp
Downloaded by Quoc Khai (quockhai36@gmail.com) 20
như vậy thì phép đo là có vấn đề, phải tiến hành đo lại. Với 𝜀 = − 𝑖 𝑎𝑖 a, ta có Bảng 5-2.
Bảng 5-2: Sai số dư khoảng cách Lần đo 1 2 3 4 5 6 7 8 9 10 𝜀𝑖 0.1 0.2 -0.3 0.0 0.3 -0.1 0.0 -0.2 0.1 0.0 Lần đo 11 12 13 14 15 16 17 18 19 20 𝜀𝑖 -0.1 0.2 -0.2 0.1 0.0 -0.1 0.0 0.3 -0.3 0.0
Nhận thấy 𝜀𝑖 > |6𝑑| ∀𝑖 = 1 … 20 nên không có phép đo sai.
Sai số trung bình bình phương:
Nếu tiến hành đo rất nhiều lần, có
thể coi như là một số liệu kết quả đo được, để rồi lại có thể xét sự phân bố ngẫu nhiên
của tập hợp n kết quả đo bằng các a, ta có giá trị trung bình bình phương của các a là:
𝑋 = a ± 3σa= 25.0 ±3 ×0.0648 =25.01 ±0.13 (cm)
5.2.2 So sánh với kết quả đo thực tế bằng thước kẻ:
Thực hiện đo khoảng cách trong khoảng từ 10 cm đến 20 cm trong 10 lần đo, ta thu
được kết quả trong bảng 5.3: Lần 1 2 3 4 5 6 7 8 9 10 đo Cảm 10. 10.9 12.1 12. 14.0 15.2 16. 17.2 18. 19.1 biến 1 9 1 0 Thước 10. 10.9 12.3 13. 14.2 15.1 16. 17.1 18. 19.2 kẻ 2 2 3 3 Sai số 0.1 0 0.1 0.3 0.2 0.1 0.2 0.1 0.3 0.1
Bảng 5.3. Bảng so sánh kết quả đo thực tế của cảm biến với thước kẻ - Nhận xét
-Sai số giữa cảm biến và thước kẻ ở tất cả các lần đo đều nhỏ (dao động từ 0
đến 0.3). Điều này cho thấy cảm biến có độ chính xác khá cao so với thước kẻ.
-Sai số không thay đổi lớn qua các lần đo, điều này cho thấy cảm biến hoạt
động ổn định và ít bị ảnh hưởng bởi các yếu tố bên ngoài.
-Sai số có xu hướng dao động nhưng không có dấu hiệu tăng hoặc giảm theo
một chiều hướng cụ thể. Điều này có thể chỉ ra rằng sai số mang tính ngẫu nhiên và
không chịu ảnh hưởng bởi hệ thống đo.
-Chênh lệch nhỏ giữa cảm biến và thước kẻ cho thấy cảm biến có thể được sử
dụng thay thế thước kẻ trong các phép đo tương tự, đặc biệt là trong các ứng dụng cần
độ chính xác vừa phải. 5.3 Nhận xét:
- So với mức sai số nhà sản xuất đưa ra ở đặc tính kỹ thuật của HC-SR04 là ±3
mm, mức sai số là chấp nhận được. Nguyên nhân sai số:
5.3.1 Sai số hệ thống:
- Do nhiệt điện trở NTC và tụ đo độ ẩm bên trong DHT22 không hoạt độngchính
xác (có nội trở), dẫn đến kết quả đo được bị sai.
- Do điện trở bên trong MQ2 không hoạt động chính xác (có nội trở), dẫn đếnkết quả đo được bị sai.
- Do trong quá trình gửi tin về Arduino, đường truyền gặp vấn đề dẫn đến tinnhận được bị sai.
5.3.2 Sai số ngẫu nhiên:
- Do nguồn cung cấp không ổn định.
- Do ảnh hưởng từ môi trường gây nhiễu cho cảm biến.