thingspeal

Dependencies:   ESP8266NodeMCUInterface mbed

main.cpp

Committer:
ARK4579
Date:
2015-12-20
Revision:
0:ed69e8ef8c7f

File content as of revision 0:ed69e8ef8c7f:

#include "mbed.h"
#include "ESP8266.h"
#include "TCPSocketConnection.h"
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

DigitalOut myled(LED1);
ESP8266 ark(PA_9,PA_10,D3,115200);
Serial pc(SERIAL_TX, SERIAL_RX);
TCPSocketConnection gm;
AnalogIn vr(A0);

char* generatePostRequest(float _value)
{
    char post[] = "GET /update?key=7577C0JKGHRPAQ6Q&field1=";
    char msg[50] = "";
    sprintf(msg,"%f\r\n\r\n",_value*500);

    char* postRequest = strcat(post,msg);
    return postRequest;
}

int main()
{
    pc.baud(115200);
    int i=0;
    while(1) {
        if(i==0) {
hardwareInit:
            pc.printf("intializing hardware,...\r\n");
            if(ark.init()) {
                pc.printf("hardware intialized!\r\n");
                i=1;
nustConnection:
                pc.printf("connecting to NUST,...\r\n");
                if(ark.connect("NUST","nust008tech")) {

                    pc.printf("NUST Connected!\r\n");
                    if(ark.is_connected()) {
                        pc.printf("connection confirmed!\r\n");
                        pc.printf("IP Adress: %s\r\n",ark.getIPAddress());
hostConnection:
                        pc.printf("connecting to Host,...\r\n");
                        if(gm.connect("184.106.153.149",80)==0) {
                            pc.printf("Host connected.\r\n");

                            //pc.printf(generatePostRequest(vr.read()));
                            //char getRequest[] = "http://api.thingspeak.com/update?key=3BCEJZ4D93E63PNN&field1=429";
                            //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";
                            char* getRequest = generatePostRequest(vr.read());
                            //strcpy(getRequest,generatePostRequest((float)vr.read()));
                            //char getRequest[] = "GET /update?key=3BCEJZ4D93E63PNN&field1=429\r\n\r\n";
                            //char getRequest[] = "GET /testwifi/index.html HTTP/1.1\r\nHost: www.adafruit.com\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n";
sendGETRequest:
                            pc.printf("sending GET request,...\r\n");
                            if(gm.send_all(getRequest,strlen(getRequest))>0) {
                                pc.printf("GOT!\r\n");

                                char getResponce[5000]= {};
                                pc.printf("reading responce of GET request!\r\n");
                                int resBytes = gm.receive_all(getResponce,5000);
                                if(resBytes > 0) {
                                    pc.printf("Responce Received!\r\n");
                                    pc.printf("Responce:\r\n%s\r\nResponce Read Sucessfull.\r\n",getResponce);
                                } else if(resBytes==0) {
                                    pc.printf("Empty Responce!\r\n");
                                    //goto sendGETRequest;
                                } else {
                                    pc.printf("Resopnce NOT Received!\r\n");
                                    goto sendGETRequest;
                                }

                            } else {
                                pc.printf("GET request failed!\r\n");
                                goto sendGETRequest;
                            }
                        } else {
                            pc.printf("Host Connection Failed\r\n");
                            goto hostConnection;
                        }
                    } else {
                        pc.printf("sonething went wrong with connection. not connected \r\n");
                        goto nustConnection;
                    }
                } else {
                    pc.printf("conenction fail!\r\n");
                    goto nustConnection;
                }
            } else {
                pc.printf("hardware not intialized!\r\n");
                goto hardwareInit;
            }
        }
        wait(1);
    }
}