Inhoudsopgave:

3 eenvoudige manieren om een ESP8266 12X-module te programmeren - Ajarnpa
3 eenvoudige manieren om een ESP8266 12X-module te programmeren - Ajarnpa

Video: 3 eenvoudige manieren om een ESP8266 12X-module te programmeren - Ajarnpa

Video: 3 eenvoudige manieren om een ESP8266 12X-module te programmeren - Ajarnpa
Video: WOK 2020: Waterkwaliteit & Monitoring 2024, November
Anonim
3 eenvoudige manieren om een ESP8266 12X-module te programmeren
3 eenvoudige manieren om een ESP8266 12X-module te programmeren

Als je niet bekend bent met de ESP8266-microcontroller, heb ik echt het gevoel dat je iets hebt gemist! Deze dingen zijn ongelooflijk: ze zijn goedkoop, krachtig en het beste van alles is dat ze ingebouwde wifi hebben! ESP8266 begon hun reis als een wifi-add-on-board voor meer traditionele Arduino-boards, maar kort daarna besefte de gemeenschap de kracht ervan en voegde ondersteuning toe om direct met de Arduino IDE te kunnen programmeren.

Als u tegenwoordig een ESP8266 voor uw project wilt gebruiken, raad ik u aan een ontwikkelbord te gebruiken, zoals de Wemos D1 Mini* ($ 2,50 geleverd!!) of Adafruit Feather Huzzah. Deze boards hebben alle bruikbare pinnen uitgebroken, zijn eenvoudig programmeerbaar via hun micro-USB-connector en hebben een ingebouwde 3.3V-regelaar. Maar wat als je een ESP8266 wilt gebruiken in een project met een aangepaste PCB? De eenvoudigste manier is om een ESP12-module te gebruiken, en in deze Instructable laat ik je een aantal eenvoudige manieren zien om ze te programmeren. * = Affiliate Link

Stap 1: Bekijk de video

Hier is een video met alle informatie in de Instructable als je het wilt bekijken. Op mijn kanaal werk ik veel met ESP8266's, dus mijn kanaal in het algemeen is misschien de moeite van het bekijken waard als dat soort dingen je interesseren!

Stap 2: Pre-Step: Setup voor het programmeren van de ESP8266

Image
Image

Als je de ESP8266 of Arduino nog nooit eerder hebt gebruikt, moeten we een beetje software instellen. Ik heb hier een speciale video voor. Het duurt slechts 5 minuten en doorloopt alles wat je nodig hebt om in te stellen.

Als video's niet echt jouw ding zijn, bekijk dan les 2 van Becky's geweldige IoT Class, het gaat over alles wat je nodig hebt.

Voordat u naar het volgende gedeelte gaat, moet u een eenvoudige schets naar een ESP8266 kunnen uploaden (zoals het voorbeeld met knipperen dat wordt genoemd in zowel de video als Becky's les)

Stap 3: Methode 1: "Frog" Pin-programmeur

Methode 1
Methode 1

Dit is waarschijnlijk de gemakkelijkste manier om een ESP12-module te programmeren. Je steekt de module in feite gewoon in het bord en dan gedraagt het zich precies zoals een van de eerder genoemde ontwikkelborden. Ik heb het Wemos D1 Mini-bord gekozen uit de vervolgkeuzelijst van de borden tijdens het programmeren. Er zijn nadelen aan deze methode:

  • De programmeur is een beetje duur als je maar een paar boards maakt.
  • Borden kunnen alleen op deze manier worden geprogrammeerd voordat ze op je printplaat worden gesoldeerd

Degene die ik kocht is van Aliexpress, maar ik geloof dat de oorspronkelijke ontwerper een gebruiker op Tindie is die Fred heet. Ze waren destijds uitverkocht, dus ik ben uiteindelijk voor de AliExpress gegaan, maar ik zal naar beide linken.

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

* = Partnerlink

Stap 4: Methode 2: In principe elke USB-naar-serieel-converter gebruiken

Methode 2: In principe elke USB-naar-serieel-converter gebruiken
Methode 2: In principe elke USB-naar-serieel-converter gebruiken
Methode 2: In principe elke USB-naar-serieel-converter gebruiken
Methode 2: In principe elke USB-naar-serieel-converter gebruiken
Methode 2: In principe elke USB-naar-serieel-converter gebruiken
Methode 2: In principe elke USB-naar-serieel-converter gebruiken

Voor de volgende methode gaan we de ESP-module handmatig in de programmeermodus zetten en vervolgens gebruiken we in principe elke USB naar serieel converter om de ESP8266 te programmeren, zelfs deze PL2303 die 50c kost, werkt!

Normale operatie:

Voordat we beginnen met programmeren, moeten we eerst kijken naar welke externe componenten de ESP8266 moet draaien. Voor normaal gebruik heeft een ESP-12-module het volgende nodig:

  • EN, RST en GPIO 0 moeten hoog worden getrokken met een weerstand van 10K
  • GPIO 15 moet naar aarde worden getrokken met een weerstand van 10K
  • 3.3V voeding die ongeveer 250mA stroom kan leveren (een limiet tussen VCC en GND wordt aanbevolen)

Met de bovenstaande configuratie zal de ESP8266, wanneer ingeschakeld, in de normale bedrijfsmodus zijn, dus het zal alle schetsen uitvoeren die u erop hebt geprogrammeerd. U kunt breakout-boards kopen voor ESP-12-modules* die erg handig zijn om de verschillende opstellingen uit te testen. De modules hebben de weerstanden ingesteld voor de EN en GPIO 15 pin, dus je zult nog steeds de pull-up weerstand voor RST en GPIO 0 moeten toevoegen,

Programmeermodus inschakelen:

Om het in de programmeermodus te krijgen, moet GPIO 0 laag worden getrokken wanneer de ESP opstart. De eenvoudigste manier om dit te doen, is door knoppen toe te voegen aan GPIO 0 en de RST-pin die verbinding maakt met aarde wanneer erop wordt gedrukt. Om vervolgens de flitsmodus in te schakelen, hoeft u alleen maar:

  • Houd de GPIO 0-knop ingedrukt
  • Druk op de RST-knop
  • Laat dan beide knoppen los

U hoeft deze reeks niet op een bepaald moment tijdens het uploadproces of zo uit te voeren, als de ESP eenmaal in de programmeermodus is, blijft deze daar tot de volgende reset, dus voer de stappen gewoon uit voordat u gaat uploaden.

Programmeren met een USB naar serieel adapter:

Het inschakelen van de programmeermodus is slechts het halve werk, nu moeten we de module daadwerkelijk programmeren. De meeste USB-naar-serieel-adapters kunnen de ESP8266 niet voldoende stroom leveren, dus het wordt aanbevolen om de ESP8266 van stroom te voorzien met een externe 3.3V-bron.

Om de programmer aan te sluiten, moet u de volgende pinnen aansluiten (ook weergegeven in een afbeelding hierboven):

  • Verbind TX van de programmeur met RX van de ESP8266 (Geen typfout, de verbindingen zijn omgekeerd)
  • Sluit RX van de programmeur aan op TX van de ESP8266
  • Sluit de aarde van de programmeur aan op de aarde van de ESP8266

Voer de volgende stappen uit om uw schets te uploaden:

  • Selecteer het poortnummer van uw seriële adapter (Extra->Poort)
  • Activeer de programmeermodus op uw ESP8266 zoals hierboven beschreven
  • Klik op de uploadknop. (Als het niet lukt, controleer dan nogmaals je bedrading en probeer je bord opnieuw in de programmeermodus te zetten)
  • Klik op de reset-knop wanneer het uploaden is voltooid

Dit zijn de bordinstellingen die ik heb gebruikt bij het uploaden met deze methode:

  • Bord: generieke ESP8266-module
  • Flitsmodus: DIO
  • Flitsgrootte: 4M (3M Spiffs)
  • Reset methode: ck
  • Flitsfrequentie: 40MHz
  • Uploadsnelheid: 115200

Het laatste om op te merken is dat de LED_BUILIN-definitie voor een generieke ESP8266-module naar pin 1 wijst, maar de ingebouwde LED van een ESP12-module is verbonden met pin 2 (het is ook actief laag, net als een FYI). Dus als je een knipperschets aan het testen bent, moet je het nummer 2 gebruiken in plaats van LED_BUILTIN

* = Partnerlink

Stap 5: Methode 3: Programmeur automatisch resetten met behulp van een NodeMCU

Methode 3: Programmeur automatisch resetten met behulp van een NodeMCU
Methode 3: Programmeur automatisch resetten met behulp van een NodeMCU
Methode 3: Programmeur automatisch resetten met behulp van een NodeMCU
Methode 3: Programmeur automatisch resetten met behulp van een NodeMCU

Als je ESP-ontwikkelingsborden hebt gebruikt, is het je opgevallen dat je in principe niet allemaal de programmeermodus handmatig met de knoppen hoeft in te schakelen, dus hoe doen ze dat?

De meeste USB-naar-serieel-chips hebben extra pinnen die signalen uitvoeren in verschillende stadia van het uploadproces en met het gebruik van een aantal externe circuits is het mogelijk om het dieptepunt van de GPIO 0 en de vereiste resets te activeren. RuiMoteiro heeft een instructie over dit onderwerp met behulp van een FTDI-bord en ESP8266.

Maar ik denk dat er een eenvoudigere benadering is, en wat nog beter is, is dat de kans groot is dat je al alles hebt wat je nodig hebt om het te doen! U kunt een ESP8266-ontwikkelbord zoals een NodeMCU als programmer* gebruiken.

Wat is het voordeel van het gebruik van een NodeMCU?

De belangrijkste voordelen van het gebruik van de NodeMCU als programmeur zijn de volgende:

  • U kunt de ESP8266 rechtstreeks van stroom voorzien via 3V-pinnen van de NodeMCU
  • Zal het automatisch resetten/inschakelen van de programmeermodus afhandelen
  • Kost ongeveer $ 2,50 geleverd (en kan worden gebruikt als gewoon ontwikkelbord wanneer anderen niet programmeren!)

U kunt dezelfde benadering gebruiken met elk ontwikkelbord, de chip-inschakelpen van de ESP8266 wordt blootgelegd.

Hoe werkt het?

Ik kreeg het idee hiervan van een YouTuber genaamd Mika Kurkela, in zijn video gebruikte hij de NodeMCU om een ESP-01-module te programmeren, maar we kunnen hetzelfde idee gebruiken voor de ESP12-module.

In principe gaan we de ESP8266 op de NodeMCU uitschakelen door de EN-pin laag te forceren, dit zal voorkomen dat de ESP8266-module op de NodeMCU opstart. We gaan dan alle relevante pinnen van het NodeMCU-bord verbinden met onze externe ESP8266.

Bedrading maken

Om het aan te sluiten, hebt u de standaard ESP8266-bedrading nodig zoals getoond in de vorige stap en vervolgens om de volgende verbindingen toe te voegen (ook weergegeven in de afbeelding hierboven):

  • Sluit 3V van de NodeMCU aan op VCC van de ESP8266
  • Verbind GND met GND
  • Verbind TX van de NodeMCU met TX van de ESP8266 (Dit is anders dan de vorige stap)
  • Verbind RX van de NodeMCU met RX van de ESP8266
  • Sluit D3 van de NodeMCU aan op GPIO 0 van de ESP8266 (D3 is GPIO 0 van de ESP8266)
  • Verbind RST van de NodeMCU met RST van de ESP8266
  • Verbind EN van de NodeMCU met GND

Een schets uploaden

Nadat u de ESP8266 hebt aangesloten, moet u het volgende doen:

  • Selecteer het poortnummer van de NodeMCU (Tools->Poort)
  • Selecteer het bordtype "NodeMCU 1.0 (ESP12-E Module)"
  • Klik op uploaden

En dat is het! Het schakelt automatisch de programmeermodus in en wordt automatisch gereset wanneer het uploaden is voltooid, zodat het de schets begint uit te voeren.

Dit gebruiken in je bordontwerpen

Om deze methode in je bordontwerpen te gebruiken, hoef je alleen maar de volgende pinnen uit te breken:

  • Grond
  • GPIO 0
  • VCC
  • TX
  • RX
  • RST

En als u uw borden wilt programmeren, sluit u deze aan zoals hierboven.

Hopelijk vind je dit Instructable nuttig, als je vragen hebt, stel ze dan gerust!

* = Partnerlink

Aanbevolen: