Aan de slag met de ESP8266

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

[update: 28-07-2020]
De URL werkt tegenwoordig alleen met een secure protocol!!
Verander “http://” in “https://”
https://arduino.esp8266.com/stable/package_esp8266com_index.json

Lees vooral de uitleg in het README.md bestand en de uitgebreide documentatie!

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].

Ga nu naar [Tools] > [Board] > [Boards Manager]. Voer bij filter “esp8266” in en selecteer de versie van de core die je wilt gaan gebruiken. De nieuwste versie is op dit moment 2.7.3.

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‑).

Let op! SPIFFS is “depreciated” wat zoveel wil zeggen als: Wordt niet meer ondersteund en zal binnenkort niet meer beschikbaar zijn!

Het wordt vervangen door “LittleFS“. Lees meer hierover aan het eind van dit hoofdstuk.


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 maar deze ontwikkel je buiten de Arduino IDE. 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 download het nieuwste bestand met de naam ESP8266FS-w.x.y.zip (op het moment van schrijven was dit versie 0.4.0).

.. en bewaar dit bestand op een plek die je straks weer terug kunt vinden.

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


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.

Update (SPIFFS is “depreciated”)!

SPIFFS is “depreciated” en zal op enig moment niet meer beschikbaar zijn voor de ESP8266. Voor SPIFFS in de plaats komt het LittleFS dat wat meer mogelijkheden heeft. Om het LittleFS te kunnen gebruiken moet je een plugin installeren.

De plugin voor LittleFS kun je hier downloaden (download de nieuwste versie die beschikbaar is).

Bewaar het zip bestand op een plek waar je hem straks terug kunt vinden en ga 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/esp8266littlefs.jar

Start de Arduino IDE opnieuw op.
Onder [Tools] zie je nu een nieuwe optie: “ESP8266 LittleFS Data Upload

Met “LittleFS Data Upload” kun je de bestanden die in de map “data” staan naar het LittleFS van de ESP8266 uploaden (niet vergeten de Serial Monitor eerst af te sluiten, anders krijg je een fout melding!).

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 Juraj Andrássy. Na wat Googelen vinden we de software op deze github pagina. Juraj 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”.


Onthou waar je het zip-file bewaard.
Ga nu naar de Arduino IDE en selecteer [Sketch > Include Library > Add .ZIP Library]


Er verschijnt een selectie window waar je het zojuist ge-download-de bestand selecteert.


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.

(sorry, het plaatje is een beetje verknipt)

This entry was posted in Arduino, ESP8266, Firmware and tagged , , . Bookmark the permalink.

18 Responses to Aan de slag met de ESP8266

  1. Pieter says:

    Dit is een aanrader voor iedere leergierige technicus in het genoemde onderwerp. Duidelijk geschreven, duidelijk uitgelegd. Oplossingsgerichte wegwijzer. Ik heb er veel voordeel aan gehad.
    Pieter

  2. Ronald says:

    Gaaf! Hier ga ik een weekend mee stoeien.

  3. Julia says:

    Dit is precies waar ik naar op zoek was: alles wat ik wil weten op één plek en ook voor een newbie goed te volgen. Dankjewel!

  4. Erik says:

    Mooie info Willem, compliment.

    Ik kom een heel eind en moest wat libraries erbij zetten.
    Ik heb bij compileren fouten mbt wifi
    zoals
    TelnetStream.print(“]\r\n PSK key [“); TelnetStream.print( WiFi.psk() );

    cursor staat
    in Tabe MenuStuff regel 138

    en als ik hier even commertaar van maak, komen er fouten
    bij Tab WifiStuff

    Graag een advies. Goreten Erik

    • Willem Aandewiel says:

      Ik dénk dat je niet alles goed geïnstalleerd hebt.
      Je moet de instructies echt exact volgen en geen enkele stap overslaan …
      Bij board manager moet je vrsie 2.4.2 van de esp8266 core installeren (niet 2.5.0 beta, want die geeft compile errors)

  5. Alex says:

    Beste Willem
    Ik probeer al enkele dagen de ESP8266 op de arduino te krijgen
    Heb diverse IDE versies gebruikt en diverse URL
    Als je op het net zoekt naar een oplossing zie je ontzettend veel mensen die met hetzelfde probleem worstelen maar geen van de tips werken bij mij
    De URL zou offline zijn maar of dat zo is weet ik niet
    Heeft U een tip die mij zou kunnen helpen
    (een tijd geleden is het mij wel gelukt met de adviezen die u aangeeft maar nu ik een andere PC gebruik wil het niet meer lukken)
    Hopelijk heeft U de oplossiing

    • Willem Aandewiel says:

      Alex,

      Ik snap niet wat je vraagt.

      Wat wil je bereiken?
      Welke informatie kun je nog meer delen?
      Blijkbaar heeft “iets” ooit gewerkt maar nu niet meer? Wat is er verandert?
      Waarom wil je “een esp866 in een Arduino krijgen”? en wat bedoel je daarmee?
      Welke URL is “offline”
      Waar zoek je “een oplossing” voor?

      • Alex says:

        Hallo Willem
        Ik heb ooit een klok gemaakt met een wemos d1 mini board en dat ging prima
        Nu wil een weer zo een klokje bouwen met een wemos d1 mini maar dat lukt niet omdat ik het board esp 8266 niet kan installeren op de arduino op mijn nieuwe PC
        U heeft destijds een handleiding gemaakt hoe dit moet (Aan de slag met ESP 8266) dit werkt echter niet meer
        De URL die ingevoerd moest/moet worden is http://arduino.esp8266.com/stable/package_esp8266com_index.json maar dat werkt dus niet meer
        Hopelijk is het nu wat duidelijker wat mijn probleem is

        • Willem Aandewiel says:

          Hoi Alex,

          Ik heb de post een beetje aangepast met wat nieuwe inzichten. De URL zoals deze in de post stond was een “unsecure” versie (http://) terwijl ondertussen alles over een “secure” protocol moet worden verstuurd (https://).

          Als URL moet je dus: https://arduino.esp8266.com/stable/package_esp8266com_index.json invoeren!

          Succes!

          • Alex says:

            Beste Willem
            Helaas heeft deze oplossing niet gewerkt ik heb zelfs arduino op de PC van mijn vrouw geïnstalleerd maar ook daar geen resultaat
            Bedankt dat je de moeite hebt gedaan om mijn probleem op te lossen maar helaas zal ik verder moeten zoeken
            Het lijkt wel of arduino niet blij is met esp 8266 bordjes
            Groetjes Alex

          • Willem Aandewiel says:

            Alex,

            Je doet iets niet goed of je slaat een stap over.
            Er werken ik-weet-niet-hoeveel-duizenden mensen met een esp8266 en de Arduino IDE.

            Lees de post gewoon nog een keer van voor naar achter en sla geen enkele stap over!

  6. Alex says:

    Hallo Willem
    Ik zit me op dit ogenblik ernstig te schamen en heb inderdaad niet goed gelezen wat er staat in het artikel
    (Ga nu naar [Tools] > [Board] > [Boards Manager]. Voer bij filter “esp8266” in en selecteer de versie van de core die je wilt gaan gebruiken. De nieuwste versie is op dit moment 2.7.3.)
    Dit heb ik over het hoofd gezien wat ook wel enigszins komt omdat ik geen Engelse taal beheers al is dat geen excuus maar ja met 85 jaar mag je toch wel eens een foutje maken
    Ik wil je nogmaals hartelijk danken voor de hulp
    Groeten Alex

  7. Guido Seynhaeve says:

    Ik krijg dat niet voor elkaar.
    Al meerdere malen de procedure gelezen en de “ESP8266 Sketch Data Upload” verschijnt niet in het menu….
    kun je even nazien in mijn preference file wat er verkeerd is….
    Gelieve de file van jpg naar txt te wijzigen.

    • Willem Aandewiel says:

      Guido,
      Wat krijg je niet voor elkaar?
      Met simpel het lezen verandert er niets aan je systeem. Je moet de stappen ook correct uitvoeren.
      Ik kan vanaf hier niet in je preference file kijken.
      Waarom moet ik welk file van jpg naar txt wijzigen?
      Heb je de vragen (en antwoorden) van andere gebruikers gelezen?
      Ik kan echt weinig met de informatie die je geeft.

      • Guido Seynhaeve says:

        Dag Willem, bedankt voor uw antwoord. Ik heb vanzelfsprekend de taken uitgevoerd maar het menu item “ESP8266 Sketch Data Upload” komt niet tevoorschijn…..
        Heb je het attachment niet ontvangen?

        hierbij de printout; wat ziet u verkeerd hieraan…?

        board=arduino-esp8266
        boardsmanager.additional.urls=https://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
        build.verbose=false
        .
        .
        console.output.file=stdout.txt
        custom_BoardModel=arduino-esp8266_primo
        custom_CrystalFreq=generic_26
        custom_FlashFreq=generic_40
        custom_FlashMode=generic_dout
        custom_ResetMethod=generic_nodemcu
        custom_baud=arduino-esp8266_115200
        custom_dbg=arduino-esp8266_Disabled
        custom_eesz=arduino-esp8266_4M2M
        custom_exception=arduino-esp8266_legacy
        .
        .
        last.sketch.default.path=C:\Users\Guido\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\esp8266\examples\Blink\Blink.ino
        last.sketch0.location=2533,251,500,600,414,0
        last.sketch0.path=C:\Users\Guido\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\esp8266\examples\Blink\Blink.ino
        .
        .
        upload.verbose=false
        upload.verify=true
        
        • Willem Aandewiel says:

          Guido,
          Er is niets verkeerd aan je preference.txt file wat ook blijkt uit het feit dat je een programma voor de ESP8266 kunt compileren.

          De stappen om de plugin voor het uploaden van data in SPIFFS of beter: in LitteFS te installeren doe je buiten de Arduino IDE om en heeft niets met het preference.txt file te maken.

          • Download de plugin (link staat in de tekst);
          • Maak een map “tools” aan in je projecten map (zoals je die opgegeven hebt in je preference.txt file);
          • cd naar de (zo juist aangemaakte) map “tools”;
          • Pak het .zip bestand uit;
          • Controleer of de mappen onder de tools map hetzelfde zijn als in de tekst van de post (zie plaatje);
          • Sluit de Arduino IDE af (als je dat niet al gedaan had);
          • Start de Arduino IDE opnieuw op;
          • Klaar.

          Het klinkt misschien wat flauw, maar het is echt een kwestie van de stappen in volgorde en nauwkeurig uitvoeren. Honderden mensen zijn je voor gegaan!

Leave a Reply

Your email address will not be published. Required fields are marked *

The maximum upload file size: 4 MB. You can upload: image, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded.

This site uses Akismet to reduce spam. Learn how your comment data is processed.