ESPeasy is een erg compleet besturingssysteem voor je ESP8266 chip. Maar soms ontbreekt er toch iets! Bijvoorbeeld ondersteuning voor een RGB led strip. Door middel van het installeren van extra plugins kun je de functionaliteit van ESPeasy nog verder uitbreiden!
Voordat je met deze tutorial begint is het handig dat je al een beetje bekend bent met de ESP, ESPeasy en het flashen ervan. Deze manier is iets ingewikkelder, maar niet heel erg moeilijk. Om de basis uit te leggen kun je “Hoe flash ik ESPeasy op een Wemos D1 mini” lezen.
ESPeasy wordt ontwikkeld door Letscontrolit en vrijwilligers in de ArduinoIDE. Het is een Open Source project dus iedereen kan de broncode ervan downloaden, inzien en aanpassen. De broncode hebben we nodig omdat we die willen aanpassen om de extra functies te kunnen toevoegen.
ESPeasy Builden en flashen in het kort
Wat gaan we doen? Eerst downloaden we de broncode van ESPeasy, de extra plugin(s) en de ArduinoIDE. We openen de broncode van ESPeasy in de ArduinoIDE en voegen de plugins toe.
ESPeasy RGB LED strip support
In mijn blogpost over het toevoegen van RGB ledstrip ondersteuning aan ESPeasy verwijs ik naar dit artikel. Mocht je gebruik maken van een Wemos D1 mini, dan heb ik hier een reeds gecompileerde versie voor je:
Ik ben niet verantwoordelijk voor enige vorm van schade of het bricken van je apparaat!
WemosD1mini-4096-ESPeasy-RGBstrip
Plaats bovenstaand bestand in dezelfde map als onderstaande flashtool en selecteer de juiste COM poort.
Mocht je niet beschikken over de Wemos D1 mini of wil je het zelf proberen lees dan hieronder zeker verder! En lees de reacties hieronder.
ESPeasy S0 counter support
In mijn blogpost over het toevoegen van je zonnepanelen met een S0 tussenmeter aan Domoticz verwijs ik naar dit artikel. Mocht je gebruik maken van een Wemos D1 mini, dan heb ik hier een reeds gecompileerde versie voor je:
Ik ben niet verantwoordelijk voor enige vorm van schade of het bricken van je apparaat!
backup-WemosD1mini-4096-ESPeasy-Power-factoryreset
Plaats bovenstaand bestand in dezelfde map als onderstaande flashtool en selecteer de juiste COM poort.
Mocht je niet beschikken over de Wemos D1 mini of wil je het zelf proberen lees dan hieronder zeker verder! En lees de reacties hieronder.
Custom ESPeasy op ESP flashen stappenplan
- Download de portable versie van de ArduinoIDE. Kies op de download pagina voor de “non install zip” versie. Hiermee download je een losse “schone” versie en voorkom je allerlei gekke library problemen als je al de IDE geinstalleerd hebt.
- Download de ESPeasy v2.0 broncode vanaf Github. Kies ook weer voor de ZIP onder de knop “Clone or Download”
- Inmiddels zullen de downloads gereed zijn en kun je ze beide ergens uitpakken. Start arduino.exe op.
- Ga in het menu naar voorkeuren en voer de volgende url in bij Additional Board Manager URLs
http://arduino.esp8266.co...age_esp8266com_index.json
Hiermee voeg je ondersteuning toe voor Arduino bordjes van derden, zoals de Wemos D1 mini bijvoorbeeld. Als je bordje in deze lijst staat, hoef je verder geen moeilijke dingen te configureren.
- Ga naar Hulpmiddelen -> Board -> Board Manager. Zoek op de naam van jouw ESP en installeer die. In mijn geval Wemos D1 mini. Je kunt ook zoeken op ESP.
- Stel de juiste COM poort in. Je kunt de juiste vinden in Apparaatbeheer.
Toevoeging mei 2018:
Combinatie van versies die samen werken:
- ESPeasy v2.0-20180507
- Arduino IDE 1.8.5
- esp8266 library v2.3.0
ESPeasy openen in ArduinoIDE en toevoegen plugins
- In de uitgepakte map van de broncode van ESPeasy vind je de map Lib(raries). Hierin staan de juiste versies van libraries die ESPeasy nodig heeft om te functioneren. Om die goed in te laden plak je deze mappen in de Libraries map van Arduino. (dus niet “lib”)
- In de uitgepakte map van de broncode van ESPEasy vind je ook de map “src”. Hernoem deze map naar “ESPEasy”.
- Plak in de map met *.ino bestanden de door jouw gekozen extra plugin bestanden van de PluginPlayground. Deze zijn ook van het *.ino bestandstype. Bijvoorbeeld P142 RGB-Strip, welke ondersteuning toevoegt voor een RGB ledstrip.
- Open nu ArduinoIDE en kies bij openen “ESPeasy.ino” in de zojuist hernoemde map.
- Het project, inclusief extra plugins, wordt compleet ingeladen.
Compile en uploaden source code ESPeasy
Nu het project is ingeladen kunnen we het gaan compileren en uploaden naar de ESP. Hiervoor moeten de instellingen van jouw ESP, Wemos of NodeMCU goed staan.
- Selecteer onder menu “Tools” -> Boards jouw eigen board.
- Selecteer de juiste Flash size:
- Voor 512k boards (zoals de blauwe ESP-01 of de ESP-12 or ESP-201): Gebruik 64k SPIFFS.
- Voor 1M boards: Selecteer 128k SPIFFS
- Voor 4M boards: Selecteer 1M SPIFFS. (bijvoorbeeld Wemos D1 mini)
- Om alle plugins mee te compileren pas je de volgende waarde aan in ESPEasy-Globals.h:
//build all the normal stable plugins //#define PLUGIN_BUILD_NORMAL //build all plugins that are in test stadium //#define PLUGIN_BUILD_TESTING //build all plugins that still are being developed and are broken or incomplete //#define PLUGIN_BUILD_DEV
Verwijder de “//” voor #define PLUGIN_BUILD_DEV zodat alle plugins meegecompileerd worden, ook al zijn ze nog in test of beta studium. Krijg je straks foutmeldingen pas dit dan aan naar BUILD NORMAL of TESTING. Vergeet dan niet de “//” weer voor de andere optie te zetten.
- Zet je ESP in ‘programming’ mode (voor NodeMCU en Wemos D1 is dit niet nodig, dat gebeurd automatisch)
- Klik op de Upload knop en het compileren begint. Zodra dat succesvol is word de aangepaste ESPeasy versie op je ESP geflashed!
- Stel nu je ESP in als normaal. Zoals beschreven in Hoe flash ik ESPeasy onder hoofdstuk Configureren.
Wil je ook een RGB ledstrip met ESPeasy aansturen? Lees dan mijn blogpost RGB Ledstrip met ESPeasy!
Heeft u hier ook een .img file van zo dat ik het naar mijn D1 mini kan uploaden? Want ik krijg telkens foutmeldingen tijden het compileren. Waarschijnlijk fouten in de plug-ins.
Hoi Dines,
Jammer dat het niet lukt! Gebruik je wel een ‘schone’ versie van de ArduinoIDE en alle juiste versies? Ik meen mij te herinneren dat toen ik het artikel schreef dat de meeste recente versie van de ESP plugin niet werkte op de juiste manier. Dus had ik een oudere gepakt. Wellicht ben je al geholpen doordat ik inmiddels in het artikel een bin bestand geplaatst heb die je naar een Wemos D1 mini kunt flashen.
Groet Wouter
Waar kan ik de oude versie van P142_RGB-Strip.ino downloaden? De laaste van uit PluginPlayground werkt blijkbaar niet.
Ik zal morgen even de versie die ik heb uploaden
Hoi Dines,
Het is mij gelukt om het flashgeheugen van mijn Wemos D1 mini weg te schrijven naar een bin bestand. Ik heb het bin bestand weer terug geflashed op een andere schone Wemos en kreeg daar netjes de juiste versie met RGB ledstrip ondersteuning te zien! Ik heb ‘m naar factory settings gereset zodat je ‘m op de normale manier kunt configureren. Het bin bestand wat nu in het artikel staat kun je dus gebruiken voor een 4MB Wemos D1 mini.
Succes! Laat je het weten als het gelukt is?!
Wouter
Hallo Wouter,
Ik heb ook geprobeerd om mijn Wemos D1 mini met jouw gecompileerde versie voor het uitlezen van mijn tussenmeter van de zonnepanelen te flashen, maar krijg telkens “flash failed”. Ik heb precies dezelfde configuratie , zoals beschreven. Een schone ESPEasy flashen lukt wél. Nu ben ik geen kenner, maar met de nodige voorbeelden kom ik er meestal wel uit. Enig idee wat ik verkeerd zou doen? Op mijn Wemos staat ESP8266MOD, zou dat er mee te maken kunnen hebben?
Ik zie graag je reactie,
Groet, Jaap
Hallo jaap,
Jammer dat het niet werkt! Het bin bestand heb ik echt specifiek voor de esp8266 4mb gecompileerd, dus het zou best kunnen dat het daarom niet met een MOD versie werkt. Misschien dat espeasy voor meer configuraties tegelijk gecompileerd wordt dat het daarom wel werkt?
Je zou zelf een poging kunnen wagen om een versie te compileren.
Wouter
Hoi heeft u ook een .bin file met deze RGB plugin?
Hoi Dinesan,
Onder het andere artikel heb ik je vraag beantwoord:
RGB LEDstrip ESPeasy
Groet Wouter
Hallo Wouter,
Het is uiteindelijk gelukt met ESPEasy_mega-20190216
Na nog wat zoekwerk in ESP_Easy, want GPIO5 was grijs, deze stond bij Hardware reeds onder I2C-interface geselecteerd en heb ik veranderd, werkt het allemaal.
Dank voor jouw inbreng.
Met vriendelijke groet, Jaap
Ik lijk maar nergens te geraken…
De build die je zelf voorziet is vermoedelijk te groot (ik gebruik een Wemos D1 mini, ik kan flashen met een “blank_1MB.bin” en “blank_2MB.bin”, maar niet met een “blank_4MB.bin”), ik krijg steeds de “Flash failed” melding.
Dan ga ik hem maar zelf compileren dacht ik (hoe moeilijk kan het zijn met de juiste instructies?:)), helaas ook dat loopt helemaal mis. Ik probeerde met mijn standaard IDE, maar die is te nieuw dacht ik dan (ESP library ook zo bleek).
Verder dan met de portable versie aan de slag gegaan maar dat loopt voor geen meter, ik krijg constant compilefouten op de 10-tallen scripts die er mee in vervat zitten, hoofdzakelijk op #include “xxx.h” no such folder or directory.
Na lang proberen kwam ik erachter dat de library’s van de ESPeasy best helemaal hierin gekopieerd worden, dan is er geen probleem meer met deze melding.
Nu zit ik vast op:
Arduino: 1.8.5 (Windows 10), Board:”WeMos D1 R2 & mini, 80 MHz, 921600, 4M (1M SPIFFS)”
WAARSCHUWING: Categorie ‘LED’ in bibliotheek CHT16K33 LED Matrix Library is niet geldig. Wordt gewijzigd naar ‘Uncategorized’
WAARSCHUWING: Categorie ‘Input’ in bibliotheek MechInputs is niet geldig. Wordt gewijzigd naar ‘Uncategorized’
WAARSCHUWING: Categorie ‘Input’ in bibliotheek SerialSensors is niet geldig. Wordt gewijzigd naar ‘Uncategorized’
WAARSCHUWING: bibliotheek LiquidCrystal_I2C beweert te werken onder architectuur (avr) en kan incompatible zijn met uw huidige board dat werkt onder architectuur (esp8266).
_Plugin_Helper_serial:3: error: ‘ESPeasySerialType’ has not been declared
static String serialHelper_getSerialTypeLabel(ESPeasySerialType::serialtype serType) {
^
_Plugin_Helper_serial:30: error: ‘ESPeasySerialType’ does not name a type
ESPeasySerialType::serialtype serialHelper_getSerialType(struct EventStruct *event) {
^
C:\Users\jeroen\Documents\arduino-1.8.5\ESPEasy-mega-20190216\ESPEasy\_P056_SDS011-Dust.ino: In function ‘boolean Plugin_056(byte, EventStruct*, String&)’:
_P056_SDS011-Dust:163: error: could not convert ‘Plugin_056_SDS->CjkSDS011::ReadAverage((* & pm25), (* & pm10))’ from ‘void’ to ‘bool’
if (Plugin_056_SDS->ReadAverage(pm25, pm10)) {
^
C:\Users\jeroen\Documents\arduino-1.8.5\ESPEasy-mega-20190216\ESPEasy\_P056_SDS011-Dust.ino: In function ‘void Plugin_056_setWorkingPeriod(int)’:
_P056_SDS011-Dust:206: error: ‘class CjkSDS011’ has no member named ‘SetWorkingPeriod’
Plugin_056_SDS->SetWorkingPeriod(minutes);
^
C:\Users\jeroen\Documents\arduino-1.8.5\ESPEasy-mega-20190216\ESPEasy\_P142_RGB-Strip.ino: In function ‘void Plugin_142_Output(float*)’:
_P142_RGB-Strip:355: error: ‘setPinState’ was not declared in this scope
setPinState(PLUGIN_ID_142, pin, PIN_MODE_PWM, actRGBW[i]);
^
C:\Users\jeroen\Documents\arduino-1.8.5\ESPEasy-mega-20190216\ESPEasy\_Plugin_Helper_serial.ino: In function ‘String serialHelper_getSerialTypeLabel(ESPeasySerialType::serialtype)’:
_Plugin_Helper_serial:3: error: ‘String serialHelper_getSerialTypeLabel(ESPeasySerialType::serialtype)’ redeclared as different kind of symbol
static String serialHelper_getSerialTypeLabel(ESPeasySerialType::serialtype serType) {
^
_Plugin_Helper_serial:3: error: previous declaration of ‘String serialHelper_getSerialTypeLabel’
static String serialHelper_getSerialTypeLabel(ESPeasySerialType::serialtype serType) {
^
C:\Users\jeroen\Documents\arduino-1.8.5\ESPEasy-mega-20190216\ESPEasy\_Plugin_Helper_serial.ino: In function ‘void serialHelper_webformLoad(EventStruct*, bool)’:
_Plugin_Helper_serial:54: error: no match for call to ‘(String) (ESPeasySerialType::serialtype&)’
option = serialHelper_getSerialTypeLabel(serType);
^
Meerdere bibliotheken gevonden voor “I2Cdev.h”
Gebruikt: C:\Users\jeroen\Documents\arduino-1.8.5\libraries\I2Cdevlib
Niet gebruikt: C:\Users\jeroen\Documents\arduino-1.8.5\libraries\LiquidCrystal_I2C
Niet gebruikt: C:\Users\jeroen\Documents\arduino-1.8.5\libraries\LiquidCrystal
Meerdere bibliotheken gevonden voor “Servo.h”
Gebruikt: C:\Users\jeroen\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Servo
Niet gebruikt: C:\Users\jeroen\Documents\arduino-1.8.5\libraries\Servo
exit status 1
‘ESPeasySerialType’ has not been declared
–> Er lijkt gewoon geen einde aan te komen…
Het lijkt wel of dat hele ESPEasy verhaal ook krom staat van de bugs die optreden telkens een nieuwere versie gereleased wordt als ik de fora afga 🙁
jouw bin heb ik nu wel kunnen flashen met “ESP Easy Flasher 0.04.007” , die zat bij een van de ESP easy mega distr..
Ha jeroen,
Hoe het mij ooit gelukt is zo’n bin te maken lijkt wel een wonder ja. Daarna is het ook nooit meer gelukt helaas.
Mooi dat het nu in ieder geval wel gelukt is. Werkt het nu ook allemaal zoals verwacht?
Groet Wouter
Hoi allereerst dank voor het maken van deze tut, loop tegen een probleem aan als ik in ino compile dan krijg ik constant een foutmelding core_version.h missing, ik heb zo ik weet allle librrary’s geinstaleerd. Kun jij mij verder helpen,
Hoi Casper,
Om eerlijk te zijn, ik heb ‘t nooit meer voor elkaar gekregen met de Arduino IDE. Steeds alleen maar fouten, missende libraries etc. Precies de fouten die jij ook hebt. Ik krijg vaak reacties zoals de jouwe, veel andere lezers lopen hier tegenaan.
Maar er is ook goed nieuws. Ik heb het zojuist even geprobeerd, op de andere manier die ESPeasy beschrijft op hun site werkt het wel. Namelijk de manier via PlatformIO en Atom.
In het kort:
1. Installeer AtomInstalleer Atom
2. Installeer PlatformIO binnen Atom via de Package Manager
3. Installeer GITInstalleer GIT
4. Download een ESPeasy release en pak de map ergens uit
5. Open Atom en kies File Open folder
6. Navigeer naar de uitgepakte map en kies de map ‘source’
7. Klap de mapjes links uit en open ESPeasy.ino
8. Druk op F7 en kies voor build normal_ESP8266_1M
9. Als het goed is heb je geen errors.
10. Voeg de gewenste ino bestanden toe aan de map met ino bestanden.
11. Build opnieuw.
12. Flash het gecompileerde bin bestand naar je wemos. Die staat in de map .pio -> build
Ik ben benieuwd of je het nu wel lukt!
Groet Wouter
Atom 1.42.0 geinstalleerd Git geinstalleerd. De stappen doorlopen, aan gekomen bij druk F7. Er gebeurt niets.
Lijkt erop dat de keybinder ook geen f7 kent.
Welk commando hoort hierbij.
Alvast bedankt
Uit mijn hoofd het commando build. Zit ook in de menubalk.
Hallo, het flashen van je backup…bin bestand op een Wemos D1 Mini V3 werkte niet. Kreeg een foutmelding dat flashen niet lukte. Een ander bestand kon ik zonder probleem flashen.
Toen je instructies gevolgd om zelf te compileren. Uiteindelijk werkte dat maar de P112 plugin zat er niet bij. De //DEV enzo had ik aangezet.
Als je in de P112 source kijkt dan begint het met //ifdef USES_P112. maar een declaratie daarvan kon ik niet vinden dus heb ik het uitgezet.
Maar nu krijg ik bij het compileren een fout dat het bestand _Plugin_Helper.h niet is te vinden. Zelf ook nog even aan het zoeken geweest maar ik kan het ook niet vinden. Wie kan mij helpen???
Na een hoop ‘gepruts’ is het me gelukt om de versie met de nieuwe P112 te compileren en te flashen, Dat werkt nu goed. De nauwkeurigheid van de uitlezing is niet meer afhankelijk van het rapportage interval. Zelf gebruik ik het met Home Assistant via MQTT en dat werkt goed. Dus ik heb een originele .bin file en geen backup (die kon ik niet flashen op de gebruikte controller). De gebruikte hardware is een Wemos D1 mini V3 van ongeveer €6.
Hoi Wim,
Mooi dat het alsnog gelukt is! Veel plezier ervan! En bedankt voor de terugkoppeling!
Wouter
Wouter ik tracht so-espeasy te starte maar het vraag om een paswoord voor WiFi 192.168.4.1
?
Het glashelder ging goed maar kom niet verder
Heb ook getracht met de gevend van mijn WiFi gebruik en paswoord heb tevens een ip adres opgeven maar geen resultaat
Wat doe ik fout?
Beste Peter,
Heb je het standaard wachtwoord van espeasy geprobeerd? Dat is configesp
Lukt het dan?
Groet Wouter