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 Segundo Equipo

Committer:
tsoic
Date:
Sun Nov 29 13:41:05 2015 +0000
Revision:
7:1da0a084cd69
Parent:
6:ebbde59c5a1d

        

Who changed what in which revision?

UserRevisionLine numberNew 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 7:1da0a084cd69 8 ThingSpeak::ThingSpeak(char* Key) : 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 7:1da0a084cd69 19 connect();
tsoic 6:ebbde59c5a1d 20 }
tsoic 6:ebbde59c5a1d 21 pc.printf("Ethernet setup OK\r\n");
tsoic 6:ebbde59c5a1d 22 }
tsoic 7:1da0a084cd69 23 /*
tsoic 6:ebbde59c5a1d 24 void ThingSpeak::getIP() {
tsoic 6:ebbde59c5a1d 25
tsoic 6:ebbde59c5a1d 26 }
tsoic 7:1da0a084cd69 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 }