Bonjour à tous.
Je reviens vers vous car je bloque sur un projet.
Mon projet ; enregistrer des données acquises par un Arduino dans une DB.
hardware: Arduino MKR1000, serveur : Raspberry Pi4 model B serveur web NGINX
J'ai donc diviser ce projet en plusieurs morceaux.
1° Acquisition de données, OK (écriture sur carte SD et transfert en FTP vers un serveur)
2° Affichage des donnée instantanée (toutes les 10 sec), pour cela:
2 a : envoi des données vers un site (serveur) Web via la requête POST.
2 b : Affichage des donnée sur une page web
3° Ajout des données dans une DB.
État du projet:
Acquisition des donnée, OK
Sauvegarde sous forme de fichiers OK
Envoi vers un serveur de fichier via FTP PK (se fait toutes les heures)
Connexion en WiFi vers le serveur WEB, en tant que client de l'Arduino,ok
La requête HTTP GET me retourne bien la page index.php du site
Envoi de la requête HTTP POST : coté Arduino, semble bien fonctionner pas de code d'erreur et je reçoit la page index.php
Problème,les valeurs passée via la requête POST ne s'affiche pas sur la page index.php
Je ne suis pas certain de la structure du code de la requête(j'ai trouvé divers codes sur internet)
le code utilisé pour l'envoi de la requête est le suivant :
la variable 'machaine' contient: "?temp=22.61&hum=51.19"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Serial.print("********** Connection au Web server ***********\n"); int result = client.connect(server, 80); if (result == 1) { Serial.println("connected to server"); // Make a HTTP request: client.println("POST http://tsttemp/index.php HTTP/1.1"); client.println("Host: 192.168.1.8"); client.println("Connection: close"); client.println(); client.println("User-Agent: Arduino/1.0"); client.print("Content-Length: "); client.println(machaine.length()); //client.println(); client.println(machaine); client.println("Connection: close"); client.println(); Serial.println("\n\nSend OK Maintenant je lis..... \n\n");
j'obtient en retour:
J'ai supprimer les balise html
HTTP/1.1 200 OK
Server: nginx/1.22.1
Date: Mon, 11 Dec 2023 10:49:43 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
87
Bonjour !
array(0) {
}.................
J'ai essayé diverses manière de faire la requête HTTP, mais rien n'y fait.
Est ce mon code qui est mauvais ? ou la page index.php qui est mal écrite ?
J'ai essayé d'envoyer une requete HTTP POST avec python, mais j'ai des retours d'erreurs énorme.... problème de version ???
J'ai laissé tomber
Pour info, mon code php:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php $tt = $_POST['temp']; $rh = $_POST['hum']; echo 'Bonjour ' . htmlspecialchars($_POST["temp"]) . "!\r\n"; var_dump($_POST); ?> <html> <body> <h1> Ceci est le site tsttemp3 </h1> <?php echo 'temp= '.$tt;?> <br> <?php echo 'rh = '.$rh;?> <br> <?php print_r($_POST); ?> </body> </html>
Si quelqu'un voit où se trouve mon erreur, ou un tuto pour expliquer comment faire cette requête
merci
Michel
Partager