ESP8266 - Application Android

Fichier attaché: 

Commentaires

Portrait de bacquy

Salut,

Encore une super vidéo.

Pour celles et ceux qui veulent en apprendre plus sur Python j'ai trouvé ce cours:

https://openclassrooms.com/courses/apprenez-a-programmer-en-python

Merci Alex pour tes vidéos.

Portrait de Alex

Merci Bacquy!

Je me suis légèrement trompé, c'est pas du python mais du LUA, enfin bref, ça n'a pas beaucoup d'importance pour nous car on n'a pas besoin de l'orientation objet parce que c'est la seule différence.

Merci aussi pour le cours.

Portrait de bacquy

Effectivement je n'ai pas pris le temps de bien regardé... ce n'est pas du Python.

Python reste tout de même très utile pour celles et ceux qui veulent faire communiquer leur arduino à leur PC ou Raspberry Pi

Sinon pour LUA j'ai trouvé ceci.

 

Portrait de bc38

Bonjour,

En suivant la video j'ai réussi à faire fonctionner les leds en local, mais je bloque sur la redirection de port. Dans ma box (alicebox) j'ai plusieurs possibilités udp, tcp... J'ai essayé plusieurs settings mais malheureusement sans succès. Par ailleurs il faut que j'éteigne et rallume ma box pour que les modifications soient prises en compte et cela change l'adresse IP de l'ESP... Je tourne en rond... Existe-t-il d'autres possibilités ? Merci de ton aide.

Bruno

Portrait de Alex

Bonjour,

Malheureusement je ne connais pas d'autre possibilité et je doute qu'il en existe une.

Certains qu'une redirection TCP ne fonctionne pas?

Quelle est votre box?

Portrait de bc38

Finalement et grâce à l'aide du forum j'ai réussi à faire fonctionner des ESP avec des adresses ip différentes et avec ces adresses redirigées chacune sur un port de ma box.

Merci à tous

Portrait de bacquy

il va te falloir deux redirections une UDP et une TCP sur le port 80

Pour ce qui est de ton adresse IP de l'ESP qui change il faut que tu regarde dans ton Alice Box au niveau du DHCP si tu peux configurer une reservation d'adresse IP pour l'adresse MAC de ton ESP (assure toi que cette adresse ip n'est pas déjà utilisée par un autre de tes PCs ou appareils mobile.)

TCP/UDP

Reservation IP sur Alice Box

Bon courage t'y es presque

 

Portrait de cyril

Pas mal! Tu nous a mis l'application android? C'est bien ça? Comment ont fait? On charge l'application depuis app inventor? Ont peut ensuite la modifier?

Portrait de Cédric29

Cette carte est minuscule ! 15mm x25 mm, de quoi réaliser de beau projet

Portrait de julio

Bonjour,

Je n'arrive pas à faire fonctionner les leds en local depuis l'application andoid : Est ce normal après l'adresse IP transmise est 192.168.1.XX  j'ai le message qui suit : init.lua:21 : only once tcp server allowed ?

Portrait de julio

J'ai trouvé ce fichier init.lua qui fonctionne. Il suffit d'appeler l'adresse IP 192.168.1.xx dans le navigateur internet pour faire apparaitre les boutons allumer ou éteindre les leds :

-----------------------------------------------------------------

wifi.setmode(wifi.STATION)
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")
print(wifi.sta.getip())
led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
    conn:on("receive", function(client,request)
        local buf = "";
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        if(method == nil)then
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
        end
        local _GET = {}
        if (vars ~= nil)then
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
                _GET[k] = v
            end
        end
        buf = buf.."<h1> ESP8266 Web Server</h1>";
        buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
        buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF2\"><button>OFF</button></a></p>";
        local _on,_off = "",""
        if(_GET.pin == "ON1")then
              gpio.write(led1, gpio.HIGH);
        elseif(_GET.pin == "OFF1")then
              gpio.write(led1, gpio.LOW);
        elseif(_GET.pin == "ON2")then
              gpio.write(led2, gpio.HIGH);
        elseif(_GET.pin == "OFF2")then
              gpio.write(led2, gpio.LOW);
        end
        client:send(buf);
        client:close();
        collectgarbage();
    end)
