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 ---
Tout ce qui n'a pas de catégorie !
ESP WROOM 32
Jérémy
Administrateur du site
Administrateur du site
Messages : 2535
Âge : 42
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#31 Message par Jérémy » dim. 11 juil. 2021 11:00

Bonjour à tous ,

De mon coté cela avance aussi. Bon doucement mais ça avance !

Ces modules sont super intéressants quand même ! perso moi je suis partis sur une version internet !
J'ai donc un serveur WEB autonome. Cela me permet notamment de stocker des pages web, avec html css js et php . Un vrai bonheur car aucune limite de création de page. Mais surtout je pilote mon ESP depuis la toile donc depuis partout dans le monde et pas seulement sur le réseau interne de la maison.

Vue les galères avec les breadboard je me suis créer une petite platine afin de faire des tests et simuler des fonctionnalités
Composée de :
-3 bp
- 1 inter à glissière
- 5 Leds
- 2 potars
- 1 buzzer

Pour le moment, je m'initie au langage web. un appui sur mon bouton web, allume ma led sur la platine et une image led allumée apparait à l'écran. Si j’éteins cette même led depuis ma platine par un bouton dédié, alors la led s'éteint et la mise est faite sur la page web .

Aucun chargement de page, car tout se passe en arrière plan avec des requêtes XML HTTP . Le délais de mise à jour est franchement bon .
Ma page web se met à jour toute les 0.5 secondes ( ce n'est pas un rafraichissement on ne voit strictement rien) . et ma platine aussi va lire sur le serveur les infos toutes les 0.5 secondes.
Pour le moment je tâtonne et ma méthode n'est certainement pas la meilleure.

Descriptif :
Quand j’appuie sur un BP web ( présent sur ma page web) . Cela va écrire une consigne dans un fichier stocké sur le serveur. Envoi immédiat.
Ensuite ma platine va lire ce fichier "consigne" toutes les 0.5 secondes et exécute les ordres qu'il y a dessus si il y en a.
Une fois que la led est allumée, ma platine va écrire à son tour sur un fichier "État" que la led a été allumée.
Et ma page web toutes les 0.5secondes va lire ce fichier "Etat" pour voir si il y doit afficher quelque choses ici une led allumée

Pour résumé ma page écrit sur un fichier "consigne" sur le serveur, ma platine va lire se fichier exécute la consigne et à son tour va écrire sur un fichier "Etat" .La page web lit ce fichier état a son tour et la boucle est bouclée.

Je pense prochainement me lancer dans l’écriture sur une base de données. cela rajoute encore de la complexité, mais après se sera vraiment bien, aucune limite , simplification du code html etc ... stockage des valeurs quasi illimitée.

Il faut aussi que je me penche sur la sécurité de la page, car pour l'heure avec l'adresse tout le monde pourrait allumer mes leds :sifflotte:

@Paul pour programmer l'ESP, je suis resté sur l'IDE Arduino car trop galère à migrer sur Visual ; Par contre pour la partie web ( html, css ,js , et php) je suis passé sur Visual. A quand un IDE de cette qualité pour MikroC ! l'auto-indentation et la prédiction des fonctions un vrai régal

IMG_20210711_102239.jpg

Sans titre.png


A bientôt
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

ESP WROOM 32
satinas
Confirmé
Confirmé
Messages : 805
Enregistré en : novembre 2015

#32 Message par satinas » dim. 11 juil. 2021 11:31

Bienvenue sur C++, Jeremy :)
Il faut s'intéresser au protocole NTP. E n fait c'est sans fin là, on peut faire tellement de choses.

ESP WROOM 32
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1957
Âge : 70
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#33 Message par paulfjujo » mer. 14 juil. 2021 15:47

bonjour à tous,



mon Visual Studio Code s'est verollé suite à une mise à jour automatique .. je ne peux plus compiler sans multes erreur
bien que mon code ino continue à bien se compiler sous arduino original 1.8.15

je viens de rajouter le mini OLED SSD1306 128x32 sur le bus I2C (en plus du BMP085 mesure de pression)
+ ADC + DHT11
l'OLED fonctionne nickel ..
mais j'ai un probleme sur un simple moyennage de la valeur ADC
:sifflotte: avec ce bout de code , soit j'ai fait une grosse boulette et je suis bigleux ,soit ??
je sais qu'on est pas sur les PICs , mais ici c'est un ESP8266 nodeMCU ( :!!: pas wroom EPS32)
mais bon ..

Code : Tout sélectionner




//déclarations associées  :
int i,j,k;

