Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
WIFI3-Click ESP8266 sur Clicker2 18F87J50
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
J'ai finalement trouvé mon bug sur la detection de "no change"
suite commande AT+CWMODE=3 ...
je commence à bien saisir le fonctionnement de la State Machine ...
je posterais bientot le code avec le maximum d' "explicages ".
Par contre ce n'est toujours pas la fiablité attendue..
decrochement de la page web
suite à retours de message du genre :
"link not"
"wrong syntax"
"busy inet ..."
En cliquant sur "ACTUALISER" d ela page web, celle ci se reactive à nouveau, et est rafraichie.
c'est pas gagné !
il doit y avoir un systeme de synchronisme qui m'echappe .
Les exemples trouvés sur le web sont trop simplistes ..
je m'aide ,mais le ciel ne m'aide pas .. on m'aurait menti !
exmple de dialogue
[*]20:08:58.468> Envoi data -> pageWeb:
20:08:58.468> GET /
20:08:58.468> buf=1219
20:08:58.531> AT+CIPSEND=0,1219
20:08:58.531>
> <html><meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"><meta http-equiv="refresh"
content="10;url=http://192.168.0.103"><head><title>test ESP8266 serveur</title></head><body bgcolor="#FFFFFF"><h2
align="center"><font size="6" color="#0066FF"> Test Wifi3 avec clicker2 PIC18F87J50</font></h2><form action=""
method="get" name="paulo "><table width="200" border="2" align="center" cellpadding="2" cellspacing="3"><tr><td
colspan=3 bgcolor=#000000><marquee behavior=alternate direction=left scrollamount=10><font color=#00FF33>
Paulfjujo.free.fr </font></marquee></td></tr><td width="200">Led 1</td><td bgcolor=#FF0000><center><input name="Led1"
width="200" type="submit" value="D4on"/></center></td><td bgcolor=#00FF00><center><input name="Led1" width="200"
type="submit" value="D4off"/></center></td></tr> <tr> <td width="200">Led 2</td><td bgcolor=#FF0000><center><input
name="Led2" width="200" type="submit" value="E4on"/></center></td><td bgcolor=#00FF00><center><input name="Led2"
width="200" type="submit" value="E4off"/></center></td></tr><tr><td width="200">Volt </td><td colspan=2>2.91
V</td></tr><tr><td 20:08:59.218> width="200">Count</td><td colspan=2>65524 </td></tr></table></form></body></html>
20:08:59.281>
20:08:59.281> SEND OK
20:09:00.218> AT+CIPCLOSE=0
20:09:00.218>
20:09:00.281> Link
20:09:00.281>
20:09:00.281> +IPD,1,335:GET /favicon.ico HTTP/1.1
20:09:00.281> Host: 192.168.0.103
20:09:00.281> Connection: keep-alive
20:09:00.359> User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/44.0.2403.155 Safari/537.36
20:09:00.359> Accept: */*
20:09:00.359> Referer: http://192.168.0.103/
20:09:00.406> Accept-Encoding: gzip, deflate, sdch
20:09:00.406> Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
20:09:00.406>
20:09:00.406>
20:09:00.406> OK
20:09:00.484> EA1 = 2.91 Volts
20:09:00.484> Counts = 65525
20:09:00.484>
20:09:00.484> OK
20:09:08.468>
20:09:08.468> ID=
20:09:08.593> Envoi data -> pageWeb:
20:09:08.593> GET /favicon.ico
20:09:08.593> buf=1219
20:09:08.593> AT+CIPSEND=0,1219
20:09:08.593>
20:09:08.593> link is not
<html><meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"><meta http-equiv="refresh"
content="10;url=http://192.168.0.103"><head><title>test ESP8266 serveur</title></head><body bgcolor="#FFFFFF"><h2
align="center"><font size="6" color="#0066FF"> Test Wifi3 avec clicker2 PIC18F87J50</font></h2><form action=""
method="get" name="paulo "><table width="200" border="2" align="center" cellpadding="2" cellspacing="3"><tr><td
colspan=3 bgcolor=#000000><marquee behavior=alternate direction=left scrollamount=10><font color=#00FF33>
Paulfjujo.free.fr </font></marquee></td></tr><td width="200">Led 1</td><td bgcolor=#FF0000><center><input name="Led1"
width="200" type="submit" value="D4on"/></center></td><td bgcolor=#00FF00><center><input name="Led1" width="200"
type="submit" value="D4off"/></center></td></tr> <tr> <td width="200">Led 2</td><td bgcolor=#FF0000><center><input
name="Led2" width="200" type="submit" value="E4on"/></center></td><td bgcolor=#00FF00><center><input name="Led2"
width="200" type="submit" value="E4off"/></center></td></tr><tr><td width="200">Volt 20:09:09.343> </td><td
colspan=2>2.91 V</td></tr><tr><td width="200">Count</td><td colspan=2>65525 </td></tr></table></form></body></html>
20:09:09.343>
20:09:09.343> wrong syntax
20:09:09.343>
20:09:09.343> ERROR
20:09:10.218> Link
J'ai finalement trouvé mon bug sur la detection de "no change"
suite commande AT+CWMODE=3 ...
je commence à bien saisir le fonctionnement de la State Machine ...
je posterais bientot le code avec le maximum d' "explicages ".
Par contre ce n'est toujours pas la fiablité attendue..
decrochement de la page web
suite à retours de message du genre :
"link not"
"wrong syntax"
"busy inet ..."
En cliquant sur "ACTUALISER" d ela page web, celle ci se reactive à nouveau, et est rafraichie.
c'est pas gagné !
il doit y avoir un systeme de synchronisme qui m'echappe .
Les exemples trouvés sur le web sont trop simplistes ..
je m'aide ,mais le ciel ne m'aide pas .. on m'aurait menti !
exmple de dialogue
[*]20:08:58.468> Envoi data -> pageWeb:
20:08:58.468> GET /
20:08:58.468> buf=1219
20:08:58.531> AT+CIPSEND=0,1219
20:08:58.531>
> <html><meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"><meta http-equiv="refresh"
content="10;url=http://192.168.0.103"><head><title>test ESP8266 serveur</title></head><body bgcolor="#FFFFFF"><h2
align="center"><font size="6" color="#0066FF"> Test Wifi3 avec clicker2 PIC18F87J50</font></h2><form action=""
method="get" name="paulo "><table width="200" border="2" align="center" cellpadding="2" cellspacing="3"><tr><td
colspan=3 bgcolor=#000000><marquee behavior=alternate direction=left scrollamount=10><font color=#00FF33>
Paulfjujo.free.fr </font></marquee></td></tr><td width="200">Led 1</td><td bgcolor=#FF0000><center><input name="Led1"
width="200" type="submit" value="D4on"/></center></td><td bgcolor=#00FF00><center><input name="Led1" width="200"
type="submit" value="D4off"/></center></td></tr> <tr> <td width="200">Led 2</td><td bgcolor=#FF0000><center><input
name="Led2" width="200" type="submit" value="E4on"/></center></td><td bgcolor=#00FF00><center><input name="Led2"
width="200" type="submit" value="E4off"/></center></td></tr><tr><td width="200">Volt </td><td colspan=2>2.91
V</td></tr><tr><td 20:08:59.218> width="200">Count</td><td colspan=2>65524 </td></tr></table></form></body></html>
20:08:59.281>
20:08:59.281> SEND OK
20:09:00.218> AT+CIPCLOSE=0
20:09:00.218>
20:09:00.281> Link
20:09:00.281>
20:09:00.281> +IPD,1,335:GET /favicon.ico HTTP/1.1
20:09:00.281> Host: 192.168.0.103
20:09:00.281> Connection: keep-alive
20:09:00.359> User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/44.0.2403.155 Safari/537.36
20:09:00.359> Accept: */*
20:09:00.359> Referer: http://192.168.0.103/
20:09:00.406> Accept-Encoding: gzip, deflate, sdch
20:09:00.406> Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
20:09:00.406>
20:09:00.406>
20:09:00.406> OK
20:09:00.484> EA1 = 2.91 Volts
20:09:00.484> Counts = 65525
20:09:00.484>
20:09:00.484> OK
20:09:08.468>
20:09:08.468> ID=
20:09:08.593> Envoi data -> pageWeb:
20:09:08.593> GET /favicon.ico
20:09:08.593> buf=1219
20:09:08.593> AT+CIPSEND=0,1219
20:09:08.593>
20:09:08.593> link is not
<html><meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"><meta http-equiv="refresh"
content="10;url=http://192.168.0.103"><head><title>test ESP8266 serveur</title></head><body bgcolor="#FFFFFF"><h2
align="center"><font size="6" color="#0066FF"> Test Wifi3 avec clicker2 PIC18F87J50</font></h2><form action=""
method="get" name="paulo "><table width="200" border="2" align="center" cellpadding="2" cellspacing="3"><tr><td
colspan=3 bgcolor=#000000><marquee behavior=alternate direction=left scrollamount=10><font color=#00FF33>
Paulfjujo.free.fr </font></marquee></td></tr><td width="200">Led 1</td><td bgcolor=#FF0000><center><input name="Led1"
width="200" type="submit" value="D4on"/></center></td><td bgcolor=#00FF00><center><input name="Led1" width="200"
type="submit" value="D4off"/></center></td></tr> <tr> <td width="200">Led 2</td><td bgcolor=#FF0000><center><input
name="Led2" width="200" type="submit" value="E4on"/></center></td><td bgcolor=#00FF00><center><input name="Led2"
width="200" type="submit" value="E4off"/></center></td></tr><tr><td width="200">Volt 20:09:09.343> </td><td
colspan=2>2.91 V</td></tr><tr><td width="200">Count</td><td colspan=2>65525 </td></tr></table></form></body></html>
20:09:09.343>
20:09:09.343> wrong syntax
20:09:09.343>
20:09:09.343> ERROR
20:09:10.218> Link
WIFI3-Click ESP8266 sur Clicker2 18F87J50
WIFI3-Click ESP8266 sur Clicker2 18F87J50
WIFI3-Click ESP8266 sur Clicker2 18F87J50
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
Je ne m'attendais pas à recevoir autant d'info..
depuis que j'ai rajouté l'echo sur terminal du retour ESP8266 ..
l'utilisation de la "state machine" filtrant enormement les reponses possiibles.
En fait c'est là que je ne sais pas trop ou sont les limites de cette bestiole ?
la boucle du MCU PIC tourne à 7,5 secondes (via timer0 interrupt)
le rafraichissement de la page web est initialisé sur 10 secondesss
dans ce cas on est asynchrone entre MCU et page web
je me demande s'il ne faut pas que je cale la boucle MCU
sur la reception specifique de
qui correspondrait au refresh .. si je ne me trompe pas ?
As-tu un avis la-dessus ?
En attendant, je vais tester cela ..
rajout du test etat "favicon" dans la state machine
pour envoyer la mise à jour page web 1 ou 2 secondes apres.
A suivre...
En ramant à deux, on devrait avancer plus vite ,non ?
Je ne m'attendais pas à recevoir autant d'info..
depuis que j'ai rajouté l'echo sur terminal du retour ESP8266 ..
l'utilisation de la "state machine" filtrant enormement les reponses possiibles.
Peut être que tu lui en demandes de trop
En fait c'est là que je ne sais pas trop ou sont les limites de cette bestiole ?
la boucle du MCU PIC tourne à 7,5 secondes (via timer0 interrupt)
le rafraichissement de la page web est initialisé sur 10 secondesss
Code : Tout sélectionner
<meta http-equiv="refresh" content="10;
dans ce cas on est asynchrone entre MCU et page web
je me demande s'il ne faut pas que je cale la boucle MCU
sur la reception specifique de
Code : Tout sélectionner
+IPD,1,335:GET /favicon.ico HTTP/1.1
qui correspondrait au refresh .. si je ne me trompe pas ?
As-tu un avis la-dessus ?
En attendant, je vais tester cela ..
rajout du test etat "favicon" dans la state machine
pour envoyer la mise à jour page web 1 ou 2 secondes apres.
A suivre...
En ramant à deux, on devrait avancer plus vite ,non ?
WIFI3-Click ESP8266 sur Clicker2 18F87J50
- sylvain54
Amateur- Messages : 194
- Âge : 51
- Enregistré en : août 2015
- Localisation : Dans l'est de la France
Bonsoir Paul,
Pour le moment, je ne t'ai pas trop aider je trouve
As tu quelques éléments supplémentaires à me communiquer pour que je puisse mettre en œuvre mon ESP dans une configuration similaire à la tienne?
Pour la favicon, je n'ai pas d'idée sur la chose (la favicon, c'est l'icône qui est à droite de ton adresse sous joomla normalement. Je ne sais pas si on peut caler un rafraichissement dessus)
L'idéal serait de ne rafraîchir ta page uniquement si quelque chose a changé pour ne pas surcharger la bête.
A ++
Pour le moment, je ne t'ai pas trop aider je trouve
As tu quelques éléments supplémentaires à me communiquer pour que je puisse mettre en œuvre mon ESP dans une configuration similaire à la tienne?
Pour la favicon, je n'ai pas d'idée sur la chose (la favicon, c'est l'icône qui est à droite de ton adresse sous joomla normalement. Je ne sais pas si on peut caler un rafraichissement dessus)
L'idéal serait de ne rafraîchir ta page uniquement si quelque chose a changé pour ne pas surcharger la bête.
A ++
WIFI3-Click ESP8266 sur Clicker2 18F87J50
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
voila la plus rescente version de mon projet
Machine d'etat (state machine) , un des points critique du programme
l'interrupt sur reception d'un char (RX UART2) lance la state machine
qui agit en fonction de ce contenu. ... à développer.
sylvain54 a écrit :..
As tu quelques éléments supplémentaires à me communiquer pour que je puisse mettre en œuvre mon ESP dans une configuration similaire à la tienne?
voila la plus rescente version de mon projet
Machine d'etat (state machine) , un des points critique du programme
l'interrupt sur reception d'un char (RX UART2) lance la state machine
qui agit en fonction de ce contenu. ... à développer.
Code : Tout sélectionner
// state machine for Reading the data from UART in the interuppt routine
void esp8266_read_message()
{
char esp_tmp;
esp_tmp = UART_Rd_Ptr(); // Get received byte
// echo sur terminal
TXREG1=esp_tmp;
// Process reception through state machine
// words "OK" ,"ready","ERROR","FAIL","no change","+IPD" ,"CLOSED"
switch (esp_state)
{
case 0: {
esp_response = -1; // Clear response
if (esp_tmp == 'O') // // We have 'O', it could be "OK"
esp_state = 1; // Expecting 'K'
else if (esp_tmp == 'E') // // We have 'E', it could be "ERROR"
esp_state = 10; // Expecting 'R'
else if (esp_tmp == 'r') // // We have 'r', it could be "ready"
esp_state = 20; // Expecting 'e'
else if(esp_tmp == 'F') //// We have 'F', it could be "FAIL"
esp_state = 30; // Expecting 'A'
// rajout No change
// 19:11:18.078> Step 2 Setting Station & AP mode =3. AT+CWMODE=3
//19:11:18.078>
// 19:11:19.078> no change
else if(esp_tmp == 'n') //// We have 'n', it could be "no change"
esp_state = 40; // Expecting 'o'
else if (esp_tmp == '+') // // We have '+', it could be "+IPD"
esp_state = 100; // Expecting 'I'
// else if(esp_tmp=='>') // caractere pour permettre l'envoi de la page Web
// {
// esp_response=ESP_SUP;
// esp_state =0;
// }
break;
}
case 1: {
if (esp_tmp == 'K') // We have 'K', it could be "OK"
{
esp_response = ESP_OK;// We have "OK" response
esp_state = 2;// Expecting CR+LF
}
else
esp_state = 0; // reset operation
break;
}
case 10: {
if (esp_tmp == 'R') // We have 'R', it could be "ERROR"
esp_state = 11;
else
esp_state = 0;
break;
}
case 11: {
if (esp_tmp == 'R') // We have 'R', it could be "ERROR"
esp_state = 12;
else
esp_state = 0;
break;
}
case 12: {
if (esp_tmp == 'O') // We have 'O', it could be "ERROR"
esp_state = 13;
else
esp_state = 0;
break;
}
case 13: {
if (esp_tmp == 'R') // We have 'R', it could be "ERROR"
{
esp_response = ESP_ERROR; // ERROR
esp_state = 2;
}
else
esp_state = 0;
break;
}
case 20: {
if (esp_tmp == 'e') // We have 'e', it could be "ready"
esp_state = 21;
else
esp_state = 0;
break;
}
case 21: {
if (esp_tmp == 'a')// We have 'a', it could be "ready"
esp_state = 22;
else
esp_state = 0;
break;
}
case 22: {
if (esp_tmp == 'd')// We have 'd', it could be "ready"
esp_state = 23;
else
esp_state = 0;
break;
}
case 23: {
if (esp_tmp == 'y') // We have 'y', it could be "ready"
{
esp_response = ESP_READY; // READY
esp_state = 2;
}
else
esp_state = 0;
break;
}
case 30: {
if (esp_tmp == 'A') // // We have 'A', it could be "FAIL"
esp_state = 31;
else
esp_state = 0;
break;
}
case 31: {
if (esp_tmp == 'I')
esp_state = 32;
else
esp_state = 0;
break;
}
case 32: {
if (esp_tmp == 'L') // We have 'L', it could be "FAIL"
{
esp_response = ESP_FAIL; // FAIL
esp_state = 2;
}
else
esp_state = 0;
break;
}
// it could be "no change"
case 40: {
if (esp_tmp == 'o') // We have 'o', it could be "no change"
esp_state = 41;
else
esp_state = 0;
break;
}
case 41: {
if (esp_tmp == ' ')
esp_state = 42;
else
esp_state = 0;
break;
}
case 42: {
if (esp_tmp == 'c')
esp_state = 43;
else
esp_state = 0;
break;
}
case 43: {
if (esp_tmp == 'h')
esp_state = 44;
else
esp_state = 0;
break;
}
case 44: {
if (esp_tmp == 'a')
esp_state = 45;
else
esp_state = 0;
break;
}
case 45: {
if (esp_tmp == 'n')
esp_state = 46;
else
esp_state = 0;
break;
}
case 46: {
if (esp_tmp == 'g')
esp_state = 47;
else
esp_state = 0;
break;
}
case 47: {
if (esp_tmp == 'e')
{
esp_response = ESP_no_change;
esp_state = 2;
}
else
esp_state = 0;
break;
}
// ---- traitement reponse à commamde via page Web ---------------
case 100 : { // We have 'I', it could be "+IPD"
if(esp_tmp == 'I')esp_state = 101;
else esp_state = 0;
break;
}
case 101 : { // We have 'P', it could be "+IPD"
if(esp_tmp == 'P')esp_state = 102;
else esp_state = 0;
break;
}
case 102 : { // We have 'D', it could be "+IPD"
if(esp_tmp == 'D')esp_state = 103;
else esp_state = 0;
break;
}
case 103 : { // wait to read id the first
if(esp_tmp == ',' )
{
esp_state=104;
}
else esp_state=0;
break;
}
case 104 : { // read id .
if(esp_tmp>='0' && esp_tmp<='5')
{
esp8266_id=esp_tmp-'0';
esp_state=105;
}
else esp_state=0;
break;
}
case 105 : {
// on s'attend à recevoir t une commande de LED1 ou LED2 , ON ou OFF
// +IPD,2,435:GET /?Led1=D4on HTTP/1.1
// mais AUSSI d'autres messages !!!
// +IPD,2,435:GET / HTTP/1.1
// +IPD,1,335:GET /favicon.ico HTTP/1.1
// donc ... partie à developper davantage, à ameliorer
if(esp_tmp !=':' ) // attente du : avant le GET
{
esp_state=105;
}
else
{
// :GET /?dev1=D4on HTTP/1.1
// le : permet de definir l'origine 0 de la table
esp_i=0;
esp8266_received_data[0]=0; // reset esp8266_received_data for store new data
esp_DataReady_received=0; // reset flag for compelete received data
esp_state=106;
}
break;
}
case 106 : {
// isolation reponse apres l'apparition du :
//:GET /?dev1=D4on HTTP/1.1
// 1234567890123456
// attente de la fin du GET , soit le H de HTTP
// ... à ameliorer
if(esp_tmp !='H' ) // wait until read 'H' from word "HTTP"
{
esp_i++; // on se place de suite apres le :
if(esp_i>esp8266_rec_max) // 16 cars
{
esp_i=esp8266_rec_max;
}
else
{
// tant qu'on ne rencontre pas le H de HTTP et Nb <16
// on continue à stoker les caracteres suivants
esp8266_received_data[esp_i-1] = esp_tmp;
}
}
else
{
// on a rencontré le H
// donc commande reçu completement
// on retrouve alors dans la table
// GET /?Led1=D4on
// ou autre chose !!!
esp_DataReady_received=1;
// on met un Zero fin de string à la place du H
// sinon on part en cacahuète pour la suite du traitement!
esp8266_received_data[esp_i ]=0; //cloture du string
// la pertie utile se trouvera 6 carcateres plus loin que le debut
// GET /?Led1=D4on
// 123456
// Led1=D4on
esp_state=0;
}
break;
}
case 2: {
if (esp_tmp == 13)esp_state = 3;
else esp_state = 0;
break;
}
case 3: {
if (esp_tmp == 10)
{
esp_response_rcvd = 1;
esp_responseID = esp_response;
esp_state = 0;
}
else esp_state = 0;
break;
}
default: {
esp_state = 0;
break;
}
}
}
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
WIFI3-Click ESP8266 sur Clicker2 18F87J50
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 40 invités