end)

-----------------------------------------------------------------

 

Portrait de Alex

Je suis entièrement d'accord avec toi.

NodeMCU n'est plus la meilleure option.

J'ai une WeMos D1 d'ailleurs et je trouve qu'avec la librarie ESP8266 c'est encore plus simple et plus stable.

Je prévois de faire une vidéo dans le mois d'Avril ou Mai pour faire une application connecté utilisant l'ESP8266 des relais et une caméra IP.

J'utiliserai la librairie ESP8266 et non plus le NodeMCU.

Ca devrait vous plaire je pense.

Portrait de tracolin

Merci pour votre code, ça marche nickel pour moi et je trouve ça bien plus simple aussi.

Par contre ça se plante de temps en temps et j'ai ça en sortie :

Exception (0):
epc1=0x40218be0 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

ctx: sys 
sp: 3ffffda0 end: 3fffffb0 offset: 01a0

>>>stack>>>
3fffff40:  402133c1 3ffe8fb0 3ffe8920 00000001  
3fffff50:  402134a4 3ffe8fb4 3ffe8920 004b683e  
3fffff60:  00000001 401032d2 3ffe8d40 3ffec980  
3fffff70:  4020d67d 40103473 00000000 00000000  
3fffff80:  4020d6c2 3fffdab0 00000000 3fffdcb0  
3fffff90:  3ffe8940 3fffdab0 00000000 3fffdcc0  
3fffffa0:  40000f49 40000f49 3fffdab0 40000f49  
<<<stack<<<

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1264, room 16 
tail 0
chksum 0x42
csum 0x42
~ld

ça redémarre après... vous avez une idée ?

Portrait de phil

Bonjour, merci pour le partage de votre code. Par contre le lien pour l'apk n'est plus disponible. Serait il possible de le remettre en ligne ? En vous remerciant par avance. Cordialement. :) Phil.

Portrait de Alex

Salut Denis,

Effectivement elle a l'air très cool cette carte mais elle est pas donnée.

Je vais attendre que les chinois la copient! :)

Portrait de Philippec66

Bonjour,

je suis bloqué avec ma carte "Adafruit HUZZAH ESP8266 Breakout" Node MCU 0.9.5 build 20150318 lua 5.1.4 , j'ai essayé la solution de brossden ci dessus avec un Arduino, j'ai une erreur espcomm_sync failed, impossible de trouvé une solution

j'ai essayé Esplorer tel que proposé plus haut, cela à fonctionné, mais voulant modifier un peu le satané code lua le module est entré dans une boucle de boot sans fin impossible de le reprogrammer?

Avez vous une idée?

Merci de votre aide

Philippe

Portrait de sridi.khalifa

#include <SoftwareSerial.h>

#include <espduino.h>

#include <rest.h>

SoftwareSerial espPort(10, 11);

ESP esp(&espPort, &Serial, 9);

REST rest(&esp);

boolean wifiConnected = false;

const int relay1 =  2;

const int relay2 =  3;

const int relay3 =  4;

const int relay4 =  5;

boolean data1 = false;

boolean data2 = false;

boolean data3 = false;

boolean data4 = false;

int loop_count = 0;

char response[266];

char buff[64];

String strId,strData,strCode;

String strData_Last1,strData_Last2,strData_Last3,strData_Last4;

void(* resetFunc) (void) = 0;

 void clearBuffer(void) {

       for (int i = 0;i<266;i++ ) {

         response[i]=0;

       }

}

void wifiCb(void* response)

{

  uint32_t status;

  RESPONSE res(response);

  if(res.getArgc() == 1) {

    res.popArgs((uint8_t*)&status, 4);

    if(status == STATION_GOT_IP) {

      Serial.println("TERHUBUNG KE WIFI");

    

      wifiConnected = true;

    } else {

      wifiConnected = false;

    }

   

  }

}

