#include #include #include #include #include ///Create BME280 object//////////////////////////// //BME280_I2C bme if I2C using address 0x77 /////// /////////////////////////////////////////////////// BME280_I2C bme(0x76); // I2C using address 0x76 LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); // 0x27 is the default I2C int s=1; char rec; String fecha; String comando; String data; String mi; String se; float temp; float hu; float pres; String hora; String minuto; String segundo; String dia; String mes; String ano; int horai; int minutoi; int segundoi; int diai; int mesi; int anoi; void setup() { Serial.begin(115200); Serial3.begin(115200); delay(1000); Serial.println("SERIAL Setup Complete!"); delay(3000); //Serial.println("Connecting to WiFi"); //Serial3.println("AT+CWJAP=\"MOVISTAR_5C88\",\"clave_de_conexión\""); //insert your own SSID and password here //delay(2000); //do{Serial.write(Serial3.read());} while (Serial3.available()); Serial.println("CONEXION WiFI"); Serial3.println("AT+CWJAP?"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); Serial.println("Establishing connection type…"); Serial3.println("AT+CIPMUX=1"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); Serial.println("Setting WiFI mode…"); Serial3.println("AT+CWMODE=3"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); Serial.println("Establishing SERVIDOR…"); Serial3.println("AT+CIPSERVER=1,80"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); Serial.println("Establishing TCP connection"); Serial3.println("AT+CIPSTART=0,\"TCP\",\"ip_o_nombre_del_servidor\",80"); Serial.println("AT+CIPSTART=0,\"TCP\",\"ip_o_nombre_del_servidor\",80"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); String a="GET /time.php?valor=1 "; String l=String(a.length()); Serial3.println("AT+CIPSEND=0,"+l); Serial.println("AT+CIPSEND=0,"+l); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); String b="GET /time.php?valor=1"; Serial3.println(b); Serial.println(b); delay(2000); while (Serial3.available()) { rec=Serial3.read(); comando.concat(rec); } Serial.println(comando); String ko=comando; fecha=ko.substring(40,59); hora=fecha.substring(11,13); minuto=fecha.substring(14,16); segundo=fecha.substring(17,19); dia=fecha.substring(8,10); mes=fecha.substring(5,7); ano=fecha.substring(0,4); horai=hora.toInt(); minutoi=minuto.toInt(); segundoi=segundo.toInt(); diai=dia.toInt(); mesi=mes.toInt(); anoi=ano.toInt(); setTime(horai,minutoi,segundoi,diai,mesi,anoi); if (!bme.begin()) { Serial.println("Could not find a valid BME280 sensor, check wiring!"); while (1); } bme.setTempCal(-2);// Temp was reading high so subtract 2 degree lcd.begin (20,4); // 20x4 LCD module lcd.setBacklightPin(3,POSITIVE); // BL, BL_POL lcd.setBacklight(HIGH); } void loop() { bme.readSensor(); lcd.clear(); lcd.setCursor(0,0); lcd.print("Pres(hPa)="); lcd.print(bme.getPressure_MB()); lcd.setCursor(0,1); lcd.print("Hu(%)="); lcd.print(bme.getHumidity()); lcd.setCursor(0,2); lcd.print("Temp(C)="); lcd.print(bme.getTemperature_C()); mi=String(minute()); se=String(second()); if (mi.toInt()<10){mi="0"+String(minute());} if (se.toInt()<10){se="0"+String(second());} fecha=String(hour())+":"+mi+":"+se+" "+String(day())+"/"+String(month())+"/"+String(year()); lcd.setCursor(0,3); lcd.print(fecha); if ( s>55 ) { fecha=""; Serial.println("Establishing connection type…"); Serial3.println("AT+CIPMUX=1"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); Serial.println("Setting WiFI mode…"); Serial3.println("AT+CWMODE=3"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); Serial.println("Establishing SERVIDOR…"); Serial3.println("AT+CIPSERVER=1,80"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); Serial.println("Establishing TCP connection"); Serial3.println("AT+CIPSTART=0,\"TCP\",\"ip_o_nombre_del_servidor\",80"); Serial.println("AT+CIPSTART=0,\"TCP\",\"ip_o_nombre_del_servidor\",80"); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); bme.readSensor(); pres=bme.getPressure_MB(); hu=bme.getHumidity(); temp=bme.getTemperature_C(); data=String(temp)+"_"+String(hu)+"_"+String(pres); Serial.println("Sending out data…"); String a="GET /posted_2.php?valor="+data+" "; String l=String(a.length()); Serial3.println("AT+CIPSEND=0,"+l); Serial.println("AT+CIPSEND=0,"+l); delay(2000); do{Serial.write(Serial3.read());} while (Serial3.available()); String b="GET /posted_2.php?valor="+data; Serial3.println(b); Serial.println(b); delay(2000); while (Serial3.available()) { rec=Serial3.read(); comando.concat(rec); } Serial.println(comando); String ko=comando; fecha=ko.substring(40,59); hora=fecha.substring(11,13); minuto=fecha.substring(14,16); segundo=fecha.substring(17,19); dia=fecha.substring(8,10); mes=fecha.substring(5,7); ano=fecha.substring(0,4); horai=hora.toInt(); minutoi=minuto.toInt(); segundoi=segundo.toInt(); diai=dia.toInt(); mesi=mes.toInt(); anoi=ano.toInt(); setTime(horai,minutoi,segundoi,diai,mesi,anoi); s=0; comando=""; } //contador incremento s=s+1; if (s==1){ delay (10);} if (s>1) {delay (10000);} }