Door Koen Vervloesem

Freelanceredacteur

Aan de slag met ESP Web Tools

Microcontrollers flashen in de webbrowser

07-12-2022 • 06:00

49

Multipage-opmaak

Communicatie via de seriële interface

Joy-iT NodeMCU ESP32
Joy-iT NodeMCU ESP32

ESP Web Tools doet wat het zegt: het is een tooltje waarmee je online, via de webbrowser, ESPHome en andere custom roms kunt installeren op ESP-microcontrollers. In dit artikel leren we je hoe dat werkt, hoe je de tool configureert en hoe je de beveiliging ervan regelt.

Wie al eens aangepaste firmware op een microcontrollerbordje heeft geflasht, mag niet bang zijn voor de opdrachtregel. Doorgaans moet je lokaal ontwikkeltools installeren, waarmee je je firmware bouwt en via een USB-kabel naar het flashgeheugen van het bordje uploadt. Voor minder ervaren gebruikers is dat vaak een drempel om aangepaste firmware te installeren. Het project ESP Web Tools biedt aanbieders van firmware voor de ESP8266 en ESP32 een oplossing, zodat gebruikers de installatie eenvoudigweg vanuit hun webbrowser kunnen doen.

Laten we beginnen bij het begin. De populaire ESP8266- en ESP32-microcontrollerbordjes zijn voorzien van een USB-poort, die zich bij het aansluiten op je pc als seriële interface aanbiedt. In Windows is dat een com-poort, in Linux een apparaatbestand zoals /dev/ttyUSB0 of /dev/ttyACM0 en in macOS een apparaatbestand waarvan de naam begint met /dev/tty.usbserial-.

De firmware in je microcontrollerbordje kan via die seriële interface in twee richtingen communiceren met je pc, bijvoorbeeld om logs door te sturen of om opdrachten aan te nemen. Dat doe je met een terminalemulatorprogramma zoals PuTTY, GNU Screen, minicom en nog vele andere.

Traditioneel gebeurt communicatie met een microcontroller via een terminalemulatorprogramma zoals GNU Screen op de opdrachtregel.
Traditioneel gebeurt communicatie met een microcontroller via een terminalemulatorprogramma zoals GNU Screen op de opdrachtregel.

Web Serial

Er zijn heel wat omstandigheden waarin je van de gebruiker niet kunt verwachten dat hij op de opdrachtregel commando’s intypt of thirdpartysoftware moet installeren om met je apparaatje te communiceren. Je verspreidt bijvoorbeeld een apparaat onder gebruikers die niet gewend zijn om met de opdrachtregel of software zoals PuTTY te werken. Of je wilt op een Chromebook of een Android-telefoon verbinden met je apparaat.

Voor die situaties is de Web Serial API ontwikkeld, die je toelaat om in je webbrowser te lezen van en te schrijven naar seriële apparaten. Die apparaten kunnen verbonden zijn via een klassieke seriële poort of via USB of bluetooth die een seriële poort emuleren. Web Serial API is geen W3C-standaard, maar een specificatie gepubliceerd door de Web Platform Incubator Community Group van het W3C.

Voorlopig is Web Serial alleen ondersteund in Chrome 78 en hoger, Edge 79 en hoger en Opera 65 en hoger. In het begin moest je daarvoor nog experimentele functionaliteit in je webbrowser inschakelen, maar sinds Chrome/Edge 89 en Opera 76 is Web Serial standaard ingeschakeld. Op webbrowsers zonder Web Serial die wel WebUSB ondersteunen, zoals Chrome voor Android, kun je de API gebruiken via de Web Serial-polyfill. Op CodeSandbox vind je enkele voorbeelden van het gebruik van de polyfill.

Veiligheid en mogelijkheden

