3 façons simples de programmer un module ESP8266 12X

Si vous n'êtes pas familier avec le micro-contrôleur ESP8266, j'ai vraiment l'impression que vous avez manqué! Ces choses sont incroyables: elles sont bon marché, puissantes et, mieux encore, disposent du WiFi intégré!

L'ESP8266 a commencé son parcours en tant que module d'extension WiFi pour les cartes Arduino plus traditionnelles, mais peu de temps après, la communauté a réalisé leur puissance et a ajouté un support pour pouvoir programmer directement avec l'IDE Arduino.

De nos jours, si vous cherchez à utiliser un ESP8266 pour votre projet, je recommanderais d'utiliser une carte de développement telle que la Wemos D1 Mini * (2, 50 $ livrée !!) ou Adafruit Feather Huzzah. Ces cartes ont toutes les broches utilisables éclatées, sont facilement programmables via leur connecteur micro USB et ont un régulateur 3, 3V intégré.

Mais que faire si vous souhaitez utiliser un ESP8266 dans un projet avec un PCB personnalisé? La façon la plus simple est d'utiliser un module ESP12, et dans cet Instructable je vais vous montrer quelques façons simples de les programmer.

* = Lien d'affiliation

Étape 1: Découvrez la vidéo!

Voici une vidéo avec toutes les informations contenues dans l'Instructable si vous souhaitez la consulter.

Sur ma chaîne, je travaille beaucoup avec les ESP8266, donc ma chaîne en général mérite peut-être de vérifier si ce genre de choses vous intéresse!

Étape 2: Pré-étape: configuration pour la programmation de l'ESP8266

Si vous n'avez jamais utilisé l'ESP8266 ou l'Arduino auparavant, nous aurons besoin d'un peu de configuration logicielle. J'ai une vidéo dédiée à cela. Il ne dure que 5 minutes et passe par tout ce dont vous avez besoin pour configurer.

Si les vidéos ne sont pas vraiment votre truc, consultez la leçon 2 de la classe IoT impressionnante de Becky, elle passe également en revue tout ce dont vous avez besoin.

Avant de passer à la section suivante, vous devriez pouvoir télécharger une simple esquisse sur un ESP8266 (comme l'exemple de clignotement mentionné dans la vidéo et la leçon de Becky)

Étape 3: Méthode 1: Programmeur de broches "Grenouille"

C'est probablement la façon la plus simple de programmer un module ESP12. Fondamentalement, vous insérez simplement le module dans la carte, puis il se comporte exactement comme l'une des cartes de développement mentionnées précédemment. J'ai sélectionné la carte Wemos D1 Mini dans la liste déroulante des cartes lors de la programmation.

Il y a des inconvénients à cette méthode:

  • Le programmeur est un peu cher si vous ne faites que quelques cartes.
  • Les cartes ne peuvent être programmées que de cette façon avant d'être soudées à votre PCB

Celui que j'ai acheté est d'Aliexpress, mais je crois que le concepteur d'origine est un utilisateur de Tindie appelé Fred. Ils étaient épuisés à l'époque, donc j'ai fini par choisir celui d'Aliexpress, mais je vais faire le lien avec les deux.

  • Programmeur de module ESP Pop-in Aliexpress *
  • Fred's Frog Pin Programmeur de module ESP

* = Lien d'affiliation

Étape 4: Méthode 2: utiliser essentiellement n'importe quel convertisseur USB vers série

Pour la méthode suivante, nous allons mettre manuellement le module ESP en mode de programmation, puis utiliser essentiellement n'importe quel convertisseur USB vers série pour programmer l'ESP8266, même ce PL2303 * qui coûte 50c livré!

Fonctionnement normal:

Avant de commencer la programmation, nous devons d'abord examiner les composants externes dont l'ESP8266 a besoin pour fonctionner. Pour un fonctionnement normal, un module ESP-12 a besoin des éléments suivants

  • EN, RST et GPIO 0 doivent être tirés haut à l'aide d'une résistance 10K
  • GPIO 15 doit être tiré à la masse à l'aide d'une résistance 10K
  • Alimentation 3, 3 V capable d'environ 250 mA de courant (Un plafond entre VCC et GND est recommandé)

Avec la configuration ci-dessus, l'ESP8266 lorsqu'il est allumé sera en mode de fonctionnement normal, il exécutera donc tous les croquis que vous lui avez programmés.

Vous pouvez acheter des cartes de dérivation pour les modules ESP-12 * qui sont vraiment utiles pour tester les différentes configurations. Les modules ont la configuration des résistances pour les broches EN et GPIO 15, vous devrez donc toujours ajouter la résistance de rappel pour RST et GPIO 0,

Activation du mode de programmation:

Pour le mettre en mode de programmation, GPIO 0 doit être abaissé au démarrage de l'ESP. La façon la plus simple de procéder consiste à ajouter des boutons au GPIO 0 et à la broche RST qui se connectent à la masse lorsque vous appuyez dessus. Ensuite, pour activer le mode flash, il vous suffit

  • Maintenez enfoncé le bouton GPIO 0
  • Appuyez sur le bouton RST
  • Relâchez ensuite les deux boutons

Vous n'avez pas besoin d'effectuer cette séquence à un moment particulier pendant le processus de téléchargement ou quoi que ce soit, une fois que l'ESP est en mode de programmation, il y restera jusqu'à la prochaine réinitialisation, alors effectuez simplement les étapes à tout moment avant de télécharger.

Programmation avec un adaptateur USB vers série:

L'activation du mode programme ne représente que la moitié de la bataille, maintenant nous devons réellement programmer le module. La plupart des adaptateurs USB vers série ne peuvent pas fournir suffisamment de courant à l'ESP8266, il est donc recommandé d'alimenter l'ESP8266 à l'aide d'une source externe de 3, 3 V.

Pour câbler le programmateur, vous devez connecter les broches suivantes (également illustrées dans une image ci-dessus):

  • Connectez TX du programmateur à RX de l'ESP8266 (Pas une faute de frappe, les connexions sont inversées)
  • Connectez RX du programmateur à TX de l'ESP8266
  • Connectez la masse du programmateur à la masse de l'ESP8266

Pour télécharger votre croquis, procédez comme suit:

  • Sélectionnez le numéro de port de votre adaptateur série (Outils-> Port)
  • Activez le mode de programmation sur votre ESP8266 comme décrit ci-dessus
  • Cliquez sur le bouton de téléchargement. (S'il échoue, vérifiez votre câblage et essayez de remettre votre carte en mode de programmation à nouveau)
  • Cliquez sur le bouton de réinitialisation lorsque le téléchargement est terminé

Voici les paramètres du forum que j'ai utilisés lors du téléchargement à l'aide de cette méthode:

  • Carte: Module ESP8266 générique
  • Mode Flash: DIO
  • Taille du flash: 4M (3M Spiffs)
  • Méthode de réinitialisation: ck
  • Fréquence du flash: 40 MHz
  • Vitesse de téléchargement: 115200

La dernière chose à noter est la définition de LED_BUILIN pour un module ESP8266 générique pointe vers la broche 1, mais la LED intégrée d'un module ESP12 est connectée à la broche 2 (elle est active trop bas comme un FYI). Donc, si vous testez un croquis clignotant, vous devrez utiliser le chiffre 2 plutôt que LED_BUILTIN

* = Lien d'affiliation

Étape 5: Méthode 3: Programmation de réinitialisation automatique à l'aide d'un NodeMCU

Si vous avez utilisé des cartes de développement ESP, vous aurez remarqué que pratiquement toutes ne nécessitent pas d'activer manuellement le mode de programmation à l'aide des boutons, alors comment font-elles cela?

La plupart des puces USB vers série ont des broches supplémentaires qui émettent des signaux à différentes étapes du processus de téléchargement et avec l'utilisation de certains circuits externes, il est possible de déclencher le bas du GPIO 0 et les réinitialisations requises. RuiMoteiro a un instructable sur ce sujet en utilisant une carte FTDI et ESP8266.

Mais je pense qu'il y a une approche plus simple à cela, et ce qui est encore mieux, c'est qu'il y a de fortes chances que vous ayez déjà tout ce dont vous avez besoin pour le faire! Vous pouvez utiliser une carte de développement ESP8266 telle qu'un NodeMCU comme programmeur *.

Quel est l'avantage d'utiliser un NodeMCU?

Les principaux avantages de l'utilisation du NodeMCU en tant que programmeur sont les suivants:

  • Vous pouvez alimenter l'ESP8266 directement à partir des broches 3 V du NodeMCU
  • Gérera la réinitialisation automatique / l'activation du mode de programmation
  • Coût d'environ 2, 50 $ (et peut être utilisé comme tableau de développement normal lorsque vous ne programmez pas d'autres!)

Vous pouvez utiliser cette même approche avec n'importe quelle carte de développement qui expose la broche d'activation de la puce de l'ESP8266.

Comment ça marche?

J'ai eu l'idée de cela d'un YouTuber appelé Mika Kurkela, dans sa vidéo, il utilisait le NodeMCU pour programmer un module ESP-01, mais nous pouvons utiliser la même idée pour le module ESP12.

Fondamentalement, nous allons désactiver l'ESP8266 sur le NodeMCU en forçant la broche EN à bas, cela empêchera le module ESP8266 sur le NodeMCU de démarrer. Nous allons ensuite connecter toutes les broches pertinentes de la carte NodeMCU à notre ESP8266 externe.

Câblage

Pour le câbler, vous aurez besoin du câblage ESP8266 standard comme indiqué dans l'étape précédente, puis pour ajouter les connexions suivantes (également illustrées dans l'image ci-dessus):

  • Connectez 3V du NodeMCU au VCC de l'ESP8266
  • Connectez GND à GND
  • Connectez TX du NodeMCU à TX de l'ESP8266 (Ceci est différent de l'étape précédente)
  • Connectez le RX du NodeMCU au RX de l'ESP8266
  • Connectez D3 du NodeMCU au GPIO 0 de l'ESP8266 (D3 est GPIO 0 de l'ESP8266)
  • Connectez RST du NodeMCU au RST de l'ESP8266
  • Connectez EN du NodeMCU à GND

Téléchargement d'une esquisse

Une fois que l'ESP8266 est connecté, vous devez procéder comme suit:

  • Sélectionnez le numéro de port du NodeMCU (Tools-> Port)
  • Sélectionnez le type de carte "NodeMCU 1.0 (module ESP12-E)"
  • Cliquez sur télécharger

Et c'est tout! Il activera automatiquement le mode de programmation et se réinitialisera automatiquement une fois le téléchargement terminé afin qu'il commence à exécuter l'esquisse.

Utiliser cela dans vos conceptions de planches

Pour utiliser cette méthode dans vos conceptions de carte, il vous suffit de briser les broches suivantes:

  • Sol
  • GPIO 0
  • VCC
  • TX
  • RX
  • RST

Et lorsque vous souhaitez programmer vos cartes, connectez-les comme ci-dessus.

J'espère que vous trouverez cet Instructable utile, si vous avez des questions, n'hésitez pas à le demander!

* = Lien d'affiliation

Articles Connexes