ESP32 communication WiFi avec smartphone Android

Bonjour,

J'ai pour projet de remplacer le module de commande (heure et durée de la charge en fonction de la température extérieure) d'un chauffage électrique par le sol.
L'électronique et la programmation ne me posent pas de problème sauf que je souhaiterais y ajouter une fonction : le pilotage en WiFi via une application sur smartphone Android.
Je dois avouer ne rien connaître de la manière de gérer la WiFi sur l'ESP32. J'ai donc cherché des exemples de code sur le net et j'arrive juste à me connecter à ma box.

J'ai (vainement) tenté de juste recevoir le caractère "A" envoyé par le smartphone et de lui retourner le texte "Réussi". Mais tout ce que j'obtiens c'est "Not found".

Voici le code IDE Arduino :

#include <WiFi.h>
#include <WebServer.h>
#include <WiFiMulti.h>

const char* ssid="xxxxxxxxxx";
const char* password="xxxxxxxxxx";

IPAddress ip(192, 168, 1, 99);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0); 

WiFiMulti wifimulti ;

WebServer serveurWeb(80);

void setup() {
  Serial.begin(115200);

  delay(5000);
  
  WiFi.config(ip, gateway, subnet);

    // We start by connecting to a WiFi network
    wifimulti.addAP(ssid,password);

    Serial.println();
    Serial.println();
    Serial.print("Waiting for WiFi... ");

    while(wifimulti.run() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
    }

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());

    serveurWeb.on("A",envoi);
    serveurWeb.begin();
}

void loop() {
  serveurWeb.handleClient();
}

void envoi() {
  Serial.println("Demande réussie");
  serveurWeb.send(200, "text/html", "Réussi\n");
}

Toute aide me sera bien utile.

Bonne journée.

L'URL est plutôt "/A" non ?

Il manque pas mal de choses pour que ce soit une page HTML. Voir un tuto :
http://emery.claude.free.fr/esp32-serveur-web-simple.html

Bonjour
application android développée sur quelle base?

Merci pour cette réponse rapide.

C'est en fait ce que je craignais : tout doit être fait en html (auquel je ne connais rien). Dans mon projet, il me faut en fait créer plusieurs boutons qui doivent envoyer des paramètres à l'ESP32. Au vu de l'exemple du tuto, je crois que je vais passer par une connexion en bluetooth que je maîtrise nettement mieux pour l'avoir déjà utilisée. Et tant pis pour la portée réduite de la communication :wink:

Merci quand même et bonne journée.

Bonjour,

Appli créée sur app inventor du MIT. Mais, cf ma réponse à @hbachetti, je vais me rabattre sur le bluetooth que je maîtrise nettement mieux.

Bonne journée.

Actuellement je vois une application WebServer côté ESP32, donc accessible via un navigateur côté téléphone.
J'espère que tes ssid et password sont des fakes ... sinon édite ton post
C'est fait

Merci pour la correction.

Comme je l'ai indiqué, je vais me tourner vers le bluetooth (beaucoup plus simple pour mes modestes connaissances). Je n'utiliserai le wifi que pour mettre à jour un RTC DS3231 une fois par mois (ça je sais faire) et le bluetooth pour la communication avec l'appli de commande (en alternant les connexions pour éviter tout problème).

Bonne journée.

hier j'ai posté un tout petit bout de code dans cette discussion ➜ ESPAsyncWebServer POST method for any example with GUI working? - #3 by adamelli

l'interface se compose de 2 boutons (on peut en rajouter en rajoutant des <input type='submit' name='Nxxx' value='Vxxx'> ) et quand vous clickez sur le bouton dans le navigateur web ça envoie une requête de type POST qui déclenche l'appel de la fonction action().

Pour le moment cette fonction ne fait qu'imprimer ce qu'elle reçoit dans le POST, par exemple si vous avez mis Nxxx comme name et Vxxx comme value, le

Serial.printf("POST[%s]: %s\n", p->name().c_str(), p->value().c_str());

va imprimer POST[Nxxx]: Vxxx

en comparant simplement donc p->name() avec le nom des boutons vous pouvez savoir celui qui a été pressé

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.