test
Dependencies: AmbientLib SimpleIoTBoardLib mbed
Fork of AmbientHeartRateMonitor by
main.cpp@5:018a96030e83, 2018-04-19 (annotated)
- Committer:
- aramon
- Date:
- Thu Apr 19 05:50:47 2018 +0000
- Revision:
- 5:018a96030e83
- Parent:
- 2:dd2248c73ad5
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AmbientData | 0:16d0c9ce5afb | 1 | /* |
AmbientData | 0:16d0c9ce5afb | 2 | * Every 5 seconds, send the BPM value to Ambient. |
AmbientData | 0:16d0c9ce5afb | 3 | * Turn on and off the LED. |
AmbientData | 0:16d0c9ce5afb | 4 | */ |
AmbientData | 0:16d0c9ce5afb | 5 | #include "mbed.h" |
AmbientData | 0:16d0c9ce5afb | 6 | #include "math.h" |
AmbientData | 0:16d0c9ce5afb | 7 | #include "ESP8266Interface.h" |
AmbientData | 0:16d0c9ce5afb | 8 | #include "TCPSocketConnection.h" |
AmbientData | 0:16d0c9ce5afb | 9 | #include "SoftSerialSendOnry.h" |
AmbientData | 0:16d0c9ce5afb | 10 | #include "Ambient.h" |
AmbientData | 0:16d0c9ce5afb | 11 | |
aramon | 5:018a96030e83 | 12 | ESP8266Interface wifi(dp16,dp15,dp4,".KSUISIC-12621-2","0926735432",115200); // TX,RX,Reset,SSID,Password,Baud |
AmbientData | 0:16d0c9ce5afb | 13 | |
AmbientData | 0:16d0c9ce5afb | 14 | SoftSerialSendOnry pc(dp10); |
AmbientData | 0:16d0c9ce5afb | 15 | |
aramon | 5:018a96030e83 | 16 | unsigned int channelId = 3920; |
aramon | 5:018a96030e83 | 17 | const char* writeKey = "7b76d2af7cd9d0da"; |
AmbientData | 2:dd2248c73ad5 | 18 | Ambient ambient; |
AmbientData | 0:16d0c9ce5afb | 19 | |
AmbientData | 0:16d0c9ce5afb | 20 | extern void interruptSetup(); |
AmbientData | 0:16d0c9ce5afb | 21 | |
AmbientData | 0:16d0c9ce5afb | 22 | // Volatile Variables, used in the interrupt service routine! |
AmbientData | 0:16d0c9ce5afb | 23 | extern volatile bool QS; // becomes true when Arduoino finds a beat. |
AmbientData | 0:16d0c9ce5afb | 24 | extern volatile int BPM; // int that holds raw Analog in 0. updated every 2mS |
AmbientData | 0:16d0c9ce5afb | 25 | |
AmbientData | 0:16d0c9ce5afb | 26 | int main() { |
AmbientData | 0:16d0c9ce5afb | 27 | TCPSocketConnection socket; |
AmbientData | 0:16d0c9ce5afb | 28 | |
AmbientData | 0:16d0c9ce5afb | 29 | pc.baud(9600); |
AmbientData | 0:16d0c9ce5afb | 30 | |
AmbientData | 0:16d0c9ce5afb | 31 | wifi.init(); //Reset |
AmbientData | 0:16d0c9ce5afb | 32 | wifi.connect(); //Use DHCP |
AmbientData | 0:16d0c9ce5afb | 33 | pc.printf("IP Address is %s\r\n", wifi.getIPAddress()); |
AmbientData | 0:16d0c9ce5afb | 34 | ambient.init(channelId, writeKey, &socket); |
AmbientData | 0:16d0c9ce5afb | 35 | |
AmbientData | 0:16d0c9ce5afb | 36 | interruptSetup(); |
AmbientData | 0:16d0c9ce5afb | 37 | |
AmbientData | 0:16d0c9ce5afb | 38 | while (true) { |
AmbientData | 0:16d0c9ce5afb | 39 | char bpmbuf[12]; |
AmbientData | 0:16d0c9ce5afb | 40 | |
AmbientData | 0:16d0c9ce5afb | 41 | if (QS == true){ // A Heartbeat Was Found |
AmbientData | 0:16d0c9ce5afb | 42 | // BPM and IBI have been Determined |
AmbientData | 0:16d0c9ce5afb | 43 | // Quantified Self "QS" true when mbed finds a heartbeat |
AmbientData | 0:16d0c9ce5afb | 44 | sprintf(bpmbuf, "%3d", BPM); |
AmbientData | 0:16d0c9ce5afb | 45 | pc.printf("BPM:%s\r\n", bpmbuf); |
AmbientData | 0:16d0c9ce5afb | 46 | ambient.set(1, bpmbuf); |
AmbientData | 0:16d0c9ce5afb | 47 | ambient.send(); |
AmbientData | 0:16d0c9ce5afb | 48 | |
AmbientData | 0:16d0c9ce5afb | 49 | QS = false; // reset the Quantified Self flag for next time |
AmbientData | 0:16d0c9ce5afb | 50 | } |
AmbientData | 0:16d0c9ce5afb | 51 | wait(5); // take a break |
AmbientData | 0:16d0c9ce5afb | 52 | } |
AmbientData | 0:16d0c9ce5afb | 53 | } |