Fiz esse programa aqui e deu um erro que eu não achei na internet:
//Inclui as funções de Wifi do ESP#include <ESP8266WiFi.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
//Cria um server na porta 80 (porta
//padrão para onde os navegadores
//enviam as requisições http)
WiFiServer server(80);
#include "EmonLib.h"
EnergyMonitor SCT013;
int pinSCT = A0; //Pino analógico conectado ao SCT-013
float tarifa = 0.59; //*************************************************************************************************************
int tensao = 220; //************************************************************************************************************************
double custo = 0;
int consumo = 0;
double potencia = 0.0000;
long tempo = 0;
void setup(){
Serial.begin(115200);
SCT013.current(pinSCT, 6.0606);
Serial.print("Conectando");
//Faz o ESP se conectar à rede WiFi. No nosso exemplo o ssid
//da rede é TesteESP e a senha é 87654321
WiFi.begin("SENAI BIBLIOTECA", "moppcla6249"); //*****************************************************************************************************************
//Enquanto o ESP não se conectar à rede
while (WiFi.status() != WL_CONNECTED)
{
//Esperamos 100 milisegundos
delay(100);
Serial.print(".");
}
//Se chegou aqui é porque conectou à rede, então mostramos
//no monitor serial para termos um feedback
Serial.println("");
Serial.println("Conectou");
//Configurações do IP fixo. Você pode alterar
//conforme a sua rede ************************************************************************************************************************************
IPAddress ip(192, 168, 1, 1);
IPAddress gateway(255, 255, 255, 0);
IPAddress subnet(255, 255, 255, 0);
Serial.print("Configurando IP fixo para : ");
Serial.println(ip);
//Envia a configuração
WiFi.config(ip, gateway, subnet);
//Inicializa o server que criamos na porta 80
server.begin();
//Mostramos no monitor serial o IP que o ESP possui para verificarmos se
//é o mesmo que configuramos
Serial.print("Server em: ");
Serial.println(WiFi.localIP());
}
void loop() {
//Verifica se algum cliente está tentando se conectar
WiFiClient client = server.available();
if (!client)
{
//Se não houver nenhum cliente podemos retornar pois não há nada a fazer
return;
}
Serial.println("Novo cliente conectou");
//Esperamos até que o cliente nos envie a requisição
while (!client.available())
{
delay(100);
}
//Fazemos a leitura da requisição
String req = client.readStringUntil('\r');
Serial.print("Requisição: ");
Serial.println(req);
//Este é o html que iremos retornar para o cliente
//É composto basicamente de dois botões (ON e OFF) para o GPIO0 e dois botões (ON e OFF) para o GPIO2
//A parte que nos interessa é o <a href=' com a ação vinculada a cada botão
//Quando clicamos em um destes botões essa informação chegará até o ESP para que ele verifique qual ação deve executar
//A parte dentro de '<style>' é apenas para modificarmos o visual da página que será exibida, você pode alterá-la como queira
String html =
" <html>"
"<head>"
"<h1>AUTOSHOWER</h1>"
"</head>"
"<style>"
" h1{"
" color:#2af;"
" }"
" h2{"
" color:#000;"
" }"
"body{"
" text-align: center;"
" font-family: arial;"
" font-size:14px;"
"padding: 25px;"
" }"
" p{"
" color:#000;"
" }"
" }"
" button{"
" outline: none;"
" border: 2px solid #2af;"
" border-radius:18px;"
" background-color:#FFF;"
" color: #2af;"
" padding: 10px 50px;"
"}"
""
" button:active{"
" color: #fff;"
"background-color:#1fa3ec;"
" }"
" </style>"
" </head>"
" <body>"
"<h2>Mês Atual</h2>"
" <p id='consumo'>Consumo: </p>"
" <p id='custo'>Custo: </p>"
" </body"
" Refresh();"
"setInterval(refresh, 1000);"
" function refresh()"
"{"
" refresConsumo()"
" refreshCusto();"
"}"
"function refreshConsumo()"
"{"
" var xmlhttp = new XMLHttpRequest();"
" xmlhttp.onreadystatechange = function() {"
" if (xmlhttp.readyState == XMLHttpRequest.DONE && xmlhttp.status == 200){"
" document.getElementById('consumo').innerHTML = 'Consumo: ' + JSON.parse(xmlhttp.responseText).consumo + 'C';"
" }"
" };"
" xmlhttp.open('GET', 'http://[INSIRA O IP]/consumo', true);"
" xmlhttp.send();"
" }"
"function refreshCusto()"
" {"
" var xmlhttp = new XMLHttpRequest();"
" xmlhttp.onreadystatechange = function() {"
" if (xmlhttp.readyState == XMLHttpRequest.DONE && xmlhttp.status == 200){"
" document.getElementById('custo').innerHTML = 'Custo: ' + JSON.parse(xmlhttp.responseText).custo + 'C';"
" }"
" };"
" xmlhttp.open('GET', 'http://[INSIRA O IP]/custo', true);"
" xmlhttp.send();"
" }"
"</html>";
//Escreve o html no buffer que será enviado para o cliente
client.print(html);
//Envia os dados do buffer para o cliente
client.flush();
double Irms = SCT013.calcIrms(1480); // Calcula o valor da Corrente
for (Irms>0; tempo<2592000; tempo++){
potencia= potencia + (Irms*tensao);
delay (1000);
}
consumo = potencia * 0,000000277777777;
custo = consumo * tarifa;
//Fecha a conexão com o cliente
client.stop();
Serial.println("Cliente desconectado");
}
Erro:
Arduino: 1.8.6 (Windows 7), Placa:"Generic ESP8266 Module, 80 MHz, Flash, ck, 26 MHz, 40MHz, QIO, 512K (no SPIFFS), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"
O sketch usa 266052 bytes (53%) de espaço de armazenamento para programas. O máximo são 499696 bytes.
Variáveis globais usam 30752 bytes (37%) de memória dinâmica, deixando 51168 bytes para variáveis locais. O máximo são 81920 bytes.
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
Este relatório teria mais informações com
"Mostrar a saida detalhada durante a compilação"
opção pode ser ativada em "Arquivo -> Preferências"