Nueva pregunta

Pregunta:

Fecha: 20-11-2020 13:12:21 (En Español)

ayuda, tengo instalado un sensor en arduino y quiero enviar el dato a una BD phpmyadmin inst. en la placa Raspberry pi, pero no me envía el dato, agradeceré su ayuda.[No resuelta]

mi código
#include <Ethernet.h>
#include <SPI.h>
#include <MySQL_Connection.h>
// Configuracion del Ethernet Shield
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xEE}; // Direccion MAC
byte ip[] = { 192,168,0,9 }; // Direccion IP del Arduino
byte server[] = { 192,168,0,6 }; // Direccion IP del servidor
EthernetClient client;
float temperatura;
int analog_pin = 0;

void setup(void) {
Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
delay(1000); // Esperamos 1 segundo de cortesia
Serial.begin(9600);
}

void loop(void) {
temperatura = analogRead(analog_pin);
temperatura = 5.0*temperatura*100.0/1024.0;
//Display in Serial Monitor
Serial.print(temperatura); //Return temperature to Monitor
Serial.println(" oC");
// Proceso de envio de muestras al servidor
Serial.println("Connecting...");
if (client.connect(server, 80)>0) { // Conexion con el servidor
client.print("GET /tutoiot/iot.php?valor="); // Envio los datos por GET NOTA: e puesto /iot.php? y config.php,
client.print(temperatura);
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Conectado");
} else {
Serial.println("Fallo en la conexion");
}
if (!client.connected()) {
Serial.println("Disconnected!");
}
client.stop();
client.flush();
delay(30000); // Espero un minuto antes de tomar otra muestra
}


mis scrips o archivos creados son los siguientes:
sudo nano /var/www/html/config.php
<?php
// config.php
// Credenciales
$dbhost = "localhost";
$dbuser = "pi";
$dbpass = "pi";
$dbname = "bdpi";
//Conexion con la base de datos
$con = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
?>
sudo nano /var/www/html/dht11.php
<?php
// dht11.php
//Importamos la configuracion
require("config.php");
// Leemos los valores que nos llegan por GET
$Temperatura = mysqli_real_escape_string($con, $_GET['valor']);
// Einsertamos los valores en la tabla
$query = "INSERT INTO Valores(valor) VALUES('".$valor."')";
// Ejecutamos la instruccion
mysqli_query($con, $query);
mysqli_close($con);
?>
mi base de datos se llama: bdpi y mi tabla se llama: valores con la extructura de id, valor y tiempo.
y en el monitor serial si aparece el valor del sensor





Etiquetas: $_GET - MariaDB - MySQL - MySQL Desarrollo - PHP MySQLi - phpMyAdmin - Privilegios - Protocolos - Script PHP - Servidor SSH - SQL Server Votos: 0 - Respuestas: 2 - Vistas: 5 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 21-11-2020 02:30:20 ¿Podrías marcar tu código con las etiquetas del editor de mensajes? Así sería mucho más simple de leer y comentar.

    Por otra parte, veo que tienes una parte que es código C, ¿puede ser?
      Votos: 1 - Link respuesta
     
  • Fecha: 25-11-2020 07:27:23 Sí, la primera parte es el código del cliente (Arduino).

    La siguiente es el código PHP para el servidor.

    Me parece que la falla está aquí:

    // Leemos los valores que nos llegan por GET
    $Temperatura = mysqli_real_escape_string($con, $_GET['valor']);
    // Einsertamos los valores en la tabla
    $query = "INSERT INTO Valores(valor) VALUES('".$valor."')";
    


    Debería de ser así:
    // Leemos los valores que nos llegan por GET
    $Temperatura = mysqli_real_escape_string($con, $_GET['valor']);
    // Einsertamos los valores en la tabla
    $query = "INSERT INTO Valores(valor) VALUES('".$Temperatura."')"; //<- El nombre de variable estaba mal
    
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión