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.
bacquy
mar, 01/05/2016 - 16:05
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
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
Alex
lun, 01/04/2016 - 20:28
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?
bc38
jeu, 08/25/2016 - 17:18
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
bacquy
mar, 01/05/2016 - 16:26
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.)
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?
Cédric29
jeu, 01/14/2016 - 10:57
Cette carte est minuscule ! 15mm x25 mm, de quoi réaliser de beau projet
julio
sam, 01/23/2016 - 22:35
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 ?
julio
sam, 01/23/2016 - 22:42
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 :
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.
Alex
mer, 01/27/2016 - 11:13
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! :)
Philippec66
ven, 02/12/2016 - 18:34
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?
j'utilise ce code pour commander 4 relai par smartphone et elle fonctionne pas sur arduino uno
aider moi svp
Croisette
dim, 04/10/2016 - 15:48
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 ?
Croisette
dim, 04/10/2016 - 15:48
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 ?
kex
mer, 04/13/2016 - 14:38
bonjour
je souhaiterai savoir comment on fait pour remettre le esp8266 en mode normal (utiliser les commandes AT) apres avoir flacher l'esp8266
cordialement
bc38
sam, 08/20/2016 - 17:11
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
L'ami René
mar, 08/23/2016 - 05:43
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 !
samuel55800
lun, 09/05/2016 - 15:56
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
FroZen KaWa
ven, 12/23/2016 - 19:08
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
karim bouzanaach
mer, 03/22/2017 - 00:55
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
karim bouzanaach
mer, 03/22/2017 - 01:08
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
philb
sam, 08/19/2017 - 15:31
peut on utiliser un node mcu et ide arduino
par avance merci
Yodrack
lun, 11/13/2017 - 09:37
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
Pierre Bothua
mer, 02/07/2018 - 13:31
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!
;-)
Mathieu Cerveaux
lun, 10/29/2018 - 11:46
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.
jpl
sam, 03/02/2019 - 00:04
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()
-- 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> <a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a> <a href=\"?pin=OFF2\"><button>OFF</button></a></p>";
client:send(buf); -- On l'envoie au client
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(
erw.k
jeu, 04/04/2019 - 19:56
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 ?
laurentxo1
lun, 05/13/2019 - 18:53
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
MAXANAIS
mer, 05/13/2020 - 17:08
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
Yvon22
ven, 10/07/2022 - 16:39
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
voir
ven, 01/06/2023 - 21:11
bonjour
je souhaiterai savoir comment on fait pour remettre le esp8266 en mode normal (utiliser les commandes AT) apres avoir flacher l'esp8266
Commentaires
bacquy
lun, 01/04/2016 - 17:58
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.
Alex
lun, 01/04/2016 - 20:31
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.
bacquy
mar, 01/05/2016 - 16:05
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.
bc38
lun, 01/04/2016 - 19:01
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
Alex
lun, 01/04/2016 - 20:28
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?
bc38
jeu, 08/25/2016 - 17:18
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
bacquy
mar, 01/05/2016 - 16:26
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
cyril
jeu, 01/07/2016 - 22:07
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?
Cédric29
jeu, 01/14/2016 - 10:57
Cette carte est minuscule ! 15mm x25 mm, de quoi réaliser de beau projet
julio
sam, 01/23/2016 - 22:35
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 ?
julio
sam, 01/23/2016 - 22:42
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> <a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a> <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)
-----------------------------------------------------------------
Alex
dim, 01/24/2016 - 20:05
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.
tracolin
jeu, 03/17/2016 - 17:46
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 ?
phil
sam, 10/15/2016 - 12:26
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.
Alex
mer, 01/27/2016 - 11:13
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! :)
Philippec66
ven, 02/12/2016 - 18:34
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
sridi.khalifa
sam, 03/12/2016 - 16:56
#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
sridi.khalifa
sam, 03/12/2016 - 16:56
#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
Croisette
dim, 04/10/2016 - 15:48
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 ?
Croisette
dim, 04/10/2016 - 15:48
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 ?
kex
mer, 04/13/2016 - 14:38
bonjour
je souhaiterai savoir comment on fait pour remettre le esp8266 en mode normal (utiliser les commandes AT) apres avoir flacher l'esp8266
cordialement
bc38
sam, 08/20/2016 - 17:11
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
L'ami René
mar, 08/23/2016 - 05:43
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 !
samuel55800
lun, 09/05/2016 - 15:56
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
FroZen KaWa
ven, 12/23/2016 - 19:08
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
karim bouzanaach
mer, 03/22/2017 - 00:55
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
karim bouzanaach
mer, 03/22/2017 - 01:08
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
philb
sam, 08/19/2017 - 15:31
peut on utiliser un node mcu et ide arduino
par avance merci
Yodrack
lun, 11/13/2017 - 09:37
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
Pierre Bothua
mer, 02/07/2018 - 13:31
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!
;-)
Mathieu Cerveaux
lun, 10/29/2018 - 11:46
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.
jpl
sam, 03/02/2019 - 00:04
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> <a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a> <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(
erw.k
jeu, 04/04/2019 - 19:56
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 ?
laurentxo1
lun, 05/13/2019 - 18:53
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
MAXANAIS
mer, 05/13/2020 - 17:08
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
Yvon22
ven, 10/07/2022 - 16:39
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
voir
ven, 01/06/2023 - 21:11
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