Table des matières:

ESP8266 utilisant les broches GPIO0/GPIO2/GPIO15 : 4 étapes
ESP8266 utilisant les broches GPIO0/GPIO2/GPIO15 : 4 étapes

Vidéo: ESP8266 utilisant les broches GPIO0/GPIO2/GPIO15 : 4 étapes

Vidéo: ESP8266 utilisant les broches GPIO0/GPIO2/GPIO15 : 4 étapes
Vidéo: Programmer des objets connectés en 15 min !! (Tuto ESPHome 2022) 2024, Novembre
Anonim
ESP8266 utilisant les broches GPIO0/GPIO2/GPIO15
ESP8266 utilisant les broches GPIO0/GPIO2/GPIO15

Mise à jour du 1er juillet 2018 - Ajout d'une note sur la reprogrammation lorsque GPIO0 est une sortie

Ceci est une note très courte sur la façon d'utiliser les broches GPIO0 / GPIO2 et GPIO15 sur le module ESP8266.

Mise à jour: consultez également Comment utiliser les broches ESP8266-01

introduction

ESP8266 est une puce compatible wifi à faible coût. Il existe dans une variété de types de modules et peut être programmé de différentes manières. Tous les modules rendent GPIO0 et GPIO2 accessibles. La plupart des modules, autres que ESP8266-01, rendent également GPIO15 accessible. Ces GPIO contrôlent le démarrage du module et, en tant que tels, nécessitent un traitement spécial s'ils doivent être utilisés. GPIO6-GPIO11 nécessitent également un traitement spécial comme décrit ci-dessous.

Étape 1: Broches GPIO Flash - GPIO6 à GPIO11

La plupart des cartes ESP8266 ont une puce flash connectée à tout ou partie des GPIO6-GPIO11. La plupart des programmes utilisent la mémoire flash, ainsi que la RAM, donc à moins que vous ne vous assuriez spécifiquement que votre code ne s'exécute qu'à partir de la RAM, vous ne pouvez pas utiliser ces broches à d'autres fins.

Le nombre exact de broches utilisées dans la plage GPIO6 à GPIO11 dépend du type de matériel flash utilisé sur votre module. Quad IO utilise 4 lignes pour les données (6 broches au total) pour une vitesse jusqu'à 4 fois supérieure à la vitesse standard. Dual IO utilise 2 lignes pour les données (4 broches au total) Standard utilise une seule ligne pour les données (3 broches au total).

À moins que vous ne sachiez exactement ce dont votre carte a besoin, il est préférable d'ignorer simplement GPIO6 à GPIO11 et de ne pas y faire référence à partir de votre code.

Étape 2: Broches GPIO0, GPIO2 et GPIO15

Broches GPIO0, GPIO2 et GPIO15
Broches GPIO0, GPIO2 et GPIO15

Ces broches déterminent dans quel mode la puce démarre.

Pour l'exécution normale du programme, GPIO0 et GPIO2 doivent être tirés jusqu'à Vcc (3,3 V) et GPIO15 doit être tiré vers GND, chacun avec une résistance comprise entre 2K et 10K. Une résistance 2K offre une meilleure immunité au bruit. OLIMEX utilise des résistances 2K SparkFun utilise des résistances 10K. J'utilise des résistances 3K3.

Le paramétrage de ces entrées n'est vérifié que lors de la mise sous tension (ou reset) de la puce. Après cela, les broches sont disponibles pour une utilisation générale, mais comme indiqué ci-dessous, leur utilisation est limitée par ces résistances externes pull up/down.

Étape 3: Utilisation de GPIO0, GPIO2 et GPIO15 comme sorties

Utilisation de GPIO0, GPIO2 et GPIO15 comme sorties
Utilisation de GPIO0, GPIO2 et GPIO15 comme sorties

Comme indiqué ci-dessus, ces broches auront déjà une résistance connectée à VCC (GPIO0 et GPIO2) ou GND pour GPIO15. Cela détermine comment tout appareil externe, comme un relais ou une led+résistance, doit être connecté. Pour GPIO0 et GPIO2, un relais externe doit être connecté entre VCC et la broche afin qu'il n'interfère pas avec l'action de la résistance de rappel. A l'inverse, un relais externe connecté au GPIO15 doit être connecté entre GND et la broche afin qu'il n'interfère pas avec l'action de la résistance pull down.

