最近在线字幕国语视频_videosex久久麻豆_韩国美女豪爽一级毛片_日本另类αv欧美另类aⅴ

24小時聯系電話:18217114652、13661815404

中文

您當前的位置:
首頁>
電子資訊>
行業資訊>
健身手環:使用 NodeM...

行業資訊

健身手環:使用 NodeMCU 和脈沖傳感器的物聯網項目


健身手環:使用 NodeMCU 和脈沖傳感器的物聯網項目

我們這一代人已經非常適應久坐不動的生活方式,現在很難回到健康的生活方式。因此,現在控制我們的活動比以往任何時候都更加重要。為了適應健康的生活方式,重要的是要注意我們每天消耗和燃燒的卡路里量。建議除了我們身體燃燒的卡路里之外,每天至少燃燒500600卡路里的熱量,以調節身體機能。健身帶幫助我們注意每天燃燒的卡路里數量,從而席卷了市場。這個概念性的健身手環是一個物聯網項目,它使用心跳來計算燃燒的卡路里并幫助用戶使用智能手機應用程序監控他/她的活動水平。

健身帶的工作原理:

該健身手環系統使用心跳傳感器以每分鐘心跳次數 (BPM) 為單位測量心臟活動。心跳是了解身體活動的關鍵參數。當進行任何體力活動時,我們的心率會升高,而當我們放松時,心跳會恢復正常。這使得心跳成為了解燃燒卡路里數量的重要參數。除了心跳率,我們還需要其他參數,例如用戶的性別、年齡和體重。這些參數將幫助我們推斷給定時間內燃燒的卡路里。

當系統開啟時,NodeMCU 將等待來自 Blynk 應用程序的啟動指令,該應用程序通過 WiFI NodeMCU 連接到本地網絡。然后用戶需要輸入個人資料詳細信息,例如性別、年齡和體重。完成后,用戶可以使用 Blynk 應用程序中的設備開啟按鈕打開健身手環?,F在 NodeMCU 將開始讀取心跳模擬數據并跟蹤時間。

這款健身手環使用PLSNSR1 脈搏傳感器來測量心跳速率。輸入的心跳被轉換為每分鐘的心跳次數和 NodeMCU 中燃燒的卡路里。結果輸出數據被傳輸回 Blynk 應用程序以顯示在用戶界面中。

在用戶界面中,BPM(每分鐘節拍數)將每秒更新一次,燃燒的卡路里量將每 10 秒更新一次,以幫助用戶監控他/她的健身計劃的強度水平。

會話完成后,用戶需要使用 Blynk 應用程序界面關閉系統?,F在,一封包含燃燒卡路里量和會話持續時間的電子郵件將發送到用戶電子郵件,以幫助記錄他們燃燒的卡路里。

物聯網健身帶特點:

BPM(每分鐘比特數)計算平均心跳率。

10 秒確定并更新云中燃燒的總卡路里。

用戶可以通過物聯網應用程序或智能手機控制何時開始和停止健身帶活動。

向用戶發送關于平均心跳 (BPM) 和燃燒卡路里的警報電子郵件。

LED 指示燈根據用戶心跳速度閃爍。

所需硬件:

節點單片機

脈搏傳感器(PLSNSR1)

引領

電阻器(220 歐姆)

跳線

該應用程序采用以下三個輸入

性別

年齡

重量

在給出有效輸入后,系統可以被打開。ON OFF 按鈕用作樂隊的 ON/OFF 開關。當用戶激活此按鈕時,上述三個參數將通過云發送到 NodeMCU,從而實現卡路里計算。當年齡和體重字段中給出無效輸入時,即為零,則健身追蹤器系統將保持關閉狀態。

NodeMCU 在處理完傳感器數據后會更新應用程序界面字段,例如 – BPM(每秒更新一次)和卡路里消耗(每 10 秒更新一次)。這將幫助用戶實時監測他們燃燒的卡路里并評估他們的健身計劃的強度。

公式:

將心跳率轉換為燃燒的卡路里所需的公式是:

男用

