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.

28 Responses to Aan de slag met de ESP8266

  1. Ruud says:

    Sorry, ik heb het verplaatst.

  2. Adriaensen Tino says:

    Beste Willem ,
    de esp8266 modules zijn toppie vind ik persoonlijk , iot doeleinden voor vanalles en nog wat.Echter zit ik momenteel wat te sukkelen om een email naar een gmail adres te sturen vanuit mijn esp8266 en ik weet niet wat ik fout doe.Ik heb de tasmota firmware geprobeerd en in de config_override de juiste parameters ingevuld enz..maar het lukt me maar niet.Heb jij ervaring met de tasmota firmware?Misschien weet jij raad ?
    Alvast op voorhand hartelijke dank.Groetjes een knutselaar 🙂

    • Willem Aandewiel says:

      Hi Adriaensen,
      Ik ben het helemaal met je eens m.b.t. de esp8266’s!

      Helaas heb ik geen ervaring met Tasmota!

  3. Ruud says:

    Bedankt voor de tips Willem, ik ga zeker kijken naar dat boek.

    En, inderdaad, er is heel veel te vinden op Internet, maar heel veel informatie is fout of niet compleet. Heel vaak is de informatie al achterhaalt of niet compleet.
    Staat er een mooie verwijzing op, waar je op klikt, is die pagina niet meer aanwezig.
    Ook over de ESP kom ik heel veel verschillende info tegen die elkaar vaak weer tegenspreken.

    Groetjes,
    Ruud.

  4. Ruud says:

    Ja Willem,

    Maar dat is natuurlijk geen kunst, een nieuwe kopen 😉
    Dit is een hobby voor mij, en ik probeer zoveel mogelijk te begrijpen hoe het ding werkt. Ik heb b.v. al wel een schakelklok gemaakt met een ESP-01 die de tijd via WiFi van Internet haalt, en automatisch van zomer naar normale tijd schakelt. Niet helemaal zelf geprogrammeerd (dat kan ik niet) maar door hier en daar stukken weg te halen, te plakken en fout te zoeken, komt het uiteindelijk voor elkaar.

    Die originele FW terug zetten is dan ook meer een leerproces, dan dat het feitelijk nut heeft. Door veel op Internet te lezen, ga ik steeds meer leren hoe e.e.a. werkt.
    Zeker op jouw site kom ik interessante dingen tegen.
    Bedankt daarvoor, leken zoals ik moeten het daar toch een beetje van hebben.
    Volgens mij zijn er ook geen echt goede boeken waar je Arduino programmeren uit kunt leren. Bijna alle boeken beginnen met wat voor soorten Arduino’s er zijn, geven een simpele elektronica cursus (maar dat ken ik al), een soldeercursus (kan ik al), een heel stuk over sensoren en shields (niet interessant genoeg) en een hoofdstuk over gereedschap. Ook heeft men het heel uitgebreid over de installatie van Arduino IDE. Nou, en dan is het boek vol, maar echt het programma begrijpen is er niet bij.

    • Willem Aandewiel says:

      Ruud,

      Ik heb in de jaren 90 van de vorige eeuw “C” geleerd aan de hand van het boek van K&R (de “bedenkers” van de taal). Een tweede (ANSI) editie is nog steeds te koop.

      Daarnaast is er toch echt wel héél veel op internet te vinden. Misschien moet je de “Arduino” in je zoek term weglaten.

  5. Ruud says:

    Bedankt voor je antwoord Willem,

    Het is eigenlijk uit pure nieuwsgierigheid dat ik de ESP-01 weer wil terugbrengen naar de originele toestand. Ook kun je (volgens mij) dan een aantal instellingen doen waarmee je b.v. het netwerk kunt inbrengen en de snelheid 9600 of 115200 kunt instellen.

    Welke binaries bedoel je, want dat is denk ik de kern van het probleem.
    Ik heb al heel wat verschillende flash programma’s en .bin files geprobeerd, maar nog niet de goede gevonden.

    Ik heb ik de blink via een programmer printje geflasht.
    Het (USB) printje zelf aangepast met een schakelaar op de GPIO0 en de reset.
    De ESP-01 heeft 2 ledjes, de ESP-01S heeft er 1.

    Groet,
    Ruud.

    • Willem Aandewiel says:

      Met de originele firmware kun je de esp-01 gebruiken als WiFi modem. Je gebruikt dan 5% van wat het ding “kan”.
      Maar ik heb nooit begrepen wat je er mee moet.
      Anyway: Ik heb er nooit naar gezocht en heb daarom ook geen idee waar je de originele firmwate kunt vinden maar als je er één met originele firmware wilt hebben, dan kun je beter voor een paar Euri nieuw kopen.

  6. Ruud says:

    Hallo Willem,

    Mijn naam is Ruud, en ik ben bezig met een ESP-01 printje.
    Een sketch uploaden werkt (b.v. blink) maar ik heb begrepen dat als je eenmaal een sketch in de ESP-01 hebt zitten, de AT commando’s niet meer werken.
    Nu heb ik al talloze malen met flash tools geprobeerd om de standaard firmware terug te zetten, maar ik krijg het niet voor elkaar.
    Het lukt WEL met een ESP-01S printje, maar zoals gezegd NIET met een ESP-01 (1MB).

    Kunt u mij misschien verwijzen naar een programma, of site die wel een werkende ESP-01 met nieuwe firmware oplevert?

    Vriendelijke groet,
    Ruud.

    • Willem Aandewiel says:

      Hoi Ruud,

      Persoonlijk zou ik niet weten wat je met een ESP-01(s) met AT commando’s moet doen, maar als je daar de binaries al van kunt vinden kun je met het Espressif flash tool een heel eind komen.

      Ik neem aan dat je “blink” via de Arduino IDE hebt geflashed. Zorg je er dan wel voor dat je de instellingen aanpast aan het type ESP-01 (en dan met name de hoeveelheid geheugen). Ook heeft niet iedere ESP-01 een ledje (meen ik mij uit een ver verleden te herinneren).

  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!

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

  9. 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!

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

  11. 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!

  12. Ronald says:

    Gaaf! Hier ga ik een weekend mee stoeien.

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

Leave a Reply to Ronald Cancel 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. Drop file here

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