Go Down

Topic: Avis sur montage (Read 2402 times) previous topic - next topic

caps1g3f

Bonjour,
Aprés quelques mois consacré à la (re)découverte de l'electronique, découverte du monde arduino et prototypage, je pense enfin être arrivé à mon but : une sonde de température sur pile pour surveiller la tempérauere dans les moindres recoin de ma maison. Le tout envoyant les données pour exploitation sur un RaspPi.
Ce projet n'est pas directement lié à l'arduino car il se base sur un ESP-8266, mais au vu de la communauté bienveillante sur ce forum, je me permet de poster ici pour vos avis 'avisés' sur ce montage.
Il est composé :
- d'un esp8266-12
- d'une sonde ds18b20
- d'un regulateur 3.3v TC1262
- d'une mesure de tension / capa pile base sur MAX17043
le tout alimenté par une pile Lipo.

Le prototype sur plaque à trou est fonctionnel et je souhaite faire graver un pcb donc pas trop trop le droit à l'erreur.
j'ai prévu deux boutons pour reset, reflash ainsi que l'accés au pin Tx/Rx de l'esp pour reflash en cas de besoin.(reflash, evolutions...)
En terme de BOM:
R2, R3 =  10k
R1 : 4.7K
Cin, Cout : 1uF
Cesp : 0.1uf


Je solliciterai surement la communauté pour des avis/aide sur le pcb. Je suis en cours et pas facile facile.
Merci d'avance.

al1fch

#1
Feb 12, 2017, 08:25 pm Last Edit: Feb 12, 2017, 08:57 pm by al1fch
Bonjour

A l'usage on se rend compte qu'avec des bornes GPIO0 et GPIO2 quasiment en l'air on se retrouve alors parfois au reset avec une puce ESP8266 dans un etat incontrolable. Il est recommandé d'avoir des niveaux logiques francs et stables , tant en flashage qu'hors flashage.

Aussi je te propose pendant que tu en est encore au routage d'ajouter 3 résistances de 10 k Ohm

une entre GPIO15 et la masse ( pour permettre le flashage)
une entre GPIO0 et 3V3 (le pull up interne est trop faible pour garantir un niveau haut de qualité)
une entre GPIO2 et 3V3 (idem)

caps1g3f

Merci pour les commentaires, pris en compte en ce qui concerne les resistances.
Par contre je ne suis pas sur de comprendre pour CEsp : il est la 'justement' pour éviter les reset (basé sur cette source

Cin et Cout font 1uf et sont issus de la datasheet du TC1262 (le régulateur).


Schéma corrigé en ajoutant R4,R5 et R6.

Merci

al1fch

#3
Feb 12, 2017, 09:00 pm Last Edit: Feb 12, 2017, 09:10 pm by al1fch
Désolé j'ai corrigé entre temps mon message précédent , je n'avais pas vu, au premier abord,  Cout sur ton schéma et croyais à tort qu'il n'y avait sur la ligne VCC que 0,1 µF.

La combinaison parallèle 100nF (Cesp) au raz du module + 1µF (ou plus) pour Cout convient tout à fait.

Merci pour le signalement du MAX17043 , je ne savais pas que des puces intégraient maintenant des algorithmes capables d'estimer l'état de charge d'une batterie LiPo en ne suivant que l'évolution de la tension et donc sans prise en compte du courant entrant/sortant..... à suivre, ça parait 'trop beau pour être vrai' !!

caps1g3f

Nickel, pas de soucis.
Le but du max17403 est de pouvoir lever une 'alarme' à temps pour changer la batterie. Ca demande encore un peu de test/pratique mais prometteur sur le papier.
 :D

al1fch

#5
Feb 12, 2017, 09:38 pm Last Edit: Feb 12, 2017, 09:42 pm by al1fch
Si c'est juste pour une alarme 'batterie basse' il y a plus simple si l'entrae analogique est inutilisée par ailleurs  : (2 résistances suffisent)
-Un pont diviseur pour prélever une fraction de la tension de la batterie --> l'entrée analogique (1V maxi !!), mesure de la tension, comparaison avec un seuil et gestion de l'alarme.

caps1g3f

J'avoue peut être un peu 'surdimensionné' (...), et l'oiption du pont diviseur à été évalué. En même temps l'idée d'avoir l'évolution du % et pouvoir l'afficher me plait bien  ;) 
De plus, au vue de mon niveau/compétence, je fait + confiance à un algo développé par Maxim et une board tte faite.

Séb

-Standby

Bonsoir,

Il faut faire très attention avec les Li-po. Si ton montage continue de pomper sur la Li-po alors que l'alerte batterie faible a été donné elle risque de devenir instable (voir internet..).

Par soucis de sécurité, je te recommande fortement de couper l'alimentation du montage lorsque la batterie atteint un seuil ~3.7 V.

Tu peut utiliser un LTC4365 par exemple.
The Mind is like a parachute it works best when opened.

caps1g3f

Merci pour le conseil, j'avais un peu zappé la coupure auto en pensant changer à 'temps', le doute m'habitue subitement sur ma capacité à le faire. Par contre le composant conseillé ne semble pas simple de mise en œuvre...  Aurais-tu une autre réf, autre idée ou autre type de pile  Ces Lipo semble assez complexe à mettre en œuvre finalement. Je souhaite monitorer toutes les 15min, et le max d'autonomie qui pourrait se compter en mois (1-2) (deep sleep en œuvre sur esp8266 et max17043)
Merci

al1fch

#9
Feb 13, 2017, 10:01 pm Last Edit: Feb 13, 2017, 11:59 pm by al1fch
Pour mes capteurs de température WiFi j'ai abandonné le couple LiPo+ régulateur  par une alimentation directe par batterie LiFePo4 3,2V. 1500 mAh avec en parallèle un condensateur de 470µF à faible courant de fuite et faible résistance série.

La courbe utlile de décharche des LiFePo4 se situe entre 3,5V et 3V donc directement compatible avec l'alimentation des modules ESP12 et autres. Plus besoin de régulateur. La faible résistance des ces accus est idéale pour un composant comme l'ESP8266 qui, en WiFi (mote STA) présente des pics de courant de l'ordre de 350 mA .

La  mesure de la tension "3V3" est effectuée à un moment ou les pics de courants sont absents, (tension, moins bruitée) Si la tension est inférieure à 3V l'esp6266 est mis en mode sleep permanent après l'envoi d'une notification. Le courant débité par la batterie est alors inférieur à 100µA ce qui me laisse le temps de réagir avant que l'accu se retrouve en décharge profonde (2V ou 2,5V selon les marques)!!

Dans mon cas il suffit de réveiller l'esp8266 une fois par heure. Il fait son travail en 1 seconde environ puis se rendort. Autonomie : meilleure que 6 mois. (ESP03 et divers modules à ESP12)

Pour atteindre cette autonomie je combine une réduction des pointes de courant (réduction de la puissance d'émission) et un raccourcissement de la session : DS18B20 en mode 10 bits, addresse ip fixe.....

-Standby

Voila al1fch à tout dit  :)
The Mind is like a parachute it works best when opened.

caps1g3f

Merci pour les conseils, simplement encore 2 petits points :
- comment effectuer la mesure de tension
Quote
un moment ou les pics de courants sont absents,
- comment est géré le sleep permanent ? je connais le deep sleep, mais pas trouvé d'indice sur le sleep permanent ?? ( = deep sleep et connection GPIO16/reset désactivé)?

Je m'oriente vers l'utilisation de LifePo4 mais un peu de regret :smiley-roll-sweat:  d'abandonner du monitoring de la tension/charge restante avec MAX17403 pour probablement retourner vers un pont diviseur et moins d'info (mais aussi moins de composants/difficultés, on ne peut tout avoir).
Finalement si on met le seuil de sleep permanent à 3V avec une LIPO c'est équivalent non? (j'avoue un peu obtu sur le sujet)...

Merci


al1fch

#12
Feb 14, 2017, 04:42 pm Last Edit: Feb 15, 2017, 10:12 am by al1fch
Mesure de tension, comparaison à un seuil et deepsleep permanent : (100% soft)

En début de code 'IDE arduino':
Code: [Select]
ADC_MODE (ADC_VCC)
Entrée TOUT ('ADC' ou 'A0') laissée en l'air, la commande précédente permet à l'ESP266 de mesurer sa propre tension d'alimentation (connection interne entre VCC et l'entrée interne ADC  à travers un probable pont diviseur intégré).
/!\ Dans mon cas la tension Vcc est celle de l'accu LiFePo4.

...... plus loin dans le code  , après la connection à la box et juste avant l'envoi des données vers ThingSpeak
Code: [Select]
 // mesure de tension Batterie (LiFePo4)
  float  voltage = (ESP.getVcc() / 1000.0) + 0.2 ;// avec offset empirique

  if (voltage < 3.0) {   // a 3V l'accu LiFePo4 est quasiment vide; le protéger d'une décharge excessive
    ESP.deepSleep(0);   // = arret définitif si 'LOW BATT'
  }

ADC_VCC et ESP.getVcc() sont documentés içi

ESP.deepSleep(0) provoque une mise en sommeil sans réveil (fonction du SDK appelée par la 'couche' Arduino.)

cf Document Espressif ESP8266 Low Power Solutions (p4)

Quote
Finalement si on met le seuil de sleep permanent à 3V avec une LIPO c'est équivalent non? (j'avoue un peu obtu sur le sujet)...
Equivalent oui, (cf message #14) sous réserve d'abaisser à moins d'1V  la tension prélevée aux bornes de l'accu LiPo 3,7V

obtus n'est pas approprié !! chacun  définit ses objectifs et sélectionne  les moyens qui 'vont avec'.
Dans mon cas il a été profitable d'eliminer le besoin de régulateur.... après avoir testé plusieurs 'bons'  régulateurs linéaires ou à découpage associés à des accus LiPo pour alimenter mes modules passant l'essentiel du temps en veille (70µA) pour se reveiller pour une seconde avec des pointes à plus de 350mA.

caps1g3f

Merci beaucoup pour les explications claires et argumentées.
Je me demande encore comment j'ai pu attendre si longtemps pour demander si j'allais dans la bonne direction (pourtant pas faute de potasser, expérimenter depuis un moment)
Mon 'seul' cahier des charge est d'être prévenu du besoin de changement de batterie ==> ta solution à le mérite d'y répondre et au final de simplifier et de rendre plus robuste le montage..
Bon faut revoir le schéma,  le montage la bom mais je prends...
PS: comme précisé dans le premier post, je vais sûrement avoir besoin de conseil sur le PCB, à suivre donc

al1fch

#14
Feb 15, 2017, 09:31 am Last Edit: Feb 15, 2017, 10:36 am by al1fch
Quote
Finalement si on met le seuil de sleep permanent à 3V avec une LIPO c'est équivalent.
A la réflexion je réponds Non
Le régulateur TC1262 à 300mA a un tension typique de dropout de 200mV (390mV max).
Pour un 3,3V garanti régulé en sortie il lui faut donc > 3,5V en entrée (voire >3,7V pour les TC1262 en limite de spécification)
J'ai à plusieurs reprises retrouvé des ESP9266 en "réveil foireux" , tièdes (consommation anormale) , hors contrôle,  n'éxécutant plus le code prévu,  vidant sans limite des accus LiPo en raison du non respect de la tension de lowdrop.
Mauvais chargement du code au réveil à partir de la mémoire flash SPI , exécution  d'un code aléatoire, non prouvé, simple hypothèse !!
protection des accus : Si un jour je décide d'utiliser des Lipo je les choisirai auto protégés ou je les munirai d'un petit circuit de protection contre les décharges profondes.
Les seuls montages à LiPo qui ont chez moi fonctionné correctement jusqu à la mise en veille permanente étaient ceux dont  le seuil de tension était programmé vers  3,5V. Dommage de devoir arrêter de manière anticipée alors que l'accu peut encore fournir de l'énergie !!

Go Up