Creating an IoT platform for smart agriculture. Collecting data and sending them to thingspeak for analysis

Dependencies:   DHT11 LPS22HB LSM6DSL VL53L0X

Committer:
kaoriw
Date:
Fri Jun 08 12:16:19 2018 +0000
Revision:
1:469ea8167b80
Parent:
0:07ff689741d2
Uncomplete

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaoriw 0:07ff689741d2 1 #include "ThingSpeak.h"
kaoriw 0:07ff689741d2 2
kaoriw 0:07ff689741d2 3 //#include "Sensors.h"
kaoriw 0:07ff689741d2 4
kaoriw 0:07ff689741d2 5
kaoriw 0:07ff689741d2 6 const char *sec2str(nsapi_security_t sec)
kaoriw 0:07ff689741d2 7 {
kaoriw 0:07ff689741d2 8 switch (sec) {
kaoriw 0:07ff689741d2 9 case NSAPI_SECURITY_NONE:
kaoriw 0:07ff689741d2 10 return "None";
kaoriw 0:07ff689741d2 11 case NSAPI_SECURITY_WEP:
kaoriw 0:07ff689741d2 12 return "WEP";
kaoriw 0:07ff689741d2 13 case NSAPI_SECURITY_WPA:
kaoriw 0:07ff689741d2 14 return "WPA";
kaoriw 0:07ff689741d2 15 case NSAPI_SECURITY_WPA2:
kaoriw 0:07ff689741d2 16 return "WPA2";
kaoriw 0:07ff689741d2 17 case NSAPI_SECURITY_WPA_WPA2:
kaoriw 0:07ff689741d2 18 return "WPA/WPA2";
kaoriw 0:07ff689741d2 19 case NSAPI_SECURITY_UNKNOWN:
kaoriw 0:07ff689741d2 20 default:
kaoriw 0:07ff689741d2 21 return "Unknown";
kaoriw 0:07ff689741d2 22 }
kaoriw 0:07ff689741d2 23 }
kaoriw 0:07ff689741d2 24
kaoriw 0:07ff689741d2 25 int scan_demo(WiFiInterface *wifi)
kaoriw 0:07ff689741d2 26 {
kaoriw 0:07ff689741d2 27 WiFiAccessPoint *ap;
kaoriw 0:07ff689741d2 28
kaoriw 0:07ff689741d2 29 printf("Scan:\n");
kaoriw 0:07ff689741d2 30
kaoriw 0:07ff689741d2 31 int count = wifi->scan(NULL,0);
kaoriw 0:07ff689741d2 32 printf("%d networks available.\n", count);
kaoriw 0:07ff689741d2 33
kaoriw 0:07ff689741d2 34 /* Limit number of network arbitrary to 15 */
kaoriw 0:07ff689741d2 35 count = count < 15 ? count : 15;
kaoriw 0:07ff689741d2 36
kaoriw 0:07ff689741d2 37 ap = new WiFiAccessPoint[count];
kaoriw 0:07ff689741d2 38 count = wifi->scan(ap, count);
kaoriw 0:07ff689741d2 39 for (int i = 0; i < count; i++)
kaoriw 0:07ff689741d2 40 {
kaoriw 0:07ff689741d2 41 printf("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\n", ap[i].get_ssid(),
kaoriw 0:07ff689741d2 42 sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2],
kaoriw 0:07ff689741d2 43 ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel());
kaoriw 0:07ff689741d2 44 }
kaoriw 0:07ff689741d2 45
kaoriw 0:07ff689741d2 46 delete[] ap;
kaoriw 0:07ff689741d2 47 return count;
kaoriw 0:07ff689741d2 48 }
kaoriw 0:07ff689741d2 49
kaoriw 0:07ff689741d2 50
kaoriw 0:07ff689741d2 51 void send_values(char* urlBuffer)
kaoriw 0:07ff689741d2 52 {
kaoriw 0:07ff689741d2 53 TCPSocket socket;
kaoriw 0:07ff689741d2 54 socket.open(&wifi);
kaoriw 0:07ff689741d2 55 int scount;
kaoriw 0:07ff689741d2 56 int bufLen = strlen(urlBuffer);
kaoriw 0:07ff689741d2 57
kaoriw 0:07ff689741d2 58 if(socket.connect("api.thingspeak.com", 80) == 0)
kaoriw 0:07ff689741d2 59 {
kaoriw 0:07ff689741d2 60 scount = socket.send(urlBuffer, bufLen+1);
kaoriw 0:07ff689741d2 61 printf ("Message sent: strlen=%d,urlBuffer=%.*s\r\n",bufLen,bufLen-2,urlBuffer);
kaoriw 0:07ff689741d2 62 }
kaoriw 0:07ff689741d2 63 else printf("Failed to connect to ThingSpeak.\r\n");
kaoriw 0:07ff689741d2 64
kaoriw 0:07ff689741d2 65
kaoriw 0:07ff689741d2 66 // Recieve a simple http response and print out the response line
kaoriw 0:07ff689741d2 67 char rbuffer[2000];
kaoriw 0:07ff689741d2 68 int response = socket.recv(rbuffer, sizeof rbuffer);
kaoriw 0:07ff689741d2 69 if (response < 0) {
kaoriw 0:07ff689741d2 70 printf("Error receiving data: %d\n\r", response);
kaoriw 0:07ff689741d2 71 } else {
kaoriw 0:07ff689741d2 72 printf("recv %d [%.*s]\n\r", response, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
kaoriw 0:07ff689741d2 73 }
kaoriw 0:07ff689741d2 74
kaoriw 0:07ff689741d2 75 socket.close();
kaoriw 0:07ff689741d2 76
kaoriw 0:07ff689741d2 77 }