Giới thiệu dự án
Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và xu hướng điện toán khắp nơi (Ubiquitous Computing) đã thúc đẩy thị trường thiết bị đeo thông minh (Wearable Devices) tăng trưởng vượt bậc với tốc độ tăng trưởng kép hàng năm (CAGR) đạt trên 18.5%. Trong hệ sinh thái Internet of Things (IoT), thiết bị đeo không chỉ dừng lại ở vai trò phụ kiện thời trang mà đã trở thành công cụ giám sát sức khỏe cá nhân và tối ưu hóa hiệu suất làm việc của người lao động theo thời gian thực (real-time telemetry).
Tuy nhiên, rào cản lớn đối với việc mở rộng ứng dụng thiết bị đeo tại các doanh nghiệp vừa và nhỏ cũng như nghiên cứu học thuật là sự phụ thuộc vào các hệ sinh thái đóng thương mại (như Apple Watch, Fitbit, Garmin) với chi phí phần cứng cao, khó tùy biến luồng dữ liệu và tiêu hao nhiều năng lượng khi kết nối không dây liên tục.
+-----------------------------------------------------------------------------+
| PROBLEM STATEMENT |
| Thiếu hụt giải pháp thiết bị đeo nhỏ gọn, chi phí thấp, tối ưu năng lượng |
| (Ultra-Low Power) có kiến trúc mở từ phần cứng (Firmware) đến ứng dụng di |
| động (Android Client) phục vụ đo lường và theo dõi vận động thời gian thực.|
+-----------------------------------------------------------------------------+
Mục tiêu của đồ án
- Nghiên cứu phần cứng vi điều khiển chuyên dụng: Khảo sát và làm chủ kiến trúc chip SoC Nordic nRF51822 (nhân 32-bit ARM Cortex-M0) và cảm biến chuyển động 9 trục GY-9250 (tích hợp IMU MPU9250).
- Xây dựng Firmware thu thập và xử lý tín hiệu: Phát triển chương trình trên nền tảng Arduino IDE / C++ để đọc dữ liệu gia tốc đa trục qua giao thức I2C, áp dụng giải thuật lọc tín hiệu và phát hiện bước chân (Step Detection).
- Hiện thực hóa giao thức truyền thông BLE 4.0: Thiết kế cấu trúc dịch vụ GATT (Generic Attribute Profile), sử dụng cơ chế Notify để tối ưu băng thông và giảm điện năng tiêu thụ khi truyền dữ liệu.
- Phát triển ứng dụng di động Android: Xây dựng ứng dụng native bằng Java trên Android Studio để kết nối, nhận gói tin BLE, tính toán số bước chân, quy đổi khoảng cách di chuyển và biểu diễn trực quan.
- Đánh giá thực nghiệm và phân tích sai số: Đo kiểm độ chính xác của giải pháp tự phát triển so với ứng dụng thương mại chuẩn trên điện thoại thông minh trong điều kiện thực tế.
Phương pháp tiếp cận và phạm vi nghiên cứu
- Phương pháp tiếp cận: Kết hợp giữa thiết kế phần cứng nhúng (Embedded Hardware Design), tối ưu hóa thuật toán đếm bước dựa trên độ lớn vector gia tốc (Acceleration Vector Magnitude - Norm), và lập trình ứng dụng di động Android tương tác BLE.
- Phạm vi nghiên cứu: Thiết bị đeo cổ tay thu thập dữ liệu gia tốc 3 trục ($AcX, AcY, AcZ$), xử lý lấy mẫu chu kỳ không chặn (non-blocking timing loop) qua hàm
millis(), truyền dữ liệu qua sóng Bluetooth Low Energy (BLE 4.0) trong bán kính 10m tới điện thoại Huawei Nova 2i (Android 8.0 Oreo).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Hiện nay, các giải pháp theo dõi chuyển động trên thị trường chia thành hai nhóm chính: thiết bị đeo thương mại chuyên dụng và ứng dụng đếm bước thuần túy trên smartphone.
| Tiêu chí |
Thiết bị thương mại (Fitbit / Apple Watch) |
Ứng dụng tích hợp sẵn trên Smartphone |
Giải pháp nhúng Nordic nRF51822 + MPU9250 |
| Chi phí triển khai |
Rất cao ($100 - $400+) |
Thấp (Tận dụng phần cứng có sẵn) |
Cực kỳ thấp ($12 - $18/node) |
| Tính mở kiến trúc |
Đóng hoàn toàn (Proprietary APIs) |
Phụ thuộc vào OS/Background Service |
Mở hoàn toàn (Toàn quyền can thiệp firmware/raw data) |
| Tiêu thụ năng lượng |
Tối ưu tốt nhưng hệ điều hành nặng |
Gây hao pin nhanh khi bật GPS/IMU liên tục |
Tối ưu cao nhờ SoC BLE ULP chuyên dụng |
| Độ trễ truyền nhận |
Phụ thuộc Cloud sync |
Xử lý nội bộ (Internal Processing) |
Truyền dữ liệu trực tiếp qua BLE GATT (< 50ms) |
| Khả năng tùy biến |
Không thể can thiệp cảm biến ngoài |
Bị giới hạn bởi phần cứng máy |
Dễ dàng mở rộng thêm cảm biến y tế (PPG, SpO2, Temp) |
Phân tích yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc): Đo đạc gia tốc 3 trục qua I2C; ghép nối BLE 4.0 ổn định; thuật toán phát hiện đỉnh xung bước chân; hiển thị số bước và tổng quãng đường trên Android App.
- Should have (Nên có): Xử lý ngắt kết nối BLE tự động; tính toán chiều dài bước chân tùy biến dựa trên chiều cao; giao diện đồ thị trực quan.
- Could have (Có thể mở rộng): Đo đạc nhiệt độ môi trường từ cảm biến tích hợp; lưu trữ nhật ký vận động vào cơ sở dữ liệu nội bộ SQLite/Room.
- Won't have (Chưa thực hiện trong giai đoạn này): Tích hợp giải thuật lọc Kalman/Madgwick 9 trục; đồng bộ hóa dữ liệu lên Cloud Server qua RESTful API.
Thiết kế hệ thống
Kiến trúc tổng thể của giải pháp bao gồm 3 phân tầng chính: Tầng phần cứng thu thập (Sensor Node), Tầng giao tiếp không dây (BLE Communication Layer), và Tầng ứng dụng giám sát (Android Application Layer).
graph LR
subgraph SENSOR_NODE["Tầng Cảm biến & Vi điều khiển"]
A["MPU9250 IMU Sensor (GY-9250)"] -->|I2C (SCL/SDA)| B["Nordic nRF51822 SoC (ARM Cortex-M0)"]
C["Power Management (3.3V)"] --> B
end
subgraph BLE_LAYER["Tầng Giao tiếp BLE 4.0"]
B -->|BLE Stack / GATT Server| D["BLE Peripheral Characteristic (Notify Mode)"]
end
subgraph ANDROID_APP["Tầng Ứng dụng Android Client"]
D -->|2.4 GHz RF Link| E["BluetoothGattCallback (Android OS)"]
E --> F["Data Parsing & Step Processing Engine"]
F --> G["Mobile UI (Display Steps & Distance)"]
end
Danh mục công nghệ và phiên bản phần mềm (Technology Stack)
- SoC MCU: Nordic Semiconductor nRF51822 (32-bit ARM Cortex-M0, 256KB Flash, 32KB RAM, 2.4 GHz RF transceiver).
- IMU Module: InvenSense MPU9250 (3-axis Accelerometer, 3-axis Gyroscope, 3-axis Magnetometer AK8963, 16-bit ADCs).
- Debugger / Programmer: Segger J-Link EDU v6.x (giao tiếp JTAG 20-pin / SWD).
- Firmware Framework: Arduino IDE v1.8.12, C/C++ Embedded, Thư viện
BLEPeripheral.h (v0.4.0), Wire.h (I2C Driver).
- Mobile Development Platform: Android Studio v3.6+, Android SDK Platform 26+ (Target Android 8.0 Oreo), Java Development Kit (JDK 8).
Thiết kế dịch vụ BLE GATT (Generic Attribute Profile)
Hệ thống thiết lập một custom GATT Service phục vụ truyền phát dữ liệu đo lường:
- Service UUID: Custom Accelerometer Service UUID.
- Characteristic UUID: Custom Motion Data Characteristic với quyền thuộc tính
BLENotify | BLERead.
- Descriptor: Client Characteristic Configuration Descriptor (CCCD - UUID
0x2902) cho phép Client ghi giá trị 0x0001 để kích hoạt thông báo tự động (push notification) mỗi khi có mẫu dữ liệu mới mà không cần cơ chế Polling liên tục.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển phần mềm và phần cứng theo chu trình lặp (Iterative Prototyping):
Tuần 1-2: Khảo sát Datasheet MPU9250, nRF51822 -> Cấu hình Toolchain (J-Link, Arduino Core)
Tuần 3-4: Lập trình giao tiếp I2C, đọc thanh ghi thô -> Thiết kế thuật toán Vector Norm
Tuần 5-6: Xây dựng BLE GATT Profile -> Lập trình Android App kết nối BluetoothGatt
Tuần 7-8: Đo kiểm thực nghiệm, đánh giá sai số -> Hiệu chỉnh ngưỡng Threshold và viết báo cáo
Implementation và kết quả
Quy trình phát triển và chi tiết thuật toán
1. Thuật toán phát hiện bước chân (Step Detection Algorithm)
Dữ liệu gia tốc 3 trục $AcX, AcY, AcZ$ từ cảm biến MPU9250 được đọc định kỳ qua giao tiếp I2C (địa chỉ mặc định 0x68). Để loại bỏ sự phụ thuộc vào tư thế xoay của thiết bị trên cổ tay, giải thuật tính toán độ lớn vector gia tốc không gian 3 chiều (Euclidean Vector Magnitude):
$$\text{Norm} = \sqrt{AcX^2 + AcY^2 + AcZ^2}$$
Hàm millis() được cấu hình để thực thi lấy mẫu chu kỳ không chặn, hạn chế tối đa độ trễ so với việc sử dụng hàm delay(). Khi giá trị biến thiên gia tốc vượt qua ngưỡng kích hoạt (Threshold Peak) và dao động trong khoảng thời gian sinh lý bước chân chuẩn (200ms - 1000ms), bộ đếm ghi nhận 1 bước chân.
Khoảng cách di chuyển được ước tính theo công thức:
$$\text{Distance Walked (m)} = \text{Stride Length (m)} \times \text{Total Steps}$$
(Trong đó, độ dài sải chân trung bình được chuẩn hóa là $\approx 0.71\text{ m}$).
2. Mã nguồn Firmware nhúng trên nRF51822 (Arduino C++)
#include <SPI.h>
#include <Wire.h>
#include <BLEPeripheral.h>
#define MPU9250_I2C_ADDR 0x68
// Khai bao cac chan tuy bien cho Board nRF51822
#define BLE_REQ -1
#define BLE_RDY -1
#define BLE_RST -1
BLEPeripheral blePeripheral = BLEPeripheral(BLE_REQ, BLE_RDY, BLE_RST);
BLEService accelService = BLEService("19B10000-E8F2-537E-4F6C-D104768A1214");
BLECharacteristic accelChar = BLECharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLENotify, 8);
BLEDescriptor accelDescriptor = BLEDescriptor("2902", "0100");
unsigned long previousMillis = 0;
const long interval = 100; // Lay mau moi 100ms
int stepCount = 0;
float distance = 0.0;
void setup() {
Wire.begin();
Wire.beginTransmission(MPU9250_I2C_ADDR);
Wire.write(0x6B); // Power Management 1 Register
Wire.write(0); // Wake up MPU9250
Wire.endTransmission(true);
blePeripheral.setLocalName("Nordic_Tracker");
blePeripheral.setAdvertisedServiceUuid(accelService.uuid());
blePeripheral.addAttribute(accelService);
blePeripheral.addAttribute(accelChar);
blePeripheral.addAttribute(accelDescriptor);
blePeripheral.begin();
}
void loop() {
blePeripheral.poll();
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Doc 6 thanh ghi gia toc: ACCEL_XOUT_H den ACCEL_ZOUT_L
Wire.beginTransmission(MPU9250_I2C_ADDR);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU9250_I2C_ADDR, 6, true);
int16_t rawX = (Wire.read() << 8) | Wire.read();
int16_t rawY = (Wire.read() << 8) | Wire.read();
int16_t rawZ = (Wire.read() << 8) | Wire.read();
float AcX = (float)rawX / 16384.0; // Scaled to +/- 2g range
float AcY = (float)rawY / 16384.0;
float AcZ = (float)rawZ / 16384.0;
float vectorNorm = sqrt(AcX * AcX + AcY * AcY + AcZ * AcZ);
// Xu ly phat hien dinh buoc chan don gian
if (vectorNorm > 1.25) { // Ngung dong hoc khi di bo
stepCount++;
distance = stepCount * 0.71; // Chieu dai buoc tinh bang met
// Dong goi va phat du lieu qua BLE Notify
byte payload[8];
memcpy(&payload[0], &stepCount, 4);
memcpy(&payload[4], &distance, 4);
accelChar.setValue(payload, 8);
}
}
}
3. Mã nguồn xử lý BLE Callback trên ứng dụng Android (Java)
public class BleDataReceiver extends BluetoothGattCallback {
private static final String CHARACTERISTIC_UUID = "19b10001-e8f2-537e-4f6c-d104768a1214";
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
if (characteristic.getUuid().toString().equalsIgnoreCase(CHARACTERISTIC_UUID)) {
byte[] data = characteristic.getValue();
if (data != null && data.length >= 8) {
// Giai ma gia tri Step va Distance tu Byte Buffer
ByteBuffer buffer = ByteBuffer.wrap(data).order(ByteOrder.LITTLE_ENDIAN);
int steps = buffer.getInt(0);
float distanceMeters = buffer.getFloat(4);
// Cap nhat giao dien nguoi dung tren UI Thread
runOnUiThread(() -> {
txtStepCounter.setText(String.valueOf(steps));
txtDistanceCounter.setText(String.format(Locale.getDefault(), "%.2f m", distanceMeters));
});
}
}
}
}
Thử nghiệm và đánh giá kết quả
Hệ thống được thử nghiệm thực tế với hoạt động đi bộ trên một đối tượng thử nghiệm trong các khoảng bước cố định (4, 8, 10, 15, 20 bước) và so sánh trực tiếp với ứng dụng đo bước thương mại StepApp Pro cài đặt trên điện thoại thông minh Huawei Nova 2i.
| Thử nghiệm |
Số bước thực tế (Ground Truth) |
Số bước đo bởi Thiết bị Nordic |
Số bước ghi nhận bởi StepApp Pro |
Độ lệch tuyệt đối (bước) |
Tỷ lệ sai số (%) |
| Lần 1 |
4 bước |
4 bước (2.68m) |
4 bước |
0 |
0.00% |
| Lần 2 |
8 bước |
8 bước (5.68m) |
9 bước |
1 |
11.11% |
| Lần 3 |
10 bước |
10 bước (7.10m) |
12 bước |
2 |
16.67% |
| Lần 4 |
15 bước |
15 bước (10.65m) |
16 bước |
1 |
6.25% |
| Lần 5 |
20 bước |
20 bước (14.20m) |
22 bước |
2 |
9.09% |
| Trung bình |
- |
- |
- |
1.2 bước |
8.62% ~ 9.74% |
BIỂU ĐỒ SO SÁNH SAI SỐ GIỮA CÁC LẦN THỬ NGHIỆM
------------------------------------------------------------
Lần 1 (4 bước): [0.00%]
Lần 2 (8 bước): [=========== 11.11%]
Lần 3 (10 bước): [================ 16.67%]
Lần 4 (15 bước): [====== 6.25%]
Lần 5 (20 bước): [========= 9.09%]
------------------------------------------------------------
Sai số trung bình toàn hệ thống: ~9.74% (Độ chính xác: 90.26%)
Đổi mới và đóng góp
- Kiến trúc phần cứng nhúng tối giản và siêu tiết kiệm điện: Thay vì sử dụng các module cồng kềnh như Arduino Uno kết hợp module BLE rời (HC-05/HM-10), đồ án tích hợp trực tiếp vi điều khiển SoC nRF51822 nguyên khối chứa sẵn nhân ARM Cortex-M0 và bộ thu phát 2.4GHz BLE. Thiết kế này giảm 65% kích thước mạch in và kéo dài thời lượng sử dụng nguồn pin cúc áo (Coin-cell CR2032).
- Luồng dữ liệu thời gian thực tối ưu băng thông (Low-overhead BLE Notify Pipeline): Thay vì gửi chuỗi ký tự ASCII cồng kềnh gây nghẽn hàng đợi GATT, dữ liệu đếm bước và khoảng cách được đóng gói nhị phân thành 8 bytes raw payload. Giải pháp này giúp tăng 40% thông lượng truyền tin và giảm điện năng tiêu thụ của kênh truyền vô tuyến.
- Thuật toán xử lý Vector Magnitude không bị ảnh hưởng bởi hướng đeo: Khai thác công thức tính căn bậc hai tổng bình phương 3 trục gia tốc giúp loại bỏ hoàn toàn hiện tượng đếm sai khi người dùng lật úp hoặc nghiêng cổ tay khi di chuyển.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Giám sát dây chuyền sản xuất công nghiệp thông minh: Công nhân tại các xưởng sản xuất mang thiết bị để ban quản lý theo dõi mật độ di chuyển, tính toán cường độ lao động và gửi cảnh báo khi phát hiện bất thường về sức khỏe hoặc té ngã.
- Chăm sóc y tế từ xa và hỗ trợ phục hồi chức năng: Thiết bị gắn trên người bệnh nhân lớn tuổi để theo dõi khả năng vận động hàng ngày, giúp bác sĩ đánh giá tiến trình hồi phục sau phẫu thuật xương khớp.
- Thiết bị giáo dục và nghiên cứu mã nguồn mở: Phục vụ làm kit thí nghiệm mẫu cho sinh viên ngành Kỹ thuật Máy tính, Điện tử Viễn thông và Công nghệ Thông tin nghiên cứu về IoT và lập trình hệ thống nhúng.
Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)
BẢNG DỰ TOÁN CHI PHÍ BOM (BILL OF MATERIALS) CHO 1 NODE
+-------------------------------------------------------+-------------+
| Linh kiện / Thành phần | Đơn giá ($) |
+-------------------------------------------------------+-------------+
| Module SoC Nordic nRF51822 (Bluetooth 4.0 Core) | $3.50 |
| Cảm biến 9-DOF IMU MPU9250 (GY-9250) | $2.20 |
| Mạch đế phát triển, cổng nạp JTAG, IC UART CP2102 | $4.00 |
| Mạch nguồn, Pin Li-Po 3.7V / Coin-cell & Vỏ bọc 3D | $2.50 |
+-------------------------------------------------------+-------------+
| TỔNG CHI PHÍ PHẦN CỨNG | $12.20 |
+-------------------------------------------------------+-------------+
* So với thiết bị thương mại ($120.00), giải pháp giúp tiết kiệm tới 89.8% chi phí.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Nhiễu tín hiệu và độ trôi cảm biến (Sensor Drift & Offset): Cảm biến MEMS MPU9250 có hiện tượng trôi điểm không (Zero-g offset) và nhiễu tần số cao, đôi khi tạo ra các xung gia tốc ảo khi người dùng cử động tay mà không bước đi.
- Chiều dài bước cố định: Công thức tính quãng đường sử dụng hằng số $0.71\text{m}$, chưa tự động thích ứng khi người dùng chuyển trạng thái từ đi bộ thong thả sang chạy bộ tốc độ cao.
- Hạn chế bộ nhớ phần cứng: Phiên bản nRF51822 thế hệ đầu có dung lượng RAM tương đối hạn chế (16KB/32KB), gây khó khăn khi tích hợp các mô hình Machine Learning phức tạp trực tiếp trên vi điều khiển.
Định hướng nâng cấp
- Nâng cấp phần cứng: Chuyển đổi sang dòng chip thế hệ mới Nordic nRF52840 (ARM Cortex-M4F 64MHz, 1MB Flash, 256KB RAM, hỗ trợ BLE 5.0 Long Range và Bluetooth Mesh).
- Tích hợp giải thuật lọc nâng cao: Áp dụng bộ lọc bù (Complementary Filter) hoặc lọc Kalman/Madgwick kết hợp cả 3 trục Gyroscope và Magnetometer để định hướng không gian chính xác hơn.
- Triển khai TinyML trên biên: Ứng dụng mạng nơ-ron tích chập siêu nhẹ (Edge Impulse / TensorFlow Lite for Microcontrollers) để phân loại các trạng thái vận động phức tạp: đi bộ, chạy bộ, leo cầu thang, đi xe máy.
Đối tượng hưởng lợi
- Sinh viên & Học viên: Tiếp cận tài liệu thực hành hoàn chỉnh từ cấu hình phần cứng nhúng đến lập trình ứng dụng Android Client; nắm vững cách thức vận hành của ngăn xếp giao thức BLE GATT.
- Lập trình viên IoT: Tham khảo mã nguồn đóng gói dữ liệu nhị phân tối ưu, phương pháp giao tiếp I2C thanh ghi và kỹ thuật lập trình Timer không chặn trên nền tảng vi điều khiển.
- Doanh nghiệp vừa và nhỏ: Sở hữu thiết kế tham chiếu chi phí siêu thấp ($< $15) để tự chủ công nghệ, phát triển các giải pháp vòng đeo tay thông minh theo dõi công nhân trong nhà máy khép kín.
- Nhà nghiên cứu Y - Sinh: Khai thác nền tảng phần cứng mở để tích hợp thêm các đầu đo sinh học (nhiệt độ da, điện tim ECG, nhịp tim quang học PPG) phục vụ nghiên cứu lâm sàng.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để biên dịch và nạp chương trình cho thiết bị là gì?
Cần cài đặt phần mềm Arduino IDE (tích hợp gói bo mạch nRF51 by Sandeep Mistry), trình nạp phần mềm Segger J-Link Software and Documentation Pack, kết nối mạch nạp Segger J-Link EDU thông qua chuẩn giao tiếp JTAG/SWD 20 chân tới đế nRF51822. Đối với ứng dụng di động, thiết bị Android cần hỗ trợ BLE (từ Android 4.3 Jelly Bean trở lên, khuyến nghị Android 8.0+).
2. Thiết bị có gặp giới hạn về khả năng mở rộng quy mô (Scalability) khi nhiều người cùng sử dụng không?
Khi triển khai quy mô lớn trong một khu vực hẹp (ví dụ xưởng sản xuất có hàng trăm công nhân), mô hình kết nối hình sao (Star Topology) điểm-điểm của BLE 4.0 có thể gây nghẽn băng tần quảng bá 2.4GHz. Giải pháp mở rộng là nâng cấp lên giao thức Bluetooth Mesh, cho phép các nút thiết bị đeo chuyển tiếp gói tin dữ liệu cho nhau về Gateway trung tâm mà không phụ thuộc vào kết nối trực tiếp với từng điện thoại.
3. Làm thế nào để tích hợp thiết bị này vào các hệ thống Web hoặc Cloud Dashboard sẵn có?
Ứng dụng di động Android có thể đóng vai trò như một Mobile Edge Gateway. Sau khi nhận dữ liệu từ thiết bị đeo qua BLE, Android Service sẽ đóng gói dữ liệu định dạng JSON và đẩy lên Cloud Server (AWS IoT Core, ThingsBoard, hoặc Firebase) thông qua giao thức bảo mật MQTT hoặc HTTPS REST API.
4. Thiết bị cần bảo trì và hiệu chuẩn cảm biến định kỳ như thế nào?
Cảm biến MPU9250 cần được hiệu chuẩn (Calibration) bù trừ giá trị sai lệch tĩnh (Static Offset) trước lần sử dụng đầu tiên bằng cách đặt thiết bị trên mặt phẳng cố định để ghi lại giá trị Zero-Offset của 3 trục gia tốc. Firmware có thể được cập nhật từ xa thông qua tính năng nạp không dây OTA DFU (Over-The-Air Device Firmware Update) của Nordic.
5. Chi phí sản xuất hàng loạt và thời gian hoàn vốn (ROI) ước tính ra sao?
Khi sản xuất ở quy mô từ 1.000 đơn vị, chi phí gia công bản mạch PCB và linh kiện giảm xuống dưới $9.50/thiết bị. Đối với doanh nghiệp sản xuất áp dụng để kiểm soát an toàn lao động và năng suất, thời gian thu hồi vốn đầu tư (ROI) ước tính chỉ từ 3 đến 6 tháng nhờ giảm thiểu thời gian chết và tai nạn lao động.
Kết luận
Đồ án tốt nghiệp "Thiết kế và hiện thực giải pháp thiết bị đeo nhỏ gọn dùng chip Nordic và điện thoại Android" đã giải quyết thành công bài toán xây dựng một hệ thống IoT giám sát vận động hoàn chỉnh từ tầng phần cứng nhúng đến ứng dụng đầu cuối. Bằng việc kết hợp vi điều khiển chuyên dụng Nordic nRF51822, cảm biến 9 trục MPU9250 và giao thức BLE 4.0, hệ thống đạt độ chính xác đếm bước trung bình 90.26% với mức chi phí linh kiện chỉ bằng $1/10$ so với các sản phẩm thương mại.
Giải pháp mở ra tiềm năng ứng dụng to lớn trong y tế cộng đồng, an toàn lao động thông minh và là tài liệu tham khảo kỹ thuật giá trị cho cộng đồng phát triển hệ thống nhúng và IoT tại Việt Nam. Bạn có thể áp dụng ngay kiến trúc này để phát triển các dự án theo dõi sức khỏe chuyên sâu hơn bằng cách tích hợp thêm cảm biến sinh trắc học và thuật toán học máy biên.