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: M2XStreamClient cc3000_hostdriver_mbedsocket jsonlite mbed-rtos mbed
Fork of m2x-demo-all by
main.cpp
- Committer:
- jb8414
- Date:
- 2014-02-21
- Revision:
- 0:38a7a8cae773
- Child:
- 1:e5cbc3ffb8ec
File content as of revision 0:38a7a8cae773:
#include <jsonlite.h>
#include "M2XStreamClient.h"
#include "mbed.h"
#include "EthernetInterface.h"
#include "LM75B.h" //I2C Temperature Sensor
char feedId[] = "<feed id>"; // Feed you want to post to
char m2xKey[] = "<m2x api key>"; // Your M2X access key
char streamName[] = "<stream name>"; // Stream you want to post to
char name[] = "<location name>"; // Name of current location of datasource
double latitude = 33.007872;
double longitude = -96.751614; // You can also read those values from a GPS
double elevation = 697.00;
Client client;
M2XStreamClient m2xClient(&client, m2xKey);
EthernetInterface eth;
LM75B tmp(p28,p27); // I2C Temperature Sensor
void on_data_point_found(const char* at, const char* value, int index, void* context) {
printf("Found a data point, index: %d\r\n", index);
printf("At: %s Value: %s\r\n", at, value);
}
void on_location_found(const char* name,
double latitude,
double longitude,
double elevation,
const char* timestamp,
int index,
void* context) {
printf("Found a location, index: %d\r\n", index);
printf("Name: %s Latitude: %lf Longitude: %lf\r\n", name, latitude, longitude);
printf("Elevation: %lf Timestamp: %s\r\n", elevation, timestamp);
}
int main() {
eth.init();
eth.connect();
printf("IP Address: %s\r\n", eth.getIPAddress());
char amb_temp[6];
while (true) {
// read temp
sprintf(amb_temp, "%0.2f", tmp.read());
// post temperature
int response = m2xClient.post(feedId, streamName, amb_temp);
printf("Post response code: %d\r\n", response);
if (response == -1) while (true) ;
// read temperature
response = m2xClient.fetchValues(feedId, streamName, on_data_point_found, NULL);
printf("Fetch response code: %d\r\n", response);
if (response == -1) while (true) ;
// update location
response = m2xClient.updateLocation(feedId, name, latitude, longitude, elevation);
printf("updateLocation response code: %d\r\n", response);
if (response == -1) while (true) ;
// read location
response = m2xClient.readLocation(feedId, on_location_found, NULL);
printf("readLocation response code: %d\r\n", response);
if (response == -1) while (true) ;
// wait 60 secs and then loop
delay(60000);
}
}