char Tempchar [10];
char Presschar [10];
char Humidchar [10];
char Ana0char[10];
char  Oled_Msg[20];  // up to 18 char en taille 1

int analogPin=A0;
int ValADC=0;
int SommeValADC=0;  


float LM35DZ_temp
=0.0;
float LM35DZ_MAE= 0.040283; //   330.0°C pour 8192 points;




void loop()
 {
  Serial.printf(" Compteur= %05d ",Compteur);
  display.clearDisplay();
  server.handleClient();
  ValADC = analogRead(analogPin);  // read the input pin A0 on Lolin
  SommeValADC = SommeValADC + ValADC;
  Serial.printf("  SommeValADC = %5d  ",SommeValADC);
   i = i + 1;
  if (> 7)
  {
    //problemo ci dessous
  // pour test only
    LM35DZ_temp = (float) SommeValADC * LM35DZ_MAE ; // MAE lottant initialisé avec 0.0402832;‬
    // OK ci dessous  !
   //LM35DZ_temp = (float) SommeValADC *  330.0 / 8192.0 ; // avec  10mV par °C  et 8x0124
   Serial.printf("LM35DZ = %5.2f °C ",LM35DZ_temp);
   SommeValADC = 0;

   snprintf( Oled_Msg,6,"%5.2f",LM35DZ_temp);
   display.setCursor(0,0); 
   display
.print(F("A0 LM35DZ         ")); 
   display
.setCursor(70,0); 
   display
.print( Oled_Msg); 
   i
=0;
  }
  else
  
{
    Serial.print(" Ana0=");
    Serial.print(ValADC); 
    Serial
.print(" "); 
    
    display
.setCursor(0,0); 
       
//            123456789012345678  gabarit pour OLED en taille char =1 
    display.print(F("Compteur          ")); 
    display
.setCursor(70,0); 
    snprintf
(Oled_Msg,6,"% 5d",Compteur);
    display.print(Oled_Msg);
  }


   // model=dht.getModel();
     t = dht.getTemperature();
     snprintf(Tempchar,6,"%3.2f\t",t);

    display.setCursor(0,8); 
   
//                123456789012345678
    display.print(F("DHT11 Temp        ")); 
    display
.setCursor(70,8); 
    display
.print(Tempchar);
  
  h
=dht.getHumidity();
  snprintf(Humidchar,6,"%2.2f\t",h);

   display.setCursor(0,16); 
   
//                123456789012345678
    display.print(F("DHT11 Humi        ")); 
    display
.setCursor(70,16); 
    display
.print(Humidchar);
  
  if 
(BMPOK==1)
  {
  p = bmp.readPressure() / 100.0F;
   }
   else p=999.99; 
   snprintf
(Presschar,6,"%4.0f\r\n",p);

   display.setCursor(0,24); 
   
//                123456789012345678
    display.print(F("BMP085        mBar")); 
    display
.setCursor(50,24); 
    display
.print(Presschar);
    display.display();
    
   TempAndHumidity lastValues 
= dht.getTempAndHumidity();
   if (digitalRead(BP1)==HIGH) BP1_status="OFF"; else BP1_status="ON";
   Compteur ++;
  //  Serial.printf(" Compteur= %05d ",Compteur);
  //  Serial.printf(" LM35DZ= %5.2f °C ",LM35DZ_temp);
        
    SommeValADC 
= 0;
   Serial.print(" Pression : " + String(p,0));
   Serial.printf(" Temperat. % 5.2f °C ",lastValues.temperature);
   Serial.printf(" Humidite % 3.1f %",lastValues.humidity);
   Serial.printf(" BP= %s",BP1_status);
   Serial.printf(" ConsigneV = %s",Consignechar);
   Serial.println();
   delay(2500);
}
 


:!!: ma mesure moyennée, calculée et affichée toutes les 8 boucles ( indice i) ne correspondait pas 2.98° ?
j'ai donc rajouté l'impression de ma variable d'accumulation => PAS d'ACCUMULATION
avec l'addition

Code : Tout sélectionner


  ValADC 
= analogRead(analogPin);  // read the input pin A0 on Lolin
  SommeValADC = SommeValADC + ValADC;
  Serial.printf("  SommeValADC = %5d  ",SommeValADC);
 


sur le terminal YAT 115200 bds :

Compteur= 00263 SommeValADC = 74 LM35DZ = 2.98 °C Pression : 991 Temperat. 22.80 °C Humidite 61.2 BP= BP= OFF ConsigneV = 00000
Compteur= 00264 SommeValADC = 74 Ana0=74 Pression : 991 Temperat. 23.30 °C Humidite 62.2 BP= BP= OFF ConsigneV = 00000
Compteur= 00265 SommeValADC = 80 Ana0=80 Pression : 991 Temperat. 23.00 °C Humidite 61.4 BP= BP= OFF ConsigneV = 00000
Compteur= 00266 SommeValADC = 80 Ana0=80 Pression : 991 Temperat. 22.90 °C Humidite 67.9 BP= BP= OFF ConsigneV = 00000
Compteur= 00267 SommeValADC = 80 Ana0=80 Pression : 991 Temperat. 22.50 °C Humidite 60.8 BP= BP= OFF ConsigneV = 00000
Compteur= 00268 SommeValADC = 80 Ana0=80 Pression : 991 Temperat. 23.30 °C Humidite 61.8 BP= BP= OFF ConsigneV = 00000
Compteur= 00269 SommeValADC = 74 Ana0=74 Pression : 991 Temperat. 22.70 °C Humidite 61.0 BP= BP= OFF ConsigneV = 00000
Compteur= 00270 SommeValADC = 80 Ana0=80 Pression : 991 Temperat. 22.80 °C Humidite 68.3 BP= BP= OFF ConsigneV = 00000
Compteur= 00271 SommeValADC = 80 LM35DZ = 3.22 °C Pression : 991 Temperat. 23.40 °C Humidite 61.8 BP= BP= OFF ConsigneV = 00000



je devrais avoir sommeValADC= 628
628*0.04028 = 25.29°C !

nota : ça eut marché sans le LCD OLED ...

fin de msg upload
sptool.py v3.0
Serial port COM48
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: b4:e6:2d:0a:aa:aa
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 325488 bytes to 235063...
Writing at 0x00000000... (6 %)
Writing at 0x00004000... (13 %)
Writing at 0x00008000... (20 %)
Writing at 0x0000c000... (26 %)
Writing at 0x00010000... (33 %)
Writing at 0x00014000... (40 %)
Writing at 0x00018000... (46 %)
Writing at 0x0001c000... (53 %)
Writing at 0x00020000... (60 %)
Writing at 0x00024000... (66 %)
Writing at 0x00028000... (73 %)
Writing at 0x0002c000... (80 %)
Writing at 0x00030000... (86 %)
Writing at 0x00034000... (93 %)
Writing at 0x00038000... (100 %)
Wrote 325488 bytes (235063 compressed) at 0x00000000 in 20.8 seconds (effective 125.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...





a priori , l'ESP8266 n'est pas plein !
Sketch uses 321341 bytes (30%) of program storage space. Maximum is 1044464 bytes.
Global variables use 31780 bytes (38%) of dynamic memory, leaving 50140 bytes for local variables. Maximum is 81920 bytes.


je vais reprendre une version anterieure, au cas où ?
Aides toi, le ciel ou FantasPic t'aideras

ESP WROOM 32
satinas
Confirmé
Confirmé
Messages : 805
Enregistré en : novembre 2015

#34 Message par satinas » mer. 14 juil. 2021 16:11

Bonjour Paul, tu as cette ligne à la fin de la fonction loop() -> SommeValADC = 0;
Il faut la mettre après le i=0;
Faire un max de sous-programmes pour la clarté :)
Les défauts de tabulation viennent de ton source, ou c'est apparu lors de la copie du source sur le site ?

ESP WROOM 32
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1957
Âge : 70
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#35 Message par paulfjujo » mer. 14 juil. 2021 16:37

merçi Satinas ..

:mur: Ach so !

je suis bigleux !
meme pas vu ce doublon mal placé ...



d'autant que sur ma version precedente , sans le LCD OLED
j'obtiens bien un bon resultat
Compteur= 00015 SommeVal=634 LM35DZ=25.54 deg C Pression : 991 Temperat. 22.60 Humidite 81.8 BP= OFF ConsigneV = 00000
Compteur= 00016 SommeVal=80 Ana0=80 Pression : 991 Temperat. 22.60 Humidite 76.1 BP= OFF ConsigneV = 00000
Compteur= 00017 SommeVal=154 Ana0=74 Pression : 991 Temperat. 23.00 Humidite 77.8 BP= OFF ConsigneV = 00000
Compteur= 00018 SommeVal=234 Ana0=80 Pression : 991 Temperat. 23.00 Humidite 78.0 BP= OFF ConsigneV = 00000
Compteur= 00019 SommeVal=314 Ana0=80 Pression : 991 Temperat. 22.20 Humidite 75.7 BP= OFF ConsigneV = 00000
Compteur= 00020 SommeVal=388 Ana0=74 Pression : 991 Temperat. 23.50 Humidite 77.1 BP= OFF ConsigneV = 00000
Compteur= 00021 SommeVal=462 Ana0=74 Pression : 991 Temperat. 22.90 Humidite 77.5 BP= OFF ConsigneV = 00000
Compteur= 00022 SommeVal=536 Ana0=74 Pression : 991 Temperat. 22.70 Humidite 77.7 BP= OFF ConsigneV = 00000
Compteur= 00023 SommeVal=616 LM35DZ=24.81 deg C Pression : 991 Temperat. 22.90 Humidite 78.3 BP= OFF ConsigneV = 00000
Compteur= 00024 SommeVal=80 Ana0=80 Pression : 991 Temperat. 23.00 Humidite 77.6 BP= OFF ConsigneV = 00000



l'auto identation jolie .. c'est avec Visual Studio Code !
qui est detruite en passant sur Arduino seul..

je vais tout desinstaller VSC pour remetre la version VSC predement chargée ..et empecher les Mises à jour automatiques..

une question :
la variable path avait des limites de longueur .. jadis ..
est-ce toujours le cas ?
car maintenant mon path fait 876 bytes
et VSC est tres chatouilleux et compliqué avec les paths ...
malgré un " intellisense" pas si intelligent que ça.. puisque ça marche toujours avec Arduino original ..

C'est dingue comme les applis generent des directories un peut partout .. et encore je suis le seul utilisateur de mon PC
:sifflotte: .. et c'est peut etre aussi que j'ai un peu top d'applis installées
Aides toi, le ciel ou FantasPic t'aideras

ESP WROOM 32
satinas
Confirmé
Confirmé
Messages : 805
Enregistré en : novembre 2015

#36 Message par satinas » mer. 14 juil. 2021 16:50

D'après ce lien, la longueur max de la variable PATH est au moins 2047 sur Windows.
https://software.intel.com/content/www/ ... iable.html

Tous les éditeurs ont une option pour remplacer les tabulations par des espaces, lors de la sauvegarde sur disque ou lors d'un copier-coller.
Cela n'empêche pas l'utilisation de la touche TAB lors de la saisie. C'est dommage tous ces sources mal affichés sur le site.

ESP WROOM 32
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1957
Âge : 70
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#37 Message par paulfjujo » dim. 18 juil. 2021 14:47

bonjour à tous,


ça avance petit à petit ...
integration mini OLED sur bus I2C
integration MCP23017 sur bus I2C
integration image BMP en mode base64 (=texte)
integration Javascript
auto update page web fiable ...

In fine , cet ESP8266 a quand meme d'enormes possibilité par rapport à un traditionnel PIC
vu l'aspect WEB prémaché et toutes les librairies à disposition !

:? ... mais ça manque de charme ... retomber au MacDo
au lieu de la bonne cuisine Francaise ! où chaque ingrédient est choisi, mijoté!
...meme si on fait bruler parfois !

à suivre
re-activer VSC pour arduino ESP8266 ( bien plus confortable que Arduino 1.8.15 seul)

affichage etaillé des 8 sorties MCP
commande des 8 entrees MCP
consigne PWM via Boutons +vite -Vite
affichage grafique tendances Temp et humid
passage en Async webserver !!!

Hardware_Schem_Test_Webserver_Lolin_Vert_NodeMCU_V3_2021-0718.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aides toi, le ciel ou FantasPic t'aideras

ESP WROOM 32
Jérémy
Administrateur du site
Administrateur du site
Messages : 2535
Âge : 42
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#38 Message par Jérémy » mer. 21 juil. 2021 20:10

J'échoue aux portes du paradis !
Alors peut etre que vous auriez une solution à me proposer car la je séche !

de mon coté avec le serveur web c'est que du bonheur ! je suis passer avec une gestion de base de données impeccable tout fonctionne à merveille. Un vrai régal, cela ouvre énormément de possibilité en passant par le web !

Alors que tout est fini, je passe à la dernière chose, a savoir protéger ma page web, pour ne pas qu'une personne mal intentionnée puisse activer quelques choses à mon inssu !
Donc protection du dossier serveur avec un fichier ".htaccess" et ".htpasswd" . Coté page web , il me demande un mot de passe ainsi qu'un login pour accéder à ma page. nickel jusque la ! sauf que maintenant mon ESP32 n'arrive plus à dialoguer avec mon serveur, et je ne trouve absolument rien pour rentrer le login et le password sur une page web !:! :furieux: :furieux: :furieux: :furieux: :furieux:
Je suis bloqué :mur: :mur: :mur:
Si quelqu'un à des infos je suis preneur ! Merci !
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Coin Fourre-tout »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités