thingspeal
Dependencies: ESP8266NodeMCUInterface mbed
main.cpp@0:ed69e8ef8c7f, 2015-12-20 (annotated)
- Committer:
- ARK4579
- Date:
- Sun Dec 20 17:30:46 2015 +0000
- Revision:
- 0:ed69e8ef8c7f
B version
Who changed what in which revision?
User | Revision | Line number | New 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 | } |