void setup() {

  pinMode(relay1, OUTPUT);

  pinMode(relay2, OUTPUT);

  pinMode(relay3, OUTPUT);

  pinMode(relay4, OUTPUT);

  digitalWrite(relay1,HIGH);

  digitalWrite(relay2,HIGH);

  digitalWrite(relay3,HIGH);

  digitalWrite(relay4,HIGH);

  Serial.begin(9600);

  espPort.begin(19200);

  esp.enable();

  delay(500);

  esp.reset();

  delay(500);

  while(!esp.ready());

  Serial.println("ARDUINO: Setup client");

  if(!rest.begin("api.thingspeak.com")) {

    Serial.println("ARDUINO: Gagal Setup client");

    while(1);

  }

  Serial.println("ARDUINO: Menghubungkan dengan Wifi");

  esp.wifiCb.attach(&wifiCb);

  esp.wifiConnect("Andy182 Network","waipigratis");

  Serial.println("ARDUINO: System sudah siap!");

}

void loop() {

loop_start: 

  esp.process(); 

  if(wifiConnected) {  

   

    char str_field1[6] , str_field2[6] , str_field3[6] , str_field4[6];

          

      sprintf(buff, "/channels/97834/fields/1/last");

      Serial.println(buff);

          

      rest.get((const char*)buff);

      if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

                             

            strId = "";

            strData = "";

            strCode = ""; 

            getData();               

                

          if (strData == "1" || strData == "1.0" || strData == "1.00" ){

            digitalWrite(relay1,LOW);

            data1 = true;

          }

          

          if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

            digitalWrite(relay1,HIGH);

            data1 = false;

          }

      } 

     else{ 

       hardReset();

       resetFunc();

     }

    

      delay(10000); 

      sprintf(buff, "/channels/97834/fields/2/last");

      Serial.println(buff);

          

      rest.get((const char*)buff);

      if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

        

        strId = "";  strData = "";  strCode = ""; 

        getData();

     

     

      if (strData == "1" || strData == "1.0" || strData == "1.00"){

        digitalWrite(relay2,LOW);

        data2 = true;       

      }

      

      if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

        digitalWrite(relay2,HIGH);

        data2 = false;     

      }    

      }

      else{ 

         hardReset();

         resetFunc();

         clearBuffer(); 

         goto loop_start;  

      

     }   

      delay(10000); 

      sprintf(buff, "/channels/97834/fields/3/last");

      Serial.println(buff);

          

      rest.get((const char*)buff);

      if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

        

        strId = "";  strData = "";  strCode = ""; 

        getData();                                                // GET DATA

     

     

      if (strData == "1" || strData == "1.0" || strData == "1.00"){

        digitalWrite(relay3,LOW);

        data3 = true;       

      }

      

      if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

        digitalWrite(relay3,HIGH);

        data3 = false;      

      }    

      }

      else{ 

         hardReset();

         resetFunc();

         clearBuffer(); 

         goto loop_start;  

      

     }

     delay(10000); 

      sprintf(buff, "/channels/97834/fields/4/last");              // field x last Data

      Serial.println(buff);

          

      rest.get((const char*)buff);

      if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

        

        strId = "";  strData = "";  strCode = ""; 

        getData();                                                // GET DATA

     

     

      if (strData == "1" || strData == "1.0" || strData == "1.00"){

        digitalWrite(relay4,LOW);

        data4 = true;       

      }

      

      if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

        digitalWrite(relay4,HIGH);

        data4 = false;     

      }    

      }

      else{ 

         hardReset();

         resetFunc();

         clearBuffer(); 

         goto loop_start;  

      

     }

    

      delay(10000);     

      loop_count++;

      Serial.println("LOOP : ");

      Serial.println(loop_count);

     

      if(loop_count == 6 ){

        loop_count = 0;

     

      if(data1) {      

           dtostrf(1, 1, 1, str_field1);    

      }else{

         dtostrf(0.1, 2, 1, str_field1);   

      }

      if(data2) {

           dtostrf(1, 1, 1, str_field2);

      }else{

         dtostrf(0.1, 2, 1, str_field2);  

      }

      if(data3) {

           dtostrf(1, 1, 1, str_field3);

      }else{

         dtostrf(0.1, 2, 1, str_field3);  

      }

      if(data4) {

           dtostrf(1, 1, 1, str_field4);

      }else{

         dtostrf(0.1, 2, 1, str_field4);  

      }

       

          sprintf(buff, "//update?key=IDVGM020AD2OIZJZ&field1=%s&field2=%s&field3=%s&field4=%s",str_field1,str_field2,str_field3,str_field4);

          Serial.println(buff);

          

          rest.get((const char*)buff);

          Serial.println("ARDUINO: Mengirim data terbaru");

          if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

            Serial.println("ARDUINO: Berhasil GET Data");

            strId = "";  strData = "";  strCode = ""; 

            getData();

          }

      delay(5000);

      }

  }

  else{

  }

}

void getData(){

   int i=0,j=0,k=0;

    

         for (i = 0; i < 10; i++){        

       

          if((response[i] == '\r') || (response[i] == '\n')) {

          }

          else{         

             strId += response[i];      

          }

         

          if (response[i] == '\n'){

               i++;        

               break;

          }                   

        }

       

        Serial.println("");

        Serial.print("ID : ");

        Serial.print(strId);

          

         for (j = i; j < (i+20); j++){

         

          if((response[j] == '\r') || (response[j] == '\n')) {

          }

          else{         

             strData += response[j];      

          }

         

          if (response[j] == '\n'){

                j++;     

                break;

          }                    

        }

       

        Serial.println("");

        Serial.print("Data : ");

        Serial.print(strData);

         for (k = j; k < (j+10); k++){       

             

          if((response[k] == '\r') || (response[k] == '\n')) {

          }

          else{         

             strCode += response[k];      

          }

         

          if (response[k] == '\n'){                      

                break;

          }                    

        }

        Serial.println("");

        Serial.print("Code : ");

        Serial.print(strCode);     

        Serial.println("");       

      }

  boolean hardReset() {

  String tmpData;

}

j'utilise ce code pour commander 4 relai par smartphone et elle fonctionne pas sur  arduino uno   

aider moi svp

Portrait de sridi.khalifa

#include <SoftwareSerial.h>

#include <espduino.h>

#include <rest.h>

SoftwareSerial espPort(10, 11);

ESP esp(&espPort, &Serial, 9);

REST rest(&esp);

boolean wifiConnected = false;

const int relay1 =  2;

const int relay2 =  3;

const int relay3 =  4;

const int relay4 =  5;

boolean data1 = false;

boolean data2 = false;

boolean data3 = false;

boolean data4 = false;

int loop_count = 0;

char response[266];

char buff[64];

String strId,strData,strCode;

String strData_Last1,strData_Last2,strData_Last3,strData_Last4;

void(* resetFunc) (void) = 0;

 void clearBuffer(void) {

       for (int i = 0;i<266;i++ ) {

         response[i]=0;

       }

}

void wifiCb(void* response)

{

  uint32_t status;

  RESPONSE res(response);

  if(res.getArgc() == 1) {

    res.popArgs((uint8_t*)&status, 4);

    if(status == STATION_GOT_IP) {

      Serial.println("TERHUBUNG KE WIFI");

    

      wifiConnected = true;

    } else {

      wifiConnected = false;

    }

   

  }

}

void setup() {

  pinMode(relay1, OUTPUT);

  pinMode(relay2, OUTPUT);

  pinMode(relay3, OUTPUT);

  pinMode(relay4, OUTPUT);

  digitalWrite(relay1,HIGH);

  digitalWrite(relay2,HIGH);

  digitalWrite(relay3,HIGH);

  digitalWrite(relay4,HIGH);

  Serial.begin(9600);

  espPort.begin(19200);

  esp.enable();

  delay(500);

  esp.reset();

  delay(500);

  while(!esp.ready());

  Serial.println("ARDUINO: Setup client");

  if(!rest.begin("api.thingspeak.com")) {

    Serial.println("ARDUINO: Gagal Setup client");

    while(1);

  }

  Serial.println("ARDUINO: Menghubungkan dengan Wifi");

  esp.wifiCb.attach(&wifiCb);

  esp.wifiConnect("Andy182 Network","waipigratis");

  Serial.println("ARDUINO: System sudah siap!");

}

