資料介紹
成分
PCBWay定制PCB
?
|
× 1 |
阿杜諾納米
?
|
× 1 |
?
|
× 1 |
MAX30102 脈搏血氧儀和心率傳感器
?
|
× 1 |
MAX30100 脈搏血氧儀和心率傳感器(可選)
?
|
× 1 |
?
|
× 1 |
5mm共陽極RGB LED
?
|
× 1 |
按鈕 (6x6)
?
|
× 1 |
220Ω電阻
?
|
× 3 |
電源插座
?
|
× 1 |
外接電池
?
|
× 1 |
描述
帶涂鴉智能的物聯網心率 (BPM) 監測和追蹤器
?
心率或脈搏是您每分鐘心跳的次數 (BPM)。雖然心臟在全身循環氧氣和富含營養的血液,但心率是這一過程的基礎,因為心臟的功能(稱為“心輸出量”)與心率和每搏輸出量(泵出的血液量)直接相關每拍)。因此,心率或節律的快速激增或耗竭可能表明患有心臟病、肺部疾病或其他問題。因此,跟蹤我們的心率可以讓我們深入了解我們的整體健康狀況。
?
雖然監測和跟蹤心率(BPM)的方法和系統非常豐富,但在這個項目中,我專注于開發一種新設備,該設備具有易于理解的移動應用程序界面,兼容Android和iOs,用于觀察心率產生的數據。脈搏血氧計傳感器。
?
我決定在這個項目中使用涂鴉 IoT 平臺,因為它可以讓我開發一個兼容各種操作系統的移動應用程序接口,并將信息保存到涂鴉云,以跟蹤脈搏血氧儀傳感器產生的數據。在接下來的步驟中,我將詳細解釋我是如何利用涂鴉 IoT 平臺來改進這個項目的。
當我從頭開始開發此設備以監測和跟蹤心率 (BPM) 時,我不想讓該設備僅與一種類型的脈搏血氧計傳感器一起工作。因此,該設備支持連接到 Arduino Nano 的兩種不同傳感器類型:
?
- MAX30102
- MAX30100
?
我可以使用上面提到的兩個傳感器,但我決定使用 MAX30102。然后,我連接了一塊 SSD1306 OLED(128x64)屏幕顯示心率(BPM),然后將數據發送到涂鴉云。
?
最后,我添加了一個 5mm 共陽極 RGB LED 來顯示設備與涂鴉云的連接狀態。
?
在涂鴉云支持的移動應用界面上,設備可以讓用戶展示三個不同的數據點,并帶有相關圖表:
?
- Finger_In - 手指定位
- Respiratory_Rate - BPM
- Blood_Oxygen - SpO2(可選)
- Blood_Oxygen - 紅光測量(可選)
?
在面包板上完成接線并測試代碼后,我設計了受呼吸系統啟發的 PCB,作為心率顯著性的指標。因此,該設備成為監測和跟蹤心率的時尚且實用的設備:)
?
?
?
第 1 步:設計和焊接 IoT 心率監測器 PCB
?
在對我的 PCB 設計進行原型設計之前,我在面包板上使用 Arduino Nano 和 ESP8266 測試了所有連接和布線。
?
?
然后,我使用 KiCad 設計了 ??IoT 心率監測器 PCB - 靈感來自珍貴的呼吸系統 :) 我在下面附上了 PCB 的 Gerber 文件,所以如果您愿意,您可以從 PCBWay 訂購此 PCB,以創建合適且有效的使用涂鴉智能監測和跟蹤脈搏血氧儀傳感器生成的數據的設備。
?
?
?
首先,通過使用烙鐵,我連接了接頭(母頭)、MAX30102 脈搏血氧計傳感器、按鈕(6x6)、5mm 共陽極 RGB LED、220Ω 電阻和電源插孔。
?
PCB上的元件清單:
?
A1(Arduino Nano 接頭)
ESP_1(NodeMCU V3 LoLin ESP8266 的標頭)
S1(SSD1306 OLED 屏幕接頭)
M_X1 (MAX30102)
M_X2 (MAX30100)
K1(6x6 按鈕)
D1 (5mm 共陽極 RGB LED)
R1、R2、R3(220Ω電阻)
J1(電源插孔)
J2(外部電池接頭)
?
?
?
?
第二步:在涂鴉IoT平臺上創建新產品
?
涂鴉智能是一個全球物聯網平臺,為品牌、OEM、制造商和零售連鎖店提供智能家居產品。但是,涂鴉并非只為公司提供服務和 API。涂鴉已經建立了一個物聯網云平臺,為開發者提供一整套產品,包括平臺即服務(PaaS)、軟件即服務(SaaS)和其他基于云的服務。涂鴉云平臺構建了蓬勃發展的生態系統,提供超過 1100 個品類、410,000 多個產品 SKU,覆蓋 220 多個國家和地區。
?
涂鴉物聯網平臺?讓用戶從零開始開發智能產品,并提供針對不同產品類型的內置功能。此外,涂鴉 SDK 允許通過串行通信控制帶有開發板的注冊和授權產品。您可以從涂鴉開發者平臺獲取更多關于涂鴉 SDK 的信息?。
?
?
在使用涂鴉 IoT 平臺為該項目創建定制產品時,我決定將 NodeMCU V3 LoLin ESP8266 轉換為注冊和授權的涂鴉產品。然后,我使用 Arduino Nano 與授權產品(ESP8266)進行通信。借助涂鴉官方 Arduino 庫,Arduino Nano 可以通過串口通訊方式與授權產品進行通信,在連接涂鴉智能 App 后,向涂鴉云發送數據并接收來自涂鴉云的指令。
?
?
? 首先,進入?涂鴉賬號注冊頁面?,創建一個開發者賬號。
?
? 然后,進入涂鴉IoT平臺,點擊:
?
創造 ?找不到類別?
?
? 輸入所需的產品信息:
?
- 協議 ?無線上網
- 電源類型 ? 標準功耗
?
?
?
? 創建產品后,從標準功能中選擇要添加到產品的功能,如果標準功能不支持,則創建新功能(自定義)。
?
標準功能是指涂鴉為其產品類別提供的功能。由于有很多內置產品,很容易找到您需要的功能。此外,您可以?根據您的項目創建名為Custom functions的專用函數。
?
數據點(DP)是一個函數的抽象表示,每個函數都有一個ID和數據類型。
?
數據點ID(DP ID):表示數據點(功能)的代碼。涂鴉云通過數據點 ID 發送或接收數據。
?
數據類型:布爾值、值(整數)、枚舉、故障、字符和 RAW。
?
由于涂鴉提供了一些內置的血氧儀功能,我不必為我的產品創建新功能:
?
- Finger_In - 104 - 布爾
- Respiratory_Rate - 102 - 值
- Blood_Oxygen(或紅燈) - 103 - 值
- Blood_Oxygen 數據 - 101 - 原始(可選)
?
?
?
?
? 然后,進入?硬件開發?,選擇?涂鴉標準模塊 SDK?下?的TYWE3S Wi-Fi 模塊。它與 ESP-12E (ESP8266) 模塊有一個無法區分的引腳排列。
?
?
?
步驟 2.1:開發移動應用程序界面(面板)
?
? 成功創建產品后,進入設備面板。然后,單擊 Visualized DIY Panel 下的 Create Blank Panel。
?
?
? 現在,使用拖放組件設計面板(移動應用程序界面)。它類似于 MIT App Inventor。
?
?
? 設計面板后,單擊“?釋放”?按鈕并輸入所需信息。
?
?
? 最后,??在 Android 或 iOS 上下載涂鴉智能應用并注冊。
?
我將通過以下步驟向您展示如何使用涂鴉智能應用程序連接產品(ESP8266)。
?
?
第三步:注冊并授權 ESP8266 為涂鴉產品
?
為了能夠使用 NodeMCU V3 LoLin ESP8266 作為本項目的涂鴉產品,您需要使用所需的固件對其進行刷寫和授權。
?
要授權 ESP8266,您必須將產品 ID(PID)和您的涂鴉 IoT 帳戶名(電子郵件)發送到 dev@tuya.com。一段時間后,他們會向您發送一個令牌 ID。然后,按照以下步驟操作:
?
? 首先,進入?涂鴉智能 PMS 系統?,創建一個開發者賬號。
?
?
?
? 然后,進入?生產管理?工單管理 ? 激活碼驗證。要激活產品的生產證書,請輸入令牌 ID。確認 Token ID 后,ESP8266 就可以刷機和授權了。
?
?
?
? ?確認后,從?知識庫管理下載最新版本的?云模塊測試平臺?軟件下載。您可以在下載中找到副本。
?
?
? 下載云模塊后,打開并登錄。然后,進入文件?設置并輸入所需的設置,如下所示:
?
- 燒波特率?921600
- 測試波特?9600
?
?
? 點擊?輸入令牌?Token?并將 Token ID 粘貼到?Burning Authorization下。不要忘記選擇?固件下載。
?
?
? 現在,通過 USB 線將 NodeMCU V3 LoLin ESP8266 連接到計算機并選擇其端口號,例如?COM5。如果您之前沒有將它與 Arduino IDE 或其他編譯器一起使用,您可能需要安裝?它的驅動程序。
?
?
? 最后點擊?運行?刷機,授權ESP8266為涂鴉產品。
?
?
第 4 步:將 ESP8266 與兼容 Android 和 iOS 的涂鴉智能應用程序配對
?
將ESP8266刷機并授權為涂鴉產品后,即可通過涂鴉智能APP輕松連接到涂鴉云進行數據收發。
?
產品(ESP8266)必須處于網絡連接模式才能連接涂鴉智能APP。如以下步驟所述,我在設備上分配了一個按鈕以在按下時部署網絡連接模式。
?
? 首先,按下設備上的網絡連接按鈕,直到 RGB LED 閃爍綠色。
?
?
? 然后,打開?涂鴉智能應用?并登錄。
?
?
? 去?添加設備?手動添加?其他的 ?其他(無線網絡)。
?
?
?
?
? 連接到 Wi-Fi 網絡 (2.4 GHz)。
?
?
?
? 當涂鴉智能應用程序在網絡上找到具有給定設置的產品時,它會添加該產品并自動將其連接到涂鴉云。
?
?
?
?
? 連接后,打開移動應用程序界面(面板)以監控和跟蹤脈搏血氧儀傳感器生成的數據。
?
?
?
Step 5: Arduino Nano 編程,通過 ESP8266(涂鴉設備)向涂鴉云發送數據
?
下載涂鴉MCU SDK Arduino庫,與涂鴉設備(ESP8266)通信:
涂鴉 MCU SDK Arduino 庫 |?圖書館
?
下載從 MAX3010x 傳感器收集數據所需的庫:
MAX3010x 傳感器庫 |?圖書館
?
下載控制SSD1306 OLED屏幕所需的庫:
Adafruit_SSD1306 |?圖書館
Adafruit_GFX |?圖書館
?
? 包含所需的庫并定義涂鴉設備(ESP8266)及其連接設置。
?
; ; led_state = ; wifi_key_pin = ;
?
? 定義涂鴉設備(ESP8266)的數據點(DPs)。
? 輸入涂鴉設備的PID(產品ID)和MCU軟件版本。
?
; ; led_state = ; wifi_key_pin = ; dp_array[][ ] = { {DPID_Blood_Oxygen_Data,DP_TYPE_RAW}, {DPID_Respiratory_Rate,DP_TYPE_VALUE}, {DPID_Blood_Oxygen,DP_TYPE_VALUE}, {DPID_Finger_In,DP_TYPE_BOOL}, }; pid[] = { }; mcu_ver[] = { };
?
? 定義 MAX3010x (MAX30102) 傳感器及其設置:
?
MAX30105粒子傳感器; RATE_SIZE = ; 率[RATE_SIZE]; 速率點 = ; 最后一拍 = ;
?
? 定義 SSD1306 OLED 屏幕及其設置:
?
;
?
? 初始化聯網密鑰,設置涂鴉設備所需的功能。
?
pinMode(wifi_key_pin,INPUT_PULLUP); my_device.init(pid, mcu_ver); my_device.set_dp_cmd_total(dp_array, ); my_device.dp_process_func_register(dp_process); my_device.dp_update_all_func_register(dp_update_all); last_time = 毫秒();
?
? 初始化 MAX30102 傳感器并使用默認設置對其進行配置。
? 初始化 SSD1306 OLED 屏幕。
?
particleSensor.begin(Wire, I2C_SPEED_FAST); 粒子傳感器.setup(); 粒子傳感器.setPulseAmplitudeRed( ); display.begin(SSD1306_SWITCHCAPVCC, ); 顯示.顯示(); 延遲();
?
? 啟動與涂鴉設備的串口通訊(軟件串口)。
? 按下 Wi-Fi Key 引腳 (7) 時激活網絡連接模式。
? 涂鴉設備嘗試連接 Wi-Fi 網絡時,RGB LED 呈綠色閃爍。
? 如果涂鴉設備(ESP8266)與云服務器(涂鴉云)連接成功,RGB LED 變為藍色。
?
my_device.uart_service(); 按下WiFi Key Pin激活網絡連接模式 (digitalRead(wifi_key_pin) == LOW) { 延遲(); (digitalRead(wifi_key_pin) == LOW) { my_device.mcu_set_wifi_mode(SMART_CONFIG); } } 涂鴉設備嘗試連接網絡時,RGB LED 閃爍綠色: ( () != WIFI_LOW_POWER) && (my_device.mcu_get_wifi_work_state() != WIFI_CONN_CLOUD) && (my_device.mcu_get_wifi_work_state() != WIFI_SATE_UNKNOW)) { (millis()- last_time >= ){ last_time = 毫秒(); 調整: (led_state == LOW){ led_state = HIGH; (0,255,0 );}{ led_state = 低;調整();} } } 如果涂鴉設備(ESP8266)云服務器: (my_device.mcu_get_wifi_work_state() == WIFI_CONN_CLOUD){調整( 0,0,255 ) }
?
? 從 MAX30102 傳感器獲取 IR 讀數值。
? 如果脈搏血氧儀傳感器檢測到手指:
? 更新涂鴉設備的 Finger_In 數據點 - ON。
? 檢查心跳并使用速率數組中存儲的數據計算平均心跳 (BPM)。
? 在 SSD1306 屏幕上顯示 BPM 值。
? 更新涂鴉設備的 Respiratory_Rate (BPM) 和 Blood_Oxygen(SpO2 或紅光測量)數據點。
?
irValue =particleSensor.getIR(); my_device.mcu_dp_update(DPID_Finger_In, , ); 手指輸入 =; } display.clearDisplay(); display.drawBitmap( , , 心率, , , SSD1306_WHITE); 顯示.setTextSize( ); display.setCursor( , ); display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); display.println( ); 顯示.setTextSize( ); display.setCursor( , ); display.setTextColor(SSD1306_WHITE); display.println(beatAvg); 顯示.顯示(); lastBeat = 毫秒(); beatsPerMinute = / (delta / ); (beatsPerMinute < && beatsPerMinute > ){ rates[rateSpot++] = ( )beatsPerMinute; rateSpot %= RATE_SIZE; beatAvg = ; (x = ; x < RATE_SIZE ; x++) beatAvg += 比率[x]; beatAvg /= RATE_SIZE; } my_device.mcu_dp_update(DPID_Respiratory_Rate, beatAvg, ); Spo2_or_Red_Light( ); my_device.mcu_dp_update(DPID_Blood_Oxygen, _value, ); } } }
?
? 在 Spo2_or_Red_Light 函數中,返回紅光讀數值或脈搏血氧儀傳感器產生的 SpO2。
我使用紅光測量值來更新 Blood_Oxygen 數據點,因為用于評估 SpO2 的代碼與該項目的其他功能沖突。
?
{
(option){
:
_value = (particleSensor.getRed(), , , , );
;
:
_value = ;
;
}
}
?
? 如果脈搏血氧儀傳感器未檢測到手指:
? 更新涂鴉設備的 Finger_In 數據點 - OFF。
? 顯示“放上你的食指!” 在 SSD1306 屏幕上。
?
如果傳感器上沒有手指: irValue ) if finger_in == ){ my_device.mcu_dp_update(DPID_Finger_In,,); 手指輸入 =; } 節拍平均值= ; display.clearDisplay(); display.drawBitmap( , , 觸摸, , , SSD1306_WHITE); 顯示.setTextSize( ); display.setTextColor(SSD1306_WHITE); display.setCursor( , ); display.println( ); display.setCursor( , ); display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); display.println( ); display.setCursor( , ); display.setTextColor(SSD1306_WHITE); display.println( ); 顯示.顯示(); }
?
? 在 dp_update_all 函數中,使用默認值 - 20、20、false 更新所有數據點 (DP):
?
{
my_device.mcu_dp_update(DPID_Respiratory_Rate, , );
my_device.mcu_dp_update(DPID_Blood_Oxygen, , );
my_device.mcu_dp_update(DPID_Finger_In,,);
}
?
?
?
?
?
?
?
步驟 5.2:使用 SSD1306 OLED 屏幕顯示圖像
?
為了能夠使用 SSD1306 OLED 屏幕顯示圖像,您需要先將單色位圖轉換為數據數組,然后再將它們添加到您的代碼中。
?
? 首先,下載?液晶助手。
? 然后,上傳單色位圖并根據屏幕類型選擇垂直或水平。
? 轉換圖像(位圖)并保存輸出(數據數組)。
? 最后,將數據數組添加到代碼中并在屏幕上打印:
?
PROGMEM touch [] = { , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , }; ... display.clearDisplay(); display.drawBitmap( , , 觸摸, , , SSD1306_WHITE);
?
?
?
?
連接和調整
?
?
完成焊接并上傳代碼后,我通過接頭將所有剩余的組件連接到板上 - Arduino Nano、NodeMCU V3 LoLin ESP8266 和 SSD1306 OLED (128x64)。
?
?
該板支持兩種不同的脈搏血氧儀傳感器:
?
- MAX30102
- MAX30100
?
您可以焊接 MAX30100 而不是 MAX30102,如下所示:
?
?
模式和功能
?
?? ?? 如果按下網絡連接按鈕,設備將激活網絡連接模式。然后,當 NodeMCU V3 LoLin ESP8266(涂鴉設備)嘗試通過涂鴉智能應用連接到 Wi-Fi 網絡時,RGB LED 閃爍綠色。
?
?
?? ?? NodeMCU V3 LoLin ESP8266(涂鴉設備)通過涂鴉智能APP連接涂鴉云成功后,設備RGB LED燈為藍色。
?
?
?? ?? 如果脈搏血氧儀傳感器未檢測到手指,設備會顯示?“放上你的食指!” ?SSD1306 OLED屏幕上。然后,在?涂鴉云中將 Finger_In?數據點更新為 OFF。
?
?
?? ?? 否則,設備會在屏幕上顯示 BPM 并更新涂鴉云中的數據點:
?
- Finger_In:開
- Respiratory_Rate:當前 BPM
?
?? ?? 對于 Blood_Oxygen 數據點,設備支持兩個選項:
?
- 血氧:SpO2
- Blood_Oxygen:紅光測量
?
注意:我使用紅光測量值來更新?Blood_Oxygen?數據點,因為用于評估 SpO2 的代碼與該項目的其他功能沖突。?但是,如果您想監控 SpO2 而不是紅燈測量,您可以檢查?Example8_SPO2.ino文件。
?
?
?
?
?
?? ?? 由于涂鴉云存儲了一段時間的更新數據點,涂鴉智能應用程序允許用戶使用小時圖跟蹤參數(BPM、SpO2 或紅燈測量):
?
?
?
?
視頻和結論
?
?
?
?
?
代碼
- 基于物聯網的智能建筑能耗監測系統 4次下載
- 食品冷鏈物聯網監測 0次下載
- 基于物聯網的智能健康監測手套
- 基于ESP8266和Arduino的心率(BPM)監測器 2次下載
- 涂鴉智能物聯網平臺mcu方案arduino庫文件 5次下載
- 【涂鴉物聯網足跡】涂鴉云平臺全景介紹
- 【涂鴉物聯網足跡】物聯網常見通信協議
- 基于zigbee、wifi物聯網廢水污染物在線監測建設方案.pdf 0次下載
- 什么是智能工廠-物聯網系統 7次下載
- 基于物聯網和ADRC的航天器在軌姿態監測系統 13次下載
- 基于ZigBee和物聯網的智能草莓大棚控制系統 37次下載
- 分布式硬件輔助追蹤物聯網測試平臺HATBED 3次下載
- 物聯網智能硬件終端方案簡介電子版下載 0次下載
- 涂鴉智能凈水器方案 0次下載
- Maxim醫療心率/健康狀況監測器解決方案 55次下載
- 基于STM32單片機的血氧心率監測系統設計 522次閱讀
- 物聯網智能寵物管理系統 822次閱讀
- 心率/健身監測器無線化 636次閱讀
- 可穿戴耳塞設備中心率監測器的光電機械集成指南 1327次閱讀
- 可穿戴心率監測算法的驗證與性能 1368次閱讀
- cps物聯網技術的應用案例 1.3w次閱讀
- 基于物聯網的巖體錨桿監測系統怎樣應用 582次閱讀
- 基于物聯網的電梯故障監測怎樣設計實現 1521次閱讀
- 物聯網智能家居與傳感器技術如何結合 2082次閱讀
- 關于RT-H001心率模塊的解決方案 3976次閱讀
- 工業物聯網在電力企業的安全監測應用分析 959次閱讀
- 基于AMS AS7000動態心率測量智能手環原理及設計 7294次閱讀
- 可穿戴設備兩大心率傳感器技術解析 3.6w次閱讀
- 智能穿戴設備心率監測實現的幾種方法及原理 5354次閱讀
- 實物檢測,可與MIO媲美的動態心率傳感器! 3558次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多