How to send data from mbed to thingspeak
Dependencies: HTTPClient WiflyInterface mbed
main.cpp@0:e7668b44b4eb, 2018-02-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |