thingspeal

Dependencies:   ESP8266NodeMCUInterface mbed

Committer:
ARK4579
Date:
Sun Dec 20 17:30:46 2015 +0000
Revision:
0:ed69e8ef8c7f
B version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ARK4579 0:ed69e8ef8c7f 1 #include "mbed.h"
ARK4579 0:ed69e8ef8c7f 2 #include "ESP8266.h"
ARK4579 0:ed69e8ef8c7f 3 #include "TCPSocketConnection.h"
ARK4579 0:ed69e8ef8c7f 4 #include <string>
ARK4579 0:ed69e8ef8c7f 5 #include <stdio.h>
ARK4579 0:ed69e8ef8c7f 6 #include <stdlib.h>
ARK4579 0:ed69e8ef8c7f 7 using namespace std;
ARK4579 0:ed69e8ef8c7f 8
ARK4579 0:ed69e8ef8c7f 9 DigitalOut myled(LED1);
ARK4579 0:ed69e8ef8c7f 10 ESP8266 ark(PA_9,PA_10,D3,115200);
ARK4579 0:ed69e8ef8c7f 11 Serial pc(SERIAL_TX, SERIAL_RX);
ARK4579 0:ed69e8ef8c7f 12 TCPSocketConnection gm;
ARK4579 0:ed69e8ef8c7f 13 AnalogIn vr(A0);
ARK4579 0:ed69e8ef8c7f 14
ARK4579 0:ed69e8ef8c7f 15 char* generatePostRequest(float _value)
ARK4579 0:ed69e8ef8c7f 16 {
ARK4579 0:ed69e8ef8c7f 17 char post[] = "GET /update?key=7577C0JKGHRPAQ6Q&field1=";
ARK4579 0:ed69e8ef8c7f 18 char msg[50] = "";
ARK4579 0:ed69e8ef8c7f 19 sprintf(msg,"%f\r\n\r\n",_value*500);
ARK4579 0:ed69e8ef8c7f 20
ARK4579 0:ed69e8ef8c7f 21 char* postRequest = strcat(post,msg);
ARK4579 0:ed69e8ef8c7f 22 return postRequest;
ARK4579 0:ed69e8ef8c7f 23 }
ARK4579 0:ed69e8ef8c7f 24
ARK4579 0:ed69e8ef8c7f 25 int main()
ARK4579 0:ed69e8ef8c7f 26 {
ARK4579 0:ed69e8ef8c7f 27 pc.baud(115200);
ARK4579 0:ed69e8ef8c7f 28 int i=0;
ARK4579 0:ed69e8ef8c7f 29 while(1) {
ARK4579 0:ed69e8ef8c7f 30 if(i==0) {
ARK4579 0:ed69e8ef8c7f 31 hardwareInit:
ARK4579 0:ed69e8ef8c7f 32 pc.printf("intializing hardware,...\r\n");
ARK4579 0:ed69e8ef8c7f 33 if(ark.init()) {
ARK4579 0:ed69e8ef8c7f 34 pc.printf("hardware intialized!\r\n");
ARK4579 0:ed69e8ef8c7f 35 i=1;
ARK4579 0:ed69e8ef8c7f 36 nustConnection:
ARK4579 0:ed69e8ef8c7f 37 pc.printf("connecting to NUST,...\r\n");
ARK4579 0:ed69e8ef8c7f 38 if(ark.connect("NUST","nust008tech")) {
ARK4579 0:ed69e8ef8c7f 39
ARK4579 0:ed69e8ef8c7f 40 pc.printf("NUST Connected!\r\n");
ARK4579 0:ed69e8ef8c7f 41 if(ark.is_connected()) {
ARK4579 0:ed69e8ef8c7f 42 pc.printf("connection confirmed!\r\n");
ARK4579 0:ed69e8ef8c7f 43 pc.printf("IP Adress: %s\r\n",ark.getIPAddress());
ARK4579 0:ed69e8ef8c7f 44 hostConnection:
ARK4579 0:ed69e8ef8c7f 45 pc.printf("connecting to Host,...\r\n");
ARK4579 0:ed69e8ef8c7f 46 if(gm.connect("184.106.153.149",80)==0) {
ARK4579 0:ed69e8ef8c7f 47 pc.printf("Host connected.\r\n");
ARK4579 0:ed69e8ef8c7f 48
ARK4579 0:ed69e8ef8c7f 49 //pc.printf(generatePostRequest(vr.read()));
ARK4579 0:ed69e8ef8c7f 50 //char getRequest[] = "http://api.thingspeak.com/update?key=3BCEJZ4D93E63PNN&field1=429";
ARK4579 0:ed69e8ef8c7f 51 //char getRequest[500]="POST /api.php/phy HTTP/1.1\r\nHOST: www.maz4579.esy.es\r\nConnection: keep-alive\r\nAccept: */*\r\n{\"id\":\"5\",\"statement\":\"is the id of this question is 4?\",\"A\":\"no\",\"B\":\"no\",\"C\":\"no\",\"D\":\"yes\",\"correct\":\"C\",\"isvalid\":\"False\"}\r\n\r\n";
ARK4579 0:ed69e8ef8c7f 52 char* getRequest = generatePostRequest(vr.read());
ARK4579 0:ed69e8ef8c7f 53 //strcpy(getRequest,generatePostRequest((float)vr.read()));
ARK4579 0:ed69e8ef8c7f 54 //char getRequest[] = "GET /update?key=3BCEJZ4D93E63PNN&field1=429\r\n\r\n";
ARK4579 0:ed69e8ef8c7f 55 //char getRequest[] = "GET /testwifi/index.html HTTP/1.1\r\nHost: www.adafruit.com\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n";
ARK4579 0:ed69e8ef8c7f 56 sendGETRequest:
ARK4579 0:ed69e8ef8c7f 57 pc.printf("sending GET request,...\r\n");
ARK4579 0:ed69e8ef8c7f 58 if(gm.send_all(getRequest,strlen(getRequest))>0) {
ARK4579 0:ed69e8ef8c7f 59 pc.printf("GOT!\r\n");
ARK4579 0:ed69e8ef8c7f 60
ARK4579 0:ed69e8ef8c7f 61 char getResponce[5000]= {};
ARK4579 0:ed69e8ef8c7f 62 pc.printf("reading responce of GET request!\r\n");
ARK4579 0:ed69e8ef8c7f 63 int resBytes = gm.receive_all(getResponce,5000);
ARK4579 0:ed69e8ef8c7f 64 if(resBytes > 0) {
ARK4579 0:ed69e8ef8c7f 65 pc.printf("Responce Received!\r\n");
ARK4579 0:ed69e8ef8c7f 66 pc.printf("Responce:\r\n%s\r\nResponce Read Sucessfull.\r\n",getResponce);
ARK4579 0:ed69e8ef8c7f 67 } else if(resBytes==0) {
ARK4579 0:ed69e8ef8c7f 68 pc.printf("Empty Responce!\r\n");
ARK4579 0:ed69e8ef8c7f 69 //goto sendGETRequest;
ARK4579 0:ed69e8ef8c7f 70 } else {
ARK4579 0:ed69e8ef8c7f 71 pc.printf("Resopnce NOT Received!\r\n");
ARK4579 0:ed69e8ef8c7f 72 goto sendGETRequest;
ARK4579 0:ed69e8ef8c7f 73 }
ARK4579 0:ed69e8ef8c7f 74
ARK4579 0:ed69e8ef8c7f 75 } else {
ARK4579 0:ed69e8ef8c7f 76 pc.printf("GET request failed!\r\n");
ARK4579 0:ed69e8ef8c7f 77 goto sendGETRequest;
ARK4579 0:ed69e8ef8c7f 78 }
ARK4579 0:ed69e8ef8c7f 79 } else {
ARK4579 0:ed69e8ef8c7f 80 pc.printf("Host Connection Failed\r\n");
ARK4579 0:ed69e8ef8c7f 81 goto hostConnection;
ARK4579 0:ed69e8ef8c7f 82 }
ARK4579 0:ed69e8ef8c7f 83 } else {
ARK4579 0:ed69e8ef8c7f 84 pc.printf("sonething went wrong with connection. not connected \r\n");
ARK4579 0:ed69e8ef8c7f 85 goto nustConnection;
ARK4579 0:ed69e8ef8c7f 86 }
ARK4579 0:ed69e8ef8c7f 87 } else {
ARK4579 0:ed69e8ef8c7f 88 pc.printf("conenction fail!\r\n");
ARK4579 0:ed69e8ef8c7f 89 goto nustConnection;
ARK4579 0:ed69e8ef8c7f 90 }
ARK4579 0:ed69e8ef8c7f 91 } else {
ARK4579 0:ed69e8ef8c7f 92 pc.printf("hardware not intialized!\r\n");
ARK4579 0:ed69e8ef8c7f 93 goto hardwareInit;
ARK4579 0:ed69e8ef8c7f 94 }
ARK4579 0:ed69e8ef8c7f 95 }
ARK4579 0:ed69e8ef8c7f 96 wait(1);
ARK4579 0:ed69e8ef8c7f 97 }
ARK4579 0:ed69e8ef8c7f 98 }