Aan de slag met de ESP8266
Geplaatst opESP8266 ESP-01S WIFI ModuleDe ESP8266 WiFi module werd bij zijn introductie gepresenteerd als een TTL "Serieel naar internet" module. Handig om Arduino bordjes met het internet te verbinden. Direct leverbaar € 4,55
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)
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
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
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
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\\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
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: /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
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
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
Onthou waar je het zip-file bewaard.Ga nu naar de Arduino IDE en selecteer [Sketch > Include Library > Add .ZIP Library]
ZIP Library toevoegen
Er verschijnt een selectie window waar je het zojuist ge-download-de bestand selecteert.
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
(sorry, het plaatje is een beetje verknipt)
Telnet test programma