Websites die toegang hebben tot apparaten die aan je pc hangen; het klinkt een beetje eng. Hoe zit het dan met de beveiliging? Mozilla is duidelijk in zijn officiële verklaring over Web Serial: “Devices that offer serial interfaces often expose powerful, low-level functions over the interface with little or no authentication. Exposing that sort of capability to the web without adequate safeguards presents a significant threat to those devices.” Dat is dan ook de reden waarom Firefox geen ondersteuning biedt voor de Web Serial API.

Toch zijn er wel degelijk 'safeguards' ingebouwd in de implementatie van Web Serial, en de specificatie gaat uitgebreid in op de beveiligingsoverwegingen. Een webpagina die JavaScript-code bevat die de Web Serial API gebruikt, toont een melding aan de gebruiker, die moet klikken op het apparaat waarmee hij wil verbinden. Het vereist dus een expliciete actie van de gebruiker. De webpagina krijgt ook alleen maar toegang tot het apparaat dat de gebruiker heeft aangeklikt en kan dus niet opvragen welke apparaten er allemaal aangesloten zijn.

De verbinding blijft ook maar open zolang je de webpagina open hebt. Ververs of sluit je een webpagina die een seriële verbinding heeft geopend, dan wordt de verbinding gesloten. Er wordt ook altijd een icoontje getoond op het tabblad van de pagina zolang de verbinding open is.

Web Serial werkt ook alleen over Https, tenzij je de webpagina op je pc host en via localhost benadert. Je hoeft dus niet bang te zijn dat er gevoelige gegevens van je apparaten onversleuteld over internet worden verspreid. En een man-in-the-middleaanval waarbij er bytes in de communicatie tussen de webpagina en je apparaat worden geïnjecteerd, is zo ook niet mogelijk. Het belangrijkste risico is een phishingaanval, waarbij een website zich voordoet voor een andere. Daardoor zou je mogelijk aan de verkeerde website seriële toegang tot je apparaat geven.

Bij gebruik van Web Serial moet je de website altijd eerst toestemming geven voor toegang tot een specifiek apparaat.
Bij het gebruik van Web Serial moet je de website altijd eerst toestemming geven voor toegang tot een specifiek apparaat.

Mogelijkheden van Web Serial

Wat is er dan zoal mogelijk met Web Serial? Alles wat lokale software met seriële communicatie kan doen. Zo biedt de website serialterminal.com een seriële terminalemulator op het web aan. Wil je logs bekijken die een apparaatje op zijn seriële interface aanbiedt, dan hoef je de USB-kabel maar aan te sluiten, de website serialterminal.com te openen, de baudrate in te stellen, op 'Connect' te klikken en je apparaat te kiezen. Daarna zie je de boodschappen voorbij scrollen. De broncode van de website is open. Het Google Chrome-team heeft als demoapplicatie voor de Web Serial API ook een serialterminal ontwikkeld, waarvan de broncode beschikbaar is. Dit project ondersteunt de Web Serial-polyfill en werkt zo bijvoorbeeld ook op Chrome voor Android.

De Adafruit WebSerial Plotter, waarvan de broncode ook vrijgegeven is, komt dan weer van pas voor projectjes waarbij een microcontrollerbordje sensordata naar de seriële interface stuurt in csv-formaat. De plotter toont de waardes dan in verschillende kleuren op een grafiekje, net zoals de Serial Plotter in de Arduino IDE dat doet. Meer interessante projecten vind je op het Reddit-forum r/WebSerialAPI. Wil je zelf met de Web Serial API aan het ontwikkelen gaan, lees dan zeker Getting started with the Web Serial API op Codelabs of Read from and write to a serial port op web.dev, allebei websites van Google.

Met de seriële terminal van Google bekijk je in je webbrowser logs van aangesloten apparaten.
Met de seriële terminal van Google bekijk je in je webbrowser logs van aangesloten apparaten.

Esptool in de webbrowser

Seriële communicatie wordt niet alleen gebruikt voor logs, maar ook om firmware naar het flashgeheugen van een microcontroller te uploaden. Voor de ESP8266 en ESP32 gebeurt dat met Espressifs programma esptool, dat via de seriële interface met de rombootloader van deze chips communiceert.