Pour activer le périphérique externe, GPIO0 ou GPIO2 doit être piloté LOW (Active LOW) tandis que GPIO15 doit être piloté HIGH (Active HIGH).

Le schéma ci-dessus montre comment utiliser GPIO0 et GPIO2 et GPIO15 comme sorties. Ce circuit comprend également les résistances pullup/pulldown nécessaires. Notez que le module relais 5V piloté par GPIO0 est opto-isolé et dispose d'une connexion commune séparée pour l'entrée. Il est important que la tension 5V VCCA ne soit pas appliquée à la broche ESP8266.

Comment reprogrammer lors de l'utilisation de GPIO0 comme sortie

Remarque: GPIO0 doit être mis à la terre pour entrer en mode de programmation. Si votre croquis le conduit haut, sa mise à la terre peut endommager votre puce ESP8266. Le moyen sûr de reprogrammer l'ESP8266 lorsque votre code pilote la sortie GPIO0 est de:- a) éteindre la carte b) court GPIO0 à gnd c) allumer la carte qui passe en mode programme en raison du court-circuit sur GPIO0 d) supprimer le court-circuit de GPIO0 afin de ne pas court-circuiter la sortie lorsque le programme s'exécute e) reprogrammez la carte f) redémarrez la carte si nécessaire.

Étape 4: Utilisation de GPIO0, GPIO2 et GPIO15 comme entrées

Utilisation de GPIO0, GPIO2 et GPIO15 comme entrées
Utilisation de GPIO0, GPIO2 et GPIO15 comme entrées

L'utilisation de ces broches comme entrées est un peu délicate. Comme indiqué ci-dessus lors de la mise sous tension et lors de la réinitialisation, ces broches doivent être tirées vers le haut ou vers le bas selon les besoins pour que le module ESP8266 démarre en mode de fonctionnement normal. Cela signifie, en général, que vous ne pouvez pas simplement attacher un commutateur externe à ces broches, car à la mise sous tension, vous ne pouvez généralement pas garantir que le commutateur ne mettra pas l'entrée à la terre et empêchera ainsi le module de démarrer correctement.

L'astuce consiste à ne pas connecter le commutateur externe directement du GPIO0 ou GPIO2 à GND mais à le connecter à la place à une autre broche GPIO qui est mise à la terre (en tant que sortie) uniquement après le démarrage de l'ESP8266. N'oubliez pas que lorsqu'elles sont utilisées comme sorties, les broches GPIO fournissent une connexion à très faible résistance à VCC ou à GND selon qu'elles sont pilotées en HAUT ou en BAS.

Ici, seuls GPIO0 et GPIO2 seront pris en compte. En utilisant cette méthode, vous pouvez obtenir une (1) entrée supplémentaire en utilisant ces deux (2) GPIO.

Une méthode similaire peut être utilisée pour GPIO15 en utilisant une autre broche GPIO pour connecter son commutateur à +VCC, mais cela ne gagne pas d'entrée supplémentaire, vous pouvez aussi bien utiliser l'autre broche GPIO directement comme entrée.

Le circuit ci-dessus utilise le module ESP8266-01 comme exemple. Sans utiliser cette astuce, l'ESP8266-01 n'a pas de broches libres à utiliser comme entrée si vous utilisez déjà les broches RX/TX pour une connexion UART.

Étant donné que la méthode setup() de l'esquisse n'est exécutée qu'après le démarrage du module ESP8266, il est alors prudent de faire en sorte que la sortie GPIO0 soit FAIBLE et de fournir ainsi une masse pour S1 connecté à GPIO2. Vous pouvez ensuite utiliser digitalRead(2) ailleurs dans votre croquis pour lire le réglage du commutateur.

Conclusion

Cette courte note montre comment utiliser GPIO0, GPIO2 et GPIO15 comme sorties et comment utiliser une entrée supplémentaire en utilisant GPIO0 et GPIO2 ensemble.

Conseillé: