lourenco2233
(usa openSUSE)
Enviado em 05/12/2018 - 17:12h
estou com problemas para enviar os dados do arduino para um servidor php.
//bibliotecas
#include <SPI.h>
#include <Ethernet.h>
#include "EmonLib.h"
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 }; //endereço mac
byte servidor[] = { 192,168,1,10 }; //endereço IP
#define portaHTTP 80 //porta serial
EthernetClient cliente;
EnergyMonitor SCT013;
//===========================================================================
// codigo mesclado
//float potencia = 0;
//float agua = 2;
int pinSCT = A0; //Pino analógico conectado ao SCT-013
int tensao = 127;
int potencia; //variavel para medir a potencia
int contaPulso; //Variável para a quantidade de pulsos
int i=0; //Variável para contagem
float vazao; //Variável para armazenar o valor em L/min
float media=0; //Variável para tirar a média a cada 1 minuto
float Litros = 0; //Variavel para quantidade de agua
float MiliLitros = 0; //Variavel para conversão
//===========================================================================
void setup(){
Serial.begin(9600);
Ethernet.begin(mac);
if(Ethernet.begin(mac) == 0){
Serial.println("Falha ao conectar");
Ethernet.begin(mac);
}
Serial.print("Conectado a rede, no ip:");
Serial.println(Ethernet.localIP());
}
void loop() {
//===========================================================================
// codigo aqui
double Irms = SCT013.calcIrms(1480); // Calcula o valor da Corrente
potencia = Irms * tensao; // Calcula o valor da Potencia Instantanea
contaPulso = 0; //Zera a variável para contar os giros por segundos
sei(); //Habilita interrupção
delay (1000); //Aguarda 1 segundo
cli(); //Desabilita interrupção
vazao = contaPulso / 5.5; //Converte para L/min
media=media+vazao; //Soma a vazão para o calculo da media
MiliLitros = vazao / 60;
Litros = Litros + MiliLitros;
i++;
// energia = potencia;
// agua = media;
//===========================================================================
if(cliente.available()){
char c = cliente.read();
Serial.print(c);
}
if (!cliente.connected()){
cliente.stop();
}
char comando = Serial.read();
if(comando == '1'){
//potencia++; agua++;
Serial.println("Conectando ao servidor e dados: ");
Serial.print("Potencia/W: ");
Serial.println(potencia);
Serial.print("Agua/L: ");
Serial.println(Litros);
if(cliente.connect(servidor, portaHTTP)){
//http://localhost/arduino/teste.php?e=0&a=0
cliente.print("POST /arduino/teste.php");
cliente.print("?P=");
cliente.print(potencia);
cliente.print("&L=");
cliente.print(Litros);
cliente.println(" HTTP/1.0");
cliente.println("Host: 192.168.1.10");
cliente.println("Connection: close");
cliente.println();
}else{
Serial.println("Falha ao conectar ao servidor");
}
}
}
MONITOR SERIAL:
Conectado a rede, no ip: 192.168.1.2
Conectado ao servidor e dados:
Potencia/W: 0
Agua/L: 0.00
HTTP/1.1 200 ok
Date: Wed, 05 Dec 2018 18:58:09 GMT
Server: Apache/2.4.35 (Win32) OpenSSL/1. 1. 0