Esptool is eenvoudig te installeren als Python-pakket met pip install esptool, maar zoals we zagen, is de lokale installatie van ontwikkeltools niet altijd aangewezen of mogelijk. Adafruit ontwikkelde daarom twee jaar geleden Web Serial ESPTool, waarmee je in een Web Serial-compatibele webbrowser firmware naar Espressifs microcontrollers kunt uploaden. De broncode is beschikbaar onder de MIT-licentie.

Ondertussen ontwikkelde Espressif zijn JavaScript-implementatie van esptool met Web Serial, esptool-js. Naast de versie op GitHub Pages kun je ook de broncode downloaden, de afhankelijkheden installeren met npm install en daarna met python3 -m http.server 8080 een lokale webserver opzetten. De webinterface is dan beschikbaar op http://localhost:8080/.

ESP Web Tools

Adafruits Web Serial ESPTool en Espressifs esptool-js zijn in feite slechts webgebaseerde versies van esptool. Ze vereisen dan ook nog altijd wat voorkennis van de gebruiker. Zo moet de gebruiker een baudrate kiezen, een flashadres instellen en het juiste firmwarebestand selecteren.

Nabu Casa, het bedrijf achter Home Assistant en ESPHome, ontwikkelde daarom ESP Web Tools als gebruiksvriendelijke wrapper. Initieel baseerde Nabu Casa zich daarvoor op Adafruits Web Serial ESPTool, en even nam het bedrijf dit project zelfs over als officiële beheerder, maar in juli schakelde Nabu Casa voor ESP Web Tools over naar esptool-js.

ESPHome-mediaspelers

Een voorbeeld van de gebruiksvriendelijkheid is te zien op de webpagina ESPHome Media Players. Deze installeert een ESPHome-configuratie op je apparaatje waarmee je er een mediaspeler van maakt die je rechtstreeks vanuit Home Assistant aanstuurt. Je sluit gewoon je apparaat (Raspiaudio ESP Muse Luxe, Raspiaudio ESP Muse Proto, M5Stack Atom Speaker Kit of M5Stack Atom Echo Development Kit zijn ondersteund) via USB aan, selecteert het in de lijst en klikt op 'Connect', waarna de melding van Web Serial komt om een seriële interface te kiezen. Als je geen apparaat vindt en annuleert, geeft de webpagina een handige checklist van wat je kunt proberen om het probleem op te lossen, zoals een andere kabel of de installatie van de juiste drivers.

Nadat de verbinding met je apparaat is opgezet, krijg je de vraag om of de firmware te installeren, of een console te openen om de logs te bekijken. Kies je voor de installatie en bevestig je, dan wordt de firmware op het bordje geïnstalleerd. Bij sommige apparaten moet je de bootknop ingedrukt houden terwijl je de installatie start. Bij onze M5Stack Atom Echo moesten we de resetknop aan de zijkant indrukken vlak voordat we op het installatieknopje van de webpagina drukten.

Met ESP Web Tools installeer je firmware op een ESP32 of ESP8266 vanuit je webbrowser.
Met ESP Web Tools installeer je firmware op een ESP32 of ESP8266 vanuit je webbrowser.

Wifi configureren via de seriële interface

Daarna komt nog iets extra’s wat ESP Web Tools zo gebruiksvriendelijk maakt: de configuratie van het wifinetwerk. Traditioneel maakt een wifiapparaat waarop je nieuwe firmware installeert een eigen accesspoint aan, waarop je dan aanmeldt en het eigenlijke wifinetwerk kiest waarop je het wilt laten verbinden. ESPHome biedt dat nog altijd aan, en ook bij de mediaplayerfirmware die we op onze M5Stack Atom Echo installeerden, was dat nog mogelijk. Maar deze aanpak verloopt niet altijd even vlot.

