#include <ESP8266WiFi.h>
#include <string.h>
const char* ssid = "234";
const char* password = "23445";
const char* host = "data.sparkfun.com";
const char* publicKey = "9JvZL2Ym95fVb85nZdjq";
const char* privateKey = "xzGyJ6BwpEIVPnA1qgWM";
#define MAX_STRING_LEN 20
/*
http://data.sparkfun.com/input/[publicKey]?private_key=[privateKey]&cardnumber=[value]¤tcount=[value]&humidity=[value]&temp=[value]&totalcount=[value]
http://data.sparkfun.com/input/9JvZL2Ym95fVb85nZdjq?private_key=xzGyJ6BwpEIVPnA1qgWM&cardnumber=15.67¤tcount=15.90&humidity=18.05&temp=23.35&totalcount=5.53
*/
String inputString = "";
boolean stringComplete = false, StartCapturing = false;
char inData[50];
char inChar, IncomingWeight;
char IncomingString[50];
const int httpPort = 80;
char *i, *k,*p;
String CardID;
int Temprature, Humidity, TC, CC;
byte SendData = 0;
//char s[2] = ",";
char delimiters[] = "*,#";
char* valPosition;
WiFiClient client;
void setup()
{
Serial.begin(9600);
Serial.print("ESP8266 Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop()
{
serialEvent();
if (stringComplete)
{
inputString.toCharArray(IncomingString, 50);
Serial.println();
Serial.println(IncomingString);
i = strstr(IncomingString, "CR");
{
if (i)
{
p = i+2;
CardID = strtok(p, ",");
Serial.print("Card Number :");
Serial.print(CardID);
Serial.println();
}
}
i = strstr(IncomingString, "Temp");
{
if (i)
{
Temprature = strtoul(i + 4 , NULL, 10);
Serial.print("Temprature :");
Serial.print(Temprature);
Serial.println();
}
}
i = strstr(IncomingString, "Humidity");
{
if (i)
{
Humidity = strtoul(i + 8 , NULL, 10);
Serial.print("Humidity :");
Serial.print(Humidity);
Serial.println();
}
}
i = strstr(IncomingString, "TC");
{
if (i)
{
TC = strtoul(i + 2 , NULL, 10);
Serial.print("Total Count :");
Serial.print(TC);
Serial.println();
}
}
i = strstr(IncomingString, "CC");
{
if (i)
{
CC = strtoul(i + 2 , NULL, 10);
Serial.print("Current Count :");
Serial.print(CC);
Serial.println();
SendData = 1;
}
}
stringComplete = false;
inputString = "";
delay(10);
}
if (SendData)
{
Serial.print("connecting to ");
Serial.println(host);
if (!client.connect(host, httpPort))
{
Serial.println("connection failed");
return;
}
// We now create a URI for the request
String url = "/input/";
url += publicKey;
url += "?private_key=";
url += privateKey;
url += "&cardnumber=";
url += CardID;
url += "¤tcount=";
url += CC;
url += "&humidity=";
url += Humidity;
url += "&temp=";
url += Temprature;
// url += "&totalcount=";
// url += TC;
Serial.print("Requesting URL: ");
Serial.println(url);
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Read all the lines of the reply from server and print them to Serial
while (client.available())
{
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
SendData = 0;
}
}
void serialEvent()
{
while (Serial.available())
{
char inChar = (char)Serial.read();
if (inChar == '*')
{
StartCapturing = true;
}
if (StartCapturing)
{
inputString += inChar;
}
if (inChar == '#')
{
stringComplete = true;
StartCapturing = false;
}
}
}