Boas a todos.
Fiz o seguinte sketch no arduino:
#include <SPI.h>
#include <Ethernet.h>
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 2
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(192,168,10,203);
EthernetClient client;
void setup()
{
Serial.begin(9600);
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
for(;;)
;
}
delay(1000);
Serial.println("connecting...");
if (client.connect(server, 80))
{
Serial.println("connected");
}
else
{
Serial.println("connection failed");
}
}
void loop()
{
int chk = DHT11.read(DHT11PIN);
Serial.print("Read sensor: ");
switch (chk)
{
case 0:
Serial.println("OK");
break;
case -1:
Serial.println("Checksum error");
break;
case -2:
Serial.println("Time out error");
break;
default:
Serial.println("Unknown error");
break;
}
Serial.println("Sending Data...");
float hum=DHT11.humidity;
float temp=DHT11.temperature;
float dew=DHT11.dewPoint();
client.print("GET /registar.php?hum=");
client.print(hum,DEC);
client.print("&temp=");
client.print(temp,DEC);
client.print("&dew=");
client.print(dew,DEC);
client.println(" HTTP/1.1");
client.println("Host: arduino1");
client.println();
Serial.println("Data Sent...");
Serial.print("Humidade: ");
Serial.print(hum);
Serial.println("%");
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println("*C");
Serial.print("Ponto de Orvalho: ");
Serial.print(dew);
Serial.println("*C");
while(client.available())
{
char c = client.read();
Serial.print(c);
}
delay(60000);
}
O script PHP é o seguinte:
<?php
$user=""; //aqui o user correcto
$password=""; //aqui a pass correcta
$server="localhost";
$database="meteo";
mysql_connect($server,$user,$password);
@mysql_select_db($database) or die( "Base de Dados inválida...");
$temp=$_GET['temp'];
$hum=$_GET['hum'];
$dew=$_GET['dew'];
$tstamp=date("Y-m-d H:m:s", time());
$query = "INSERT INTO `dados`(`Temp`, `Hum`, `Dew`) VALUES (round($temp,2),round($hum,2),round($dew,2))";
mysql_query($query);
mysql_close();
echo "Dados Guardados";
?>
Agora surgiu o seguinte problema: quando abro o serial monitor a informação é enviada para o PHP e registada apenas 1 vez - aparentemente o loop só é executado uma vez.
Sei que o problema não é do PHP, pois a informação é registada durante a 1ª execução do sketch e se correr o PHP directamente no browser.
Agradeço qualquer dica e/ou ajuda.