Accès en http sur le arduino qui plante

Bonjour,
Je viens vers vous car j'ai un plantage inexpliqué. Je ne souhaite pas mettre mes règles métier sur le arduino mais sur un serveur web qui commande les relais via une url du type http://AAA/?rX=ON (AAA étant l'ip, X l'identifiant du relais). Bref tout fonctionne lorsqu'on accède directement à l'arduino via un navigateur mais quand je tente de le faire via une page php en utilisant fopen après le premier changement d'état sur une relais, l'arduino plante. Je suis bon pour un reset :disappointed_relieved:

	for (; ; ) {
	echo "debug canal_voulu = $canal_voulu - canal_actuel = $canal_actuel 
";
    if ($canal_actuel == $canal_voulu) {
	//On est arrivé au bout donc on mentionne le canal actif
	$query = "UPDATE correspondance SET canal_active = 1 WHERE id_canal = $canal_voulu";
	$result = mysqli_query($link, $query);
        break;
    }
	if($canal_voulu > $canal_actuel)
	{
	fopen($url_commande . $relai_canal_up."=ON","r");
	usleep(500000);
	fopen($url_commande . $relai_canal_up."=OFF","r");
    $canal_actuel++;
	}
	if($canal_voulu < $canal_actuel)
	{
	fopen($url_commande . $relai_canal_down."=ON","r");
	usleep(500000);
	fopen($url_commande . $relai_canal_down."=OFF","r");
    $canal_actuel--;
	}
	}

Merci d'avance à tous pour vos idées et bonne année à tous !

bonjour,
si tu utilise un server web pour controler un nono, utilise les socket

$ip = 192.168.1.xxx;

$host=$ip;  // Adresse ip défini dans le code arduino
$port=80;    // Port défini dans le code arduino
 $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
 socket_sendto($socket, $valeur1 , strlen($valeur1), 0, $host, $port);
 socket_close($socket);

Merci pour ta réponse, j'ai trouvé la solution à ma problématique. En effet, fopen pose un problème de buffer avec l'arduino, il faut utiliser file_get_contents si on "envoyer" à l'Arduino des commandes via le GET du HTTP.

tout dépend si tu veux envoyer en live les données vers le nono ou si c'est le nono qui interroge le server.

En fait, je n'attends aucun résultat, j'ai juste besoin d'adresser le nono sans retour :slight_smile:

JRCondat:
En fait, je n'attends aucun résultat, j'ai juste besoin d'adresser le nono sans retour :slight_smile:

j'ai pas demandé si tu voulais un retour du nono, mais comment tu veux que les données soient prises.
soit tu envoies directement via un script sur le server les données vers le nono
soit, c'est le nono qui va chercher les données inscrites sur le server via un script qui update la bdd

c'est pas la même chose.
vu ton bout de script php du début,
tu update une bdd
tu tente de mettre a jour le nono ou alors tu veux connaitre l'état du relais sur le nono

explique un peu mieux ce que tu veux faire exactement, sinon ca risque d'être dur de te mettre sur une piste.