Go Down

Topic: Enviar datos sensores a php (Read 1 time) previous topic - next topic

lexortus

Buenas tardes, llevo varios días intentando encontrar algún tutorial que envíe los datos obtenidos por un sensor a través de ethernet shield a una pagina php, la cual realizara tratamiento de dichas variables y valores, pero todo lo que encuentro requiere abrir la pagina y que esta recoja los datos del arduino, y lo que preciso es que el arduino envíe cada ciertos segundos la información de los sensores a la pagina php que esta en un servidor local tal que el arduino tiene la ip "192.168.1.201" y el servidor es "192.168.1.10/sensores/sensor.php", ya la web sensor.php tratara las variables en función de los valores para subirlas a una bbdd y realizar acciones según dichos valores.

GO_zalo


lexortus

SOLUCIONADO:
Recoge la información de temperatura y humedad del DHT11 y la envía a una pagina php para su procesamiento, precisa librería DHT

// InternetDeLasCosas.cl
// Script que obtiene la temperatura desde un sensor LM35
// y la envia a un servidor web
//
// Escrito por @joniuz

#include <SPI.h>
#include <Ethernet.h>
//// sensor dht11
// Libreria para Sensores DHT
#include "DHT.h"

#define DHTPIN 2     // Pin del Arduino al cual esta conectado el pin 2 del sensor

// Descomentar segun el tipo de sensor DHT usado
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
//// Finn dht 11

// Mac unica de cada EthernetShield (deben cambiarla)
//byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x4E, 0xD7 };
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Descomentar esta linea si se desea un IP fijo
IPAddress ip(192,168,1,177);

// Descomentar esta linea para asignar un DNS fijo
IPAddress myDns(8,8,8,8);

// Direccion del servidor
IPAddress server(192,168,1,10);
//char server[] = "http://192.168.1.10/telecoconta/";

// Inicializa la instancia client
EthernetClient client;


// Variable de tiempo de la ultima conexion en milisegundos
unsigned long ultimaConexion = 0;          
// Estado de la ultima conexion
boolean ultimoEstado = false;
// Intervalo en milisegundos entre conexiones
const unsigned long intervaloConexion = 2000;  


//// Datos del sensor
// Inicializa el sensor
DHT dht(DHTPIN, DHTTYPE);

// Configura Arduino
void setup() {
Serial.begin(9600);
Serial.println("InternetdelasCosas.cl\n\nPrueba de sensor DHTxx!");

// Espera 1 segundo para que se inicie la tarjeta Ethernet
delay(1000);
Ethernet.begin(mac, ip, myDns);
Serial.print("Direccion IP: ");
Serial.println(Ethernet.localIP());
dht.begin();
}

void loop() {
// Espera dos segundos para realizar la primera medición.
delay(10000);

// Lee los datos entregados por el sensor, cada lectura demora 250 milisegundos
// El sensor muestrea la temperatura cada 2 segundos}

// Obtiene la Humedad
float h = dht.readHumidity();
// Obtiene la Temperatura en Celsius
float t = dht.readTemperature();
// Control de errores, valida que se obtuvieron valores para los datos medidos
if (isnan(h) || isnan(t)) {
Serial.println("Falla al leer el sensor DHT!");
return;
}

Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C ");

       if (client.connect(server, 80)) {
float t2 = dht.readTemperature();
       float h2 = dht.readHumidity();
// Envia el dato al puerto serial
Serial.print("Sensor DHT11: ");
Serial.print(t2);
Serial.println(" grados Celsius");
// Envia el requerimiento al servidor via GET
Serial.println("Iniciando conexion...");
client.print("GET /telecoconta/domotica.php?t=");
client.print(t2);
client.print("&h=");
client.print(h2);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(server);
client.println("User-Agent: Arduino-Ethernet");
client.println("Connection: close");
client.println();

// Actualiza el tiempo en milisegundos de la ultima conexion
ultimaConexion = millis();
}
else {
// Si la conexion fallo se desconecta
Serial.println("Error al conectarse al servidor");
Serial.println("Desconectando...");
client.stop();
}

}

//// Fin datos sensor

lexortus

Ahora necesito poder pasarle desde php en base a la temperatura obtenida que active uno, dos, tres, cuatro o ninguno de los relés que le voy a conectar. Alguien me puede ayudar?

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy