How to send data from mbed to thingspeak

Dependencies:   HTTPClient WiflyInterface mbed

Committer:
maman95
Date:
Mon Feb 12 02:32:21 2018 +0000
Revision:
0:e7668b44b4eb
How to send data from mbed to thingspeak;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maman95 0:e7668b44b4eb 1 #include "mbed.h"
maman95 0:e7668b44b4eb 2 #include "WiflyInterface.h"
maman95 0:e7668b44b4eb 3 #include "HTTPClient.h"
maman95 0:e7668b44b4eb 4
maman95 0:e7668b44b4eb 5
maman95 0:e7668b44b4eb 6 WiflyInterface wifly(p9, p10, p30, p29, "Don", "don123456", WPA);
maman95 0:e7668b44b4eb 7 Serial pc (USBTX, USBRX);
maman95 0:e7668b44b4eb 8 AnalogIn moisture(p15);
maman95 0:e7668b44b4eb 9 AnalogIn LM35(p16);
maman95 0:e7668b44b4eb 10 DigitalOut myled1(LED1);
maman95 0:e7668b44b4eb 11 HTTPClient http;
maman95 0:e7668b44b4eb 12 //I2C tempsensor(p28, p27); //sda, sc1
maman95 0:e7668b44b4eb 13 //const int addr = 0x90;
maman95 0:e7668b44b4eb 14 //char config_t[2];
maman95 0:e7668b44b4eb 15 //char temp_read[2];
maman95 0:e7668b44b4eb 16 //float temp;
maman95 0:e7668b44b4eb 17 char* url = "http://35.176.39.52/mbed_data.php"; //URL for transmit data to server
maman95 0:e7668b44b4eb 18
maman95 0:e7668b44b4eb 19 int main() {
maman95 0:e7668b44b4eb 20
maman95 0:e7668b44b4eb 21 wifly.init(); //Use DHCP
maman95 0:e7668b44b4eb 22
maman95 0:e7668b44b4eb 23 wifly.connect(); // Initiate connection to wifi
maman95 0:e7668b44b4eb 24 pc.printf("\nClient IP Address is %s\n\r", wifly.getIPAddress());
maman95 0:e7668b44b4eb 25
maman95 0:e7668b44b4eb 26 float value=0;
maman95 0:e7668b44b4eb 27 float tempC,a[10],avg;
maman95 0:e7668b44b4eb 28 int i;
maman95 0:e7668b44b4eb 29
maman95 0:e7668b44b4eb 30
maman95 0:e7668b44b4eb 31 while(1) {
maman95 0:e7668b44b4eb 32
maman95 0:e7668b44b4eb 33 avg=0;
maman95 0:e7668b44b4eb 34 for(i=0;i<10;i++)
maman95 0:e7668b44b4eb 35 {
maman95 0:e7668b44b4eb 36 a[i]=LM35.read();
maman95 0:e7668b44b4eb 37 wait(.02);
maman95 0:e7668b44b4eb 38 }
maman95 0:e7668b44b4eb 39 for(i=0;i<10;i++)
maman95 0:e7668b44b4eb 40 {
maman95 0:e7668b44b4eb 41 avg=avg+(a[i]/10); // For more accurate value in determining temperature
maman95 0:e7668b44b4eb 42 }
maman95 0:e7668b44b4eb 43
maman95 0:e7668b44b4eb 44 //char buf[24];
maman95 0:e7668b44b4eb 45 char urlBuffer[100];
maman95 0:e7668b44b4eb 46 //sprintf (buf, value1);
maman95 0:e7668b44b4eb 47 value = moisture;
maman95 0:e7668b44b4eb 48 tempC=(avg*3.68*100)-4;
maman95 0:e7668b44b4eb 49 //int id = 1;
maman95 0:e7668b44b4eb 50 int value1 = (int)(value * 1000);
maman95 0:e7668b44b4eb 51 int temp = (int)(tempC);
maman95 0:e7668b44b4eb 52 /*time_t seconds = time(NULL);
maman95 0:e7668b44b4eb 53 seconds = seconds + 28800;
maman95 0:e7668b44b4eb 54 char buffer[32];
maman95 0:e7668b44b4eb 55 strftime(buffer, 64, "%H:%M:%S_%d-%m-%Y", localtime(&seconds));*/ //For Time configuration
maman95 0:e7668b44b4eb 56
maman95 0:e7668b44b4eb 57 sprintf(urlBuffer, "%s?value=%d&field=%d", url , value1 , temp ); // Convert it to buffer
maman95 0:e7668b44b4eb 58 printf("Send to %s\r\n", urlBuffer);
maman95 0:e7668b44b4eb 59 http.get(urlBuffer, urlBuffer , 10); // Execute the URL of urlBuffer
maman95 0:e7668b44b4eb 60 wait(28.8); // Wifi module will execute the http.get every 31.2 seconds. Thus, waiting for 28.8 seconds means it will transmit data every 1 minute.
maman95 0:e7668b44b4eb 61
maman95 0:e7668b44b4eb 62
maman95 0:e7668b44b4eb 63 }
maman95 0:e7668b44b4eb 64 }