ESP Web Tools maakt daarom optioneel gebruik van Improv Wi-Fi, een door ESPHome en Home Assistant ontwikkelde standaard om apparaten met wifi te verbinden door de ssid en het wachtwoord via Bluetooth Low Energy of een seriële verbinding door te geven. Beide manieren zijn ook in de webbrowser ondersteund, namelijk via Web Bluetooth respectievelijk Web Serial. Improv Wi-Fi laat je dus toe om vanuit je webbrowser een aangesloten apparaat eenvoudig met je wifinetwerk te verbinden, zonder dat je eerst met een tijdelijk accesspoint op het apparaat moet verbinden.

In de praktijk kan er met Improv Wi-Fi nog altijd iets mislopen waardoor de gebruiker afhaakt. Toen we de mediaspelerfirmware van ESPHome op onze M5Stack Atom Echo geïnstalleerd hadden met ESP Web Tools, moesten we eerst het bordje resetten voordat we op de webpagina de mogelijkheid 'Connect to Wi-Fi' te zien kregen. Dat kan door op 'Logs & Console' te klikken en dan 'Reset device'.

Na de klik op 'Connect to Wi-Fi' kies je de ssid uit de lijst van gevonden wifinetwerken, vul je het wachtwoord in en klik je dan op 'Connect'. De webpagina stuurt die credentials dan via de seriële verbinding die openstaat dankzij Web Serial naar het apparaatje. Daarna klik je gewoon op 'Add to Home Assistant' om het apparaat in Home Assistant te importeren. Je kunt ook in het dashboard van ESPHome klikken op 'Adopt' om het ontdekte apparaat toe te voegen. Dat werkt via de functie dashboard_import van ESPHome.

Overigens biedt ESPHome met ESPHome Web een vereenvoudigde variant van ESPHome in je webbrowser aan. Ze laat je toe om met behulp van ESP Web Tools van een aangesloten ESP-bordje de logs te bekijken, wifi te configureren als de firmware al Improv Wi-Fi aanbiedt, of er een firmwarebestand op te installeren of er een basisversie van ESPHome op te installeren die je in je ESPHome-dashboard kunt integreren.

Met Improv Wi-Fi configureer je het Wi-Fi-netwerk van je microcontroller via de seriële interface.
Met Improv Wi-Fi configureer je het wifinetwerk van je microcontroller via de seriële interface.

ESPHome-firmware met ESP Web Tools verspreiden

Voor gebruikers is ESP Web Tools dus een handige manier om firmware te installeren, maar wat moet de ontwikkelaar ervoor doen die zijn firmware op deze manier wil aanbieden? Ontwikkel je je firmware met ESPHome, dan is de gemakkelijkste manier om een nieuwe GitHub-repository te genereren op basis van het ESPHome Project Template. Dit bevat een voorbeeldconfiguratie en GitHub-workflow die automatisch je firmware bouwt en via GitHub Pages op een webpagina met ESP Web Tools plaatst zodat gebruikers je firmware zo kunnen installeren.

Om dit te testen, heb ik mijn bestaande ESPHome-project omgezet naar dit sjabloon: M5Stack-Air-Quality-ESPHome. Het resultaat is te zien op de bijbehorende GitHub Pages-url van het project. In het YAML-bestand is het belangrijk dat je improv_serial: of esp32_improv: zet voor gebruik van Improv Wi-Fi via Web Serial of Web Bluetooth. Dit laatste werkte bij mijn ESPHome-configuratie niet omdat de BLE-component zoveel geheugen gebruikte dat de wificomponent niet correct geïnitialiseerd raakte.

Met GitHub Actions publiceert het project een bin-bestand met de firmware en een bestand manifest.json in de branch gh-pages van de repository. Genereer je firmware voor meerdere chipfamilies (ESP8266, ESP32, ESP32-C3, ESP32-S2 of ESP32-S3), dan wordt er voor elke familie een map aangemaakt met het firmwarebestand en manifest. Er wordt ook een globaal manifest aangemaakt met informatie over alle firmwarebestanden. Dat ziet er bijvoorbeeld als volgt uit:

{
  "name": "M5Stack Air Quality ESPHome",
  "version": "",
  "home_assistant_domain": "esphome",
  "new_install_skip_erase": false,
  "builds": [
    {
      "chipFamily": "ESP32",
      "parts": [
        {
          "path": "m5stack-air-quality-kit-esp32/m5stack-air-quality-kit-esp32.bin",
          "offset": 0
        }
      ]
    }
  ]
}

Dit ESPHome-project is specifiek ontworpen voor één bordje van M5Stack met een ESP32. Als je firmware voor meerdere chipfamilies aanbiedt, komt er voor elke chipfamilie in dit globale manifest een extra build. ESP Web Tools zal automatisch op basis van de chipfamilie in het microcontrollerbordje dat je aansluit de juiste firmware uploaden.

Uiteindelijk moet je dan alleen nog maar in je html-bestand, of je Markdown-bestand voor GitHub Pages, de volgende html-elementen opnemen:

<esp-web-install-button manifest="./manifest.json"></esp-web-install-button>
<script type="module" src="https://unpkg.com/esp-web-tools@8.0.3/dist/web/install-button.js?module"></script>

Het element esp-web-install-button toont de knop 'Connect' waarmee alle functionaliteit van ESP Web Tools wordt gestart. Het attribuut 'manifest' laat je verwijzen naar de locatie van het bestand manifest.json.

Andere projecten en conclusie

Als je verschillende firmware voor verschillende ontwikkelbordjes wilt publiceren, ook al behoren ze tot dezelfde chipfamilie, dan kan ESP Web Tools niet automatisch de juiste firmware bepalen. Je kunt dan in JavaScript een uitklapmenu programmeren dat de gebruiker de juiste firmware laat kiezen, of je plaatst op je webpagina gewoon een webinstallatieknop voor elk apparaat. Van die laatste aanpak vind je een voorbeeld in het project ESPHome-Air-Quality-Monitor, dat één ESP8266- en twee ESP32-configuraties ondersteunt. Het belangrijkste verschil is dat je met GitHub Actions nu voor elke configuratie een firmwarebestand en bijbehorend manifest publiceert, en dat je in elke knop op je webpagina naar een ander manifest verwijst.

Als je niet van GitHub Pages gebruik wilt maken, moet je wel zorgen dat je webserver een geldig https-certificaat heeft, bijvoorbeeld met gebruik van Let’s Encrypt. Als het manifest of de firmwarebestanden op een andere server staan dan het html-bestand, dan moet de webserver met een CORS-header (Cross-Origin Resource Sharing), zoals Access-Control-Allow-Origin: https://domain-of-firmware-website.com, aanduiden dat je webbrowser die bestanden daar mag downloaden.

Geef de keuze uit meerdere firmwarebestanden om met ESP Web Tools te flashen.
Geef de keuze uit meerdere firmwarebestanden om met ESP Web Tools te flashen.

Andere projecten

Hoewel ESP Web Tools in de schoot van ESPHome is ontwikkeld, was het vanaf het begin de bedoeling om het ook voor andere projecten open te stellen. Ondertussen gebruiken diverse ‘concurrerende’ projecten van ESPHome de oplossing dan ook om hun firmware via het web op apparaten van gebruikers te installeren. Onder andere WLED, Tasmota, ESPEasy, CanAirIO en OpenMQTTGateway zetten ESP Web Tools in.

Ook voor je eigen niet op ESPHome gebaseerde firmware voor Espressifs chipfamilies, bijvoorbeeld met gebruik van ESP IDF of Arduino, kun je zo’n installatiepagina opstellen. De website van ESP Web Tools legt je stap voor stap uit hoe je het aan je website toevoegt. Vooral voor het manifest kun je nog allerlei opties instellen. Je zult dan je CI-builds moeten uitbreiden, zodat ze naast de firmwarebestanden ook een manifest voor ESP Web Tools creëren. Al met al is ESP Web Tools een open en flexibele technologie waarmee ontwikkelaars een groter publiek voor hun firmware voor Espressifs microcontrollers kunnen aantrekken.

Op de website van OpenMQTTGateway kun je de firmware op je favoriete ontwikkelbordje flashen.
Op de website van OpenMQTTGateway kun je de firmware op je favoriete ontwikkelbordje flashen.

Reacties (49)

49
49
14
1
0
31
Wijzig sortering
Motion sensors, uptime sensors, relays, ledstrips, temperatuur sensors, overal zwerven nodemcu's door het huis hier. Vind de esp8266 boards geweldig!
Persoonlijk vind ik tegenwoordig de ESP32 de betere keus.
Prijs is amper hoger meer dan de ESP8266 en je hebt er veel meer geheugen en GPIO pinnen voor.
Ook lijkt de stabiliteit minder 'random' dan wat je bij een hoop ESP8266 bordjes van Ali enzo ziet.
Vooral de "beruchte" Wemos D1 mini form factor is de laatste paar jaren nogal wisselend qua kwaliteit.
De originele "Wemos D1 mini" bordjes hadden nog een fatsoenlijke AMS1117 als spanningsregelaar. Maar tegenwoordig is het meer de uitzondering als je een bordje met die form factor tegenkomt met een spanningsregelaar die meer dan 150 mA kan leveren. Dit terwijl de ESP8266 kan pieken (zeer kort) tot 500 mA bij het verbinden met WiFi.
Dat geeft op z'n zachtst gezegd een "verminderde gebruikerservaring".

Ook de ESP32-S2 serie is erg goed. De ESP32-C3 en -S3 moet ik nog support voor toevoegen in ESPEasy.
Let er dus op dat er diverse varianten zijn van de "ESP32".
Heb hier anders alleen maar problemen met ESP32 in combinatie met NTP. Schijnt alleen goed te werken na het toepassen van 'Double NAT'. De rest van het netwerk heeft geen moeite om te synchroniseren met een (lokale) NTP server, ESP32 is niks dan miserie.

Allemaal leuk en aardig, maar als 'Double Nat' de oplossing is voor ESP32 met NTP, dan is ESP32 voor mij waardeloos. Niet alleen waardeloos, maar daardoor ook een extra zorg voor veiligheid in mijn netwerk.
Zou eerlijk gezegd niet weten waarom dat op een ESP32 anders zou moeten zijn dan op ESP8266.
Het is gewoon UDP verkeer.
Lijkt mij meer een software dan een hardware ding
Zeker, heb 7 eps32's welke allemaal NTP gebruiken icm een licht sensor en ze hebben alle 7 geen problemen. Gewoon de standaard "code" uit het voorbeeld van esphome.io en gaan !?
Dat had ik ook gedacht, maar ze maken simpelweg geen contact met een NTP server. Niet via een 'pool' of direct IP adres.

Totdat ik ze achter een WiFi router in mijn LAN zet die via de WAN poort is aangesloten ('Double NAT'). Dan maken ze wel contact met NTP. Andere computers en devices hebben totaal geen moeite met de (lokale) NTP servers die ik op de ESP32 devices heb configureerd. Het mag jou als een vaag verhaal in de oren klinken, het helaas mijn realiteit. Vandaar dat ik er dus niet zo over te spreken ben.

Conceptueel een geweldig idee, maar voor mij is de praktijk toch een beetje teleurstellend.
Grote kans dat er ergens iets met een poort niet goed staat. Ik gebruik wel een ander adres dan de standaard (geloof dat ik nr 3 uit 6 heb gepakt). Misschien daar eens naar kijken ?
Je kan dit ding toch ook gewoon met de Library en het programma met een Huis van Arduino programeren? Of zie ik iets over het hoofd?
Deze tool wordt meer gebruikt om firmware te flashen zoals WLED of ESPHome. Deze hebben niet een simpele code en library die word geflasht, aangezien er veel dependencies aan vast hangen.
Arduino werkt met AVR microprocessors via AvrDude, niet de ESP of STM32 series. Die hebben elk hun eigen flashers. Niet alle boardjes hebben ook een directe usb aansluiting. Diverse microprocessors kan ik alleen flashen via de JTAG headers en een specifiek programmer boardje voor die serie...
ESP's kun je programmeren via de Arduino IDE als je de bordjes toevoegt via de board manager.

