#include <WiFi.h>
#include <string.h>

WiFiClient client;

const char ssid[] ="INETGATE4";
const char passwd[] ="p24zc53b";
const char* host = "www.**************.com";
const int httpport = 80;

int RCV_BUFF00=0;
int RCV_BUFF01=0;
int RCV_BUFF02=0;
int RCV_BUFF03=0;
int RCV_BUFF04=0;
int RCV_BUFF05=0;
int RCV_BUFF06=0;
int RCV_BUFF07=0;
int RCV_BUFF08=0;
int RCV_BUFF09=0;
int RCV_BUFF10=0;
int RCV_BUFF11=0;
int RCV_BUFF12=0;
int RCV_BUFF13=0;
int RCV_BUFF14=0;
int RCV_BUFF15=0;
int RCV_BUFF16=0;
int RCV_BUFF17=0;
int RCV_BUFF18=0;
int RCV_BUFF19=0;
int RCV_BUFF20=0;
int RCV_BUFF21=0;
int RCV_BUFF22=0;
int RCV_BUFF23=0;
int RCV_BUFF24=0;
int RCV_BUFF25=0;
int RCV_BUFF26=0;
int RCV_BUFF27=0;
int RCV_BUFF28=0;
int RCV_BUFF29=0;
int RCV_BUFF30=0;
int RCV_BUFF31=0;

int RCV_VALUE00=0;
int RCV_VALUE01=0;
int RCV_VALUE02=0;
int RCV_VALUE03=0;
int RCV_VALUE04=0;
int RCV_VALUE05=0;
int RCV_VALUE06=0;
int RCV_VALUE07=0;
int RCV_VALUE08=0;
int RCV_VALUE09=0;
int RCV_VALUE10=0;
int RCV_VALUE11=0;
int RCV_VALUE12=0;
int RCV_VALUE13=0;
int RCV_VALUE14=0;
int RCV_VALUE15=0;
int RCV_VALUE16=0;
int RCV_VALUE17=0;
int RCV_VALUE18=0;
int RCV_VALUE19=0;
int RCV_VALUE20=0;
int RCV_VALUE21=0;
int RCV_VALUE22=0;
int RCV_VALUE23=0;
int RCV_VALUE24=0;
int RCV_VALUE25=0;
int RCV_VALUE26=0;
int RCV_VALUE27=0;
int RCV_VALUE28=0;
int RCV_VALUE29=0;
int RCV_VALUE30=0;
int RCV_VALUE31=0;

int TEMP = 0;
int HUMI = 0;
int SMELL = 0;
int CDS = 0;
int NOISE = 0;
int SPACE = 0;
int HUMAN=0;
int CO=0;
int CO2=0;
int D_IN1=0;
int D_IN2=0;
int infrared=0;
int DCIN=0;
int CONTACT1=0;
int CONTACT2=0;

int RxFlg=0;
int RX_CHKDIGIT=0;
int senddata[22];


