arduino+GPRS SIM900 envois des données vers un serveur php+mysql

Bonjour,

j'ai un problème avec l'envois des données vers une page php avec le module GPRS shield SIM900 j'ai testé plusieur commande AT

.....

AT+CIPSTART="TCP","IP serveur","8020"
OK
Connect OK

AT+CIPSEND

GET /arduino/add.php?Distante=11 HTTP/1.1 (Ctrl+Enter, Enter depuis le terminal)
Host: http://IP serveur (Ctrl+Enter, Enter depuis le terminal / Ctrl+Enter, Enter depuis le terminal) => Ctrl+Z pour envoyer la requête

Send OK
Connexion Close

puis il affiche la reponse avec une erreur 400!!!

??

add.php

<?php include("conec.php"); $link=Conection(); if (isset($_GET['Distante'])) { $Distante = $_GET['Distante']; echo $Distante; $Sql = mysql_query("insert into Distance (Distante) VALUES ($Distante)",$link); mysql_close(); } ?>

====================================================================

Merci pour votre aide :slight_smile:

bonjour,

type de server et OS?
cette erreur est une mauvaise requete de la part du client ou requete mal comprise par le server.
regarde tes logs de connexion sur le server.
mais ta requete SQL me parait zarbi.
est ce qu'elle fonctionne avec un pc cette requete?

teste ca pour voir

<?PHP $db = mysql_connect('localhost', 'user', 'password'); mysql_select_db('name_bdd',$db); $sql = "insert into Distance (Distante) VALUES ('$Distante')"; mysql_query($sql) ; mysql_close(); ?>

Bonjour,

Host: http://IP serveur

Dans le champ "host" il faut le nom de domaine + sous domaine (si tu accèdes à un virtual hosts) du serveur pas un lien HTTP !

Bonjour Mrs. merci pour vos remarques

Pour vous répondre "infobarquee" la requête marche bien quand je tape le lien directement sur un browser : http://IP Srveur/arduino/add?Distante=123 beh la valeur s'ajoute dans la base de données!!!, mais je vais quand même tester votre script PHP :smiley:

Pour la remarque de "skywodd " c'est vrai que j'utilise l'IP dans le HOST pas male comme remarque merci je vais tester tout ça et je vous tiens au courant :smiley:

Merci pour tout

Au passage pour les curieux voici un exemple de requête et de réponse HTTP :

GET /forum/index.php?topic=148811.0 HTTP/1.1
Host: arduino.cc
User-Agent: Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.14
Accept: text/html
Accept-Language: fr
Accept-Charset: utf-8
HTTP/1.1 200 OK
Server: Apache
X-Powered-By: PHP/5.3.3
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Vary: Accept-Encoding
Last-Modified: Fri, 15 Feb 2013 18:22:54 GMT
Content-Type: text/html; charset=UTF-8
Date: Fri, 15 Feb 2013 18:22:54 GMT
Age: 0
Via: 1.1 varnish
Connection: keep-alive
X-Cache: MISS
Content-Length: 41862

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<meta name="description" content="arduino+GPRS SIM900 envois des données vers un serveur php+mysql" />
(...)

Bonsoir,

merci skywodd pour ton exemple ça marche très bien j'ai eu la même chose que toi :smiley:

mais dés que j'ai testé avec mon serveur ça ne marche pas même avec une simple page index.php

vu que j'utilise un port "8020" est-ce que je dois l'écrire dans le HOST ou pas??

un autre problème c que j'attaque d'abord mon mon réseau en passant par le firewall puis je dois atteindre mon serveur PHP qui est en local

sur le firewall le port 8020 est ouvert et qui donne accées au serveur PHP en port 80 !!!

Merci pour votre aide

Taoufiq:
vu que j'utilise un port "8020" est-ce que je dois l'écrire dans le HOST ou pas??

Oui tu dois le mettre dans le host.
Exemple :

Host: example.org:8080

Taoufiq:
un autre problème c que j'attaque d'abord mon mon réseau en passant par le firewall puis je dois atteindre mon serveur PHP qui est en local
sur le firewall le port 8020 est ouvert et qui donne accées au serveur PHP en port 80 !!!

Donc d'un point de vue "host" tu restes sur le port 80, mais tu te connectes physiquement sur le port 8020 de ton firewall.
Ton firewall est bien configuré ?

Bonsoir skywodd merci pour tes remarques :slight_smile:

oui le Firewall est bien configuré vu que je me connecte sur mon serveur PHP depuis mon adresse IP du domaine en utilisant le port 8020

j'attaque le port 8020 qui me donne accées à mon serveur php en port 80 (serveur apache en xampp => port 80)

Je viens de configuré le fichier de config d'apache pour que je puisse avoir accès de puis n'importe quel pc et network vu qu'il était configuré juste en localhost!!!

Je vous tient au courant si j'ai des nouvelles

Merci bcq pour les remarques iltéressantes :slight_smile:

Bonsoir à tous,

Voilà ça marche mtn yopiii :smiley: beh juste aprés que j'ai ajouté le host comme il faut (merci skywodd) il fallait ajouter ça en plus aprés le HOST => Accept : / et là j'ai eu le fameux HTTP/1.1 200 ok lol

AT+CIPSEND

GET /arduino/add.php?Distante=1 HTTP/1.1
HOST: mon.serveur.com:8020
Accept: /

Send OK

Voilà merci à tous et surtout skywodd
à la prochaine peut être

ciao :smiley:

Hello, c'est possible que il manque quelque "/" on le parole Accept. j'ai le probleme aussi.

Merci.