Particle Photon 打造物联网可穿戴设备,展示心跳和温度数据

Particle Photon 是一个适用于可穿戴项目的微控制器,因为它的体积小,支持OTA更新。对于那些不知道什么是 Particle Photon 的人来说,它是一个带有板载WiFi(Cypress WiFi 芯片)和 STM32 ARM Cortex M3 微控制器的微型微控制器,它也是酷炫的 IoT 相关项目的理想选择。

在这个玩法里,我将向您展示如何使用 Photon 制作一个可穿戴设备。该项目将向您展示如何测量人的脉搏率和温度,并在网页上显示它的实时值。该项目体积小巧便携,您可以将其放在口袋里或将其带到手上。

步骤1:工具和组件

对于这个项目你将需要:

  • Particle Photon
  • 面包板
  • 心跳传感器
  • 电阻
  • 温度传感器
  • 线
  • MicroUSB 线

注意:Particle Photon 带有面包板和microUSB电缆。

步骤2:连接到 Particle Cloud

如果你刚刚订购了一个 Particle Photon,第一步就是将其连接到互联网和 Particle Cloud。你所需要做的就是,下载 Android 或您的苹果设备的 Particle 应用。并在应用程序中创建用户帐户并登录。

登录后,您应该会看到添加新设备的选项,按照屏幕上的说明将 Particle 添加到您的帐户,并将其连接到您的WiFi网络。 一旦连接到互联网,您应该看到板上的LED闪烁青色,并且在连接到 Particle Cloud 后,您应该看到它呼吸青色。

步骤3:电路

Particle Photon 电路

电路非常简单,只需按照电路图将其组装在面包板上。将脉冲传感器的信号针连接到 Particle Photon 模拟引脚2,温度传感器连接到 Particle Photon 模拟引脚3。

步骤4:代码

这个项目的代码可以在下面找到,以便随时更改代码,并分享您在修改的内容。

代码创建两个变量:

  • getp 存储脉率的值
  • gett 存储温度的值

您可以使用 Particle Cloud API 读取这些变量的值(请确保根据您的值替换设备 ID 和访问令牌):

https://api.particle.io/v1/devices/0123456789abcdef/getp?access_token=123412341234

给出脉率:

【https://api.particle.io/v1/devices/0123456789abcdef/gett?access_token=123412341234】(https://api.particle.io/v1/devices/0123456789abcdef/gett?access_token=123412341234)

代码:

extern void interruptSetup(void);

extern int pulsePin;
extern int blinkPin;
extern volatile int BPM;;
extern volatile int Signal;;
extern volatile int IBI;
extern volatile boolean Pulse;
extern volatile boolean QS;

// Regards Serial OutPut  -- Set This Up to your needs
static boolean serialVisual = false;   // Set to 'false' by Default.  Re-set to 'true' to see Arduino Serial Monitor ASCII Visual Pulse

extern int fadePin;
extern int fadeRate;

int temp = 3;

int pos = 0;

void setup(){
    pinMode(blinkPin,OUTPUT);         // pin that will blink to your heartbeat!
    pinMode(fadePin,OUTPUT);          // pin that will fade to your heartbeat!
    Serial.begin(115200);             // we agree to talk fast!
    interruptSetup();                 // sets up to read Pulse Sensor signal every 2mS 
    Spark.variable("getp", &pos, INT);
    Spark.variable("gett", &tem, INT);
}

//  Where the Magic Happens
void loop(){
    tem = analogRead(temp); 
    if (QS == true){     //  A Heartbeat Was Found
        // BPM and IBI have been Determined
        // Quantified Self "QS" true when arduino finds a heartbeat
        digitalWrite(blinkPin,HIGH);     // Blink LED, we got a beat. 
        fadeRate = 255;         // Makes the LED Fade Effect Happen
        // Set 'fadeRate' Variable to 255 to fade LED with pulse
        Serial.print(BPM);   // A Beat Happened, Output that to serial.     
        QS = false;                      // reset the Quantified Self flag for next time    
        pos = BPM;
    } 
    else {

        digitalWrite(blinkPin,LOW);            // There is not beat, turn off pin 13 LED
    }

    ledFadeToBeat();                      // Makes the LED Fade Effect Happen 
    delay(20);                             //  take a break
}

void ledFadeToBeat(){
    fadeRate -= 15;                         //  set LED fade value
    fadeRate = constrain(fadeRate,0,255);   //  keep LED fade value from going into negative numbers!
    analogWrite(fadePin,fadeRate);          //  fade LED
}

步骤5:进一步

在你完成项目之后,现在是时候让自己更好地从面包板移植到PCB上了。PCB 很容易设计,互联网上有很多教程如何做。

您还可以写一个漂亮的网站来显示温度和脉率的值。

3 人评价

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.