void setup() {
Serial.begin(9600);
WiFi.begin(ssid, passwd);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
}
void loop() {
    if (Serial.available() >= 1) {
        RCV_BUFF00 = RCV_BUFF01;
        RCV_BUFF01 = RCV_BUFF02;
        RCV_BUFF02 = RCV_BUFF03;
        RCV_BUFF03 = RCV_BUFF04;
        RCV_BUFF04 = RCV_BUFF05;
        RCV_BUFF05 = RCV_BUFF06;
        RCV_BUFF06 = RCV_BUFF07;
        RCV_BUFF07 = RCV_BUFF08;
        RCV_BUFF08 = RCV_BUFF09;
        RCV_BUFF09 = RCV_BUFF10;
        RCV_BUFF10 = RCV_BUFF11;
        RCV_BUFF11 = RCV_BUFF12;
        RCV_BUFF12 = RCV_BUFF13;
        RCV_BUFF13 = RCV_BUFF14;
        RCV_BUFF14 = RCV_BUFF15;
        RCV_BUFF15 = RCV_BUFF16;
        RCV_BUFF16 = RCV_BUFF17;
        RCV_BUFF17 = RCV_BUFF18;
        RCV_BUFF18 = RCV_BUFF19;
        RCV_BUFF19 = RCV_BUFF20;
        RCV_BUFF20 = RCV_BUFF21;
        RCV_BUFF21 = RCV_BUFF22;
        RCV_BUFF22 = RCV_BUFF23;
        RCV_BUFF23 = RCV_BUFF24;
        RCV_BUFF24 = RCV_BUFF25;
        RCV_BUFF25 = RCV_BUFF26;
        RCV_BUFF26 = RCV_BUFF27;
        RCV_BUFF27 = RCV_BUFF28;
        RCV_BUFF28 = RCV_BUFF29;
        RCV_BUFF29 = RCV_BUFF30;
        RCV_BUFF30 = RCV_BUFF31;
        RCV_BUFF31 = Serial.read( );
        RX_CHKDIGIT=RCV_BUFF00+RCV_BUFF01+RCV_BUFF02+RCV_BUFF03+RCV_BUFF04+RCV_BUFF05+RCV_BUFF06+RCV_BUFF07+RCV_BUFF08+RCV_BUFF09+RCV_BUFF10+RCV_BUFF11+RCV_BUFF12+RCV_BUFF13+RCV_BUFF14+RCV_BUFF15+RCV_BUFF16+RCV_BUFF17+RCV_BUFF18+RCV_BUFF19+RCV_BUFF20+RCV_BUFF21+RCV_BUFF22+RCV_BUFF23+RCV_BUFF24+RCV_BUFF25+RCV_BUFF26+RCV_BUFF27+RCV_BUFF28+RCV_BUFF29+RCV_BUFF30;
        RX_CHKDIGIT=RX_CHKDIGIT%256;
        if((RCV_BUFF00==255)&&(RCV_BUFF01==255)&&((RCV_BUFF30==250)||(RCV_BUFF30==255))&&(RCV_BUFF31==RX_CHKDIGIT)){
            RCV_VALUE00 = RCV_BUFF00;
            RCV_VALUE01 = RCV_BUFF01;
            RCV_VALUE02 = RCV_BUFF02;
            RCV_VALUE03 = RCV_BUFF03;
            RCV_VALUE04 = RCV_BUFF04;
            RCV_VALUE05 = RCV_BUFF05;
            RCV_VALUE06 = RCV_BUFF06;
            RCV_VALUE07 = RCV_BUFF07;
            RCV_VALUE08 = RCV_BUFF08;
            RCV_VALUE09 = RCV_BUFF09;
            RCV_VALUE10 = RCV_BUFF10;
            RCV_VALUE11 = RCV_BUFF11;
            RCV_VALUE12 = RCV_BUFF12;
            RCV_VALUE13 = RCV_BUFF13;
            RCV_VALUE14 = RCV_BUFF14;
            RCV_VALUE15 = RCV_BUFF15;
            RCV_VALUE16 = RCV_BUFF16;
            RCV_VALUE17 = RCV_BUFF17;
            RCV_VALUE18 = RCV_BUFF18;
            RCV_VALUE19 = RCV_BUFF19;
            RCV_VALUE20 = RCV_BUFF20;
            RCV_VALUE21 = RCV_BUFF21;
            RCV_VALUE22 = RCV_BUFF22;
            RCV_VALUE23 = RCV_BUFF23;
            RCV_VALUE24 = RCV_BUFF24;
            RCV_VALUE25 = RCV_BUFF25;
            RCV_VALUE26 = RCV_BUFF26;
            RCV_VALUE27 = RCV_BUFF27;
            RCV_VALUE28 = RCV_BUFF28;
            RCV_VALUE29 = RCV_BUFF29;
            RCV_VALUE30 = RCV_BUFF30;
            RCV_VALUE31 = RCV_BUFF31;
            RxFlg=1;
        }else{
        }
    }else{
    }
    if(RxFlg==1){
        RxFlg=0;
        SMELL=(RCV_VALUE02*256)+RCV_VALUE03;
        TEMP=((RCV_VALUE04*256)+RCV_VALUE05)/10;
        HUMI=RCV_VALUE06;
        CDS=(RCV_VALUE07*256)+RCV_VALUE08;
        NOISE=(RCV_VALUE09*256)+RCV_VALUE10;
        HUMAN=RCV_VALUE11;
        CO=(RCV_VALUE12*256)+RCV_VALUE13;
        CO2=(RCV_VALUE14*256)+RCV_VALUE15;
        DCIN=RCV_VALUE16;
        D_IN1=RCV_VALUE17;
        D_IN2=RCV_VALUE18;
        CONTACT1=RCV_VALUE25;
        CONTACT2=RCV_VALUE26;
        if(RCV_VALUE30==255){
            client.connect(host,httpport);
            String url = "/cgi/xeta/record.cgi";
            String param = "?11+22+33+44";
            client.print(String("GET ") + url + "?" + TEMP + "+" + HUMI + "+" + CDS + "+" + NOISE + "+" + SMELL + "+" + HUMAN + "+" + CO + "+" + CO2 + "+" + SPACE + "+" + SPACE + "+" + SPACE + "+" + SPACE + " HTTP/1.1\r\n" +
            "Host: " + host + "\r\n" +
            "Connection: close\r\n\r\n");
        }else{
        }
        if(RCV_VALUE30==250){
              Serial.write(255);
              Serial.write(255);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(0);
              Serial.write(254);  
        }else{
        }
    }
}
