# Como enviar dados de um sensor de corrente acs712 através modulo wifi esp8266-1 para um servidor web

**URL:** <https://forum.fazedores.com/t/como-enviar-dados-de-um-sensor-de-corrente-acs712-atraves-modulo-wifi-esp8266-1-para-um-servidor-web/3711>\
**Category:** Arduino\
**Created:** [Novembro 26, 2016, 2:44pm UTC](https://forum.fazedores.com/t/como-enviar-dados-de-um-sensor-de-corrente-acs712-atraves-modulo-wifi-esp8266-1-para-um-servidor-web/3711 "2016-11-26T14:44:55Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![claudinei](https://avatars.discourse-cdn.com/v4/letter/c/34f0e0/32.png) [@claudinei](https://forum.fazedores.com/u/claudinei)\
**Post date:** [Novembro 26, 2016, 2:44pm UTC](https://forum.fazedores.com/t/como-enviar-dados-de-um-sensor-de-corrente-acs712-atraves-modulo-wifi-esp8266-1-para-um-servidor-web/3711/1 "2016-11-26T14:44:55Z")

</div>

Ola pessoal, estou com duvidas em respeito ao esp8266-1. Estou tentando liga-lo a um sensor de corrente acs712 onde o modulo esp8266 receberia os dados do sensor e enviaria para um sensor web mas ainda não consegui. Os dados seriam enviados para o [dweet.io](http://dweet.io) e posteriormente para o [freeboard.io](http://freeboard.io) para gerar o grafico.

// Importando as bibliotecas necessarias  
#include “ESP8266WiFi.h”  
//#include “SoftwareSerial.h”  
//SoftwareSerial ESPserial(2,3);

//Definindo as Variaveis de corrente  
int corrente;  
int PinoCorrente = 2; //PINO DE LEITURA DO SENSOR DE CORRENTE  
int tensao = 127; //contante de tensao

//Nome da sua rede Wifi  
const char\* ssid = “minharede”;  
//Senha da rede Wifi  
const char\* password = “minhasenha”;

// Site que receber� os dados  
const char\* host = “[dweet.io](http://dweet.io)”;  
//IP do ESP (para voce acessar pelo browser)  
IPAddress ip(192, 168, 0, 151);  
//IP do roteador da sua rede wifi  
IPAddress gateway(192, 168, 0, 1);  
//Mascara de rede da sua rede wifi  
IPAddress subnet(255, 255, 255, 0);  
//Criando o servidor web na porta 80  
WiFiServer server(80);

void setup(){  
// Serial.begin(9600);  
// ESPserial.begin(9600);  
// Iniciando o DHT  
// dht.begin();  
// corrente = determineVQ(PinoCorrente); //Quiscent output voltage - the average voltage ACS712 shows with no load (0 A)  
// Conectando na rede wifi  
//Conectando a� rede Wifi  
WiFi.config(ip, gateway, subnet);  
WiFi.begin(ssid, password);  
while (WiFi.status() != WL\_CONNECTED) {  
delay(500);  
}

```
               //Iniciando o servidor Web
            server.begin();

```

}

void loop() {

///////////////////////////////////////////////////////////////////////  
//Verificando se o servidor esta pronto.  
WiFiClient client = server.available();  
if (!client) {  
return;  
}

//Verificando se o servidor recebeu alguma requisicao  
while (!client.available()) {  
delay(1);  
}

//Obtendo a requisicao vinda do browser  
String req = client.readStringUntil(’\r’);  
client.flush();

//Iniciando o buffer que ira conter a pagina HTML que sera enviada para o browser.  
String buf = “”;  
//////////////////////////////////////////////////////////////////////////

float leitura\_corrente = readCurrent(PinoCorrente);//CHAMADA DA FUNÇAO PARA O CALCULO DA CORRENTE  
// Serial.println(“Enviando dados:”);  
[//Serial.println](https://Serial.println)(“Corrente:”);  
// Serial.println(leitura\_corrente);  
executarWifi(leitura\_corrente);  
float potencia=(tensao\*leitura\_corrente);  
String url=String(“GET /dweet/for/medidor\_consumo?”)  
+ “leitura\_corrente=”+ String(leitura\_corrente)  
+ “&potencia=” + String(potencia)  
+ " HTTP/1.1\r\n" + "Host: " + host + “\r\n” + “Connection: close\r\n\r\n”;

buf += “HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\n”;  
buf += “\<meta http-equiv=“refresh” content=“5”\>”;  
buf += “”;  
buf += “

### ESP8266 Servidor Web
”;  
buf += “

LED \<a href=”?function=led2\_on"\>LIGA\<a href="?function=led2\_off"\>DESLIGA

";  
buf += " CORRENTE: 
#### “+String(leitura\_corrente)+”
";  
buf += “URL REQUEST:
### ”+url+"
";  
buf += “”;  
buf += “\n”;

//Enviando para o browser a ‘pagina’ criada.  
client.print(buf);  
client.flush();  
delay(100);  
}

//read corrente  
float readCurrent(int PinoCorrente) {  
int current = 0;  
int sensitivity = 66;//change this to 100 for ACS712-20A or to 66 for ACS712-30A  
//read 5 samples to stabilise value  
for (int i=0; i\<200; i++) {  
current += abs(random(5,10));  
delay(1);  
}  
current = map(current/200, 0, 1023, 0, 5000);  
// Serial.println(“variavel de teste”);  
// Serial.println(current);  
return float(current)/sensitivity;  
}

//funcao wifi  
void executarWifi(float leitura\_corrente){

// Criando uma conexao TCP  
WiFiClient client;  
const int httpPort = 80;  
if (!client.connect(host, httpPort)) { return; }

//CALCULO DA POTENCIA  
float potencia=(tensao\*leitura\_corrente);  
// Serial.println(“potencia:”);  
// Serial.println(potencia);  
String url=String(“GET /dweet/for/medidor\_consumo?”)  
+ “leitura\_corrente=”+ String(leitura\_corrente)  
+ “&potencia=” + String(potencia)  
+ " HTTP/1.1\r\n" + "Host: " + host + “\r\n” + “Connection: close\r\n\r\n”;  
// Serial.println(“url:”);  
// Serial.println(url);  
// Enviando para o dweetb as leituras efetuadas  
client.print(url);

// Repetindo a cada 6 segundos  
delay(6000);

}