卡路里消耗 = ((-55.0969 + (0.6309*HR) + (0.1988*W) + (0.2017*A))/4.184 )*60*T

女用

卡路里消耗 = ((-20.4022+(0.4472*HR) – (0.1263*W) + (0.074*A))/4.184)*60*T

其中
HR –
心跳率(以 BPM 為單位)
W –
體重(以千克為單位)
A –
年齡(以年為單位)
T –
鍛煉的持續時間(以小時為單位)

原型:

將健身手環連接到物聯網云:

在代碼中添加您的智能手機 SSID 和密碼并上傳到 NodeMCU。在代碼中使用從 Blynk 應用程序生成的授權令牌。等待 NodeMCU 與您的智能手機連接。當設備配對后,NodeMCU 將等待來自用戶的 Device ON 命令。

BPM 的計算和更新,卡路里燃燒將一直執行,直到 NodeMCU 收到 Device OFF 命令。如果您打算更換要用于與手環配對的智能手機,則必須在替換目標設備的 SSID 和密碼的代碼中進行更改。

算法:

等待與 Blynk 應用程序的連接。

讀取來自 Blynk 用戶界面的輸入——來自用戶的年齡、體重和性別。

等待 Device ON 按鈕被激活,如果它被激活,請轉到步驟 6。

如果激活了 ON 按鈕,則將當前系統時間保存在一個變量中。

讀取傳感器模擬輸入數據(心跳)并將它們轉換為每分鐘節拍數 (BPM)。將 BPM 上傳到 Blynk UI。

計算每 10 秒燃燒的卡路里。將燃燒的卡路里上傳到 Blynk UI。

重復該過程,直到取消激活 (OFF) ON 按鈕。

Blynk UI 中顯示最終燃燒的卡路里和 BPM。

代碼 :

將必要的頭文件包含到您的 Arduino IDE 目錄中:ESP8266WiFi.h、BlynkSimpleEsp8266.h。該健身手環項目由 Nihar Gupta 構建和測試。您可以在此處找到Fitness Band – Github 存儲庫。

// 包含頭文件

#define BLYNK_PRINT 串行

#include<ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

// Blynk 生成的身份驗證令牌

char auth[] = "gTJf3EcGRGacgcW24I-OWcmj70OlwjZ2";

// 您的 WiFi 憑據。

// 對于開放網絡,將密碼設置為“”

char ssid[] = "你的 SSID"; //替換為你的SSID

char pass[] = "您的密碼"; //替換為你的密碼

// 外部 LED

int led_pin = D6;

// 校準所需的變量

const int postInterval = 10 * 1000;

內率[10];                   

unsigned long sampleCounter = 0;

無符號長 lastBeatTime = 0; 

unsigned long lastTime = 0, N;

INT BPM = 0;

INT IBI = 0;

整數 P = 512;

INT = 512;

整數閾值 = 512; 

國際放大器 = 100;                   

整數信號;

布爾脈沖 = 假;

布爾值 firstBeat = true;         

布爾 secondBeat = true;

布爾 QS = 假;   

//需要計算的變量

布爾 time_noted=false;

無符號長起始時間=0;//設備的啟動時間,以毫秒為單位

布爾郵件發送=假;   

unsigned long average_bpm=0; // 存儲平均 bpm

unsigned long bpm_counted=0; // 存儲計算 bpm 的次數

布爾男性=真;

整數權重=0;

整數年齡=0

int start_button=0;

int do_mail_send =0;

int heart_rate=0;

浮動卡路里燃燒;

浮動時間_持續時間=0

浮動 total_calorie_burn=0;

// 設置塊

無效設置(){

  // 把你的設置代碼放在這里,運行一次:

   Serial.begin(115200);

   //引腳模式

   引腳模式(A0,輸入);

pinModeled_pin,輸出);

   //BLynk設置

   Blynk.begin(auth, ssid, pass);

}

無效循環(){

  // 把你的主要代碼放在這里,重復運行:

  Blynk.run(); // Blynk 將持續運行

  // 這里 if 塊將在 blynk 中的啟動按鈕打開時執行

  if(start_button==1 && time_noted==true){  

    if(check_if_data_is_correct()==false) 繼續;// 在打開設備之前檢查用戶是否輸入了年齡、性別和體重   

    //Serial.println("BPM 正在計算中");

    計算 bpm();       

    if(millis()-starting_time>=10000){

        計算卡路里_10秒();// 計算每 10 分鐘燃燒的卡路里

    }

  }

// else if 塊將在開始按鈕關閉時執行

  否則如果(郵件發送==真){

    計算卡路里_10秒();

    發電子郵件();

    郵件發送=假;

    reset_bpm(); // 當設備關閉時重置變量

  }

}

// 在打開設備之前檢查用戶是否輸入了年齡、性別和體重

bool check_if_data_is_correct(){

  如果(體重<=0 || 年齡<=0{

    Blynk.virtualWrite(V9, );

    開始按鈕=0;

    時間注意=假;

    reset_bpm();

   返回假;

  }

  返回真;

}

// 該函數每10秒計算一次消耗的卡路里,并更新為blynk

void calculate_calories_10sec(){

  開始時間=毫秒();

  heart_rate=average_bpm/bpm_counted;

  如果(男==真){

    Serial.println("");

    卡路里燃燒=(浮點數)(((-55.0969+0.6309*心率)+0.1988*體重)+0.2017*年齡))/4.184*60*0.00277778);

  }

  別的{

    Serial.println("");

    卡路里燃燒=(浮動)(((-20.4022+0.4472*心率)-0.1263*體重)+0.074*年齡))/4.184*60*0.00277778);

  }

  total_calorie_burn+=calorie_burn;

  Serial.println(重量);

  Serial.println(年齡);

  Serial.println(average_bpm);

  Serial.println(bpm_counted);

  Serial.println(calorie_burn);

  Serial.println(time_duration);

Serial.println(starting_time);

  Blynk.virtualWrite(V7,total_calorie_burn);

}

// 此函數用于在設備下線時向用戶發送有關其狀態的電子郵件

void send_email()

{

  如果(does_mail_send == 0{

    String msg="Hi Nihar Gupta。你的平均心跳是:"+(String)heart_rate+"。你的"+(String)calorie_burn+"卡路里是在"+(String)time_duration+"Hrs"的時間內燃燒的;

    Blynk.email("youremail@yourdomain.com", "心跳通知", msg); //替換為您的電子郵件

    do_mail_send = 1;

  }

}

// 當設備下車時重置變量

void reset_bpm(){

  average_bpm=0;

  bpm_counted=0;

  total_calorie_burn=0;

  Blynk.virtualWrite(V7,0);

  Blynk.virtualWrite(V1,0);

}

// 此函數將負責初始化 BPM

無效計算_bpm(){

  如果(QS ==真){

   Serial.println("BPM: "+ String(BPM));

   Blynk.virtualWrite(V1,BPM);

   average_bpm+=BPM

   bpm_counted++;

   QS = 假;

   } else if (millis() >= (lastTime + 2)) {

     讀脈沖();

     lastTime = 毫秒();

   }

       

}

// 此函數將讀取模擬數據并將數據校準為 BPM

無效讀脈沖(){

  信號 = 模擬讀?。?span>A0);      

  模擬寫入(led_pin,信號);   

樣本計數器 += 2;                          

  int N = sampleCounter - lastBeatTime;  

  檢測設置高低();

  如果(N > 250

    if ( ((信號 > 閾值) && (Pulse == false) && (N > (IBI / 5) * 3) )

      脈沖檢測();

  }

  如果(信號<閾值&&脈沖==真)

    脈沖=假;

    安培 = P - T;

    閾值 = amp / 2 + T; 

    P = 閾值;

    T = 閾值;

  }

  如果(N > 2500{

    閾值 = 512;

    P = 512

    T = 512;

    lastBeatTime = 采樣計數器;

    firstBeat = 真;           

    secondBeat = 真;   

}

}

無效檢測集高低(){

  如果(信號<閾值&& N>IBI / 5* 3{

    如果(信號 < T{                      

      T = 信號;                        

    }

  }

  如果(信號 > 閾值 && 信號 > P{   

    P = 信號;                          

  }                                      

}

// 此校準是在檢測到脈沖時

無效脈沖檢測(){

  脈沖 = 真;                          

  IBI = sampleCounter - lastBeatTime;    

  lastBeatTime = 采樣計數器;          

  如果(firstBeat{       

firstBeat = 假;                

    返回;                           

  }

  如果(第二次節拍){                   

    secondBeat = 假;               

    for (int i = 0; i <= 9; i++) {  

      [i] = IBI;

    }

  }

  單詞 runningTotal = 0;                  

  for (int i = 0; i <= 8; i++) {         

    比率[i] = 比率[i + 1];           

    runningTotal += rate[i];         

  }

  [9] = IBI;                     

  runningTotal += rate[9];           

  運行總計 /= 10;                

  BPM = 60000 / runningTotal;

QS = 真;

}                          

//要知道blynk中的開始按鈕是開/

BLYNK_WRITE(V9)

{

  start_button = param.asInt();

  if(start_button==1 && time_noted==false){

    開始時間=毫秒();

    郵件發送=假;

    do_mail_send=0;

    time_noted = true;

  }

  否則 if(start_button==0 && time_noted==true){

    郵件發送 = 真;

    時間注意=假;

  }

}

// 改變性別時更新性別

BLYNK_WRITE(V2){

開關(參數.asInt()){

    情況 1:{ =;

             休息;

           }

    情況2{男性=假;

            休息;     

           }

  }

}

// Blynk 中更改權重時更新權重

BLYNK_WRITE(V3){

  重量 = param.asInt();

}

// Blynk 中更改年齡時更新年齡

BLYNK_WRITE(V4){

  年齡=param.asInt();

}

請輸入搜索關鍵字

確定
最近在线字幕国语视频_videosex久久麻豆_韩国美女豪爽一级毛片_日本另类αv欧美另类aⅴ
<strike id="0k9r3"><p id="0k9r3"></p></strike>
  • <form id="0k9r3"></form>
    <nav id="0k9r3"></nav>
    <em id="0k9r3"><p id="0k9r3"></p></em>
  • <tr id="0k9r3"><source id="0k9r3"></source></tr>
    <form id="0k9r3"></form>
    <sub id="0k9r3"></sub>

      <sub id="0k9r3"><address id="0k9r3"></address></sub>
      1. <form id="0k9r3"></form>
        av成人激情| 亚洲欧洲一区| 韩曰欧美视频免费观看| 欧美日韩一区二区在线观看视频| 亚洲黄一区二区| 欧美日韩国产首页在线观看| 国产欧美日韩综合| 亚洲精品专区| 欧美午夜视频| 欧美日韩精品高清| 激情国产一区二区| 性xx色xx综合久久久xx| 亚洲激情网站免费观看| 欧美有码视频| 国产精品v亚洲精品v日韩精品| 在线播放亚洲一区| 国产一区二区三区四区五区美女| 久久欧美肥婆一二区| 老司机一区二区三区| 在线观看欧美激情| 国产亚洲毛片在线| 亚洲国产精品一区二区三区| 国产亚洲一二三区| 亚洲一区二区av电影| 老司机凹凸av亚洲导航| 欧美视频在线观看免费网址| 久久久精品免费视频| 美国三级日本三级久久99| 午夜精品999| 久久免费高清| 亚洲六月丁香色婷婷综合久久| 亚洲少妇在线| 欧美一区久久| 久久精品国产99国产精品澳门| 亚洲国产你懂的| 欧美午夜美女看片| 亚洲视频电影在线| 精品1区2区| 免费影视亚洲| 亚洲人成人99网站| 一区二区三区中文在线观看| 亚洲国产欧美一区二区三区同亚洲| 狠狠干成人综合网| 9l国产精品久久久久麻豆| 一区二区三欧美| 亚洲免费视频网站| 欧美日韩国产不卡| 国产精品影院在线观看| 国产精品私拍pans大尺度在线| 91久久久国产精品| 国产精品久久九九| 免费在线观看一区二区| 玖玖玖免费嫩草在线影院一区| 激情久久一区| 欧美一区中文字幕| 亚洲第一精品久久忘忧草社区| 99pao成人国产永久免费视频| 欧美一区二区国产| 国产精品久久久久影院亚瑟| 久久久精品午夜少妇| 国产美女精品一区二区三区| 久久青青草综合| 美女视频网站黄色亚洲| 99精品欧美一区二区三区| 欧美色综合网| 欧美日韩亚洲一区二区三区在线| 麻豆精品一区二区综合av| 国产精品久久精品日日| 国内精品久久国产| 夜夜爽99久久国产综合精品女不卡| 欧美日韩国产综合网| a4yy欧美一区二区三区| 久久婷婷国产麻豆91天堂| 欧美肉体xxxx裸体137大胆| 久久疯狂做爰流白浆xx| 久久精品一区| 免费成年人欧美视频| 日韩亚洲一区二区| 亚洲国产日韩精品| 欧美在线免费看| 六十路精品视频| 国产精品视频一二| 国产日韩欧美精品在线| 久久亚洲私人国产精品va媚药| 99精品视频免费观看视频| 美日韩精品免费观看视频| 亚洲视屏一区| 久久久另类综合| 欧美aⅴ一区二区三区视频| 国产美女精品一区二区三区| 国产精品magnet| 久久久久久黄| 久久亚洲一区二区三区四区| 国产一区 二区 三区一级| 国产日韩欧美电影在线观看| 亚洲国产成人久久综合一区| 欧美性猛交一区二区三区精品| 欧美伊人久久久久久午夜久久久久| 欧美午夜精品电影| 亚洲在线电影| 一本色道**综合亚洲精品蜜桃冫| 欧美一区日本一区韩国一区| 国产精品久久久久久久一区探花| 欧美成人资源网| 在线观看亚洲一区| 欧美成人综合| 亚洲一区二区三区高清不卡| 亚洲免费小视频| 亚洲第一在线综合网站| 亚洲美女av在线播放| 欧美日韩成人在线播放| 亚洲免费观看在线观看| 亚洲片在线资源| 亚洲欧美日韩在线| 一区二区黄色| 欧美xxx在线观看| 欧美大片国产精品| 国产精品午夜春色av| 欧美日韩国产一区二区三区地区| 国产一区二区久久| 国产精品免费久久久久久| 亚洲深夜影院| 国产一区视频在线看| 久久精品国产第一区二区三区| 欧美aaa级| 在线视频日本亚洲性| 欧美深夜影院| 亚洲小视频在线观看| 欧美日韩视频第一区| 国产精品成人一区二区| 精品盗摄一区二区三区| 欧美日韩视频不卡| 久久久久久91香蕉国产| 一本色道久久加勒比88综合| 亚洲特色特黄| 亚洲一区在线免费| 欧美三日本三级三级在线播放| 一本久久综合亚洲鲁鲁| 亚洲黄色精品| 美女脱光内衣内裤视频久久影院| 欧美性视频网站| 亚洲人成在线观看一区二区| 亚洲三级免费电影| 999在线观看精品免费不卡网站| 欧美人与禽猛交乱配| 一区二区三区欧美视频| 欧美精品黄色| 亚洲视频在线一区观看| 欧美91福利在线观看| 欧美三级乱人伦电影| 欧美电影在线观看完整版| 久久精品亚洲一区二区三区浴池| 亚洲一区图片| 欧美国产极速在线| 久久九九电影| 美女视频黄 久久| 亚洲欧美激情在线视频| 亚洲黄一区二区| 蜜臀av一级做a爰片久久| 亚洲视频在线播放| 国产日韩精品视频一区二区三区| 亚洲精选视频免费看| 欧美午夜精品久久久久久浪潮| 欧美交受高潮1|