Buenas tardes,
Os escribo por si me podéis ayudar con la programación la cual no termino de entenderla.
El propósito es que los datos de temperatura y humedad se suban a la base de datos con la fecha de la toma de datos.
Pero no termino de entender el archivo enviardatos y el formulario
Donde empieza a fallar?
Que comprobaciones tengo que seguir para saber que mysql y phpmyadmin estén correctamente configurados?
Si me podéis ayudarme os lo agradecería.
Si el tema esta mal colocado o no corresponde, perdónenme.
Primero os lo pondré todo.
1.- Conexión DHT11 a Nodemcu
2.- Código Arduino IDE
3.- Archivos enviardatos.php y formulario.html
4.- Creación Tabla en phpMyAdmin.
1.- DTH11 conectado a D4 y a 3v y GNG
2.- Código en Arduino IDE:
#include <DHT11.h>
#include <ESP8266WiFi.h>
DHT11 dht11(D4);
const char* ssid = "xxxxxxxx";
const char* password = "xxxxxxxx";
const char* host = "sanxxxvis.ddns.net";
void setup()
{
Serial.begin(9600);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop()
{
int err;
float temp, hum;
if ((err = dht11.read(hum, temp)) == 0)
{
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.print(" Humedad: ");
Serial.print(hum);
Serial.println();
}
else
{
Serial.println();
Serial.print("Error Num :");
Serial.print(err);
Serial.println();
}
Serial.print("connecting to ");
Serial.println(host);
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
// We now create a URL for the request
String url = "/enviardatos.php";
String key = "?pass=1234";
String dato1 = "&Temperatura=";
String dato2 = "&Humedad=";
Serial.print("Requesting URL: ");
Serial.println(url);
// This will send the request to the server
client.print(String("GET ") + url + key + dato1 + temp + dato2 + hum + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
delay(30000);
}
3.- Archivo enviardatos.php
<?php
$link = mysql_connect("sanxxxvis.ddns.net", "", "") or die('No se pudo conectar: ' . mysql_error());
echo "Conexión establecida";
mysql_select_db("nodtemp") or die('No se pudo seleccionar la base de datos');
mysql_query("SET NAMES 'utf8'");
$chipid = $_POST ['chipid'];
$temperatura = $_POST ['temperatura'];
$humedad = $_POST ['humedad'];
mysql_query("INSERT INTO `nodtemp`.`datos` (`id`, `chipid`, `fecha`, `temperatura`, `humedad`) VALUES (NULL, '$chipid', CURRENT_TIMESTAMP, '$temperatura', `$humedad`);");
mysql_close();
echo "Datos ingresados correctamente.";
?>
Archivo formulario.html
<!DOCTYPE html>
<html>
<head>
<title>Formulario</title>
</head>
<body>
<form action="enviardatos.php" method="POST">
ChipID:
<input type="text" name="chipID">
Temperatura:
<input type="text" name="temperatura">
Humedad:
<input type="text" name="humedad">
<input type="submit" name="Enviar">
</body>
</html>
4.- Captura de phpmyadmin
- Los dos datos que hay en el phpmyadmin los he introducido manualmente.
https://drive.google.com/open?id=0B8LrG21NBbCbZUU1TmQxbWY4c25BcEg2Y2xfRlVselFOU2ww
https://drive.google.com/open?id=0B8LrG21NBbCbam83QjJCRW5iSkgyYzlqcTEzdVh6Zm12N1lZ
5.- Server
https://drive.google.com/open?id=0B8LrG21NBbCbOXEtd1BGaXAzaEJ6Z3ZCMElFY2UtcG53QnMw