Envoi d une url depuis esp8266 12e

Forum dédié aux bricolages d'objets connectés IOT et leurs communications avec DomoticZ :
- Remplacement de firmware des prises, modules relais ...
- Fabrication à base d'ESP8266, de NodeMCU, de Weemos et consorts ...
bildu60
Messages : 4
Inscription : 03 nov. 2018, 21:58

Envoi d une url depuis esp8266 12e

Message par bildu60 »

Bonjour à tous
Je débute avec esp8266 12e et la programmation en c.Pour l instant je me suis contenté d y connecter une LED ou un capteur d humidité/température et un capteur de luminosité.J'arrive a lire l état de ces capteurs sur une mini page web hébergée sur l esp (via mon navigateur sur mon PC). Cela pour la réception d information venant de l extérieur.Je peux aussi envoyer des mail avec l esp (pour m envoyer des notifications selon les états des capteurs.
J'ai également un Raspberry pi sur lequel est installé un serveur apache.
Sur ce serveur il y a des page en PHP et quand je tape dans mon navigateur ,l URL de ces page web des scripts écrits en PHP s’exécutent.
Je voulais savoir si je pouvais envoyer depuis l esp ces URL pour exécuter ces scripts en PHP.
Merci de votre aide.
Il va de soi que je partagerais ma maigre expérience.
A bientôt et merci à ceux qui prendront le temps de lire mon message.
bildu60
Messages : 4
Inscription : 03 nov. 2018, 21:58

Re: Envoi d une url depuis esp8266 12e

Message par bildu60 »

Bonsoir à tous.
Je me répond à moi mème,juste pour partager.Si je trouve le bouton résolue,j'en profiterai pour marquer ce sujet.
Bon comme je l ai dis j'ai un Raspberry qui héberge un serveur apache.Sur ce serveur j'ai des page en PHP qui exécute un script quand elle s’ouvre sur un navigateur.Une des pages en PHP contient un script qui doit enregistrer des données dans une base de données SQL (la donnée "message"et la donnée "numéro"). Voila le code que j ai injecté dans mon esp8266 12e.

Code : Tout sélectionner

#include <ESP8266WiFi.h>


const char* ssid = "xxxxxxxx";
const char* password = "xxxxxxxxxxxx";

const char* host = "192.168.1.14";
const int httpPort = 80;

void setup() {
Serial.begin(115200);
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());

WiFiClient client;
Serial.print("connecting to ");
Serial.println(host);
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}

String url = "/monsite/sms/esp.php?numero=000000&message=000000";
Serial.print("requesting URL: ");
Serial.println(url);

client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"User-Agent: BuildFailureDetectorESP8266\r\n" +
"Connection: close\r\n\r\n");

Serial.println("request sent");
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("headers received");
break;
}
}
String line = client.readStringUntil('\n');

Serial.println("reply was:");
Serial.println("==========");
Serial.println(line);
Serial.println("==========");
Serial.println("closing connection");
}

void loop() {
} 
et voici le code de ma page PHP

Code : Tout sélectionner

<?php
// Connexion à la base de données
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=gammu;charset=utf8', 'xxxx', 'xxxx');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO outbox (DestinationNumber, TextDecoded) VALUES(?, ?)');
$req->execute(array($_GET['numero'], $_GET['message']));


?>
requette envoye
On peut voir dans la requette que je passe mes données dans l'URL de ma requette.
Voila si ça peut servir a d'autre...
Répondre