Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: AmbientLib SimpleIoTBoardLib mbed
main.cpp@0:16d0c9ce5afb, 2016-06-04 (annotated)
- Committer:
- AmbientData
- Date:
- Sat Jun 04 02:35:48 2016 +0000
- Revision:
- 0:16d0c9ce5afb
- Child:
- 2:dd2248c73ad5
Initial submission
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 | |
| AmbientData | 0:16d0c9ce5afb | 12 | ESP8266Interface wifi(dp16,dp15,dp4,"ssid","password",115200); // TX,RX,Reset,SSID,Password,Baud |
| AmbientData | 0:16d0c9ce5afb | 13 | |
| AmbientData | 0:16d0c9ce5afb | 14 | SoftSerialSendOnry pc(dp10); |
| AmbientData | 0:16d0c9ce5afb | 15 | |
| AmbientData | 0:16d0c9ce5afb | 16 | unsigned int channelId = 100; |
| AmbientData | 0:16d0c9ce5afb | 17 | const char* writeKey = "ライトキー"; |
| AmbientData | 0:16d0c9ce5afb | 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 | } |