Các thiết bị này có thể được sử dụng để theo dõi nhịp tim một cách liên tục và tự động.. 1.5 Phương pháp nghiên cứuĐể đạt được mục tiêu nghiên cứu, đề tài sử dụng các phương pháp nghiên
Trang 1Advisor(s): Huỳnh Hoàng Kha
Student(s): Nguyễn Đăng Khoa 2113760
Huỳnh Hữu Tín 2110584Ngô Nguyễn Minh Đức 2113215
HO CHI MINH CITY, DECEMBER 2023
Trang 21.1 Tính cấp thiết của đề tài 5
1.2 Đối tượng nghiên cứu 5
1.3 Phạm vi nghiên cứu 5
1.4 Mục tiêu nghiên cứu 5
1.5 Phương pháp nghiên cứu 6
1.6 Kết cấu đề tài 6
2 Cơ sở lý thuyết 6 2.1 Nhịp tim là gì? 6
2.2 Các phương pháp đo nhịp tim 7
2.3 Giới thiệu cảm biến MAX30100 8
2.3.1 Tổng quan 8
2.3.2 Cấu tạo và đặc tính kỹ thuật 8
2.3.3 Cấu hình chân 9
2.3.4 Nguyên lí hoạt động 10
2.3.5 Ưu điểm và nhược điểm 11
2.4 Giới thiệu về ESP8266 11
2.5 Giới thiệu về ứng dụng Blynk trên điện thoại di động 12
2.6 Giới thiệu về I2C 13
3 Thiết kế 15 3.1 Sơ đồ khối 15
3.2 Sơ đồ nối dây 16
3.3 Lắp mạch trên testboard 16
4 Lập trình ESP8266 17 4.1 Tổng quan về Arduino IDE 17
4.2 Thiết lập thư viện cần thiết 19
4.3 Thiết kế thuật toán đo nhịp tim và hiển thị qua ứng dụng Blink 20
4.3.1 Flowchart 20
4.3.2 Code 20
5 Thi công mạch 23 5.1 Tổng quan về Altium Designer 23
Trang 35.2 Sơ đồ thiết kế Altium 24
5.3 Luật đi dây 25
5.4 Bố trí mạch 26
5.5 Mạch thành phẩm 28
6 Kết quả 29 List of Figures 2.1 Đo nhịp tim bằng tay 7
2.2 Đo nhịp tim điện tâm đồ 7
2.3 Đo nhịp tim bằng cảm biến quang học 8
2.4 Cảm biến MAX30100 8
2.5 Cảm biến MAX30100 9
2.6 Nguyên lí hoạt động của MAX30100 10
2.7 Kit NodeMCU ESP8266 11
2.8 Blynk App 13
2.9 Chuẩn giao tiếp I2C 14
3.1 Sơ đồ khối của mạch đo nhịp tim 15
3.2 Sơ đồ nối dây 16
3.3 Mạch lắp trên testboard 17
4.1 Giao diện Arduino 18
4.2 Thư viện ESP8266 19
4.3 Flowchart 20
5.1 Schematic 24
5.2 Trace Width Calculator 25
5.3 PCB 26
5.4 Design rule check 27
5.5 Mạch thành phẩm (mặt trước) 28
5.6 Mạch thành phẩm (mặt sau) 29
Trang 41 Mở đầu
1.1 Tính cấp thiết của đề tài
Nhịp tim là một chỉ số quan trọng phản ánh tình trạng sức khỏe của con người Nhịptim bình thường của người trưởng thành dao động từ 60 đến 100 nhịp mỗi phút Nhịptim thay đổi theo nhiều yếu tố, chẳng hạn như hoạt động thể chất, căng thẳng, nhiệt độ
cơ thể,
Việc theo dõi nhịp tim thường xuyên có thể giúp phát hiện sớm các vấn đề về sức khỏe,chẳng hạn như bệnh tim mạch, rối loạn nhịp tim,
Trong những năm gần đây, công nghệ phát triển đã cho phép chúng ta thiết kế các thiết
bị đo nhịp tim có kích thước nhỏ gọn và giá thành hợp lý Các thiết bị này có thể được
sử dụng để theo dõi nhịp tim một cách liên tục và tự động
1.2 Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là
• Thiết kế mạch đo nhịp tim bằng cảm biến quang học MAX30100 và vi điều khiểnESP8266
• Kết nối Wi-Fi và hiển thị kết quả qua ứng dụng di động
1.3 Phạm vi nghiên cứu
Phạm vi nghiên cứu của đề tài bao gồm:
• Nghiên cứu cơ sở lý thuyết về nhịp tim, cảm biến MAX30100 và ESP8266
• Thiết kế mạch đo nhịp tim bằng ESP8266 và MAX30100
• Lập trình cho mạch đo nhịp tim
1.4 Mục tiêu nghiên cứu
Mục tiêu của đề tài là thiết kế mạch đo nhịp tim có các yêu cầu sau:
• Đo nhịp tim chính xác và ổn định
• Có khả năng hiển thị nhịp tim trên màn hình hoặc gửi nhịp tim lên Internet
Trang 51.5 Phương pháp nghiên cứu
Để đạt được mục tiêu nghiên cứu, đề tài sử dụng các phương pháp nghiên cứu sau:
• Nghiên cứu lý thuyết: Thu thập và phân tích các tài liệu, thông tin liên quan đếnnhịp tim, cảm biến MAX30100 và ESP8266
• Nghiên cứu thực nghiệm: Thiết kế, chế tạo và kiểm tra mạch đo nhịp tim
• Chương 5: Thi công mạch
• Chương 6: Đánh giá kết quả
• Chương 7: Kết luận
2 Cơ sở lý thuyết
2.1 Nhịp tim là gì?
Nhịp tim là số lần tim đập trong một phút Nhịp tim được đo bằng số lần tim co bóp
để bơm máu đi khắp cơ thể Nhịp tim bình thường của người trưởng thành dao động từ
60 đến 100 nhịp mỗi phút
Nhịp tim có thể thay đổi theo nhiều yếu tố, chẳng hạn như:
• Hoạt động thể chất: Nhịp tim sẽ tăng lên khi bạn hoạt động thể chất
• Căng thẳng: Nhịp tim có thể tăng lên khi bạn cảm thấy căng thẳng
• Nhiệt độ cơ thể: Nhịp tim có thể tăng lên khi nhiệt độ cơ thể tăng lên
• Sự thay đổi nội tiết tố: Nhịp tim có thể thay đổi theo chu kỳ kinh nguyệt ở phụ
Trang 62.2 Các phương pháp đo nhịp tim
Có nhiều phương pháp đo nhịp tim, bao gồm:
• Đo nhịp tim bằng tay là phương pháp đo nhịp tim đơn giản nhất Bạn đặt ngóntay lên cổ tay hoặc cổ để cảm nhận nhịp đập của tim Tuy nhiên, phương pháp này
có thể không chính xác nếu bạn không có kinh nghiệm
Figure 2.1: Đo nhịp tim bằng tay
• Đo nhịp tim bằng điện tâm đồ là phương pháp chính xác nhất Điện tâm đồ sửdụng các điện cực để ghi lại hoạt động điện của tim Tuy nhiên, phương pháp nàycần được thực hiện bởi nhân viên y tế
Figure 2.2: Đo nhịp tim điện tâm đồ
Trang 7• Đo nhịp tim bằng cảm biến quang học là phương pháp đo nhịp tim sử dụngánh sáng để đo cường độ ánh sáng phản xạ từ mạch máu Đây là phương pháp tiệnlợi và không cần phải đến gặp bác sĩ Tuy nhiên, độ chính xác phụ thuộc vào loạicảm biến và việc lập trình tính toán.
Figure 2.3: Đo nhịp tim bằng cảm biến quang học
2.3 Giới thiệu cảm biến MAX30100
2.3.1 Tổng quan
MAX30100 là một cảm biến quang học có thể được sử dụng để đo nhịp tim, nồng độoxy trong máu và các thông số sinh lý khác Cảm biến này sử dụng công nghệ phát hiệnquang học PPG (Photoplethysmography) để đo cường độ ánh sáng phản xạ từ mạch máu
Figure 2.4: Cảm biến MAX30100
2.3.2 Cấu tạo và đặc tính kỹ thuật
Cấu tạo:
• Đèn LED đỏ và xanh lá: Đèn LED được sử dụng để chiếu ánh sáng lên mạch
Trang 8• Cảm biến quang: Cảm biến quang được sử dụng để đo cường độ ánh sáng phản
• Dòng điện đầu vào 20mA
• Tích hợp loại bỏ nhiễu từ ánh sáng xung quanh
• Tốc độ lấy mẫu tín hiệu cao
• Xuất đầu ra dữ liệu nhanh
2.3.3 Cấu hình chân
Figure 2.5: Cảm biến MAX30100
Trang 9Table 2.1: Bảng cấu hình chân
SDA I2C - Chân dữ liệu nối tiếpINT Ngừng hoạt động khi cấp mức logic thấp (Interupt)
để đo lượng máu đỏ trong mạch máu Đèn LED xanh lá được sử dụng để đo lượng máuxanh lá trong mạch máu Bộ xử lý tín hiệu của cảm biến MAX30100 sẽ sử dụng sự chênhlệch giữa cường độ ánh sáng đỏ và xanh lá để tính toán nhịp tim và nồng độ oxy trong máu
Figure 2.6: Nguyên lí hoạt động của MAX30100
Trang 102.3.5 Ưu điểm và nhược điểm
Ưu điểm:
• Nhỏ gọn và dễ sử dụng: Cảm biến MAX30100 có kích thước nhỏ gọn và dễ sửdụng
• Có thể đo nhiều thông số sinh lý: Cảm biến MAX30100 có thể được sử dụng
để đo nhịp tim, nồng độ oxy trong máu và các thông số sinh lý khác
• Giá thành hợp lý: Cảm biến MAX30100 có giá thành hợp lý
Nhược điểm:
• Độ chính xác có thể bị ảnh hưởng bởi các yếu tố môi trường: Độ chính xáccủa cảm biến MAX30100 có thể bị ảnh hưởng bởi các yếu tố môi trường, chẳng hạnnhư ánh sáng xung quanh và nhiệt độ
2.4 Giới thiệu về ESP8266
ESP8266 là một vi điều khiển có tích hợp bộ thu phát Wi- Fi được phát triển bởiEspressif Systems Vi điều khiển này được ra mắt vào năm 2014 ESP8266 sử dụng kiếntrúc RISC (Reduced Instruction Set Computer) với bộ xử lý lõi đơn 32-bit Vi điều khiểnnày có bộ nhớ flash 4MB và bộ nhớ RAM 80KB Với kích thước nhỏ, dễ sử dụng, giáthành rẻ, ESP8266 được sử dụng nhiều trong các ứng dụng thực tế
Figure 2.7: Kit NodeMCU ESP8266
Trang 11ESP8266 có các cổng kết nối sau:
• Hỗ trợ OTA (Over-the-air programming)
2.5 Giới thiệu về ứng dụng Blynk trên điện thoại di động
Blynk là một nền tảng với các ứng dụng điện thoại thông minh cho phép bạn có thể
dễ dàng tương tác với bộ vi điều khiển như: Arduino, Esp8266, Esp32 hoặc Raspberryqua Internet Blynk App là một bảng điều khiển kỹ thuật số cho phép bạn có thể xâydựng giao diện đồ họa cho dự án của mình bằng cách kéo và thả các widget khác nhau
mà nhà cung cấp thiết kế sẵn
Blynk không bị ràng buộc với một số bo hoặc shield cụ thể Thay vào đó, nó hỗ trợ phầncứng mà bạn lựa chọn Cho dù Arduino hoặc Raspberry Pi của bạn được liên kết vớiInternet qua Wi-Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp bạn kết nối và sẵn sàngcho các dự án IoT
Trang 12Figure 2.8: Blynk App
Blynk Server chịu trách nhiệm về tất cả các giao tiếp giữa điện thoại thông minh vàphần cứng Bạn có thể sử dụng Blynk Cloud hoặc chạy cục bộ máy chủ Blynk riêng củamình Nó là mã nguồn mở, có thể dễ dàng xử lý hàng nghìn thiết bị và thậm chí có thểđược khởi chạy trên Raspberry Pi
Thư viện Blynk dành cho tất cả các nền tảng phần cứng phổ biến – cho phép giao tiếpvới máy chủ và xử lý tất cả các lệnh đến và lệnh đi Mỗi khi bạn nhấn một nút trong ứngdụng Blynk, thông điệp sẽ truyền đến không gian của đám mây Blynk, và tìm đường đếnphần cứng của bạn
Mọi thứ bạn cần để xây dựng và quản lý phần cứng được kết nối: cung cấp thiết bị, hiểnthị dữ liệu cảm biến, điều khiển từ xa với các ứng dụng web và di động, cập nhật chươngtrình cơ sở qua mạng, bảo mật, phân tích dữ liệu, quản lý người dùng và truy cập, cảnhbáo, tự động hóa và nhiều thứ khác hơn
Và, ứng dụng Blynk có sẵn trên CH Play
2.6 Giới thiệu về I2C
Giao tiếp I2C (Inter-Integrated Circuit) là một giao tiếp nối tiếp đa điểm được sửdụng để kết nối các thiết bị điện tử Giao tiếp này sử dụng hai dây để truyền dữ liệu(SDA), một dây dữ liệu và một dây clock (SCL)
Trang 13Figure 2.9: Chuẩn giao tiếp I2C
Giao tiếp I2C có hai loại thiết bị master và slave Thiết bị master là thiết bị khởi tạo
và kiểm soát giao tiếp Thiết bị slave là thiết bị phản hồi lại các yêu cầu từ thiết bị master
Giao tiếp I2C sử dụng các lệnh sau:
• Start: Lệnh này bắt đầu một chu kỳ giao tiếp
• Stop: Lệnh này kết thúc một chu kỳ giao tiếp
• Write: Lệnh này được sử dụng để gửi dữ liệu từ thiết bị master đến thiết bị slave
• Read: Lệnh này được sử dụng để nhận dữ liệu từ thiết bị slave
Một chu kỳ giao tiếp I2C gồm các bước sau:
1 Thiết bị master gửi lệnh Start
2 Thiết bị slave nhận lệnh Start và sẵn sàng nhận dữ liệu
3 Thiết bị master gửi địa chỉ của thiết bị slave
4 Thiết bị slave xác nhận địa chỉ
5 Thiết bị master gửi lệnh Write hoặc Read
6 Thiết bị slave thực hiện lệnh và gửi dữ liệu
7 Thiết bị master nhận dữ liệu
8 Thiết bị master gửi lệnh Stop
Trang 14Những ưu điểm của giao tiếp I2C:
• Đơn giản và dễ sử dụng: Giao tiếp I2C chỉ sử dụng hai dây để truyền dữ liệu,
Figure 3.1: Sơ đồ khối của mạch đo nhịp tim
MAX30100 sẽ thông qua giao tiếp I2C gửi dữ liệu cho ESP8266 xử lí Sau khi xử líxong ESP8266 sẽ đẩy dữ liệu qua Blynk App thông qua thư viện Blynk có sẵn và kết nốiWi-Fi
Trang 153.2 Sơ đồ nối dây
Figure 3.2: Sơ đồ nối dây
Table 3.1: Bảng nối chânChân ESP8266 Chân MAX30100 Màu dây
Trang 16Figure 3.3: Mạch lắp trên testboard
4 Lập trình ESP8266
4.1 Tổng quan về Arduino IDE
Arduino IDE (Integrated Development Environment) là một môi trường phần mềmđược thiết kế đặc biệt để lập trình và phát triển ứng dụng cho các bo mạch phổ biến nhưArduino, ESP8266, ESP32, Đây là một công cụ mạnh mẽ và dễ sử dụng, đặc biệt đượcthiết kế để làm cho quá trình phát triển phần cứng và phần mềm trở nên đơn giản hơnđối với cộng đồng làm những người không chuyên
Arduino IDE cung cấp một giao diện người dùng thân thiện, giúp người sử dụng dễ dàngviết và tải lên chương trình vào bo mạch Arduino của họ
Ngôn ngữ được sử dụng là một biến thể đơn giản của ngôn ngữ lập trình C++ Ngôn ngữnày được tối ưu hóa để dễ hiểu và sử dụng cho những người mới bắt đầu trong lĩnh vựclập trình
Trang 17Arduino IDE có các tính năng chính sau:
• Trình soạn thảo mã: Trình soạn thảo mã cung cấp các tính năng chỉnh sửa và gỡlỗi mã
• Trình biên dịch: Trình biên dịch chuyển mã C++ sang ngôn ngữ máy
• Trình nạp: Trình nạp tải mã đã biên dịch lên bo mạch Arduino
• Thư viện: Arduino IDE cung cấp một thư viện các hàm và lớp được sử dụng đểđiều khiển các thiết bị ngoại vi
Figure 4.1: Giao diện Arduino
Arduino chia thành ba khu vực chính:
Trang 18• Khu vực lập trình: Nơi bạn viết mã nguồn Arduino của mình.
• Thanh trạng thái: Hiển thị thông báo, lỗi và trạng thái của quá trình biên dịch
và tải lên
4.2 Thiết lập thư viện cần thiết
Thư viện ESP8266
Figure 4.2: Thư viện ESP8266
Thư viện ESP8266 là một thư viện quan trọng cho việc lập trình vi điều khiển ESP8266.Thư viện này cung cấp các hàm và lớp cần thiết để lập trình ESP8266 cho các ứng dụngIoT và các ứng dụng khác
Thư viện Blynk
Thư viện MAX30100
Hai thư viện trên không có sẵn trong Arduino Hai đường dẫn ở trên sẽ dẫn tới mộttrang web trình bày chi tiết về cách cài đặt của các thư viện cũng như cách sử dụng
Trang 194.3 Thiết kế thuật toán đo nhịp tim và hiển thị qua ứng dụng
Blink
4.3.1 Flowchart
Figure 4.3: Flowchart
4.3.2 Code
Trang 20// You s h o u l d get Auth T o k e n in the B l y n k App.
17char ssid[] = "pass 1 2 3 4 5 6 7 8 " ;
Trang 225.1 Tổng quan về Altium Designer
Altium Designer là một phần mềm thiết kế mạch điện tử tích hợp (PCB) được pháttriển bởi Altium Limited Phần mềm này cung cấp một môi trường làm việc tích hợp(IDE) cho phép người dùng tạo, chỉnh sửa và quản lý các mạch điện tử và mạch in mạchPCB (Printed Circuit Board)
Altium Designer có các tính năng chính sau:
• Trình tạo sơ đồ: Trình tạo sơ đồ cho phép người dùng tạo sơ đồ mạch điện tử
• Trình thiết kế PCB: Trình thiết kế PCB cho phép người dùng thiết kế mạch inmạch PCB
• Mô phỏng mạch: Altium Designer cung cấp một công cụ mô phỏng mạch để kiểmtra hoạt động của mạch điện tử
Trang 23• Giao diện 3D: Altium Designer cung cấp một giao diện 3D để xem mạch in mạchPCB dưới dạng 3D.
• Quản lý dữ liệu: Altium Designer cung cấp một hệ thống quản lý dữ liệu để lưutrữ và truy xuất các tài liệu mạch điện tử
5.2 Sơ đồ thiết kế Altium
Figure 5.1: Schematic
Trang 245.3 Luật đi dây
Figure 5.2: Trace Width Calculator
Với dòng điện tối đa là 1 Ampe, độ dày của board đồng là 1 oz/f t2, nhiệt độ bảngmạch tăng tối đa là 10°C, nhiệt độ phòng là 30°C và chiều dài của một trace lớn nhấttrong mạch là 30mm Thì ta cần độ rộng tối thiểu của một trace là 11.8 mil và độ sụt áptối đa là 0.0513 Volts (độ sụt áp này chấp nhận được)
Trang 255.4 Bố trí mạch
Figure 5.3: PCB
Trang 26Figure 5.4: Design rule check
Như đã thấy ở trên, mạch đã không vi phạm bất kì rule liên quan đến nối dây nào Số
vi phạm chủ yếu đến từ Silk to Solder Mask Clearance nhưng phần này không ảnh hưởngđến mạch, chỉ ảnh hưởng đến việc in Silk
Trang 275.5 Mạch thành phẩm
Figure 5.5: Mạch thành phẩm (mặt trước)
Trang 29References