Aan de slag met de ESP8266

[ 21,865 views ]

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.

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. In onderstaand plaatje staat versie 1.8.7 maar over het algemeen kun je het beste de nieuwste (laatste) versie downloaden en installeren (ik heb geen ervaring met de Web Editor van Arduino, behalve dat hij de laatste keer dat ik ermee probeerde te werken geen ESP8266 (of ESP32) sketches kon compileren).


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.


Om de IDE met de ESP8266 microprocessor te kunnen gebruiken moeten we nog wat stappen uitvoeren.

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

25 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!

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

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

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

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

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. Drop file here

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