//Node mcu 1.0 //Conexões do BMP280: //VCC: 3.3V //GND: GND //SDA: A4 //SCL: A5 // //Conexões do CCS811: //VCC: 3.3V //GND: GND //SDA: A4 (compartilhado com o BMP280) //SCL: A5 (compartilhado com o BMP280) //SCL: D1 (Conexões do ESP) //SDA: D2 (Conexões do ESP) #include #include #include #include #include #include #include #include const char *ssid = "IFSC"; const char *password = "campuschapeco"; const int http_port = 8080; unsigned long tempoinicial=millis(); WiFiClient client; Adafruit_BMP280 bmp; Adafruit_CCS811 ccs; int led = D3; void setup() { Serial.begin(115200); Serial.print("Tempo inicial "+String(tempoinicial)); WiFi.mode(WIFI_OFF); delay(1000); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password);Serial.println("."); Serial.print("Conectando..."); while (WiFi.status() != WL_CONNECTED) { delay(500);Serial.print(".");} Serial.println (""); Serial.print ("Conectado a ");Serial.println (ssid); Serial.print (" endereço IP: ");Serial.println (WiFi.localIP ()); Serial.print("MAC: "); Serial.println(WiFi.macAddress()); // Grava arquivo de login HTTPClient http; String Mac=WiFi.macAddress(); String postData = "MMac="+String(Mac); http.begin(client,"http://mabel.migueldebarba.com.br/esp8266/login_insert.php"); http.addHeader("Content-Type", "application/x-www-form-urlencoded"); int httpCode = http.POST(postData); String payload = http.getString(); Serial.println(httpCode); Serial.println(payload); http.end(); if (!bmp.begin(0x76)) { Serial.println("Nao encontrou o sensor BMP280"); while (1); } if (!ccs.begin()) { Serial.println("Nao encontrou o sensor CCS811"); while (1); } pinMode(led, OUTPUT); } void loop() { digitalWrite(led,HIGH); // Leitura BMP280 Serial.println("_________"); float temperatura = bmp.readTemperature(); float pressao = bmp.readPressure() / 100.0F; Serial.println("Temperatura: " + String(temperatura) + " °C"); delay(100); // Seta dados pra calibração do CCS811 ccs.setEnvironmentalData(temperatura, pressao); // Leitura CCS811 if (ccs.available()) { if (!ccs.readData()) { uint16_t tvoc = ccs.getTVOC(); uint16_t eCO2 = ccs.geteCO2(); Serial.println("CO2: " + String(eCO2) + " Parte por milhao"); Serial.println("Compostos Volateis totais: " + String(tvoc) + " Parte por bilhao"); } } delay(1000); // delay final de 30 min (por depois) digitalWrite(led,LOW); delay(1000); Serial.println(""); HTTPClient http; String Mac=WiFi.macAddress(); String postData = "MMac="+String(Mac)+"&SStemperatura="+String(temperatura)+"&SSpressao="+String(pressao)+"&SStvoc="+String(tvoc)+"&SSeCO2="+String(eCO2); http.begin(client,"http://ptqa.migueldebarba.com.br/esp8266/piloto_insert.php"); http.addHeader("Content-Type", "application/x-www-form-urlencoded"); int httpCode = http.POST(postData); String payload = http.getString(); Serial.println(httpCode); Serial.println(payload); http.end(); delay(60000*random(13,18)); // Aguarda de 13 a 18 minutos unsigned long tempoatual=millis(); unsigned long diftempo=tempoatual-tempoinicial; Serial.println("T.Inicial"+String(tempoinicial)); Serial.println("T.Atual"+String(tempoatual)); delay(5000); // Restart a cada TRES horas de millis() if (diftempo>10800000){ ESP.restart(); Serial.println("T.Inicial"+String(tempoinicial)); Serial.println("T.Atual"+String(tempoatual)); delay(5000); } }