Go Down

Topic: Obtener datos de MySQL a arduino por PHP (Read 241 times) previous topic - next topic

JUANDEUTM

Hola comidad de Arduino

Estoy haciendo un proyecto de unos sensores de proximidad manden datos de su capacidad a MySQL por medio de modulos wi-fi ESP8266 y otros que reciban sus datos, lean su capacidad y manden alarma, pero no he encontrado en internet ejemplos parecidos, si he encontrado de arduino a php pero no viserversa, no se si es igual o que me falta. Ayuda

PHP (Quiero el $extraido2)
Code: [Select]

<?php

function mostrarDatos ($resultados) {

if (
$resultados !=NULL) {

echo 
$resultados['Capacidad']."<br/>";

}

}

$link mysqli_connect("*********","**********""******");

mysqli_select_db($link"db");

$tildes $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes correctamente

$result mysqli_query($link"SELECT * FROM area");

$extraido1mysqli_fetch_array($result);

mostrarDatos($extraido1);

$extraido2mysqli_fetch_array($result);

mostrarDatos($extraido2);

$extraido3mysqli_fetch_array($result);

mostrarDatos($extraido3);

$extraido4mysqli_fetch_array($result);

mostrarDatos($extraido4);

mysqli_free_result($result);

mysqli_close($link);

?>




Arduino
Code: [Select]

 #include <WiFiManager.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>

WiFiClient client;
MySQL_Connection conn((Client *)&client);


IPAddress server_addr(192, 168, 43, 18);          // MySQL server IP ---------------DIRECCCION IPv4
char user[] = "*******";           // MySQL user
char password[] = "*******";       // MySQL password

void setup() {
  Serial.begin(9600);
    WiFiManager wifiManager;
 //reset saved settings
 //wifiManager.resetSettings();
 
 //set custom ip for portal
 //wifiManager.setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0));

 //fetches ssid and pass from eeprom and tries to connect
 //if it does not connect it starts an access point with the specified name
 //here "AutoConnectAP"
 //and goes into a blocking loop awaiting configuration
 wifiManager.autoConnect("AutoConnectAP");
 //or use this for auto generated name ESP + ChipID
 //wifiManager.autoConnect();
 
 //if you get here you have connected to the WiFi
 Serial.println("connected...yeey :)");
  Serial.println("Connecting to database");

  while (conn.connect(server_addr, 3306, user, password) != true) {
    delay(200);
    Serial.print ( "." );

  Serial.println("");
  Serial.println("Connected to SQL Server!"); 
}


   client.print("GET /conexion/prueba.php?extraido2="); // Enviamos los datos por GET
    client.print(temperatura); //AQUI VA LA VARAIABLE DEL VALOR A INGRESAR PERO Y O QUIERO OBTENER
}

void loop() {
}


PeterKantTropus

#1
Jul 15, 2019, 04:51 pm Last Edit: Jul 15, 2019, 04:53 pm by PeterKantTropus
Discúlpame, no me queda en claro lo que pretendes ¿quieres que muchos esp pregunte datos y escriba a Mysql mediante PHP?
Si es eso, te estas metiendo en camisa de once varas, es mas fácil una arquitectura Maestro-esclavo, donde  solo el maestro pregunta o escribe. De hecho te aconsejaría utilizar un protocolo ya establecido, como modbus (el trabajo de programar la comunicación lo hizo otro) . El problema de utilizar el protocolo HTML para intercambiar mensajes, es que cuando crezca el numero de información o equipos, crecerá mucho mas la complejidad de tu programa.  Ese es el motivo que no encuentras ejemplos complejos de comunicación con GET o PUT en PHP.
"Si no entra como tornillo, entra como clavo"

therascio

Aquí tienes un tutorial de como usar JSON, puede servirte con tu proyecto.
https://randomnerdtutorials.com/decoding-and-encoding-json-with-arduino-or-esp8266/

Go Up