Sto imparando a lavorare con la comunicazione client - server. Sono in grado di comunicare con il mio server e in grado di memorizzare i valori nella tabella. Ma voglio ricevere uno dei dati specifici dal database.
Qui voglio ottenere il valore "abc" dalla colonna "Current" da memorizzare in una variabile nel mio Arduino.
Di seguito è riportato il codice che ho fatto fino ad ora. Sarei davvero felice se potessi risolvere il problema.
Ecco la struttura del mio database
---------------- ----------------------------------- | Dispositivo | Precedente | Avanti | Distanza | Corrente | -------------------------------------------------- - | katup123 | xyz | abc | 2.600 | abc | -------------------------------------------------- -
Ecco il mio codice PHP:
locator.php
<? php $ con = mysqli_connect ("your_domain.com "," peter "," abc123 "," locate "); // Controlla la connessioneif (mysqli_connect_errno ()) {echo" Impossibile connettersi a MySQL: ". mysqli_connect_error ();} $ risultato = mysqli_query ($ con, "SELECT Current FROM locate WHERE Device = 'katup123'"); while ($ row = mysqli_fetch_array ($ result)) {echo $ row ['Current']; echo "<br>"; }? >
Ecco il mio codice Arduino:
// Includere la libreria GSM # includere <GSM.h> # definire PINNUMBER "" // Dati APN #define GPRS_APN "GPRS_APN" // sostituisci il tuo GPRS APNgpsll # definisci GPRS_LOGIN "login" // sostituisci con il tuo login GPRS # definisci GPRS_PASSWORD "password" // sostituisci con la tua password GPRS // inizializza l'istanza della libreriaGSM gsmAccess; GSMClient client; GPRS gprs; // URL, percorso & port (ad esempio: arduino.cc) char server [] = "tuo_dominio.com"; char path [] = "/locater.php";int port = 80; // la porta 80 è quella predefinita per HTTPvoid setup () {Serial.begin (9600); Serial.println ("Avvio del client web Arduino."); // stato della connessione booleano notConnected = true; // Avvia scudo GSM
// Se la tua SIM ha un PIN, passalo come parametro di begin () tra virgolette while (notConnected) {if ((gsmAccess.begin (PINNUMBER) == GSM_READY) & (gprs.attachGPRS (GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) = = GPRS_READY)) notConnected = false; else {Serial.println ("Non connesso"); ritardo (1000); }} Serial.println ("GSM inizializzato"); Serial.println ("connessione ...");} void loop () {char risultato [20]; Serial.print ("Connessione al database del server"); if (client.connect (server, port)) {client.print ("GET /locator.php?"); Serial.print ("GET /locator.php?"); client.println ("HTTP / 1.1"); Serial.println ("HTTP / 1.1"); client.println ("Host: www.tuo_dominio.com"); Serial.println ("Host: www.your_domain.com"); client.println ("User-Agent: Arduino"); Serial.println ("User-Agent: Arduino"); client.println ("Accetta: text / html"); Serial.println ("Accetta: text / html"); client.println ("Connessione: chiudi"); Serial.println ("Connection: close"); client.println (); Serial.println (); Serial.println ("\ nCOMPLETE! \ N"); client.stop (); } else {Serial.println ("connessione non riuscita"); Serial.println ("\ n FAILED! \ N"); } delay (5000);}
Qui voglio memorizzare il valore "abc" nella mia variabile "risultato". Non so come farlo.