[Reactie gewijzigd door GeeBee op 22 juli 2024 15:25]

STM32's ook ... Ook het flashen kan gewoon met een seriele verbinding, je hebt geen usb nodig perce ?!
Leuk artikel, wist wel dat het bestond, maar interessant om te lezen hoe snel de ontwikkeling gaat. Even bookmarken voor de toekomst!
Wie al eens aangepaste firmware op een microcontrollerbordje heeft geflasht, mag niet bang zijn voor de opdrachtregel. Doorgaans moet je lokaal ontwikkeltools installeren, waarmee je je firmware bouwt en via een USB-kabel naar het flashgeheugen van het bordje uploadt.
Dat is wel een beetje kort door de bocht.
De meeste projecten gaan via de Arduino IDE. Alleen het installeren van kant-en-klare gecompileerde projecten, zoals het later genoemde WLED, gaan via de website.
Ben recent ook begonnen met het spelen met ESP's en vind het leuk speelgoed. Eerst met ESPHome maar ga nu ook zelf wat C++ coderen om zelf eens wat elektronica aan te sturen. Echt wel bizar gemakkelijk geworden, waar mijn vorige ervaring met microcontrollers ruim 14 jaar geleden (toen vooral PIC/AVR) inhield dat je nog even met losse programmers via ISP of ook gewoon door de chip in een programmer te steken moest programmeren. En dan zit er ook ineens een veel krachtigere chip in met allerlei ingebouwde randapparatuur waar dat ook allemaal nog non-existing was of je betaalde echt honderden euro's voor een dev-board met nog steeds niet al die functionaliteit.
Ik dacht effe te kijken of er ook ondersteuning is voor WLED en jahoor.... Netjes een link op de ESP Web Tools pagina (onderaan) naar een WLED interface.
Niet dat ik veel moeite had met het zelf flashen, maar zoals in het artikel staat al te lezen dat het niet altijd even handig is. En het heeft toch wel wat uitzoek werk gekost voor ik (programmeer noob 1e klas) de juiste tool had voor mijn 8266's

Oftewel, mooi artikel
"vergelijk prijzen, vanaf 14 euro" staat er op de home page.
zie je welgeteld 2 ESP boardjes staan in de pricewatch 😂
Maargoed, iedereen koopt die dingen toch voor een euro of 3 op Ali..
Bor Coördinator Frontpage Admins / FP Powermod @winand7 december 2022 09:16
Maargoed, iedereen koopt die dingen toch voor een euro of 3 op Ali..
Nee hoor. De bordjes via Ali zijn soms van wisselende kwaliteit. Ik koop eigenlijk alleen EPS32 van een bekend merk via hun officiële kanaal omdat daar de ervaringen goed zijn. De prijs ligt dan iets hoger maar ik zit dan niet met onstabiliteit, bordjes die toch vrij snel stuk gaan etc.

[Reactie gewijzigd door Bor op 22 juli 2024 15:25]

Welke merken zijn kwalitatief goed?
Wemos (Lolin) zijn goede / simpele bordjes, of als je helemaal voor de huisautomatisering gaat, zij de Sonoff modules ook gemakkelijk te flashen: https://opencircuit.nl/product/sonoff-wifi-draadloze-switch
ESPs koop ik dan ook niet via de Pricewatch. Daar staan immers alleen de shops die aangesloten zijn bij de Pricewatch.
De meeste nederlandse electro shops hebben ze ook, wel iets duurder maar de volgende dag in huis. En gemakkelijk een nieuw bordje mocht er iets mis zijn, bij de betere shops in ieder geval... https://opencircuit.nl/pr...2e-wifi-development-board
Die esp32 dingen zijn voor een prikkie te koop bij aliexpress
Kwaliteit doet ook wat met de prijs. Heb vorig jaar 10 esp32 gekocht waarvan er 2 stuk waren. En 1 heeft wat mankementen soms.
Ik heb er zo'n 15 in gebruik denk ik. Misschien dat ik ooit een niet werkende uit china heb ontvangen.
Die chinese zijn zeker 3 maal zo goedkoop, dus het loont om ze daar te bestellen.
15*15 euro = 225 euro, 15 * 3 euro = 45 euro
Tevens; Veel nederlandse sellers halen ze ook gewoon uit china
Klopt, maar als je het hobbymatig gebruikt is het ook prima spul. Het was ook maar een waarschuwing.
Ah, je gaf niet aan dat je deze boardjes beroepsmatig inzet..
Nouja hobbymatig kun je er ook ellende mee hebben als je er geen ervaring mee hebt. Dus ben je voor het eerst bezig, koop lekker een duurder bordje
In Nederland betaal je over het algemeen 8- 9 euro voor een NodeMCU inclusief BTW, dus het scheelt wat minder. Daarnaast kan je fluiten naar je geld als van de 15 stuks uit China maar 10 stuks werken.
>Daarnaast kan je fluiten naar je geld als van de 15 stuks uit China maar 10 stuks werken.

Klopt. maar dat heb ik nog niet meegemaakt. Dat hooguit 1 van de 15 kuren vertoond is meer realistisch
Ik heb al een beetje ervaring met de esp01, de esp12E en ben nu bezig met de esp32 voor een projectje voor men broer. Bij de esp01 is het inderdaad heel belangrijk om een condensator te gebruiken, zeker bij de initiële opstart. Dan kan die wel even naar de 800ma ofzo gaan.
Een tip die ik graag mee geef is het gebruiken van ESP essentials. Dit zorgt ervoor dat je sketch kan uploaden via wifi (OTA). En ook is het heel simpel om een dns naam in te stellen, baudrate etc. Ook een webserver zit er bij, en je kan heel eenvoudig een filesystem gebruiken en bestanden uploade voor bv een webpagina. De support is ook prima. Ik had een probleem met mijs ESP32 dat de fs niet werkte en de ontwikkelaar heeft het nog diezelfde dag gefixt. Echt een aanrader. Je kan de info vinden op github.
Zeer handig dat OTA. Ik maak tegenwoordig gebruik van Otadrive. Handig als je ESP apparaten verbonden zijn met een ander netwerk.
ik gebruik in huis heel veel esp controllers, hiervoor gebruik ik tasmota en esphome, beide hebben zo hun voordelen.
Er zijn ook fabrikanten die producten leveren met deze controllers, zo gebruik ik veel sonoff schakelaars, die ik standaard kan flashen.
Helaas stapt tuya af van ESP waardoor nieuwe tuya producten niet altijd meer werken met esphome of sonoff. Er zijn wel alternatieven heb ik gezien, maar die heb ik nog niet getest
Vaak kun je de Tuya chip wel vervangen voor een esp, moet je wel wat soldeer skills hebben.
niet altijd maar soms wel,
heb toevallig een paar van deze liggen om te vervangen.
https://nl.aliexpress.com...a6C2&gatewayAdapt=glo2nld
maar die hebben 2.0mm pinheader ipv 2.4 dus andere pinheaders besteld, om de flashen, helaas heb ik er daarna geen tijd mee voor gehad.

toch was het eenvoudiger toen tuya nog wel esp gebruikte.
Ik zeg toch vaak? ;) dus niet altijd.
Is dat de tijd (en enekele euro's) die je erin moet steken wel waard? Als je ze al hebt oke, maar om op voorhand Tuya te kopen als je de firmware wilt veranderen, kun je toch beter voor een ander merk gaan?
Dat is natuurlijk je eigen keuze

Op dit item kan niet meer gereageerd worden.