ESP8266 GPIO15 relay 5V comment booter ?

Bonjour,

Voilà je suis en train de monter un modeste projet pour piloter un frigo avec un ESP8266 (c'est pour fermenter de la bière ))

Alors j'ai pris un projet tout fait car je n'ai pas les compétences pour coder tout ça moi même de A à Z. Pour ceux que ça intéresse : GitHub - vitotai/BrewPiLess: Use an ESP8266 to replace RPI and Arduino. Running BrewPi without Pi, therefore, BrewPi-Less

Bon je suis pas trop manche alors j'ai réussi à monter mon petit projet sans trop de soucis :slight_smile:

Maintenant je coince sur un truc : j'ai besoin de piloter un relais avec le GPIO15 : je ne peux pas mettre de carte additionnelle (risque d'incompatibilité avec le code que j'utilise et que je suis incapable d'adapter) et je ne peux pas utiliser d'autre GPIO (toutes les autres sont utilisées ou pas utilisables).

J'en suis actuellement au stade suivant : si je débranche la PIN GPIO15 de mon relais au boot pas de soucis, je la branche une fois que le boot est fait tout fonctionne parfaitement. Par contre si je branche la PIN GPIO15 à mon relais au boot, ben mon wemos mini D1 boot pas.

Après de multiples recherche j'ai compris qu'il ne fallait pas de tension sur la GPIO15 au boot. Sinon on passe le bootloader dans un mode spécial.

Bon je vous cache pas que je suis un peut débutant et autodidacte en électronique et en arduino, du coup déjà je comprends pas trop pourquoi mon relais envois une tension à la GPIO15 au démarrage mais bon... par contre j'aimerai pouvoir booter sans avoir à faire ces manips de brancher débrancher parce que si j'ai une coupure électrique ou un reboot de l'ESP ben mon système ne marchera plus.

J'ai essayé de mettre une LED (vous savez ces led de couleurs vendue dans les kits débutants) pour bloquer le courant dans le sens relay=>GPIO, ça boot mais la commande du relay ne marche plus : j'ai l'impression que la led bouffe de la puissance sur la commande et que le signal GPIO15=>relais n'est pas assez fort pour déclencher le relais.

Bref j'ai continué à chercher et je pense qu'une diode (mais sans lumière) doit pouvoir faire le job, à savoir bloquer le courant relais=>GPIO15 mais laisser passer GPIO15=>relais.

Maintenant j'arrive vraiment aux limites de mes connaissances en la matière et du coup j'aimerai bien avoir votre avis :
1)C'est jouable ?
2)Quel modèle de diode il faut mettre ?

J'ai lu aussi que ce type de diode pouvait jouer sur la réactivité du relais, on parle en ms ?

Merci

Bonjour

Ce que tu nommes relais est sans doute une carte comportant un relais + d'autres composants.
ces composants additionnels sont sans doute responsables de l'effet constaté aur GPIO15
peut-tu donner un lien vers l'objet 'relais'? On y verrait plus cair pour expliquer ce qui se pase et dépasser le simples constatations. Ppour prposer une solution mieux vaut comprendre exactement ce qui se passe , de préférence sur la base d'un schéma.

(Pour qu'un ESP8266 démarre sur le code et non sur le bootloader il est impératif que GPIO15 soit à l'atat bas lors du reset ou du démarrage)

Contournement : qu'est ce qui empêche de permuter 2 GPIO pour que le 'relais' soit ailleurs que sur GPIO15 et que sur ce GPIO 'special' soit câblé un composant ou un module ne mettant pas GPIO15 à l'état haut au démarrage.

En fait tout dépend du relais. Je suppose qu'il s'agit d'un module, mais lequel ?


Par exemple sur celui-ci si le relais est commandé par GPIO15, cette pin sera à HIGH au boot, donc l'ESP8266 ne démarrera pas.

L'idéal serait un relais sans optocoupleur, avec un simple NPN :

Bonjour,

Merci pour vos réponses trés rapides !

Voici la carte relais (effectivement c'est une carte avec plusieurs composants pas un simple relais)

@Allfch : je ne maitrise pas le code de mon ESP8266 j'ai que 3 GPIO sur lesquelles je peux mettre mes commandes de relais donc je n'ai pas d'autre possibilités.

Du coup vaut mieux oublier l'idée de la diode et chercher une carte relais mieux adapaté ? Si vous avez un modèle précis à me conseiller je suis preneur.

merci beaucoup

D'après le lien le module Relais dispose du cavalier (providentiel !) reliant un point VCC et un point JDVCC (comme sur le schéma fourni par @hbachetti)

je tenterai la manip suivante
-enlever le cavalier
-alimenter en 5V au point JDVCC
-relier INx à la masse
-relier GPIO15 à la borne marque VCC

il se pourrait que le niveau haut de GPIO15 soit suffisant pour avoir , dans la DEL de l'optocouleur, un courant suffisant pour entraîner la cimmutation du relais. (Si le courant n'est pas suffisant court circuiter la diode DS1)
envers.png

En alimentant la DEL de l'optocoupleur 'par le haut' on n'aurait pas d'influence indésirable sur GPIO15

envers.png

envers.png

Si c'est bien une carte 4 relais, la ligne Vcc est commune aux 4 opto-coupleurs. Il faudra pas avoir besoin des 3 autres relais.

A noter aussi le fonctionnement sera inversé par rapport au montage original.

Bonjour,

oui c'est une carte 4 relais et effectivement j'ai besoin de 3 des 4 relais. Une carte à me conseiller qui fonctionnerait en adéquation avec mes besoins ?

Assez difficile.
Il faut éviter avant tout les modules relais à déclenchement par un niveau bas, soit par optocoupleur, soit par transistor PNP.
Certains modules sont équipés d'un cavalier permettant le déclenchement avec un niveau haut ou bas, mais il n'est pas dit que le problème ne sera pas le même.

Or la majeure partie des modules sont vendus sans schéma, il est donc difficile de dire s'ils vont ramener un niveau haut ou bas sur leurs entrées au repos.

Par exemple le polulu (2 relais seulement) :
https://www.gotronic.fr/art-module-2-relais-5-vcc-2485-21769.htm

Il est commandé par deux N MOSFETs.
Comme la D1 mini a une résistance de pull-down de 10K, ça devrait être OK.
Par contre c'est cher.

Ou changer de carte ESP8266 pour en prendre une qui a plus de GPIO, un nodeMCU par exemple

merci, l'ultime recours c'est effectivement de changer la carte mais j'ai déjà bien galéré pour faire mon montage, je suis vraiment pas loin du but et je suis sur qu'après j'aurai rien d'autre à ajouter. A pire je suis pas à quelques euros s'il faut changer la carte 4 relais, j'ai regardé pour la carte proposé par hbachetti il me faudrait la même en 4.

Bon aprés le plus important pour moi c'est de trouver la solution la plus simple à mettre en oeuvre. Personne n'a réagit sur mon idée de diode, je comprends pas en quoi c'est pas fesable...

merci en tous cas pour le temps que vous avez pris à me lire et à me répondre.

David

heu hbachetti j'ai regardé la carte 2 relais il me faut du 220v :wink:

proposition de diode ? précises sur un schéma son positionnement et son rôle.

Comme tu le vois le problème est examiné en tenant compte du schéma de la commande des relais via un optocoupleur, tel tel que sont les choses sur la plupart des modules à relais connus.

Pour comprendre ce qui se passe sur GPIO15 il faut associer le schéma de la carte avec l'ESP8266 ET celui du module à relais. Sans schémas les discussions tournent dans le vide.

Sans changer de carte l'ajout d'un transistor NPN basique (2N2222, BC547....) et d'une résistance (qq kOhm) permettrait de concilier les besoins de l'ESP8266 et ceux de ta carte
GPIO15 état bas -> NPN bloqué -> pas de courant dans le DEL de l'optocoupleur -> relais au repos
GPIO15 état haut -> NPN saturé -> coutrant dans la DEL de l'optocoupleur -> relais au travail
NPN.png

A la mise sous tension ce relais serait au repos car sur les cartes à base d'ESP8266 une resistance de pull-down d'une dizaine de kOhm est ajoutée sur GPIO15 (ici carte Wemos D1 Mini)
GPIO15.png

NPN.png

GPIO15.png

david40:
heu hbachetti j'ai regardé la carte 2 relais il me faut du 220v :wink:

Le commentaire concernant la limite 30V est applicable au courant continu.
Le relais supporte 10 A/250V alternatifs.
Le vrai commentaire Polulu :

Warning: This product is not designed to or certified for any particular high-voltage safety standard. Working with voltages above 30 V can be extremely dangerous and should only be attempted by qualified individuals with appropriate equipment and protective gear.

Donc ne pas y mettre les doigts. Mais ça tu le sais déjà ...

Bonjour,

Désolé vraiment pour toutes ces approximations, comme expliqué je suis vraiement pas calé en électronique.

Je vais essayer cette proposition

Sans changer de carte l'ajout d'un transistor NPN basique (2N2222, BC547....) et d'une résistance (qq kOhm) permettrait de concilier les besoins de l'ESP8266 et ceux de ta carte
GPIO15 état bas -> NPN bloqué -> pas de courant dans le DEL de l'optocoupleur -> relais au repos
GPIO15 état haut -> NPN saturé -> coutrant dans la DEL de l'optocoupleur -> relais au travail

je vous ferai un retour promis !

merci

Bonjour,

J'ai essayé le montage proposé avec une résistance 1k, 10k et 100K mais je n'ai pas réussi a booter correctement.

J'ai finalement essayé avec un redresseur de diode 1N4007 entre le GPIO15 et la carte relais et là ça fonctionne correctement. J'ai juste un bref déclanchement du relais au boot mais je vais pouvoir composer avec.

Merci pour votre aide.

David

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.