IoT用クラウドサービス「Ambient」と心拍センサーを使った心拍モニターです。心拍センサー「Pulse Sensor Amped」の値をmbed「Simple IoT Board」で読み、「Ambient」に送信してモニターします。 https://ambidata.io

Dependencies:   AmbientLib SimpleIoTBoardLib mbed

main.cpp

Committer:
AmbientData
Date:
2016-06-13
Revision:
4:ec1aa2beefce
Parent:
2:dd2248c73ad5

File content as of revision 4:ec1aa2beefce:

/*
 * Every 5 seconds, send the BPM value to Ambient.
 * Turn on and off the LED.
 */
#include "mbed.h"
#include "math.h"
#include "ESP8266Interface.h"
#include "TCPSocketConnection.h"
#include "SoftSerialSendOnry.h"
#include "Ambient.h"

ESP8266Interface wifi(dp16,dp15,dp4,"ssid","password",115200); // TX,RX,Reset,SSID,Password,Baud

SoftSerialSendOnry pc(dp10);

unsigned int channelId = 100;
const char* writeKey = "ライトキー";
Ambient ambient;

extern void interruptSetup();

// Volatile Variables, used in the interrupt service routine!
extern volatile bool QS;                        // becomes true when Arduoino finds a beat.
extern volatile int BPM;                           // int that holds raw Analog in 0. updated every 2mS

int main() {
    TCPSocketConnection socket;

    pc.baud(9600);

    wifi.init(); //Reset
    wifi.connect(); //Use DHCP
    pc.printf("IP Address is %s\r\n", wifi.getIPAddress());
    ambient.init(channelId, writeKey, &socket);
    
    interruptSetup();

    while (true) {
        char bpmbuf[12];

        if (QS == true){                    // A Heartbeat Was Found
                                            // BPM and IBI have been Determined
                                            // Quantified Self "QS" true when mbed finds a heartbeat
            sprintf(bpmbuf, "%3d", BPM);
            pc.printf("BPM:%s\r\n", bpmbuf);
            ambient.set(1, bpmbuf);
            ambient.send();

            QS = false;                     // reset the Quantified Self flag for next time    
        }
        wait(5);                           //  take a break
    }
}