![](/media/cache/group/TVZ_logotip.png.50x50_q85.jpg)
Uploading sensor data (voltage divider, MAX4172, INA219) over Ethernet to Thing Speak service. Uses old mbed revision that is compatible with NetServices library. I2C communication is made with I2CR library.
Dependencies: C12832 I2CR INA219 NetServices mbed
Fork of NetServices_HelloWorld by
ThingSpeak.cpp@6:ebbde59c5a1d, 2015-11-20 (annotated)
- Committer:
- tsoic
- Date:
- Fri Nov 20 08:28:11 2015 +0000
- Revision:
- 6:ebbde59c5a1d
- Child:
- 7:1da0a084cd69
Uploading sensor data ( Voltage divider, MAX4172, INA219) over ethernet to Thing Speak service.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tsoic | 6:ebbde59c5a1d | 1 | #include "mbed.h" |
tsoic | 6:ebbde59c5a1d | 2 | #include "EthernetNetIf.h" |
tsoic | 6:ebbde59c5a1d | 3 | #include "HTTPClient.h" |
tsoic | 6:ebbde59c5a1d | 4 | #include "ThingSpeak.h" |
tsoic | 6:ebbde59c5a1d | 5 | |
tsoic | 6:ebbde59c5a1d | 6 | Serial pc(USBTX, USBRX); |
tsoic | 6:ebbde59c5a1d | 7 | |
tsoic | 6:ebbde59c5a1d | 8 | ThingSpeak::ThingSpeak(char* Key, const int Qt) : thingSpeakKey(Key) { |
tsoic | 6:ebbde59c5a1d | 9 | thingSpeakUrl = "https://api.thingspeak.com/update"; |
tsoic | 6:ebbde59c5a1d | 10 | urlBuffer[0] = 0; |
tsoic | 6:ebbde59c5a1d | 11 | fieldBuffer[0] = 0; |
tsoic | 6:ebbde59c5a1d | 12 | } |
tsoic | 6:ebbde59c5a1d | 13 | |
tsoic | 6:ebbde59c5a1d | 14 | void ThingSpeak::connect() { |
tsoic | 6:ebbde59c5a1d | 15 | pc.printf("Setting up Ethernet...\r\n"); |
tsoic | 6:ebbde59c5a1d | 16 | EthernetErr ethErr = eth.setup(); |
tsoic | 6:ebbde59c5a1d | 17 | if(ethErr){ |
tsoic | 6:ebbde59c5a1d | 18 | pc.printf("Error %d in ethernet setup.\r\n", ethErr); |
tsoic | 6:ebbde59c5a1d | 19 | //* connect(); |
tsoic | 6:ebbde59c5a1d | 20 | } |
tsoic | 6:ebbde59c5a1d | 21 | pc.printf("Ethernet setup OK\r\n"); |
tsoic | 6:ebbde59c5a1d | 22 | } |
tsoic | 6:ebbde59c5a1d | 23 | |
tsoic | 6:ebbde59c5a1d | 24 | void ThingSpeak::getIP() { |
tsoic | 6:ebbde59c5a1d | 25 | |
tsoic | 6:ebbde59c5a1d | 26 | } |
tsoic | 6:ebbde59c5a1d | 27 | |
tsoic | 6:ebbde59c5a1d | 28 | void ThingSpeak::setField(float field, int i) { |
tsoic | 6:ebbde59c5a1d | 29 | char fieldi; |
tsoic | 6:ebbde59c5a1d | 30 | char fieldShortBuff[8]; |
tsoic | 6:ebbde59c5a1d | 31 | sprintf(fieldShortBuff, "%f", field); |
tsoic | 6:ebbde59c5a1d | 32 | sprintf(&fieldi, "%i", i); |
tsoic | 6:ebbde59c5a1d | 33 | strncat(fieldBuffer, "&field", 6 ); |
tsoic | 6:ebbde59c5a1d | 34 | strncat(fieldBuffer, &fieldi , 1); |
tsoic | 6:ebbde59c5a1d | 35 | strncat(fieldBuffer, "=", 1); |
tsoic | 6:ebbde59c5a1d | 36 | strncat(fieldBuffer, fieldShortBuff , 4); |
tsoic | 6:ebbde59c5a1d | 37 | } |
tsoic | 6:ebbde59c5a1d | 38 | |
tsoic | 6:ebbde59c5a1d | 39 | void ThingSpeak::putUp() { |
tsoic | 6:ebbde59c5a1d | 40 | sprintf(urlBuffer, "%s?key=%s%s", thingSpeakUrl, thingSpeakKey, fieldBuffer); |
tsoic | 6:ebbde59c5a1d | 41 | pc.printf("URL Buffer request: %s ", urlBuffer); |
tsoic | 6:ebbde59c5a1d | 42 | res = http.get(urlBuffer, &resp); |
tsoic | 6:ebbde59c5a1d | 43 | if (res == HTTP_OK) |
tsoic | 6:ebbde59c5a1d | 44 | pc.printf(" Result :\"%s\"\r\n", resp.gets()); |
tsoic | 6:ebbde59c5a1d | 45 | else |
tsoic | 6:ebbde59c5a1d | 46 | pc.printf(" Error %d\r\n", res); |
tsoic | 6:ebbde59c5a1d | 47 | fieldBuffer[0] = 0; |
tsoic | 6:ebbde59c5a1d | 48 | } |