void loop() {

loop_start: 

  esp.process(); 

  if(wifiConnected) {  

   

    char str_field1[6] , str_field2[6] , str_field3[6] , str_field4[6];

          

      sprintf(buff, "/channels/97834/fields/1/last");

      Serial.println(buff);

          

      rest.get((const char*)buff);

      if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

                             

            strId = "";

            strData = "";

            strCode = ""; 

            getData();               

                

          if (strData == "1" || strData == "1.0" || strData == "1.00" ){

            digitalWrite(relay1,LOW);

            data1 = true;

          }

          

          if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

            digitalWrite(relay1,HIGH);

            data1 = false;

          }

      } 

     else{ 

       hardReset();

       resetFunc();

     }

    

      delay(10000); 

      sprintf(buff, "/channels/97834/fields/2/last");

      Serial.println(buff);

          

      rest.get((const char*)buff);

      if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

        

        strId = "";  strData = "";  strCode = ""; 

        getData();

     

     

      if (strData == "1" || strData == "1.0" || strData == "1.00"){

        digitalWrite(relay2,LOW);

        data2 = true;       

      }

      

      if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

        digitalWrite(relay2,HIGH);

        data2 = false;     

      }    

      }

      else{ 

         hardReset();

         resetFunc();

         clearBuffer(); 

         goto loop_start;  

      

     }   

      delay(10000); 

      sprintf(buff, "/channels/97834/fields/3/last");

      Serial.println(buff);

          

      rest.get((const char*)buff);

      if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

        

        strId = "";  strData = "";  strCode = ""; 

        getData();                                                // GET DATA

     

     

      if (strData == "1" || strData == "1.0" || strData == "1.00"){

        digitalWrite(relay3,LOW);

        data3 = true;       

      }

      

      if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

        digitalWrite(relay3,HIGH);

        data3 = false;      

      }    

      }

      else{ 

         hardReset();

         resetFunc();

         clearBuffer(); 

         goto loop_start;  

      

     }

     delay(10000); 

      sprintf(buff, "/channels/97834/fields/4/last");              // field x last Data

      Serial.println(buff);

          

      rest.get((const char*)buff);

      if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

        

        strId = "";  strData = "";  strCode = ""; 

        getData();                                                // GET DATA

     

     

      if (strData == "1" || strData == "1.0" || strData == "1.00"){

        digitalWrite(relay4,LOW);

        data4 = true;       

      }

      

      if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

        digitalWrite(relay4,HIGH);

        data4 = false;     

      }    

      }

      else{ 

         hardReset();

         resetFunc();

         clearBuffer(); 

         goto loop_start;  

      

     }

    

      delay(10000);     

      loop_count++;

      Serial.println("LOOP : ");

      Serial.println(loop_count);

     

      if(loop_count == 6 ){

        loop_count = 0;

     

      if(data1) {      

           dtostrf(1, 1, 1, str_field1);    

      }else{

         dtostrf(0.1, 2, 1, str_field1);   

      }

      if(data2) {

           dtostrf(1, 1, 1, str_field2);

      }else{

         dtostrf(0.1, 2, 1, str_field2);  

      }

      if(data3) {

           dtostrf(1, 1, 1, str_field3);

      }else{

         dtostrf(0.1, 2, 1, str_field3);  

      }

      if(data4) {

           dtostrf(1, 1, 1, str_field4);

      }else{

         dtostrf(0.1, 2, 1, str_field4);  

      }

       

          sprintf(buff, "//update?key=IDVGM020AD2OIZJZ&field1=%s&field2=%s&field3=%s&field4=%s",str_field1,str_field2,str_field3,str_field4);

          Serial.println(buff);

          

          rest.get((const char*)buff);

          Serial.println("ARDUINO: Mengirim data terbaru");

          if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

            Serial.println("ARDUINO: Berhasil GET Data");

            strId = "";  strData = "";  strCode = ""; 

            getData();

          }

      delay(5000);

      }

  }

  else{

  }

}

void getData(){

   int i=0,j=0,k=0;

    

         for (i = 0; i < 10; i++){        

       

          if((response[i] == '\r') || (response[i] == '\n')) {

          }

          else{         

             strId += response[i];      

          }

         

          if (response[i] == '\n'){

               i++;        

               break;

          }                   

        }

       

        Serial.println("");

        Serial.print("ID : ");

        Serial.print(strId);

          

         for (j = i; j < (i+20); j++){

         

          if((response[j] == '\r') || (response[j] == '\n')) {

          }

          else{         

             strData += response[j];      

          }

         

          if (response[j] == '\n'){

                j++;     

                break;

          }                    

        }

       

        Serial.println("");

        Serial.print("Data : ");

        Serial.print(strData);

         for (k = j; k < (j+10); k++){       

             

          if((response[k] == '\r') || (response[k] == '\n')) {

          }

          else{         

             strCode += response[k];      

          }

         

          if (response[k] == '\n'){                      

                break;

          }                    

        }

        Serial.println("");

        Serial.print("Code : ");

        Serial.print(strCode);     

        Serial.println("");       

      }

  boolean hardReset() {

  String tmpData;

}

j'utilise ce code pour commander 4 relai par smartphone et elle fonctionne pas sur  arduino uno   

aider moi svp

Portrait de Croisette

Après 2 jours à m’arracher les cheveux, j'ai enfin réussi à faire marcher l'ESP. Par contre, j'ai un problème, l'APK fourni sur ton site ne fonctionne pas. Je rentre bien l'adresse ip de l'ESP mais rien ne se passe en appuiant sur les bouton.Est ce normal après l'adresse IP transmise est 192.168.1.XX ?

Portrait de Croisette

Après 2 jours à m’arracher les cheveux, j'ai enfin réussi à faire marcher l'ESP. Par contre, j'ai un problème, l'APK fourni sur ton site ne fonctionne pas. Je rentre bien l'adresse ip de l'ESP mais rien ne se passe en appuiant sur les bouton.Est ce normal après l'adresse IP transmise est 192.168.1.XX ?

Portrait de kex

bonjour 

je souhaiterai savoir comment on fait pour remettre le esp8266 en mode normal (utiliser les commandes AT) apres avoir flacher l'esp8266

cordialement 

Portrait de bc38

Bonjour Alex et amis du forum,

Après quelques temps de stand by, je reviens vers la programmation de l'ESP8266 et je rencontre des problèmes à savoir:

1) je réussi à chaque fois à flasher en NodeMcu

2) la première fois que j'ouvre esplorer tout se passe bien, reset de l'esp = ok, téléversement = ok, test du programme ok.

3) voulant faire une modification du programme lua je reprends la procédure et là systématiquement le reset de l'esp ne fonctionne plus, au lieu de la phrase en clair "NodeMCU..... lua: cannot open init.lua", j'ai une suite de caractères sans signification.

J'ai essayé avec plusieurs esp et toutes réagissent de la même manière, comme si la manip détruisait la carte; cependant comme je l'ai mentionné plus haut le (re)flashage fonctionne toujours !!! D'autre part ces esp programmées en mode arduino ide, fonctionnent parfaitement ? Où fais-je une erreur ?

Néanmoins j'ai vu la nouvelle carte Wemos qui me semble intéressante et que je vais commander.

Merci de vos réponses.

Cordialement

Bruno

Portrait de L&#039;ami René

Bonjour,

Comme je n'ai pas de téléphone intelligent ni de tablette Andoïd, est-ce qu'il serait possible de transposer cet exemple de vidéo, mais entre Node MCU V3 ESP-12E avec puce WiFi ESP8266 et UART CP2101 (ou similaire) et un ordinateur (sous Linux) de bureau ou un ordinateur portable standard.

Advenant que oui, alors un très grand merci d'avance !

Portrait de samuel55800

Bonjour à vous tous, je suis nouveau donc d'abord les présentations : je me prénome Samuel, je suis étudiant ingénieur à l'Enim de Metz. Je suis actuellement en stage et je m'affronte à un problème : lorsque je souhaite lancer ESPlorer, un message d'erreur s'affiche : Could not find the main class : ESPlorer.ESPlorer. Program will exit. Pourrie vous m'aider à me débloquer la dessus ?

Cordialement, 

Samuel

Portrait de FroZen KaWa

Yop,

Mais du coup comment faire pour communiqué entre Arduino et ESP ? en gros j'ai un capteur sur mon arduino qui doit quand détection envoyé une info sur Serveur Web via l'Esp et inversement changer des variable sur mon Arduino depuis une requete Web Merci d'avance cordlmt

Portrait de karim bouzanaach

Bonjour 
Tout d'abord j'aimerai vous remercier pour vos cours,
Juste une petite remarque : dans le vidéo démonstratif de ce cours vous n'avez pas montré le fin de programme d'application android, j'ai besoin de voir le reste SVP

Merci 

Portrait de karim bouzanaach

Bonjour 
Tout d'abord j'aimerai vous remercier pour vos cours,
Juste une petite remarque : dans le vidéo démonstratif de ce cours vous n'avez pas montré le fin de programme d'application android, j'ai besoin de voir le reste SVP

Merci 

Portrait de philb

peut on utiliser un node mcu et ide arduino

par avance merci

Portrait de Yodrack

Bonjour,
tout d'abord merci pour cette vidéo.
je suis électronicien en retraite (actif en électronique de 1970 à 1985), les choses ont bien changé !
mais j'ai toujours une bonne vision sur la technique.
je souhaiterais utiliser un ESP8266 pour télécommander à distance mes volets électriques.
(j'ai modifié la télécommande des volets en simulant l'appui sur les boutons avec deux photo-coupleurs, ces photo-coupleurs sont commandés par un ESP8266)
Maintenant je voudrais commander mon ESP à partir de mon mobile Android sur lequel il y a une application chinoise (Ewelink) qui commande déjà des interrupteurs.
Pouvez vous me dire :
- comment faire pour que l'ESP soit reconnu dans l'appli Ewelink comme un interrupteur à deux voies

- comment modifier le code de l'ESP pour qu'il comprennent les instructions 'ouvert/fermé (On/off)" envoyés sur deux voies par le logiciel Android.
merci pour votre aide
cordlt

 

Portrait de Pierre Bothua

Bonjour à tous,

Tout d'abord, félicitations à toi Alex, c'est une très bonne vidéo ;-p !!!

Je débute en électronique et je voudrais savoir si il est possible de faire exactement la même chose que présenté sur cette vidéo, mais avec un shield ethernet?

Si c'est possible, pourriez vous me montrer ou m'expliquer comment ça marche?

Merci d'avance!

;-)

Portrait de Mathieu Cerveaux

Bonjour a tous,

je voudrais savoir si il est possible de programmer un bouton poussoir a la place de la seconde led.

Pour qu'elle agisse sur la led 1 et qu'elle soit synchronisé avec le web server.

Merci d'avance.

Portrait de jpl

Salut à tous et merci à Alexandre pour cette vidéo ainsi qu'à Julio pour son code actualisé pour navigateur.

Ces jours j'ai buildé le firmware NodeMCU en version Lua 5.1.4 sur SDK 2.2.1 en branch master avec les 7 modules de base: file,gpio,net,node,tmr,uart,wifi.

Certaines commandes ne sont plus compatibles, en particulier : wifi.sta.config("ssid","password")  qui provoque des erreurs et l'arrêt du programme. Je vous met à dispo mon code actualisé et commenté qui servira sans doute à quelqu'un.

Aussi, je cherche des infos pour exécuter ce code avec les requêtes cachées (càd qui n'apparaissent pas dans l'adresse ip) en transférant les appels dans un fichier XML ou JSON. Je sais le faire en C avec Arduino IDE mais pas en Lua que j'ai découvert cette semaine. Merci pour ces infos. A bientôt. JPL

------------------------------------------------------------------
--    Programme permettant une interaction avec un navigateur   --
--                  Compatible avec un ESP8266                  --
--                         Version 1.1                          --   
--                 actualisé le 01/03/2019 par jpl              --
--                Compatible Lua 5.1.4 on SDK 2.2.1             --
--                       branch: master                         --
-- avec les 7 modules de base: file,gpio,net,node,tmr,uart,wifi --
--          Plus d'infos sur www.les-electroniciens.com         --
------------------------------------------------------------------

-- Wifi configuration
wifi.setmode(wifi.STATION)
station_cfg={}
station_cfg.ssid = "nomRouteur" -- Entre votre nom de routeur et mot de passe
station_cfg.pwd  = "motDePasse"
wifi.sta.config(station_cfg)
wifi.sta.connect()

-- esp8266 caractéristiques
print('MAC Address : ',wifi.sta.getmac())
print('    Chip ID : ',node.chipid())
print('  Heap Size : ',node.heap(),'\n')

-- Wifi connection
tmr.alarm(1, 1000, 1, function()
  if wifi.sta.getip() == nil then
    print("Connection...")
  else
    tmr.stop(1)
    local ip, nm, gw = wifi.sta.getip()
    print("Wifi connecté.")
    print("IP Addr :",ip) -- Entrer cet IP dans votre navigateur
    print("Netmask :",nm)
    print("Gateway :",gw)
  end
end)

-- Initialisation GPIO
ledGPIO0 = 3 -- GPIO 0
ledGPIO2 = 4 -- GPIO 2

gpio.mode(ledGPIO0, gpio.OUTPUT)
gpio.write(ledGPIO0, gpio.LOW);
gpio.mode(ledGPIO2, gpio.OUTPUT)
gpio.write(ledGPIO2, gpio.LOW);

-- Création du serveur web
server=net.createServer(net.TCP)
server:listen(80,function(connection)
    connection:on("receive", function(client,request)

        -- GET /?pin=ON1 HTTP/1.1
        -- on cherche une suite de lettre de A à Z (method)
        -- puis un espace
        -- puis une suite de n'importe quels caractères (path)
        -- séparée par un ?
        -- de nouveau une suite de n'importe quels caractères (vars)
        -- jusqu'à espace HTTP
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        
        if(method == nil)then
            -- on cherche une suite de lettre de A à Z (method)
            -- puis un espace
            -- puis une suite de n'importe quels caractères (path)
            -- jusqu'à espace HTTP
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
        end
        
        if(path~="/favicon.ico")then -- afin d'éviter d'encombrer la console
            print("\n"..request)
            print("Method = "..method.."\n  Path = "..path)
        end
        
        local _GET = {}
        if (vars ~= nil)then
            print("  Vars = "..vars)
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do -- k = pin, v = ON1 etc
                _GET[k] = v
            end
        end
        
        -- Page HTML à afficher
        local buf ="<h1> ESP8266 Web Server</h1>";
        buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
        buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF2\"><button>OFF</button></a></p>";
        client:send(buf); -- On l'envoie au client
        
        -- Actualisation des leds
        if(_GET.pin == "ON1")then
              gpio.write(ledGPIO0, gpio.HIGH);
        elseif(_GET.pin == "OFF1")then
              gpio.write(ledGPIO0, gpio.LOW);
        elseif(_GET.pin == "ON2")then
              gpio.write(ledGPIO2, gpio.HIGH);
        elseif(_GET.pin == "OFF2")then
              gpio.write(ledGPIO2, gpio.LOW);
        end
        
    end)--of connection:on("receive"
    connection:on("sent",function(client) -- La page HTML est partie
        client:close()  -- On cloture la requête du client
    end)
    collectgarbage() -- Récupération mémoire
end)--of server:listen(

Portrait de erw.k

Bonsoir lorsque je fais un rst de mon module NodeMcu il y est écrit des caractères bizarre dans la liaison série et je ne peux donc pas téléverser le programme sur mon module ,avez vous une idée pour résoudre mon probleme ?

Portrait de laurentxo1

bonjour

j'ai un message d'erreur lorsque je télé verse le code voici le message waiting answer from esp - timeout reached. send aborted   si quelqu'un a une idée suis preneur

Portrait de MAXANAIS

bonjour,

je teste votre tuto avec une carte MCU-ATmega328P incluant Wifi-ESP8266+8Mb flash et USB-TTL CH340G. pourriez-vous me presenter un datasheet du montage à réaliser pour cette carte recente.

j'ai egalement le message : waiting answer from esp - timeout reached,, send aborted

merci à vous

Portrait de Yvon22

Bonjour

Après avoir flasher mon ESP8266 

Je téléverse le programme init.lua avec ESPlorer mais impossible d'obtenir l'adresse IP de Mon ESP ?

Malgré avoir suivi la vidéo plusieurs fois.

Que Faire ?

Merci à vous

Portrait de voir

bonjour 

je souhaiterai savoir comment on fait pour remettre le esp8266 en mode normal (utiliser les commandes AT) apres avoir flacher l'esp8266

cordialement 

SVP contactez moi ici : Creation site web