- Thông số kỹ thuật nổi bật của MPU6050 (xem Hình 1 - 12 và Hình 1 - 13): • Điện áp sử dụng: 3 ~ 5VDC.
• Chuẩn giao tiếp: I2C.
• Chip: MPU-6050 (16bit ADC, 16bit data out).
• Giá trị Gyroscopes trong khoảng: +/- 250 500 1000 2000 degree/sec. • Giá trị Acceleration trong khoảng: +/- 2g, +/- 4g, +/- 8g, +/- 16g.
• Board mạch mạ vàng, linh kiện hàn tự động bằng máy chất lượng tốt nhất.
Hình 1 - 13: Mạch nguyên lý cảm biến gia tốc
1.3.9. Cảm biến MAX30100
Hình 1 - 14: Cảm biến MAX30100
- Đặc điểm kĩ thuật (xem Hình 1 - 14):
• Được tích hợp 16-bit sigma delta ADC và bộ xử lý tín hiệu tương tự với độ nhiễu thấp giúp cảm biến hoạt động chính xác và ổn định cao.
• Được thiết kế nhỏ gọn có thể sử dụng làm thiết bị đeo tay và dễ dàng giao tiếp với các MCU, Arduino và Raspberry Pi.
• Cảm biến quang: IR, led hồng ngoại & bộ tách sóng quang. • Hổ trợ giao tiếp I2C với chân INT.
• Nhiệt độ hoạt động: -40°C đến +85°C. • Điện áp sử dụng: 1.8 ~ 5.5VDC. • Kích thước: 1.9cm x 1.4cm x 0.3cm.
1.3.10. Module cảm biến chạm TP223
Khi một vật mang điện dung như tay người chạm vào, cảm biến sẽ xuất tín hiệu.
Hình 1 - 15: Module cảm biến chạm TP223
- Thông số kỹ thuật nổi bậc của TP223 (xem Hình 1 - 15 và Hình 1 - 16): • Điện áp sử dụng: 2.5 – 5.5VDC.
• Dịng tiêu thụ: 0.025mA. • Kích thước: 15 x 11mm. • Có đèn led báo chạm.
- Cảm biến có thể xuyên qua các vật liệu như kính, nhựa, mica... Độ dày từ 2mm - 6mm tùy vật liệu.
- Cảm biến xuất tín hiệu khi có vật mang điện dung chạm vào như: tay người, vật bằng kim loại…
1.3.11. Mạch sạc TP4056
Hình 1 - 17: Mạch sạc TP4056
- Thông số kỹ thuật của mạch sạc TP4056 (xem Hình 1 - 17): • Điện áp đầu vào: 5VDC.
• Điện áp sạc: 4.2V. • Dịng sạc tối đa: 1A. • Bảo vệ xả q dịng: 3A.
• Bảo vệ xả đến điện áp: 2.5V (Tránh làm cạn pin). • Cổng sạc MicroUSB.
1.3.12. Nguồn Adapter
Hình 1 - 18: Nguồn adapter 12V 5A
- Thông số kỹ thuật nổi bậc của adapter (xem Hình 1 - 18): • Điện áp đầu vào: 110V ~ 220V.
• Điện áp đầu ra: 12V – 5A. • Cơng suất: 60W.
• Nhiệt độ làm việc: 0℃ ~ 40℃. • Nhiệt độ bảo quản: -20℃ ~ 60℃.
1.4. Những chuẩn giao tiếp sử dụng
1.4.1. Giao tiếp I2C
Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C. I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit. Đây là đường Bus giao tiếp giữa các IC với nhau. Bus I2C được sử dụng rộng rãi làm bus giao tiếp ngoại vi giữa vi điều khiển và mảng cảm biến, các thiết bị hiển thị, thiết bị IoT, EEPROMs… (xem Hình 1 - 19).
Hình 1 - 19: Giao tiếp I2C
1.4.1.1. Đặc điểm
− Chỉ cần có hai đường bus chung để điều khiển bất kỳ thiết bị IC nào trên mạng I2C.
− Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp UART. Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết.
− Cơ chế đơn giản để xác thực dữ liệu được truyền.
− Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị trên IC cụ thể trên bus I2C. − Các mạng I2C dễ dàng mở rộng. Các thiết bị mới có thể được kết nối đơn giản với
hai đường bus chung I2C.
Điểm mạnh của I2C chính là hiệu suất và sự đơn giản của nó: một khối điều khiển trung tâm có thể điều khiển cả một mạng thiết bị mà chỉ cần hai lối ra điều khiển.
Có rất nhiều thiết bị có thể cùng được kết nối vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởỉ một địa chỉ duy nhất với một quan hệ chủ – khách tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận.
Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất) để phân biệt, nó cịn được cấu hình là thiết bị chủ hay khách. Vì trên một bus I2C thì quyền điều khiển thuộc về thiết bị chủ. Thiết bị chủ nắm vai trị tạo xung đồng hồ cho tồn hệ thống, khi giữa hai thiết bị chủ – khách giao tiếp thì thiết bị chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của thiết bị khách trong suốt quá trình giao tiếp. Thiết bị chủ giữ vai trò chủ động, còn thiết bị khách giữ vai trò bị động trong việc giao tiếp.
I2C sử dụng 7 bit để định địa chỉ, do đó trên một bus có thể có tới 27 địa chỉ tương ứng với 128 thiết bị có thể kết nối, nhưng chỉ có 112 địa chỉ sử dụng để kết nối, 16 địa chỉ còn lại được sử dụng vào mục đích riêng. Bit cịn lại quy định việc đọc hay ghi dữ liệu.
1.4.2. Giao tiếp UART
Tên đầy đủ UART là “Universal Asynchronous Receiver/Transmitter”, nó là một vi mạch sẵn có trong một vi điều khiển nhưng không giống như một giao thức truyền thơng (I2C & SPI). Chức năng chính của UART là truyền dữ liệu nối tiếp. Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song.
1.4.2.1. Đặc điểm
Hình 1 - 20: Sơ đồ khối giao tiếp UART
UART bao gồm hai thành phần là máy phát và máy thu. Phần máy phát bao gồm ba khối là thanh ghi giữ truyền, thanh ghi dịch chuyển và logic điều khiển. Phần máy thu bao gồm một thanh ghi giữ, thanh ghi thay đổi và logic điều khiển. Hai phần này
thường được cung cấp bởi một bộ tạo tốc độ baud. Trình tạo này được sử dụng để tạo tốc độ khi phần máy phát và phần máy thu phải truyền hoặc nhận dữ liệu (xem Hình 1 -
20).
Thanh ghi giữ trong máy phát bao gồm byte dữ liệu được truyền. Các thanh ghi thay đổi trong máy phát và máy thu di chuyển các bit sang phải hoặc trái cho đến khi một byte dữ liệu được truyền hoặc nhận. Một logic điều khiển đọc (hoặc) ghi được sử dụng để biết khi nào nên đọc hoặc viết.
Máy phát tốc độ baud giữa máy phát và máy thu tạo ra tốc độ dao động từ 110 bps đến 230400 bps. Thông thường, tốc độ truyền của vi điều khiển là 9600 đến 115200.
1.4.2.2. Truyền thông UART
Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau. Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữ liệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU…
Sau khi nhận được dữ liệu song song từ bus, nó tạo thành gói dữ liệu bằng cách thêm ba bit như bắt đầu, dừng lại và trung bình. Nó đọc từng bit gói dữ liệu và chuyển đổi dữ liệu nhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu.
Tóm lại, gói dữ liệu nhận được bởi UART chuyển song song về phía bus dữ liệu ở đầu nhận (xem Hình 1 - 21).
Hình 1 - 21: Truyền thơng giao tiếp UART
1.4.2.3. Ứng dụng
UART thường được sử dụng trong các bộ vi điều khiển cho các u cầu chính xác và chúng cũng có sẵn trong các thiết bị liên lạc khác nhau như giao tiếp không dây, thiết bị GPS, mô-đun Bluetooth và nhiều ứng dụng khác.
Các tiêu chuẩn truyền thông như RS422 & TIA được sử dụng trong UART ngoại trừ RS232. Thông thường, UART là một IC riêng được sử dụng trong giao tiếp nối tiếp UART.
1.4.3. Giao tiếp SPI
Chuẩn giao tiếp SPI được hãng Motorola đề xuất, ra đời vào giữa những năm 1980 để giải quyết về nhu cầu về việc giao tiếp giữa các thiết bị với thơng lượng nhanh hơn giao thức I2C hiện có.
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ó.
1.4.3.1. Đặc điểm
Hình 1 - 22: Giao tiếp SPI
− SPI là một giao thức kiểu Master – Slave. Master là thiết bị điều khiển (thường là vi điều khiển), còn Slave (thường là các cảm biến, màn hình LCD hoặc chip nhớ) sẽ nhận lệnh từ Master.
− Một hệ thống SPI chỉ gồm một thiết bị Master, nhưng lại có thể có một hoặc nhiều thiết bị Slave.
− Khối SPI của thiết bị Master sẽ kết nối với khối SPI của thiết bị Slave qua 4 chân tín hiệu (xem Hình 1 - 22):
• MOSI (Master Output/Slave Input) – Master gửi dữ liệu đến Slave. • MISO (Master Input/Slave Output) – Slave gửi dữ liệu cho Master. • SCLK (Serial Clock) – xung giữ nhịp Clock.
• SS/CS (Slave Select/Chip Select) – Master lựa chọn Slave để giao tiếp. Cụ thể trong trường hợp hệ thống gồm một Master giao tiếp với nhiều Slave, Master điều khiển tín hiệu mức logic trên chân SS/CS của Slave nào xuống mức LOW (mức 0), nghĩa là Master đang giao tiếp với Slave đó.
1.4.3.2. Cơ chế hoạt động
Hình 1 - 23: Cơ chế giao tiếp SPI hoạt động
Mỗi thiết bị Master và Slave đều có một thanh ghi dịch 8 bits (Shift Register), một bộ tạo xung nhịp (Clock Generator).
Khi Master truyền dữ liệu, Master truyền đi 8 bits dữ liệu vào thanh ghi dịch của nó, sau đó 8 bits dữ liệu được truyền theo đường tín hiệu MOSI sang thiết bị Slave. Tương tự khi Slave truyền dữ liệu, các bits trên thanh ghi dịch của Slave truyền đến Master thơng qua đường tín hiệu MISO (xem Hình 1 - 23).
Bằng cách này, dữ liệu của hai thanh ghi sẽ được trao đổi với nhau. Việc đọc và ghi dữ liệu vào Slave diễn ra cùng một lúc nên tốc độ trao đổi dữ liệu diễn ra rất nhanh. Do đó, giao thức SPI là một giao thức rất có hiệu quả.
CHƯƠNG 2. TÍNH TỐN, THIẾT KẾ PHẦN CỨNG
2.1. Sơ đồ khối
2.1.1. Sơ đồ khối của vịng tay
Hình 2 - 1: Sơ đồ khối của vịng tay
Chức năng các khối (xem Hình 2 - 1):
• Khối xử lý: xử lý dữ liệu cho hệ thống.
• Khối cảm biến: cung cấp giá trị nhịp tim, SpO2 và gia tốc.
• Khối truyền thơng RF2.4: truyền dữ liệu từ vịng tay đến gateway. • Khối nguồn: cấp nguồn cho hệ thống hoạt động.
• Khối nút nhấn: cung cấp tín hiệu bằng tay.
2.1.1.1. Khối xử lý
Khối xử lý trung tâm của vòng tay: Sử dụng vi điều khiển Atmega328P để thực hiện đọc giá trị từ cảm biến và gửi kết quả về cho gateway.
2.1.1.2. Khối cảm biến
2.1.1.2.1. Cảm biến đo nhịp tim và SpO2
Sử dụng cảm biến MAX30100 để đo nhịp tim và nồng độ oxy trong máu và gửi dữ liệu đến gateway.
2.1.1.2.2. Cảm biến gia tốc
Sử dụng cảm biến GY-521 6DOF IMU MPU6050 để phát hiện người đeo có thể bị ngã và gửi dữ liệu đến gateway.
2.1.1.3. Khối truyền thông RF2.4
Sử dụng module NRF24L01 để giao tiếp giữa vòng tay với gateway.
2.1.1.4. Khối nguồn
Sau khi tính tốn cơng suất tiêu thụ trong bảng dưới đây (xem Bảng 2 - 1), nhóm chọn nguồn là pin lithium 300mAh để cấp nguồn cho vòng tay.
Bảng 2 - 1: Tính tốn cơng suất tiêu thụ của vịng tay
STT Khối chính Hoạt động tiêu thụ Dòng điện lớn nhất 1 Atmega328 Đọc dữ liệu từ cảm biến và gửi dữ
liệu lên cho gateway 30mA
2 Cảm biến
MAX30100 Đo nhịp tim, nồng độ oxy trong máu 20mA
3 Cảm biến gia tốc
MPU6050 Phát hiện ngã 3.9mA
4 Khối truyền thông NRF24L01
Truyền thơng giữa vịng tay và
gateway ≈ 100mA
5 Tổng ≈ 160mA
Chức năng các khối (xem Hình 2 - 2):
• Khối xử lý: xử lý dữ liệu của hệ thống.
• Khối truyền thơng RF2.4: nhận dữ liệu từ vịng tay đến gateway. • Khối truyền thơng: truyền dữ liệu từ gateway đến điện thoại. • Khối cảnh báo: phát loa cảnh báo khi có dấu hiệu té ngã. • Khối nguồn: cấp nguồn cho hệ thống hoạt động.
2.1.2.1. Khối xử lý
Sử dụng chip xử lý trung tâm là module ESP8266 NodeMCU, nhằm để nhận dữ liệu từ vòng tay và gửi dữ liệu lên Firebase của Google thơng qua sóng wifi.
2.1.2.2. Khối truyền thơng:
Sử dụng module sim 800L để giao tiếp với điện thoại qua GSM:
2.1.2.3. Khối cảnh báo
Sử dụng cịi chíp để báo âm thanh, và sử dụng transistor 2N3904 phân cực class A để kích mở cịi chip.
2.1.2.4. Khối nguồn
Khối nguồn cần cung cấp được nguồn điện ổn định, đủ để cho các module hoạt động ổn định, từ tính tốn trong bảng dưới đây (xem Bảng 2 - 2), nhóm lựa chọn nguồn từ adapter 5V – 2A để cung cấp nguồn cho gateway hoạt động.
Bảng 2 - 2: Tính tốn cơng suất của gateway
STT Khối chính Hoạt động tiêu thụ Dịng điện lớn nhất 1 ESP8266 Truyền nhận dữ liệu, điều khiển ngoại vi ≈ 200mA
2 NRF24L01 Truyền thơng giữa vịng tay và gateway ≈ 100mA
3 Module
Sim800L Truyền thông giữa gateway và điện thoại 100mA – 2A
4 Tổn hao khác -- ≈ 100mA
2.2. Sơ đồ nguyên lý
2.2.1. Sơ đồ nguyên lý của vòng tay
Hình 2 - 3: Sơ đồ nguyên lý của vòng tay
Với các chức năng như đo nhịp tim, nồng độ oxy trong máu, phát hiện ngã, và gửi dữ liệu đọc được cũng như yêu cầu về gateway, vịng tay có cấu tạo như sau (xem
Hình 2 - 3):
• VĐK được sử dụng là Atmega328.
• Khối cảm biến được nối theo chuẩn I2C, các chân SCL, SDA lần lượt được nối vào I/O PC5, PC4 của VĐK.
• NRF24L01 được nối theo chuẩn SPI, các chân MISO-MOSI-SCK-CSN-CE lần lượt được nối vào I/O PB4-PB3-PB5-PB2-PB1 của VĐK.
• Khối đèn báo được nối với chân PC2 của VĐK.
• Khối nút nhấn gồm 2 nút, được nối lần lượt với 2 chân PC0, PC1 của VĐK với mục đích yêu cầu gọi điện cho người thân và tắt cảnh báo (nếu có).
2.2.2. Sơ đồ ngun lý của gateway
Hình 2 - 4: Mạch nguyên lý của gateway
Với chức năng điều phối, thu tín hiệu từ vịng tay và gửi dữ liệu lên internet cũng như điện thoại, gateway có cấu tạo như sau (xem Hình 2 - 4):
• ESP8266 NodeMCU là VĐK trung tâm.
• Module NRF24L01 được kết nối với D4, D5, D6, D7, D8 của ESP8266 theo chuẩn SPI.
• Module cảnh báo được nối vào chân D3, gồm có transistor phân cực class A để kích cịi báo.
• Header 8P được kết nối theo chuẩn UART, với 2 chân TX, RX kết nối với TX, RX của ESP8266, header sẽ được nối với module sim800l để phục vụ cho việc truyền thông giữa gateway và điện thoại.
2.3.1. Mạch in và mơ phỏng 3D của vịng tay
Mạch của vịng tay được mơ phỏng 3D trên phần mềm Altium (xem Hình 2 - 5).
Hình 2 - 5: Mạch in và mơ phỏng 3D của vịng tay
2.3.2. Mạch in và mô phỏng 3D của gateway
Mạch của gateway được mơ phỏng 3D trên phần mềm Altium (xem Hình 2 - 6).
CHƯƠNG 3. LẬP TRÌNH ĐIỀU KHIỂN HỆ THỐNG
3.1. Lưu đồ hoạt động của hệ thống
3.1.1. Hoạt động của hệ thống
Trong quá trình tìm hiểu về NRF24L01, nhận thấy đây là một dịng chip có hiệu năng cao cũng như khả năng truyền tải tốt với tốc độ tối đa có thể đạt được lên tới 2Mbps. Tuy nhiên, dịng chip giá rẻ này cũng có một số nhược điểm như:
- Khả năng truyền tải khoảng cách xa kém.
- Chỉ hỗ trợ truyền tải bán song công (tại một thời điểm chỉ có thể truyền hoặc
nhận, và phải setup trước điều kiện trong phần lập trình). Hệ thống sẽ hoạt động như sau:
- Vịng tay sau khi đo đạc thơng số từ cảm biến sẽ gửi thông tin đến gateway. - Gateway sẽ kiểm tra bản tin đến, sau khi phân tích bản tin sẽ kiểm tra trạng
thái cảnh báo và đưa ra quyết định.