Arduino

Aan de slag met ESP8266 en Arduino: ESP8266 (ESP-01) Arduino Interface

Laatst bijgewerkt: 30/07/2020

Als je IoT (Internet of Things) leuk vindt, heb je misschien wel eens gehoord van ESP8266 WiFi modules. Zo niet, maak je geen zorgen. Deze tutorial gaat over aan de slag gaan met de Esp8266 (ESP-01) WiFi module en hoe het ESP8266 (ESP-01)1 Arduino paar kan worden gebruikt in uw IoT projecten.

Voordat we ingaan op de details over het interfacen van het ESP8266 (ESP-01) Arduino paar , moet je eerst beginnen met de ESP8266 (ESP-01) WiFi module.

Wat is ESP8266 (ESP-01)

ESP8266 (ESP-01) is een WiFi module op basis van Cadence Tensilica L106 32 bit MCU, gefabriceerd door Espressif Systems. De ESP8266 SoC bevat een volledig functionele WiFi stack en TCP/IP Stack waarmee elke Microcontroller verbinding kan maken met het WiFi netwerk.

Met Software Development Kits (SDK's), kunt u de ESP8266’s on chip Microcontroller direct programmeren, zonder dat hiervoor een externe Microcontroller nodig is.

Op basis van de ESP8266 SoC zijn verschillende externe fabrikanten begonnen met het produceren van aangepaste borden en een dergelijke fabrikant is Ai Thinker. Het eerste bord vervaardigd door Ai Thinker is ESP-01 (wat hetzelfde board is dat in dit project wordt gebruikt) en het werd behoorlijk populair.

Op basis van het succes van de ESP-01 module werden verschillende andere modules zoals ESP-02, ESP-07, ESP-12, enz. Vrijgegeven door Ai Thinker. Al deze kaarten zijn gebaseerd op ESP8266 SoC, maar het grootste verschil is het aantal GPIO pinnen.

Er zijn andere modules zoals ESP WROOM van Espressif Systems, NodeMCU, WeMOS, SparkFun ESP8266, enz.

ESP8266 ESP-01

In dit project gebruiken we de Ai Thinker’s ESP-01 Module. Het bestaat uit 8 pinnen en de volgende afbeelding toont de verschillende componenten van het bord.

Als we naar de pinconfiguratie gaan, zoals hierboven vermeld, bestaat de ESP-01 module uit 8 pinnen en deze pinnen zijn VCC, GND, TX, RX, RST, CH_PD, GPIO0 en GPIO2. De volgende afbeelding toont het pendiagram van de ESP-01 module.

Pin Beschrijving van ESP8266 ESP-01 Module

Belangrijke opmerking

De ESP8266 is niet compatibel met 5V en de ESP-01 module heeft geen spanningsregelaars aan boord. Zorg ervoor dat de stroomtoevoer naar de ESP8266 3,3 V is, bij voorkeur van een speciale voeding in plaats van deze uit de 3.3V Pin van de Arduino te halen.

ESP8266 Arduino Interface

Voordat u de Arduino interface van de ESP8266 ziet, moet u een paar dingen weten over de ESP8266 (ESP-01) module. De ESP8266 (ESP-01) WiFi module wordt geleverd met standaardfirmware die AT opdrachten ondersteund.

Na het koppelen van de ESP8266 (ESP-01) WiFi module met Arduino en het uploaden van ons eigen programma, zal de originele firmware worden gewist. We zullen in een afzonderlijk project zien hoe ESP8266 (ESP-01) module moet worden gekoppeld voor AT opdrachten en hoe de originele firmware kan worden geflast met behulp van Arduino.

Nu zullen we zien hoe de ESP8266(ESP-01) met Arduino te programmeren en toegang te krijgen tot de GPIO pinnen. Eerst zullen we het aansluitschema van de interface zien.

Schakelschema van de Arduino interface ESP8266 (ESP-01)

Als de ESP8266 (ESP-01) module in het schakelschema niet duidelijk is, kan de volgende afbeelding u misschien helpen. Het is slechts een persoonlijke weergave voor het schakelschema. Het werkelijke pindiagram hebben we hier boven al gezien.

Components Required

  1. Arduino UNO
  2. ESP8266 ESP-01
  3. 1 KΩ Weerstand
  4. 2.2 KΩ Weerstand
  5. 100 pF Condensator
  6. Mini Breadboard
  7. Aansluitdraden

Maak de ESP8266 ESP-01 module gereed voor Breadboard gebruik

Als u de pennen van de ESP8266 ESP-01 module bekijkt, kunt u zien dat deze niet geschikt is voor breadboards. Daarom heb ik een klein perf-bord gemaakt met aan de onderkant geschikte breadboard-pinnen en vrouwelijke headers om de ESP8266 ESP-01 module erop te monteren.

Op dit perf-bord heb ik ook de niveau omzetter weerstanden voor de RX pen van de ESP8266 en ook een 100 pF bypass-condensator tussen VCC (3,3 V) en GND aangesloten. De volgende afbeelding toont de montage van de ESP8266 ESP-01 module op een mini breadboard.

De Arduino IDE gereed maken voor het programmeren van ESP8266

ESP8266 WiFi-module kan worden geprogrammeerd met behulp van Arduino IDE en om dat te doen, moet u een paar wijzigingen aanbrengen in de Arduino IDE. Ga eerst naar Bestand –> Voorkeuren in de Arduino IDE en in de sectie Additionele Board beheer URL's, voer de volgende URL in.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Opmerking

U kunt veel van dergelijke URL's toevoegen, maar deze moeten worden gescheiden door komma's.

Ga nu naar Hulpmiddelen –> Board –> Boards Beheer en zoek naar ESP8266 in het zoekveld.

Selecteer de ESP8266 by ESP8266 Community en klik op Installeren.

Opmerking

Deze functie om boards van derden toe te voegen via board manager is beschikbaar voor Arduino IDE versie 1.6.4 en hoger. Zorg er dus voor dat je de nieuwste versie van Arduino IDE hebt, deze kan je hier downloaden.

Arduino UNO gereed maken voor het programmeren van ESP8266 (ESP-01)

Om de ESP8266 (ESP-01) module te programmeren, moeten we deze op een computer aansluiten. Omdat seriële communicatie de enige beschikbare communicatie is op de ESP8266 ESP-01 module, hebben we een USB naar seriële adapter nodig zoals een FTDI, CH340 of FT232RL.

Maak je geen zorgen als je geen speciale USB naar seriële adapter hebt. De Arduino UNO heeft een ingebouwde USB naar seriële adapter (die wordt gebruikt om de Arduino te programmeren). We gaan dit gebruiken voor het programmeren van de ESP8266 (ESP-01) .

We zullen de TX en RX pins van de Arduino gebruiken om verbinding te maken met de ESP8266 module en om ervoor te zorgen dat Arduino deze pinnen niet gebruikt, kunnen we een minimale schets naar Arduino uploaden.

Opmerking

Een minimale schets bestaat uit alleen de setup() en loop() functies zonder gegevens erin.

In mijn geval heb ik een extra Arduino UNO bord met een niet werkende ATmega328p IC. Dus heb ik de Microcontroller IC uit de Arduino UNO verwijderd en ben ik deze gaan gebruiken als USB naar Serieel Converter.

Circuitontwerp voor het programmeren van ESP8266 (ESP-01) met Arduino

U hebt de vereiste componenten en het schakelschema van het project al gezien. Laten we nu proberen het ontwerp van het circuit te begrijpen.

Eerst en vooral werkt de ESP8266 (ESP-01) module op een 3,3V voeding en alles wat groter is dan dat, zoals bijvoorbeeld 5V, zal de SoC doden. Dus, de VCC-pin en CH_PD-pin van de ESP8266 ESP-01 module zijn aangesloten op een 3,3 V voeding.

Het volgende belangrijke om te onthouden is dat de ESP8266 (ESP-01) WiFi module twee werkingsmodi heeft: Programmeermodus en Normale modus.

In de programmeermodus kunt u het programma of de firmware uploaden naar de ESP8266-module en in de normale modus zal het geüploade programma of de firmware normaal werken.

Om de programmeermodus in te schakelen, moet de GPIO0 pin zijn verbonden met GND. In het schakelschema heb ik een schakelaar aangesloten op de GPIO0 pin. Als u de hendel van schakelaar omschakelt, schakelt de ESP8266 tussen de programmeermodus (GPIO0 is verbonden met GND) en de normale modus (GPIO0 fungeert als een GPIO-pin).

Ook zal de RST (Reset) een belangrijke rol spelen bij het inschakelen van de programmeermodus. De RST pin is een actieve LOW pin en daarom is deze via een drukknop met GND verbonden. Dus wanneer de knop wordt ingedrukt, wordt de ESP8266 module gereset.

De RX en TX pinnen van de ESP8266 (ESP-01) module zijn verbonden met RX en TX pins op het Arduino bord. Omdat de ESP8266 SoC 5V niet kan verdragen, is de RX pin van Arduino verbonden via een niveau omvormer die bestaat uit een 1KΩ en een weerstand van 2,2 KΩ.

Ten slotte is de GPIO2 pin verbonden met een LED om de werking van het programma te testen. Alle benodigde aansluitingen voor het inschakelen van de programmeermodus in ESP8266 worden hieronder genoemd.

  1. VCC – > 3.3V
  2. GND – > GND
  3. CH_PD – > 3.3V
  4. RST – > Normaal Open; GND om te Resetten
  5. GPIO0 – > GND
  6. TX – > TX of Arduino
  7. RX – > RX of Arduino (via niveau omzetter)

Werking van de Arduino interface met de ESP8266

Zorg ervoor dat alle bovengenoemde verbindingen correct zijn gemaakt. Na het aansluiten en configureren van de ESP8266 (ESP-01) in de programmeermodus (GPIO0 is verbonden met GND), sluit u de Arduino aan op het systeem.

Zodra de ESP8266 (ESP-01) module is ingeschakeld, drukt u op de RST knop en opent u de Arduino IDE. Selecteer Hulpmiddelen –> Board en in de lijst Generic ESP8266 Module.

Selecteer het juiste poortnummer via Hulpmiddelen –> Poort in de IDE (vb Com5).

Open nu de Blink Sketch en verander de LED pin in 2. Hier betekent 2 de GPIO2 pin van de ESP8266 (ESP-01) module. Controleer voordat u de upload start of de GPIO0 eerst op GND is aangesloten en druk vervolgens op de RST knop.

void setup(){
pinMode(2,OUTPUT);
}
void loop(){
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}

Aangepaste Blink.ino file : –> ESP8266_Arduino_GPIO.ino

Druk op de knop Uploaden en de code zal enige tijd nodig hebben om te compileren en te uploaden. U kunt de voortgang onderaan de IDE zien. Nadat het programma is geüpload, kunt u de GPIO0 van GND verwijderen. De LED aangesloten op GPIO2 knippert.

In dit project hebben we gezien hoe de ESP8266 Arduino interface werkt, hoe je een programma kunt uploaden naar de ESP8266 (ESP-01) WiFi module en toegang hebt tot de invoer/uitvoer pennen van de ESP8266 (ESP-01) module.