Aan de slag met de ESP8266

Geplaatst op
In deze post beschrijf ik hoe je de Arduino IDE voor de populaire ESP8266 processor-bordjes geschikt kunt maken. Hoewel al deze informatie gewoon van internet af te halen is blijkt het voor veel mensen, die de Arduino IDE of de ESP8266 bordjes net ontdekt hebben, overweldigend.
ESP8266 ESP-01 WIFI Module v1.2 De ESP8266 WiFi module werd bij zijn introductie gepresenteerd als een TTL "Serieel naar internet" module. Handig om Arduino bordjes met het internet te verbinden. Al gauw bleek dat deze ESP-01 module en zijn, qua aantal naar buiten gevoerde GPIO pinnen, grotere broertjes (ESP-7, ESP-12, NodeMCU... € 4,95 Add to cart
ESP8266 ESP-12F WIFI Module De ESP-12F WIFI module is een ESP8266 TTL "Serieel naar internet" module. Deze module maakt het mogelijk om gemakkelijk met een Wi-Fi signaal te verbinden. Deze heeft een hoop kracht verborgen in een kleine verpakking, er kan tot wel 1A worden verbruikt voor het verzenden van signalen. € 3,95 Add to cart

De ESP8266

De ESP8266 is een goedkope microprocessor met Wi-Fi mogelijkheid en een volledige TCP/IP stack. De ESP8266 is ontwikkeld en wordt geproduceerd door de Chinese fabrikant Espressif Systems uit Shanghai.

Door de geïntegreerde WiFi mogelijkheid is deze microprocessor in korte tijd razend populair geworden. In eerste instantie omdat de chip werd gezien als een goedkope mogelijkheid om een Arduino bordje van WiFi te voorzien, maar al snel kwamen de echte nerds (and I say nerds with the utmost respect) erachter dat de ingebouwde microprocessor en de hoeveelheid beschikbare (flash) geheugen de capaciteit en mogelijkheden van de Arduino bordjes verre overtrof.

Even wat gegevens op een rij
  • Processor: L106 32-bit RISC microprocessor core based on the Tensilica Xtensa Diamond Standard 106Micro running at 80 MHz
  • Memory:
    • 32 KiB instruction RAM
    • 32 KiB instruction cache RAM
    • 80 KiB user-data RAM
    • 16 KiB ETS system-data RAM
  • External QSPI flash: up to 16 MiB is supported (512 KiB to 4 MiB typically included)
  • IEEE 802.11 b/g/n Wi-Fi
    • Integrated TR switch, balun, LNA, power amplifier and matching network
    • WEP or WPA/WPA2 authentication, or open networks
  • 16 GPIO pins
  • SPI
  • I²C (software implementation)
  • I²S interfaces with DMA (sharing pins with GPIO)
  • UART on dedicated pins, plus a transmit-only UART can be enabled on GPIO2
  • 10-bit ADC (successive approximation ADC)
Vanwege de early adoption door de Arduino community lag het voor de hand om deze krachtige microprocessor met de Arduino IDE te willen programmeren. In deze post probeer ik, stap voor stap, uit te leggen wat je moet doen om dit mogelijk te maken.

1) Download en installeer de Arduino IDE

Download en installeer de Arduino Integrated Development Environment (IDE) voor het Operating Systeem (OS) waar jouw DeskTop of LapTop computer (er zijn versies voor Windows, Linux en Mac) mee werkt.
Download Arduino IDE Download Arduino IDE
Na het downloaden moet je het ontvangen bestand uitpakken (unzip of untar) en installeren. Dat installeren is per OS anders maar staat duidelijk op de website van Arduino aangegeven. Eenmaal geïnstalleerd kun je direct met de Arduino IDE aan de slag.
Startscherm Arduino IDE Startscherm Arduino IDE
Om de IDE met de ESP8266 microprocessor te kunnen gebruiken moeten we nog wat stappen uitvoeren.

2) Installeer de “Arduino core for ESP8266 WiFi chip”

In de Arduino IDE moet bij “Instellingen” de volgende URL worden ingevoerd achter “Additional Boards Manager URL’s:” (zie rood omlijnde kader)

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

Lees vooral de uitleg in het README.md bestand en de uitgebreide documentatie!
Instellingen Instellingen
Er kunnen meer additional board manager URL’s worden ingevuld. Je moet ze dan achter elkaar zetten en scheiden door een komma (,).
Eventueel kun je ook het pad waar je projecten staan (de Sketchbook Location) aanpassen. Standaard verwijst deze naar je “Documenten” map:

C:\Users\<LogInNaam>\Documents\arduino\

.. en dat is een prima plek!

De andere instellingen kun je naar behoefte aanpassen. Hierboven staan de instellingen die ik prettig vind. Na het maken van aanpassingen klik je op [OK].

Er worden regelmatig verbeteringen in de esp8266 core aangebracht. Deze kun je installeren via [Tools] > [Board] > [Boards Manager]. Voer bij filter "esp8266" in. De nieuwste versie is op dit moment 2.4.2.

3) Een bestand-systeem op een chip

Eén van de mooie eigenschappen van de ESP8266 is dat er flash geheugen in zit. Flash geheugen is geheugen dat zijn inhoud ook zonder spanning behoud. Vergelijk het met een SD-kaart. De flash geheugen is, afhankelijk van het bordje, 512kB tot 16MB(!) groot. Een deel van dit flash geheugen wordt gebruikt om jouw programma in op te slaan. Wat er over blijft kan als bestand-systeem worden ingericht (het zgn. SPI Flash File Systeem ‑SPIFFS‑).

Je kunt in je programma dit bestand-systeem niet alleen gebruiken om (bijvoorbeeld meet-) gegevens maar ook om de inhoud van, bijvoorbeeld, een web-pagina of een configuratie-bestand in op te slaan (index.html).
Een index.html maakt dan natuurlijk onderdeel uit van je programma en ontwikkel je buiten de ESP8266 om. Om het SPI File Systeem voor dit soort bestanden te kunnen gebruiken moet je een “plug-in” in je Arduino Projecten map installeren. De plug-in haal je hier vandaan. Ga naar deze github pagina en klik op de groene knop.
SPI Flash File Systeem download SPI Flash File Systeem download
Selecteer vervolgens [Download ZIP].
Ga nu naar je “Sketch Location” map en maak daarin een nieuwe map “tools” aan (als deze nog niet bestaat). Pak het zojuist ge-download-de zip bestand uit in deze tools map. Er wordt nu een aantal nieuwe mappen aangemaakt waar de plug-in wordt neergezet. Het pad ziet er ongeveer zo uit:

<sketchbook location>/tools/ESP8266FS/tool/esp8266fs.jar

Start de Arduino IDE opnieuw op.
Onder [Tools] zie je nu een nieuwe optie: “ESP8266 Sketch Data Upload
Data Upload Data Upload
Je kunt nu in de map waar je programma staat een nieuwe map met de naam “data” maken. Alle bestanden die je vervolgens in deze map zet zullen met “ESP8266 Sketch Data Upload” op het SPIFFS bestand-systeem van je ESP8266 geplaatst worden (mits er voldoende ruimte is natuurlijk). In de selectie van je board moet je, behalve het juiste type board ook aangeven hoeveel ruimte van je Flash geheugen je wilt gebruiken voor het bestand-systeem (vóórdat je je programma naar de ESP8266 upload!). Normaliter zou je dit zo groot mogelijk willen maken, maar als je “Over The Air” programma’s op je ESP8266 wilt zetten (dus zonder fysieke verbinding maar via WiFi) dan moet je er rekening mee houden dat je twee maal de grootte van je programma nodig hebt om dit te kunnen doen. Wat er overblijft kun je als bestand-systeem gebruiken.
Board Selection Board Selection

4) Aanvullende Bibliotheken installeren

Nu je een Arduino IDE hebt waarmee je ESP8266’s kunt programmeren (flashen) zul je ontdekken dat er door briljante mensen software is ontwikkeld die je kunt gebruiken om complexe projecten te realiseren, zonder dat je zelf het wiel hoeft uit te vinden.
Deze software wordt veelal in de vorm van een bibliotheek aangeboden en je hoeft zo’n bibliotheek alleen maar te installeren om er gebruik van te kunnen maken.

Bijvoorbeeld een bibliotheek om je ESP8266 van een telnet server te voorzien (met een telnet server kun je via een telnet-client op je DeskTop of LapTop inloggen op je ESP8266). Er blijken hier een aantal bibliotheken voor te bestaan. Als voorbeeld nemen we TelnetStream van Jan Drassy. Na wat Googelen vinden we de software op deze github pagina. Jan Drassy is erg summier met zijn uitleg maar gelukkig is er een map met voorbeelden (nou ja, één voorbeeld). Om de bibliotheek te installeren klik je op de groene download knop en selecteer je “Download ZIP”.
Telnet downloaden Telnet downloaden
Onthou waar je het zip-file bewaard.
Ga nu naar de Arduino IDE en selecteer [Sketch > Include Library > Add .ZIP Library]
ZIP Library toevoegen ZIP Library toevoegen
Er verschijnt een selectie window waar je het zojuist ge-download-de bestand selecteert.
Zip bestand selecteren Zip bestand selecteren
De bibliotheek is nu geïnstalleerd en klaar om gebruikt te worden. De meeste bibliotheken komen met een aantal voorbeeld programma’s waarmee je kunt leren hoe je de bibliotheek kunt gebruiken.
Telnet voorbeeld Telnet voorbeeld
(sorry, het plaatje is een beetje verknipt)
Telnet test programma Telnet test programma

5) Het programmeren

Nu de IDE helemaal opgezet is, heb je alleen nog maar een USB naar TTL adapter nodig om de ESP8266 ook fysiek te verbinden. Je kan hiervoor een kant-en-klare (of gehackte) ESP-01 programmer gebruiken, of een andere algemene programmer, bijvoorbeeld op basis van de CH340 of PL2303HX.
ESP-01 USB Adapter Deze ESP-01 Adapter met CH340 USB driver maarkt het mogelijk om de ESP-01 Wifi modules gemakkelijk aan te spreken via de computer. Op de adapter zit verder een 5V naar 3,3V converter en een condensator om de stabiliteit te verbeteren. € 2,50 Add to cart
CH340G USB naar TTL seriële adapter Voor wanneer je Arduino geen USB interface bevat. Deze module gebruikt een dedicated CH340G USB chip. Deze adapter kan gebruikt worden voor zowel het programmeren als communicatie met de computer. € 1,95 Add to cart
Geschreven door Willem AandewielWillem Aandewiel (1955) heeft als achtergrond een opleiding in elektronica en digitale technieken. Het grootste deel van zijn werkbare leven heeft hij echter in de automatisering gewerkt waar hij zo'n beetje in alle disciplines van programmeur tot project-leider en project manager heeft gewerkt. Willem was één van de eerste Nederlanders met een micro-computer (1976) in een tijd dat de PC nog moest worden uitgevonden. Tegenwoordig houd hij zich vooral bezig met het ontwerpen en maken van kleine elektronische schakelingen met microprocessoren.Website


Reviews


Be the first to leave a review .


We would like to hear your opinion