You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.
Ik heb een oudere minimaal versie geïnstalleerd en daarna de ESPHome bin-file als firmware update via de web interface geïnstalleerdRudolfR schreef op vrijdag 31 december 2021 @ 12:43:
@Nickhubers1988
De suggestie van hierboven lijkt me wel de oplossing.
De getter verwacht een out-parameter van het type uint32_t& om het resultaat in te zetten, die moet je bij de aanroep wel declareren en meegeven.
Ik wil graag m'n Shelly 2.5 OTA van ESPHome voorzien, volgens deze guide, maar dat lukt niet.
Ik heb met succes Tasmota geïnstalleerd, maar ik krijg nu mijn ESPHome image er niet overheen.
(Ook niet na SetOption78 1)
Ik krijg dat er te weinig ruimte beschikbaar is.
Ook tasmota-minimal.bin past niet.
Iemand nog tips?
code:
1 2 3 4 5 6 7 ESP Chip Id 7013188 (ESP8266EX) Flash Chip Id 0x15701C Flash Size 2048 kB Program Flash Size 1024 kB Program Size 616 kB Free Program Space 384 kB Free Memory 26.5 kB
Edit: Kennelijk kun je ook de .gz-file uploaden, dan past het wel.

2 van de 3 kon ik, na IO0 met GND te hebben verbonden, flashen, de 3e wil niet meewerken. Esptool zegt telkens "A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header" na een tijdje proberen te verbinden.
Open ik de Arduino IDE terminal, terwijl IO0 aan GND hangt, dan krijg ik (na een reset) dit te zien:
1
2
3
4
| ets Jun 8 2016 00:22:57 rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2)) waiting for download |
Dat lijkt mij de te verwachten output, als ik de verbinding tussen IO0 en GND weghaal, verloopt het bootproces normaal, met de firmware die er al op zit.
Ik heb de COM-poortnummer meerdere keren gechecked, verschillende baudrates geprobeerd, andere USB poorten, maar esptool blijft bij de 3e identieke ESP32 moeilijk doen.
Weet iemand wat dit zou kunnen zijn?
edit: Zelfde met FTDI kabel aan Rx/Tx/GND, USB chip daarmee uitgesloten, nieuwe(re) esptool versie geeft "No serial data received" terwijl de serial monitor van de Arduino IDE gewoon data oppikt, met multimeter gecheckt of de Rx pin van de ESP chip met header verbonden is (check) ..... ik heb geen ideeën meer

[ Voor 13% gewijzigd door Raven op 03-01-2022 15:05 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Ik heb op internet voorbeelden gevonden waarbij een esp gekoppeld wordt met een Hue bridge en ook bediend kan worden , alleen wordt hier niet gesproken op een netwerk wat elkaar verlengt.
Er is een Zigbee variant van de ESP32 aangekondigd, maar die heeft dan weer geen wifi. Maar elke Zigbee chip zal waarschijnlijk een seriële interface naar de buitenwereld hebben dus je zou wel een Zigbee chip aan een ESP moeten kunnen knopen via die weg.19roland70 schreef op donderdag 6 januari 2022 @ 22:29:
Is het mogelijk om met een esp xxxx een Zigbee netwerk te maken wat werkt zoals Philips Hue?
Ik heb op internet voorbeelden gevonden waarbij een esp gekoppeld wordt met een Hue bridge en ook bediend kan worden , alleen wordt hier niet gesproken op een netwerk wat elkaar verlengt.
Maar houdt er dan wel rekening mee dat Zigbee 2,4GHz gebruikt en de ESPs IIRC ook alleen 2,4GHz wifi ondersteunen. Dus kans op storing/interferentie is best groot.
Ik wil voor mijn project op de ESP32, graag ipv6 ook geconfigureerd hebben, en dan vooral ipv6 Slaac.
Nu zie ik wel dat het zou moeten kunnen, maar dan moet je wel de esp-idf zelf compilen?
https://docs.espressif.co...fig.html#config-lwip-ipv6
Iemand ervaring hoe je dat het beste kunt doen, eventueel kan het ook zie ik via docker, maar als hij klaar met compilen is, hoe zorg ik dat hij dan gekoppeld wordt aan de arduino ide?
Als ik op dit forum zoek op "nanoFramework" vind ik helemaal niets...
:fill(white):strip_exif()/f/image/ujs6NRQZ0Iz6pXAC7Pu3y6pC.png?f=user_large)
Ik heb gevonden dat het probleem opgelost zou zijn met het volgende commando:
1
2
| sudo sysctl -w net.ipv4.igmp_max_memberships=50 sudo sysctl -w net.ipv4.igmp_max_msf=30 |
Echter is dit blijkbaar niet mogelijk in een docker. Iemand een idee?
Bump: Niemand een idee om mij in de goede richting te wijzen?
[ Voor 5% gewijzigd door Yoki1985 op 24-01-2022 14:09 ]
Ik wil met een ESP bordje mijn radiator booster aansturen middels PWM.
Ik heb nog geen ESP bordje. Mijn huidige 15 x Arctic P14 PWM PST stuur ik aan met een simpel PWM bordje met een potmeter. Maar daarop moet ik dus met de schroevendraaier 1 vaste stand instellen.
Ik heb diverse zaken gelezen over een ESP32 bordje (een ESP8266 zou niet goed genoeg zijn ivm frequentie van het PWM signaal). Ik zie vaak de IRF520 mosfet voorbijkomen als oplossing om fans dan met PWM aan te sturen. Maar die IRF520 is dan eigenlijk weer niet zo geschikt voor 3.3v van de ESP.
Wellicht dat dat met 1 fan wel werkt, maar ik heb er 15.
Kan ik gewoon zo'n IRF520 bordje kopen en de mosfet simpelweg vervangen door een IRLZ44N (Heb gelezen dat deze beter werkt icm de 3.3v van de ESP).
Aangezien ik PWM fans gebruik... is er eventueel nog een andere oplossing zonder mosfet?
Volgens mij blijven de fans sowieso draaien op de laagste stand, dus uitzetten met PWM is volgens mij niet mogelijk.
En wat is het meest geschikt ESP32 bordje hiervoor? Ik zie zo veel soorten, merken en types, dat ik twijfel van nu de juiste is. Ik wil er ESPEasy opdraaien waarbij ik dan de PWM via URL kan aansturen vanuit Domoticz.
Graag even wat adviezen
Maar goed, wil je ze aansturen via de PWM pin op de 4-pin connector? Want dan hoef je eigenlijk geen stroom te schakelen, dan is de transistor er alleen voor de spanninsvertaling. BC547 + weerstandjes kan dat ook prima. Maar schijnbaar wordt 3v3 ook wel direct gebruikt voor het PWM signaal.
Verder maakt het dus niet zo veel uit wat je pakt. Al die complete bordjes hebben vaak alleen wat extra's. Bijvoorbeeld batterij manegment of een schermpje. Maar als je alleen wilt sturen is elke standaard module prima.
Ik heb een poosje terug een radiator booster gebouwd "on the cheap" met 5 80mm twee draads 12V fans uit oude PCs en voedingen waarbij een ESP01 en een IRLZ44N mosfet de fans aanstuurt (ESPeasy die twee DS18B20 sensoren uitleest en dan rules die de fans aan/uit zetten).Flappie schreef op donderdag 17 februari 2022 @ 19:24:
Even een vraagje aan de ESP specialisten onder ons.
Ik wil met een ESP bordje mijn radiator booster aansturen middels PWM.
Ik heb nog geen ESP bordje. Mijn huidige 15 x Arctic P14 PWM PST stuur ik aan met een simpel PWM bordje met een potmeter. Maar daarop moet ik dus met de schroevendraaier 1 vaste stand instellen.
Ik heb diverse zaken gelezen over een ESP32 bordje (een ESP8266 zou niet goed genoeg zijn ivm frequentie van het PWM signaal). Ik zie vaak de IRF520 mosfet voorbijkomen als oplossing om fans dan met PWM aan te sturen. Maar die IRF520 is dan eigenlijk weer niet zo geschikt voor 3.3v van de ESP.
Wellicht dat dat met 1 fan wel werkt, maar ik heb er 15.
Kan ik gewoon zo'n IRF520 bordje kopen en de mosfet simpelweg vervangen door een IRLZ44N (Heb gelezen dat deze beter werkt icm de 3.3v van de ESP).
Aangezien ik PWM fans gebruik... is er eventueel nog een andere oplossing zonder mosfet?
Volgens mij blijven de fans sowieso draaien op de laagste stand, dus uitzetten met PWM is volgens mij niet mogelijk.
En wat is het meest geschikt ESP32 bordje hiervoor? Ik zie zo veel soorten, merken en types, dat ik twijfel van nu de juiste is. Ik wil er ESPEasy opdraaien waarbij ik dan de PWM via URL kan aansturen vanuit Domoticz.
Graag even wat adviezen
Op zich werkt het wel, maar een 1000uF elco was wel nodig om bij de lagere snelheden gepiep te voorkomen die uit de fans kwamen. Verder viel het me tegen hoever ik de fans terug kon regelen. Het lijkt niet zo lineair te zijn. Dus PWM 512 is niet vergelijkbaar met de fans op 6V draaien. Pas bij PWM 70 of zo leek dat qua geluid een beetje in de buurt van 7-8V te komen en lager kon ik dan niet echt gaan want dan wilden de fans niet meer draaien (ook niet als ik ze even een "zetje" gaf met eerst kort PWM 512 of zo). Met een buck down converter van 12V 6V maken bleek een betere oplossing voor mij dan waren de fans stiller en draaiden ze prima (met een even aantal fans zou ik er ook setjes van twee in serie kunnen doen op 12V). Op 5V draaien ze ook goed, maar dan is de airflow wel erg beperkt.
Voor nu heb ik de buck down converter op 6,5V afgesteld. Daarmee lijk ik een goede balans te hebben gevonden voor weinig geluid en redelijke airflow. Vergeleken met 120/140mm fans is de geluidsproductie nog redelijk hoog, maar dit alles kon ik zo bouwen met bestaand materiaal wat ik had liggen en daarmee was het een leuk experiment waarbij ik zelf niet direct de behoefte voel om het nog eens over te doen met betere materialen.
Verkeerde eenheid aangepast van nF naar uF
Die elco was inderdaad parallel aan de fans. Geen idee welke PWM frequentie gebruikt wordt. Het zit op GPIO 0 van de ESP01 en ESPeasy laat ik die pin aansturen met het PWM,0,<waarde> commando.Septillion schreef op vrijdag 18 februari 2022 @ 08:59:
@tsjoender Op welke frequentie had je de PWM lopen? En die condensator had je parallel aan de fans? 1000nF aka 1uF?
Die 1000nF was een fout van mij. Dat moet micro farad (uF) zijn.
Echter op de laagste mogelijke stand zijn ze nog steeds aan en stoppen dus niet met draaien.
Vandaar mijn idee voor het IRF520 mosfet bordje en de mosfet dan vervangen door een IRLZ44N. Dan heb ik alles mooi op een printje.
Dat het niet helemaal 100% traploos regelbaar is vind ik niet een zo erg. Als ik bijv via de webinterface van ESPEasy kan schakelen tussen bijv. 6 standen is het prima.
Dus de vraag: is het mogelijk om een standaard IRF520 bordje te kopen en de mosfet te vervangen door een IRLZ44N. En werkt dit dan?
Bedoel dus dit bordje:
:strip_exif()/f/image/CnJKZCwKJRkxo6RlleDGIJNB.jpg?f=fotoalbum_large)
Ik merk echter op dat wanneer ik dit schermpje (via I²C) aansluit, de ESP niet wil verbinden met WiFi:
Trek ik het OLED schermpje los, dan gaat het verbinden met WiFi zonder problemen.[15:20:44][W][wifi_esp8266:482]: Event: Disconnected ssid='xxx' bssid=xxx reason='Auth Expired'
Verbinden met WiFi gaat ook goed als ik de I²C en OLED config uit de ESPHome YAML haal (en nieuwe firmware compile en flash uiteraard).
Herkent iemand dit issue?
\\Edit: De oplossing: https://github.com/esphom...20#issuecomment-803429566
[ Voor 17% gewijzigd door JBS op 20-02-2022 18:57 ]
Voor zover ik kon vinden was het een probleem met een slecht geshielde chip die storingen kreeg bij bepaalde zaken, en dan dus niet meer met de wifi wou verbinden.
Edit: https://github.com/esphome/issues/issues/952
[ Voor 9% gewijzigd door azerty op 20-02-2022 19:05 ]
zoek de fout:
1
2
3
4
5
| uint8_t percentage; percentage = map(bat_voltage, empty_bat_volt, full_bat_volt, 0, 100); //om geen negative en percentages groter dan 100 af te vangen: if (percentage <0) {percentage = 0;} if (percentage >100) {percentage = 100;} |
All electric components run on smoke. If you let the smoke out, they won't work anymore.
Dat klopt, maar het duurde even voordat ik doorhad waarom het percentage naar 100% ging bij een erg lage batterij spanning.
All electric components run on smoke. If you let the smoke out, they won't work anymore.
Misschien bedoel je dat ook, maar het checken dat een waarde lager is dan 0 bij unsigned is raar...SnowDude schreef op donderdag 24 februari 2022 @ 15:26:
Zucht programmeer je bijna 35 jaar, maak je nog dit soort denk fouten.
zoek de fout:
code:
1 2 3 4 5 uint8_t percentage; percentage = map(bat_voltage, empty_bat_volt, full_bat_volt, 0, 100); //om geen negative en percentages groter dan 100 af te vangen: if (percentage <0) {percentage = 0;} if (percentage >100) {percentage = 100;}
Sinds de 2 dagen regel reageer ik hier niet meer
Dat gaat ook mis, het is een unsigned int inderdaad dus -1 wordt 255 en dat wordt een regel later afgerond op 100CurlyMo schreef op donderdag 24 februari 2022 @ 15:43:
[...]
Misschien bedoel je dat ook, maar het checken dat een waarde lager is dan 0 bij unsigned is raar...
All electric components run on smoke. If you let the smoke out, they won't work anymore.
[ Voor 5% gewijzigd door CurlyMo op 24-02-2022 16:40 ]
Sinds de 2 dagen regel reageer ik hier niet meer
Waarom is dat? Nu hebben alle functies 1 actie en geen "side effects".CurlyMo schreef op donderdag 24 februari 2022 @ 15:45:
Als een waarde lager dan 0 (en ook hoger dan 100) een optie is bij de huidige parameters van map, dan is op de eerste plaats die functie al crap. Dan zou ik de hele functie al niet eens meer willen gebruiken.
In mijn opinie is deze implementatie van map zo juist correct. Voor het limiteren van de range heb je constrain.
Anders zou de functie MapAndConstrain (ofzo) moeten worden genoemd.
Alvast hartelijk bedankt voor al jullie hulp en reacties, Tim Bots
:strip_exif()/f/image/8qXuU2bqRyGiN2TF1WlY7dAL.jpg?f=fotoalbum_large)
:strip_exif()/f/image/5yF78CjND3Gen5EJjLBWnKHa.jpg?f=fotoalbum_large)
Krijg alleen nog niet lekker een algoritme om Lux om te zetten naar kWh/m². De verschillen van de TSL zijn dagelijks nogal groot als ik die vergelijk met de echte pyranometer die er nu hangt. Waarschijnlijk is dat voor een deel te verklaren uit reflecties in het glas.
Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp
(Hoe ga je dit schoonmaken..)
andru123 schreef op zondag 27 februari 2022 @ 06:53:
Waar in deze constructie zit lichtsensoor?
(Hoe ga je dit schoonmaken..)
:strip_exif()/f/image/68fEXoDkfW9j9W8vmeEm0npv.jpg?f=fotoalbum_large)
Ik kan daar met een lader vanaf een strook platdak goed bij komen, maar schoonmaken is tot nu toe nog niet nog geweest. Spoelt goed schoon door de regen
Ik ga nog een versie maken met twee lichtsensors er in, maar dan met een vlakke doorzichtige bovenkant om reflecties zoveel mogelijk uit te sluiten. Daar haal ik dan met een script in domoticz het gemiddelde van binnen. Dat ga ik dan weer in lijn proberen te krijgen met de echte pyranometer die er nu naast hangt.
Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp
Stuurkabel (0.14mm2 eventueel meeraderig, flexibel koper) is wat je waarschijnlijk zoekt. Denk aan een kleine 10 euro voor 10 meter 4 aders.
Wil je recyclen dan is een (koperen) patchkabel met kapotte connector natuurlijk een heel mooi alternatief. Netwerkkabel met de opdruk 26 AWG komt overeen met 0.14mm2, 24 AWG is dikker.
- knip -
Ik gebruik wel eens microphone of signaal kabel. Mooi afgeschermd ook.jantje888 schreef op zondag 6 maart 2022 @ 19:29:
Met wat voor 'kabels' soldeer het beste sensoren aan een ESP? Knip ik simpelweg de connectors van een dupont kabel, strip ik het plastic en soldeer ik beide kanten vast?
Ook bestaande projecten geven deze fout, iets aan mijn omgeving omgevallen?
ESPHome draait als add-on onder Home Assistant.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| INFO Reading configuration /config/esphome/vindriktning.yaml... INFO Generating C++ source... INFO Core config or version changed, cleaning build files... INFO Deleting /data/vindriktning/.pioenvs INFO Deleting /data/vindriktning/.piolibdeps INFO Compiling app... Processing vindriktning (board: d1_mini; framework: arduino; platform: platformio/espressif8266 @ 3.2.0) -------------------------------------------------------------------------------- HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf Library Manager: Installing ESP8266WiFi Library Manager: Installing ESP8266mDNS No dependencies Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/api_connection.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/api_frame_helper.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/api_pb2.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/api_pb2_service.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/api_server.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/list_entities.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/proto.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/subscribe_state.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/user_services.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/api/util.cpp.o Compiling /data/vindriktning/.pioenvs/vindriktning/src/esphome/components/esp8266/core.cpp.o In file included from /data/cache/platformio/packages/framework-arduinoespressif8266/cores/esp8266/Esp.h:26, from /data/cache/platformio/packages/framework-arduinoespressif8266/cores/esp8266/Arduino.h:289, from src/esphome/components/esp8266/core.cpp:6: /data/cache/platformio/packages/framework-arduinoespressif8266/cores/esp8266/spi_vendors.h:32:10: fatal error: ../../bootloaders/eboot/spi_vendors.h: No such file or directory 32 | #include <../../bootloaders/eboot/spi_vendors.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. *** [/data/vindriktning/.pioenvs/vindriktning/src/esphome/components/esp8266/core.cpp.o] Error 1 ========================= [FAILED] Took 36.71 seconds ========================= |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| esphome: name: vindriktning esp8266: board: d1_mini # Enable logging logger: # Enable Home Assistant API api: wifi: ssid: !secret wifi_ssid password: !secret wifi_password power_save_mode: none # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Vindriktning Fallback Hotspot" password: "IEdsgfeESFEzS" # Ikea Vindriktning PM2.5 sensor uart: rx_pin: D2 baud_rate: 9600 sensor: - platform: pm1006 pm_2_5: name: "Ikea Vindriktning PM25" filters: - sliding_window_moving_average: window_size: 10 send_every: 10 |
SPI-library expliciet toevoegen heeft geen effect.
fatal error: ../../bootloaders/eboot/spi_vendors.h: No such file or directoryRudolfR schreef op dinsdag 8 maart 2022 @ 17:20:
Ik probeer m'n IKEA vindriktning uit te breiden met epshome, maar al het compileren faalt.
Ook bestaande projecten geven deze fout, iets aan mijn omgeving omgevallen?
Blijkbaar mis je een file volgens de foutmelding.
[LTS][MTS][HTS]
Bedankt, de add-on opnieuw installeren hielp.
(meteen uit de nieuwe add-on repo, maar dat terzijde)
Op aanraden van Andreas Spiess heb ik een keer 50 meter siliconendraad gekocht in een handig doosje. Fijn spul om mee te werken en ik heb voor de komende 10 jaar voldoende draadjantje888 schreef op zondag 6 maart 2022 @ 19:29:
Met wat voor 'kabels' soldeer het beste sensoren aan een ESP? Knip ik simpelweg de connectors van een dupont kabel, strip ik het plastic en soldeer ik beide kanten vast?
Overigens probeer ik juist zoveel mogelijk wél met pinheaders en dupont-kabeltjes te werken. Ik maak ook zelf dupont-kabels van deze siliconenkabeltjes.
Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX
Zodra het bij mij 'ready to use' is en een PCBtje te veel moeite (of gewoon onzinnig) is soldeer ik alles permanent vast.
- knip -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| esphome: name: esphome-web-1af8c4 platform: ESP8266 board: d1_mini # Enable logging logger: # Enable Home Assistant API api: ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esphome-Web-1Af8C4" password: "grxsoymO3Wb2" captive_portal: #LED test output: - platform: gpio id: "led" pin: D3 light: - platform: binary output: "led" name: "LED" |
Wat doe ik fout? Dit zou toch niet zo moeilijk moeten zijn!
Zie je reactie nu pas. Zou kunnen, maar geeft ook een te hoge Watt/m² waarde. Daar ga ik binnenkort onderbouwd over in discussie met de fabriekant.andru123 schreef op zondag 27 februari 2022 @ 19:31:
Mischien op die andere meter zit een lens, die van de zijkanten meer licht pakt?
Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp
Ik heb een ESP8266 bordje opgehaald, waar ik een wifi chip op zie zitten en een micro USB aansluiting.
Echter, ik zoek eigenlijk een bordje waar 220v input op zit. En waar ik mijn DS18B20 sensor op aan kan sluiten (geel, zwart & rode draad). Ik geloof dat ik ook nog een 4,7 weerstandje nodig heb tussen de zwarte en rode draad. Dat ik dan de esp8266 die ik nu heb liggen niet gebruik vind ik niet zo'n ramp. Die komt wel weer van pas bij iets anders.
En ik zoek een lasdoosje of vergelijkbaar, waterdicht, van maximal 70mm x 70mm. De andere afmeting mag een stuk groter uitvallen. Wil het lasdoosje met alles erin waterdicht kunnen afsluiten en dan door een 76mm gat in het plafond, op het plafond leggen.
Heeft iemand misschien wat linkjes waar zoiets uitgelegd wordt? En eventueel ook waar getoond wordt hoe dit bijvoorbeeld met ESPhome of vergelijkbaar wordt ingedeeld?
Ik wil uiteindelijk mijn data naar Home Assistant gaan sturen. Via ESPHome zou kunnen, via MQTT zou ook mooi zijn.
Ik ben dus een beetje op zoek naar mensen die zoiets al eens hebben gedaan en daar dan een YouTube video of een blog post o.i.d. van hebben gemaakt.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Ik gebruik altijd gewoon een USB-lader. Een ESP waar je direct 220V op zet heb ik nog nooit voorbij zien komen en zou ik zelf ook liever niet gebruiken. 220V en mijn ge-hobby houd ik graag fysiek gescheiden :-)Tanuki schreef op donderdag 31 maart 2022 @ 00:00:
Echter, ik zoek eigenlijk een bordje waar 220v input op zit.
Mee eens.ocmer schreef op donderdag 31 maart 2022 @ 01:22:
[...]
Ik gebruik altijd gewoon een USB-lader. Een ESP waar je direct 220V op zet heb ik nog nooit voorbij zien komen en zou ik zelf ook liever niet gebruiken. 220V en mijn ge-hobby houd ik graag fysiek gescheiden :-)
Hoe wordt zoiets normaal aangepakt? Kan me niet voorstellen dat ik de enige ben.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Grotere lasdoos zodat het wel past.Tanuki schreef op donderdag 31 maart 2022 @ 07:48:
[...]
Hoe wordt zoiets normaal aangepakt? Kan me niet voorstellen dat ik de enige ben.
Sinds de 2 dagen regel reageer ik hier niet meer
Ik zat net te denken: zou men normaal dan een USB oplader (gewoon, zo een waarmee je ook je smartphone oplaadt) uit elkaar halen en dan dat printplaatje met alle onderdelen erop ook in de lasdoos plaatsen?
En dan simpelweg 220v aansluiten op de contacten?
Dat kan best prima werken lijkt me.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Veel kleiner dan een Hilink HLK-PM03 gaat dat niet echt worden, als je daar een PCBtje mee maakt ben je al een heel eind.
Sonoff maakt de basic R3 waar je een aantal pinnen vrij kan gebruiken.
Fwiw, 'normaal' klooit men niet aan met alles boven 42 volt.
- knip -
Wel goed opletten dat je blootliggende spanningsvoerende delen goed isoleert. En een klein glaszekeringetje aan de 230V kant is ook wel handig denk ik.
Wel goed opletten, er zijn producten waar de GPIO ongeïsoleerd aan de netspanning hangt. O.a. op de Tasmota wiki heb ik hier wel eens over gelezen. Kan erg gevaarlijk worden als een sensor buiten de behuizing zit en aangeraakt kan worden.Raymond P schreef op donderdag 31 maart 2022 @ 08:02:
[...]
Sonoff maakt de basic R3 waar je een aantal pinnen vrij kan gebruiken.
[...]
Je moet goed weten wat je doet als je met 230V aan de gang gaat, daarom wordt over het algemeen de boel gewoon met een veilige USB-lader gevoed.
[ Voor 41% gewijzigd door ThinkPad op 31-03-2022 08:04 ]
Daarbij een temperatuur sensor en alles kant en klaar op 230v.
[ Voor 4% gewijzigd door JorisV op 31-03-2022 08:21 ]
- knip -
Ik zou de tip van @JorisV opvolgen.
[ Voor 8% gewijzigd door CurlyMo op 31-03-2022 08:23 ]
Sinds de 2 dagen regel reageer ik hier niet meer
Ik heb zelf ook veel ESPs in huis (CO2-meters, fijnstofsensoren, watermeter, ESPs met 5 verschillende sensoren), maar soms bespaar je jezelf veel gedoe door iets kant-en-klaars te pakken.
Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX
Ik snap je comment wel.CurlyMo schreef op donderdag 31 maart 2022 @ 08:22:
Ik vind het nu al heel spannend om @Tanuki iets anders te adviseren dan een klant en klare usb kader te gebruiken. Gewoon zo'n platte ongeaarde stekken en een platte USB lader. Dat neemt niet veel ruimte in.
Ik zou de tip van @JorisV opvolgen.
Maar ik heb heel veel aan de input die in de afgelopen uren kwam in dit topic. Bedankt!
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Je zet meestal niet je eerste stap met dodelijke hoogspanning.Tanuki schreef op donderdag 31 maart 2022 @ 08:39:
[...]
Ik snap je comment wel.Maar iedereen heeft ooit een begin moeten maken hiermee. Waarschijnlijk zeg ik over een paar weken "dat was echt een stomme vraag van me, natuurlijk moet het anders".
Maar ik heb heel veel aan de input die in de afgelopen uren kwam in dit topic. Bedankt!
Sinds de 2 dagen regel reageer ik hier niet meer
Nouja, toch wel. Maar in mijn geval heb ik een 220v 3x2,5mm2 in het plafond beschikbaar en geen stopcontact waar dus een USB oplader in kan.CurlyMo schreef op donderdag 31 maart 2022 @ 08:51:
[...]
Je zet meestal niet je eerste stap met dodelijke hoogspanning.
Alles uit elkaar halen en de disassembled oplader ook in het lasdoosje stoppen is een optie.
Ik wilde graag wel met de DS18B20 meten, aangezien je die daadwerkelijk met de sensor op de waterleiding kunt bevestigen. Zo'n ZigBee of wifi temperatuur metertje met batterij is een alternatief, maar toch de mindere oplossing denk ik, zeker qua accuraatheid.
Sonoff is wellicht een alternatief, ik wil puur en alleen maar die waterleiding temperatuur meten, verder niet eens fysiek ermee schakelen o.i.d., simpelweg omdat de spullen die interessant zijn niet bedraad bereikbaar zijn vanaf die plek. En er moet wat meer logica plaatsvinden. Prima om enkel de waardes naar HA te sturen en daar alles aan elkaar te knopen.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Die tip heeft @JorisV je al gegeven.Tanuki schreef op donderdag 31 maart 2022 @ 09:17:
[...]
Nouja, toch wel. Maar in mijn geval heb ik een 220v 3x2,5mm2 in het plafond beschikbaar en geen stopcontact waar dus een USB oplader in kan.Dus ik zoek een manier om zonder de USB oplader te moeten aansluiten op een stopcontact de stroomvoorziening te kunnen maken.
Als je niet 100% weet wat je doet kan dat levensgevaarlijk zijn (en niet alleen voor jou).Alles uit elkaar halen en de disassembled oplader ook in het lasdoosje stoppen is een optie.
Dan gebruik je hem niet als schakelaar, maar alleen voor temperatuur. Dat is aan jou. De Shelly 1 is er trouwens ook met een temperatuur module voor een DS18B20. Heb je nog een beetje keuze.Sonoff is wellicht een alternatief, ik wil puur en alleen maar die waterleiding temperatuur meten, verder niet eens fysiek ermee schakelen o.i.d., simpelweg omdat de spullen die interessant zijn niet bedraad bereikbaar zijn vanaf die plek. En er moet wat meer logica plaatsvinden. Prima om enkel de waardes naar HA te sturen en daar alles aan elkaar te knopen.
Sinds de 2 dagen regel reageer ik hier niet meer
Pak de female kant van een verlengsnoer en knip dat eraf. Vervolgens met Wago lasklemmen voor soepel/massieve draad de boel aansluiten op je 2,5mm2 en dan kun je gewoon je USB-voeding inpluggen.Tanuki schreef op donderdag 31 maart 2022 @ 09:17:
[...]
Maar in mijn geval heb ik een 220v 3x2,5mm2 in het plafond beschikbaar en geen stopcontact waar dus een USB oplader in kan.Dus ik zoek een manier om zonder de USB oplader te moeten aansluiten op een stopcontact de stroomvoorziening te kunnen maken.
[...]
Veilig en geen 230V op blootliggende delen
[ Voor 10% gewijzigd door ThinkPad op 31-03-2022 09:43 ]
Ik zie dat grofweg 18-28 awg compatible moet zijn. Ik neem aan dat 28 vrij onwenselijk is, maar wil ook niet per se 18 bestellen om er dan achter te komen dat het allemaal niet past.
Zou ik met 22 of 24 bijvoorbeeld prima uit de voeten kunnen?
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Voor wat je aan een ESP hangt is een kort stukje 28 AWG vaak voldoende. Als de ESP het zelf niet kan voeden dan is 28 AWG ook geen optie.
- knip -
Ik gebruik meestal de aders van een oude (goede kwaliteit) netwerkkabel. Heb je gelijk kleurtjes.Tanuki schreef op donderdag 7 april 2022 @ 08:41:
Welke dikte draad gebruiken jullie als jullie Dupont connectors crimpen?
Of https://domotic-hobby.com...mostat-for-small-radiator maar dan moet je toch iets solderen...JorisV schreef op donderdag 31 maart 2022 @ 08:19:
@Tanuki https://sonoff.tech/product/diy-smart-switch/th10-th16/
Daarbij een temperatuur sensor en alles kant en klaar op 230v.
SE2200+14xSF170S & SE1500M+4xTSM-375
ik gebruik zoiets voor mijn "waterdichte" tempmetingTanuki schreef op donderdag 31 maart 2022 @ 07:48:
[...]
Mee eens.Maar het gaat in dit geval om een ESP die in een waterdichte lasdoos moet komen. Die lasdoos wordt gevoed met 220v, er is niet echt ruimte om een USB adapter o.i.d. aan te sluiten. En ergens een USB adapter aansluiten en dan vervolgens de USB kabel invoeren maakt het geloof ik niet helemaal beter?
Hoe wordt zoiets normaal aangepakt? Kan me niet voorstellen dat ik de enige ben.
220 --> adapter ---> usb ---> lasdoos --> zoiets --> 3,3v OF 5v (kies goeie en je hebt beide) --> ESP
klikbare link

je kan ook een 5v --> 3,3v stepdown converter nemen, de reden dat ik deze oplossing kies is dat mijn esp het wel overleeft met een goeie accu voor enige tijd .. en dab kan je die usb voeding dus ook voor iets anders benutten.. (zwembad stofzuiger even op te laden indien nodig)
zelfs de meest waardeloze 18650 (die wel werkt) trekt het paar uurtjes ..
Welk draad zou jij dan adviseren / pakken ? kan bedenken dat korte lengte een dun draadje niet al te erg is wellicht ook niet optimaal denk ik .. maar ligt ook aan de toepassing toch ?Raymond P schreef op woensdag 9 maart 2022 @ 14:18:
@Gizz Je eigen fatsoenlijke kabels krimpen kan natuurlijk voordelen hebben. De 30 AWG uit de video vind ik dan wel écht te dun, daar kan je op het randje een ESP mee voeden.
Zodra het bij mij 'ready to use' is en een PCBtje te veel moeite (of gewoon onzinnig) is soldeer ik alles permanent vast.
Tja vanalles
Inderdaad, het ligt aan de toepassing. Vandaar ook de sleutelwoorden, als je snapt waarom een draadje een bepaalde dikte moet hebben kan je zelf de keuze maken.vso schreef op donderdag 7 april 2022 @ 12:42:
[...]
Welk draad zou jij dan adviseren / pakken ? kan bedenken dat korte lengte een dun draadje niet al te erg is wellicht ook niet optimaal denk ik .. maar ligt ook aan de toepassing toch ?
Op een kort stukje is de voltage drop te verwaarlozen. Een ESPtje registreert ook al hoog bij iets meer dan 1 volt.
Een current draw op GPIO zou ook niet hoger dan 12mA mogen zijn. Een dev boardje levert vaak ook niet meer dan +/- 200mA extra vanuit de voltage regulator.
In dat soort situaties is 28 AWG dus gewoon te doen. Maar om zelf te strippen/krimpen/solderen vind ik dat een vervelende dikte, helemaal als het een stranded cable is. 24 AWG werkt een heel stukje fijner (en zelf recycle ik netwerkkabel 24 AWG, solid)
- knip -
Ik kan uit zeer recente ervaring vertellen dat 0.8v ook al hoog genoeg is.Raymond P schreef op donderdag 7 april 2022 @ 13:20:
[...]
Een ESPtje registreert ook al hoog bij iets meer dan 1 volt.
Dit was het antwoord dat ik zocht. Thanks!Raymond P schreef op donderdag 7 april 2022 @ 13:20:
[...]
Inderdaad, het ligt aan de toepassing. Vandaar ook de sleutelwoorden, als je snapt waarom een draadje een bepaalde dikte moet hebben kan je zelf de keuze maken.
Op een kort stukje is de voltage drop te verwaarlozen. Een ESPtje registreert ook al hoog bij iets meer dan 1 volt.
Een current draw op GPIO zou ook niet hoger dan 12mA mogen zijn. Een dev boardje levert vaak ook niet meer dan +/- 200mA extra vanuit de voltage regulator.
In dat soort situaties is 28 AWG dus gewoon te doen. Maar om zelf te strippen/krimpen/solderen vind ik dat een vervelende dikte, helemaal als het een stranded cable is. 24 AWG werkt een heel stukje fijner (en zelf recycle ik netwerkkabel 24 AWG, solid)
Interessante wel, netwerkkabels hergebruiken op die manier. Ik heb hier nog ergens Belden cat5e liggen. Dat wil niemand meer gebruiken, dus kan ik evt. ook gebruiken. Even kijken welke awg dat heeft.
En ik ben overigens bekend met voltage drop etc, maar niet met hoeveel speling zo'n zwart Dupont connector dingetje heeft voor bepaalde draad diktes. Mijn connectoren zijn nog onderweg helaas.
Awg24 is die Belden cat5e, top.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Dupont kan met 28-24 AWG (0.08-0.25mm2) maar heb ook wel dikker gekrimpt (0.5 en 0.75mm2), de kabel met isolatie in het plastic krijgen heb ik meer moeite mee gehad...Tanuki schreef op donderdag 7 april 2022 @ 20:16:
[...]
En ik ben overigens bekend met voltage drop etc, maar niet met hoeveel speling zo'n zwart Dupont connector dingetje heeft voor bepaalde draad diktes. Mijn connectoren zijn nog onderweg helaas.
Awg24 is die Belden cat5e, top.
Volgens tutorials die ik kan vinden zou dat voldoende moeten zijn om te kunnen flashen. Ik krijg hem heel soms zover dat hij gaat uploaden ("Uploading 11%... Uploading 18%...." etc krijg ik dan te zien).
Ik probeer o.a. deze stappen te volgen: https://www.instructables...NodeMCU-ESP12E-DEVKIT-V2/
Maar ik krijg eigenlijk in alle gevallen foutmeldingen zoals deze:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| esptool.py v3.0 Serial port /dev/cu.usbserial-14220 Connecting........_ Chip is ESP8266EX Features: WiFi Crystal is 26MHz MAC: b4:e6:2d:04:ce:bd Uploading stub... Traceback (most recent call last): File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/upload.py", line 66, in <module> esptool.main(cmdline) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 3575, in main esp = esp.run_stub() File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 722, in run_stub self.mem_block(stub[field][from_offs:to_offs], seq) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 609, in mem_block return self.check_command("write to target RAM", self.ESP_MEM_DATA, File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 413, in check_command val, data = self.command(op, data, chk, timeout=timeout) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 386, in command p = self.read() File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 331, in read return next(self._slip_reader) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 2648, in slip_reader raise FatalError('Invalid head of packet (0x%s)' % hexify(b)) esptool.FatalError: Invalid head of packet (0x00) esptool.FatalError: Invalid head of packet (0x00) |
Dat zegt mij dat de tooling wel netjes de informatie van het bordje kan ophalen (het zegt immers dat het een ESP8266EX kan vinden met WiFi features etc). Maar dat er iets fout gaat in de communicatie en/of stroomvoorziening o.i.d.?
Ik zie op andere plekken dat men speciale USB naar serial adaptertjes gebruikt. Dat zou een alternatief zijn, maar "het zou moeten werken op deze manier".
Iemand hier ervaringen mee?
Een paar andere die ik heb gehad:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| Executable segment sizes: ICACHE : 32768 - flash instruction cache IROM : 231724 - code in flash (default or ICACHE_FLASH_ATTR) IRAM : 26793 / 32768 - code in IRAM (IRAM_ATTR, ISRs...) DATA : 1496 ) - initialized variables (global, static) in RAM/HEAP RODATA : 876 ) / 81920 - constants (global, static) in RAM/HEAP BSS : 25608 ) - zeroed variables (global, static) in RAM/HEAP Sketch uses 260889 bytes (24%) of program storage space. Maximum is 1044464 bytes. Global variables use 27980 bytes (34%) of dynamic memory, leaving 53940 bytes for local variables. Maximum is 81920 bytes. esptool.py v3.0 Serial port /dev/cu.usbserial-14110 Connecting.... Chip is ESP8266EX Features: WiFi Crystal is 26MHz MAC: b4:e6:2d:04:ce:bd Uploading stub... Running stub... Stub running... Configuring flash size... Auto-detected Flash size: 4MB Compressed 265040 bytes to 195064... Writing at 0x00000000... (8 %) Writing at 0x00004000... (16 %) Writing at 0x00008000... (25 %) Writing at 0x0000c000... (33 %) Writing at 0x00010000... (41 %) Writing at 0x00014000... (50 %) Writing at 0x00018000... (58 %) Writing at 0x0001c000... (66 %) Writing at 0x00020000... (75 %) Writing at 0x00024000... (83 %) Writing at 0x00028000... (91 %) Traceback (most recent call last): File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/upload.py", line 66, in <module> esptool.main(cmdline) File "/Users/me operation_func(esp, args) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 2987, in write_flash esp.flash_defl_block(block, seq, timeout=DEFAULT_TIMEOUT * ratio * 2) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 113, in inner return func(*args, **kwargs) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 761, in flash_defl_block self.check_command("write compressed data to flash after seq %d" % seq, File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 413, in check_command val, data = self.command(op, data, chk, timeout=timeout) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 386, in command p = self.read() File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 331, in read return next(self._slip_reader) File "/Users/me/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 2648, in slip_reader raise FatalError('Invalid head of packet (0x%s)' % hexify(b)) esptool.FatalError: Invalid head of packet (0x00) esptool.FatalError: Invalid head of packet (0x00) |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| Executable segment sizes: ICACHE : 32768 - flash instruction cache IROM : 231724 - code in flash (default or ICACHE_FLASH_ATTR) IRAM : 26793 / 32768 - code in IRAM (IRAM_ATTR, ISRs...) DATA : 1496 ) - initialized variables (global, static) in RAM/HEAP RODATA : 876 ) / 81920 - constants (global, static) in RAM/HEAP BSS : 25608 ) - zeroed variables (global, static) in RAM/HEAP De schets gebruikt 260889 bytes (24%) programma-opslagruimte. Maximum is 1044464 bytes. Globale variabelen gebruiken 27980 bytes (34%) van het dynamisch geheugen. Resteren 53940 bytes voor lokale variabelen. Maximum is 81920 bytes. esptool.py v3.0 Serial port COM3 Connecting........__ Traceback (most recent call last): File "C:\Users\Kuijpers\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/upload.py", line 66, in <module> esptool.main(cmdline) File "C:/Users/Kuijpers/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 3552, in main esp.connect(args.before, args.connect_attempts) File "C:/Users/Kuijpers/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 522, in connect last_error = self._connect_attempt(mode=mode, esp32r0_delay=True) File "C:/Users/Kuijpers/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 499, in _connect_attempt self.sync() File "C:/Users/Kuijpers/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 438, in sync timeout=SYNC_TIMEOUT) File "C:/Users/Kuijpers/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 396, in command if byte(data, 0) != 0 and byte(data, 1) == self.ROM_INVALID_RECV_MSG: File "C:/Users/Kuijpers/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 138, in byte return bitstr[index] IndexError: index out of range IndexError: index out of range |
Ik ben ook wel eens tot het moment gekomen waarop hij de md5 gaat bepalen en gaat vergelijken, maar dan geeft hij een md5 mismatch.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Heeft dat blokje meerdere poorten? Zo ja, hang er eens iets bij wat iets meer verbruikt. Wellicht helpt dat.
- knip -
Ik zou graag een unsigned character array willen vullen met data uit een bestand dat ik met SPIFFS inlees.
Op het moment staat de data op deze manier "hard coded" in mijn programma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| unsigned char PROGMEM soundData[ ] = { 0x52, 0x49, 0x46, 0x46, 0x42, 0x08, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x10, 0x27, 0x00, 0x00, 0x20, 0x4E, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x64, 0x61, 0x74, 0x61, 0x1E, 0x08, 0x00, 0x00, 0x82, 0x83, 0x76, 0x77, 0x71, 0x70, 0x75, 0x76, 0x78, 0x79, 0x7D, 0x7D, 0x7E, 0x7E, 0x77, 0x78, 0x7D, 0x7B, 0x86, 0x86, 0x8A, 0x8A, 0x8C, 0x8B, 0x83, 0x83, 0x72, 0x73, 0x67, 0x67, 0x56, 0x56, 0x49, 0x4A, 0x4E, 0x50, 0x59, 0x59, 0x66, 0x67, 0x6D, 0x6E, 0x79, 0x77, 0x8C, 0x8B, 0xA8, 0xAA, 0xAE, 0xAC, 0xA3, 0xA0, 0x9C, 0x9F, 0xA1, 0x9F, 0xA5, 0xA0, 0xA4, 0xA6, 0x9B, 0x9B, 0x97, 0x92, 0x91, 0x94, 0x85, 0x85, 0x90, 0x8A, 0x86, 0x89, 0x7F, 0x81, 0x80, 0x7B, 0x7A, 0x7C, 0x7B, 0x80, 0x7D, 0x77, 0x65, 0x66, 0x59, 0x61, 0x58, 0x53, 0x3F, 0x3D, 0x38, 0x44, 0x49, 0x45, 0x5E, 0x55, 0x60, 0x6D, 0x73, 0x73, 0x85, 0x78, 0x91, 0x9C, 0xA8, 0xAD, 0xAA, 0x99, 0x9A, 0xA1, 0xA7, 0xB0, 0xBB, 0xA9, 0xB0, 0xB1, 0xAB, 0xB7, 0xA3, 0x95, 0x99, 0x95, 0x87, 0x96, 0x90, 0x87, 0x92, 0x8B, 0x7E, 0x8C, 0x82, 0x7E, 0x7C, 0x72, 0x71, 0x7D, 0x79, 0x7A, 0x73, 0x67, 0x53, 0x5D, 0x55, 0x5B, 0x4E, 0x43, 0x3C, 0x41, 0x41, 0x4C, 0x56, 0x4E, 0x5F, 0x5E, 0x5E, 0x68, 0x72, 0x6D, 0x83, 0x7D, 0x98, 0xA3, 0xA9, 0xA7, 0xA8, 0x9E, 0x9F, 0xA6, 0xAA, 0xAA, 0xAE, 0xA4, 0xA4, 0xA9, 0x9F, 0xA3, 0xA1, 0x98, 0x9E, 0xA0, 0x92, 0x98, 0x9E, 0x95} |
Ik gebruik deze data vervolgens zo:
1
| Sound3 = new XT_Wav_Class(soundData); |
In de huidige situatie is de data dus al "bekend" tijdens het compileren.
Maar graag zou ik de data in runtime kunnen aanpassen. Dus ik dacht dat moet vast gaan middels een (binair) bestand op SPIFFS, dat ik dan "omzet" naar de unsigned character array.
Ik heb deze code gemaakt:
1
2
3
4
5
6
7
8
9
| File dataFile = SPIFFS.open("/data.bin", "r"); size_t filesize = dataFile .size(); //the size of the file in bytes unsigned char sData[filesize]; // + 1 for '\0' char at the end dataFile .read((uint8_t *)string, sizeof(sData)); dataFile .close(); Sound3 = new XT_Wav_Class(sData); |
Maar helaas restart de ESP32 daarmee de hele tijd...
Wat doe ik verkeerd?
Sinds de 2 dagen regel reageer ik hier niet meer
Ik had daarvoor als oplossing het volgende bedacht:
Die "originele" unsigned char PROGMEM soundData[ ] laat ik gewoon in mijn programma staan zodat tijdens het compileren dit stuk geheugen in feite "gereserveerd" wordt. En als ik er dan vervolgens (in runtime) nieuwe data wil inzetten (dus via een file in SPIFFS), dan schrijf ik die over (de originele) "soundData" heen. Op die manier zou er theoretisch toch geen geheugen probleem mogen ontstaan, of denk ik te simpel?
Ja, je kan alleen tijdens het compileren naar PROGMEM schrijven. Er zijn twee dingen die je zou kunnen uitzoeken:Atmoz schreef op woensdag 13 april 2022 @ 12:28:
of denk ik te simpel?
1. Kijk of je via een stream of via chunks de data kan inladen.
2. Kijk of je via de 2nd heap iets zou kunnen regelen.
Overigens zeg je hier wel dat je een +1 moet doen, maar dat doe je niet.Atmoz schreef op woensdag 13 april 2022 @ 11:52:
code:
1 unsigned char sData[filesize]; // + 1 for '\0' char at the end
Hoe groot zijn die bestanden die je wil inlezen?
[ Voor 30% gewijzigd door CurlyMo op 13-04-2022 12:38 ]
Sinds de 2 dagen regel reageer ik hier niet meer
Wat is de gedachte hierachter dat dit zo "moeilijk" moet? Of is het gewoonweg niet mogelijk om door die hele file op SPIFFS heen te fietsen en vervolgens iedere byte in dat character array te zetten?CurlyMo schreef op woensdag 13 april 2022 @ 12:31:
[...]
Ja, je kan alleen tijdens het compileren naar PROGMEM schrijven. Er zijn twee dingen die je zou kunnen uitzoeken:
1. Kijk of je via een stream of via chunks de data kan inladen.
Oei, dit gaat me de pet te boven2. Kijk of je via de 2nd heap iets zou kunnen regelen.

Nee klopt, dat had ik weer verwijderd omdat ik dacht dat dat voor een ander stukje test-code toch niet hoefde.Overigens zeg je hier wel dat je een +1 moet doen, maar dat doe je niet.
Ik heb dat trouwens niet erbij geschreven, maar diegene waarvan ik dit stukje geklauwd heb
Het verschilt, maar max. ongeveer 200KB. (sommige "maar" 50KB ofzo)Hoe groot zijn die bestanden die je wil inlezen?
Dat zou kunnen. Ik zou gewoon even checken hoeveel geheugen je vrij hebt na de verschillende stappen. Dus na het ophalen van het bestand, na het vullen van de WAV class enz.Atmoz schreef op woensdag 13 april 2022 @ 12:47:
[...]
Wat is de gedachte hierachter dat dit zo "moeilijk" moet? Of is het gewoonweg niet mogelijk om door die hele file op SPIFFS heen te fietsen en vervolgens iedere byte in dat character array te zetten?
Kan je dan wel exact laten zien wat je nu hebt?Nee klopt, dat had ik weer verwijderd omdat ik dacht dat dat voor een ander stukje test-code toch niet hoefde.
Hoe stuur je de nieuwe bestanden naar SPIFFS? Wat overigens deprecated is en vervangen door LittleFS. Via een webserver formulier?Het verschilt, maar max. ongeveer 200KB. (sommige "maar" 50KB ofzo)
Sinds de 2 dagen regel reageer ik hier niet meer
Ah sjiek, ik wist niet dat dat kon. Zometeen even uitzoeken hoe dat werktCurlyMo schreef op woensdag 13 april 2022 @ 12:51:
Dat zou kunnen. Ik zou gewoon even checken hoeveel geheugen je vrij hebt na de verschillende stappen. Dus na het ophalen van het bestand, na het vullen van de WAV class enz.
Dat is eigenlijk precies zoals ik eerder postte:Kan je dan wel exact laten zien wat je nu hebt?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| File configFile = SPIFFS.open("/data3.bin", "r"); size_t filesize = configFile.size(); //the size of the file in bytes unsigned char string[filesize]; // + 1 for '\0' char at the end configFile.read((uint8_t *)string, sizeof(string)); configFile.close(); //string[filesize] = '\0'; //Serial.print(string); SendUDP(String(string[1])); //om te testen wat hieruit komt Tele3 = new XT_Wav_Class(string); |
Alleen had ik daar de code wat opgeruimd en logischere namen ervan gemaakt.
Ik heb het geprobeerd met en zonder die '\0' (evenals tal van andere oplossingen sinds vanmorgen 5u
Hoe stuur je de nieuwe bestanden naar SPIFFS?
Klopt jaVia een webserver formulier?
Thanks! Wist ik ook niet. Ga ik me ook in verdiepenWat overigens deprecated is en vervangen door LittleFS.
Kan je dat deel ook plaatsen? En na welke regel loopt hij nu exact vast. Heb je dat al debugged?
[ Voor 17% gewijzigd door CurlyMo op 13-04-2022 13:03 ]
Sinds de 2 dagen regel reageer ik hier niet meer
CurlyMo schreef op woensdag 13 april 2022 @ 13:00:
[...]
Kan je dat deel ook plaatsen? En na welke regel loopt hij nu exact vast. Heb je dat al debugged?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| // handles uploads to the filserver void handleUpload(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final) { // make sure authenticated before allowing upload if (checkUserWebAuth(request)) { String logmessage = "Client:" + request->client()->remoteIP().toString() + " " + request->url(); //Serial.println(logmessage); if (!index) { logmessage = "Upload Start: " + String(filename); // open the file on first call and store the file handle in the request object request->_tempFile = SPIFFS.open("/" + filename, "w"); //Serial.println(logmessage); } if (len) { // stream the incoming chunk to the opened file request->_tempFile.write(data, len); logmessage = "Writing file: " + String(filename) + " index=" + String(index) + " len=" + String(len); //Serial.println(logmessage); } if (final) { logmessage = "Upload Complete: " + String(filename) + ",size: " + String(index + len); // close the file handle as the upload is now done request->_tempFile.close(); //Serial.println(logmessage); request->redirect("/"); } } else { //Serial.println("Auth: Failed"); return request->requestAuthentication(); } } |
[edit]
Oh, excuses, ik zag je edit niet direct...
Dat weet ik helaas niet. Ik weet ook niet hoe ik kan debuggen... (wist niet eens dat dat überhaupt kon!)En na welke regel loopt hij nu exact vast. Heb je dat al debugged?
Ook weer fijn om te weten. Of moet je daar speciale hardware/software voor hebben? Ik gebruik gewoon een ESP32 (die ik met OTA update) en ik heb de standaard Arduino IDE...
[ Voor 12% gewijzigd door Atmoz op 13-04-2022 13:09 ]
En je form html blokje?
Simpelste is gewoon een:Dat weet ik helaas niet. Ik weet ook niet hoe ik kan debuggen...
1
| Serial.printf("%s#%d\n", __FILE__, __LINE__); |
Overal neerzetten en dan in je console kijken wat de laatste output is die je ziet.
Sinds de 2 dagen regel reageer ik hier niet meer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| function showUploadButtonFancy() { document.getElementById("detailsheader").innerHTML = "<h3>Upload File<h3>" document.getElementById("status").innerHTML = ""; var uploadform = "<form method = \"POST\" action = \"/\" enctype=\"multipart/form-data\"><input type=\"file\" name=\"data\"/><input type=\"submit\" name=\"upload\" value=\"Upload\" title = \"Upload File\"></form>" document.getElementById("details").innerHTML = uploadform; var uploadform = "<form id=\"upload_form\" enctype=\"multipart/form-data\" method=\"post\">" + "<input type=\"file\" name=\"file1\" id=\"file1\" onchange=\"uploadFile()\"><br>" + "<progress id=\"progressBar\" value=\"0\" max=\"100\" style=\"width:300px;\"></progress>" + "<h3 id=\"status\"></h3>" + "<p id=\"loaded_n_total\"></p>" + "</form>"; document.getElementById("details").innerHTML = uploadform; } function _(el) { return document.getElementById(el); } function uploadFile() { var file = _("file1").files[0]; // alert(file.name+" | "+file.size+" | "+file.type); var formdata = new FormData(); formdata.append("file1", file); var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", progressHandler, false); ajax.addEventListener("load", completeHandler, false); // doesnt appear to ever get called even upon success ajax.addEventListener("error", errorHandler, false); ajax.addEventListener("abort", abortHandler, false); ajax.open("POST", "/"); ajax.send(formdata); } |
Maar hierbij moet ik ook bekennen dat dit volledig gepikt is van een standaard stukje code ergens...
Ik moest ook even flink zoeken/uitvogelen hoe het precies "aan elkaar geknoopt is" allemaal
Maar, ik ben natuurlijk SUPER blij dat 't werkt
Ah, nice. Ook dát is nieuw voor me. (__FILE__, __LINE__)Simpelste is gewoon een:
code:
1 Serial.printf("%s#%d\n", __FILE__, __LINE__);
Overal neerzetten en dan in je console kijken wat de laatste output is die je ziet.
[edit]
Debuggen doe ik altijd via Wifi (UDP), daarvoor heb ik m'n eigen (best wel uitgebreide) debug-tool (voor de PC) geschreven
(Serial werkt hier niet omdat ik alleen met Wifi verbonden ben)
Kan je checken of je daadwerkelijk multipart/form-data data verzend? Bijv. met Wireshark.
Dan verbind je even via USB. Je zult toch moeten debuggen.(Serial werkt hier niet omdat ik alleen met Wifi verbonden ben)
Sinds de 2 dagen regel reageer ik hier niet meer
- knip -
Is het ook mogelijk om op de een of andere manier te "testen" of de data uit de "platte tekstfile" (want dat is het in feite) goed aankomt in de code?CurlyMo schreef op woensdag 13 april 2022 @ 21:15:
Kan je checken of je daadwerkelijk multipart/form-data data verzend? Bijv. met Wireshark.
Ik had zelf gezien dat de boel van HEX naar ASCII werd omgezet:
Dit:
1
2
| nsigned char PROGMEM soundData[] = { 0x52, 0x49, 0x46, 0x46, 0x42, 0x08, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45 ... } |
Komt via dit:
1
2
3
4
5
6
7
| String s = ""; for (int i=0; i<100; i++) { s += soundData[i]; } request->send(200, "text/plain", s); |
Er zo (in m'n browser even ter debug) uit:
1
| 827370701248100876586691021091163216000102016390032780020801009711697248000127128128128128127128128127127128128128127128128127128128128127128128127128127128127128128128127128128128127128128127127128128127127128128127127128128127127128128127127 |
Het wordt dus omgezet van HEX naar ASCII:

Dus ik denk dat als het straks "de andere kant op werkt" (zoals ik de hele tijd dus wil), dat er dan nog een "conversie" moet plaatsvinden zodat de "character array" weer netjes met bytes gevuld is.
Het ESP bordje heeft de headers aan de onderkant en daar zou ik dan de jumper cables op aan moeten sluiten. Als ik het bordje op een stukje breadboard zou klikken, zou ik jumper cables in het breadboard kunnen klikken. En ook het 4,7k weerstandje daar op een fatsoenlijke manier kunnen bevestigen. Is dat the way to go? Of is er een makkelijkere manier?
Een alternatieve manier zou zijn om de kabeltjes rechtstreeks te solderen, maar ik geloof dat dan heel het nut van die headers weg is. En dat ik dus net zo goed een bordje zonder die headers kan gebruiken. Lijkt me ook wat minder handig.
Ik probeerde wat youtube video's te vinden, maar je ziet mensen eigenlijk vooral actief met test / development setups, niet met projectjes die ze dan "production ready" maken. Of ik zoek verkeerd?
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Sinds de 2 dagen regel reageer ik hier niet meer
Je bedoeld daarmee dat het begin van de file dus zo moet uitzien?CurlyMo schreef op donderdag 14 april 2022 @ 08:02:
@Atmoz Sowieso moet je je bestand niet als platte tekst sturen maar met de binary inhoud van je soundData variabele.
1
| 524946 |
[edit]
Steeds die "0x" vooraf hoeft niet, toch? (en ook die komma's + spaties niet)
Dat is gewoon om aan te geven dat het bytes zijn, right?
Of zou dat de boel wel makkelijker maken?
Ik kan dat natuurlijk altijd erin zetten als dat "moet" c.q. fijner is
[ Voor 28% gewijzigd door Atmoz op 14-04-2022 08:06 ]
Zoek even op internet hoe je met C een hex gepresenteerde variabele omzet naar een binary bestand. Jij blijft namelijk telkens vanuit ASCII denken.
Sinds de 2 dagen regel reageer ik hier niet meer
Kan allemaal natuurlijk. Idealiter ga je wel solderen als iets van je bureau af gaat, maar in praktijk is een dupont connectie meestal ruim voldoende om het een tijdje uit te houden in thuisprutswerk.Tanuki schreef op donderdag 14 april 2022 @ 07:52:
Ik was eens wat aan het kijken voor een klein waterdicht (las)doosje om een esp8266 + een aangesloten temperatuur sensor kabel (ds18b20) in te doen.
Het ESP bordje heeft de headers aan de onderkant en daar zou ik dan de jumper cables op aan moeten sluiten. Als ik het bordje op een stukje breadboard zou klikken, zou ik jumper cables in het breadboard kunnen klikken. En ook het 4,7k weerstandje daar op een fatsoenlijke manier kunnen bevestigen. Is dat the way to go? Of is er een makkelijkere manier?
Een alternatieve manier zou zijn om de kabeltjes rechtstreeks te solderen, maar ik geloof dat dan heel het nut van die headers weg is. En dat ik dus net zo goed een bordje zonder die headers kan gebruiken. Lijkt me ook wat minder handig.
Ik probeerde wat youtube video's te vinden, maar je ziet mensen eigenlijk vooral actief met test / development setups, niet met projectjes die ze dan "production ready" maken. Of ik zoek verkeerd?
De nette manier is om (in dit geval) female headers op een prototype boardje te solderen en daar je aansluiting(en) en ondersteunende componenten op te verwerken.
- knip -
Ik heb zojuist hier dit:CurlyMo schreef op donderdag 14 april 2022 @ 08:10:
[...]
Zoek even op internet hoe je met C een hex gepresenteerde variabele omzet naar een binary bestand. Jij blijft namelijk telkens vanuit ASCII denken.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| 0x52, 0x49, 0x46, 0x46, 0x42, 0x08, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x10, 0x27, 0x00, 0x00, 0x20, 0x4E, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x64, 0x61, 0x74, 0x61, 0x1E, 0x08, 0x00, 0x00, 0x82, 0x83, 0x76, 0x77, 0x71, 0x70, 0x75, 0x76, 0x78, 0x79, 0x7D, 0x7D, 0x7E, 0x7E, 0x77, 0x78, 0x7D, 0x7B, 0x86, 0x86, 0x8A, 0x8A, 0x8C, 0x8B, 0x83, 0x83, 0x72, 0x73, 0x67, 0x67, 0x56, 0x56, 0x49, 0x4A, 0x4E, 0x50, 0x59, 0x59, 0x66, 0x67, 0x6D, 0x6E, 0x79, 0x77, 0x8C, 0x8B, 0xA8, 0xAA, 0xAE, 0xAC, 0xA3, 0xA0, 0x9C, 0x9F, 0xA1, 0x9F, 0xA5, 0xA0, 0xA4, 0xA6, 0x9B, 0x9B, 0x97, 0x92, 0x91, 0x94, 0x85, 0x85, 0x90, 0x8A, 0x86, 0x89, 0x7F, 0x81, 0x80, 0x7B, 0x7A, 0x7C, 0x7B, 0x80, 0x7D, 0x77, 0x65, 0x66, 0x59, 0x61, 0x58, 0x53, 0x3F, 0x3D, 0x38, 0x44, 0x49, 0x45, 0x5E, 0x55, 0x60, 0x6D, 0x73, 0x73, 0x85, 0x78, 0x91, 0x9C, 0xA8, 0xAD, 0xAA, 0x99, 0x9A, 0xA1, 0xA7, 0xB0, 0xBB, 0xA9, 0xB0, 0xB1, 0xAB, 0xB7, 0xA3, 0x95, 0x99, 0x95, 0x87, 0x96, 0x90, 0x87, 0x92, 0x8B, 0x7E, 0x8C, 0x82, 0x7E, 0x7C, 0x72, 0x71, 0x7D, 0x79, 0x7A, 0x73, 0x67, 0x53, 0x5D, 0x55, 0x5B, 0x4E, 0x43, 0x3C, 0x41, 0x41, 0x4C, 0x56, 0x4E, 0x5F, 0x5E, 0x5E, 0x68, 0x72, 0x6D, 0x83, 0x7D, 0x98, 0xA3, 0xA9, 0xA7, 0xA8, 0x9E, 0x9F, 0xA6, 0xAA, 0xAA, 0xAE, 0xA4, 0xA4, 0xA9, 0x9F, 0xA3, 0xA1, 0x98, 0x9E, 0xA0, 0x92, 0x98, 0x9E, 0x95 |
omgezet naar dit:
1
| RIFFB WAVEfmt ' N data ‚ƒvwqpuvxy}}~~wx}{††ŠŠŒ‹ƒƒrsggVVIJNPYYfgmnywŒ‹¨ª®¬£ œŸ¡Ÿ¥ ¤¦››—’‘”……І‰€{z|{€}wefYaXS?=8DIE^U`mss…x‘œ¨ª™š¡§°»©°±«·£•™•‡–‡’‹~Œ‚~|rq}yzsgS]U[NC<AALVN_^^hrmƒ}˜£©§¨žŸ¦ªª®¤¤©Ÿ£¡˜ž ’˜ž• |
(iets wat me overigens zéér bekend voorkomt, want dit gewoon rechtstreeks de data die in mijn "originele" WAV-file zit voordat ik deze met HxD omzet naar de character array die de sound-code nodig heeft)
Dit gezegde is dit volgens mij niet de juiste manier om dit aan te pakken, of wel?
Ik ben toch juist opzoek naar een "output" die ik rechtstreeks aan de sound-code kan voeren?
Dat moet mijns inziens dan "gewoon" een character array zijn, net zoals ik nu ook hardcoded in PROGMEM heb staan toch?
En wat denk je dat die hard-coded binary string representeert?Atmoz schreef op donderdag 14 april 2022 @ 09:13:
[...]
Ik ben toch juist opzoek naar een "output" die ik rechtstreeks aan de sound-code kan voeren?
Dat moet mijns inziens dan "gewoon" een character array zijn, net zoals ik nu ook hardcoded in PROGMEM heb staan toch?
Sinds de 2 dagen regel reageer ik hier niet meer
Op het moederbord van mijn pc zitten een groot aantal dupont (en soortgelijke) verbindingen die het lachend 10+ jaar volhoudenRaymond P schreef op donderdag 14 april 2022 @ 08:27:
[...]
Kan allemaal natuurlijk. Idealiter ga je wel solderen als iets van je bureau af gaat, maar in praktijk is een dupont connectie meestal ruim voldoende om het een tijdje uit te houden in thuisprutswerk.
Female headers voor de esp en de rest solderen werkt top, bijkomend voordeel van een stukje prototype board is dat je ook ruimte over hebt voor montage gaten van het geheel aan de behuizingDe nette manier is om (in dit geval) female headers op een prototype boardje te solderen en daar je aansluiting(en) en ondersteunende componenten op te verwerken.
[ Voor 12% gewijzigd door Rrob op 14-04-2022 11:21 ]
Ik bedoel meer, mijn bordje ziet er nu zo uit:Raymond P schreef op donderdag 14 april 2022 @ 08:27:
[...]
Kan allemaal natuurlijk. Idealiter ga je wel solderen als iets van je bureau af gaat, maar in praktijk is een dupont connectie meestal ruim voldoende om het een tijdje uit te houden in thuisprutswerk.
De nette manier is om (in dit geval) female headers op een prototype boardje te solderen en daar je aansluiting(en) en ondersteunende componenten op te verwerken.
:strip_exif()/f/image/OBg96RgodKIWGpVO7GzdrjAw.jpg?f=fotoalbum_large)
Ik zou het bordje op de kop (met de CPU naar beneden wijzend in de box) kunnen monteren, zodat de female headers naar boven wijzen. Daar kan ik dan idd de Dupont connectors op doen. En het zo aansluiten.
Alternatief zou wat jou betreft zijn om die hele header strook niet te gebruiken en rechtstreeks te solderen?
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Een DS18B20 aan een lang kabeltje verbonden met Dupont heeft een grote kans van falen, tenzij je een hele fancy hebt met een clip/lock.
@Tanuki Dat is male. De female kant soldeer je op een prototype PCB om een socket te maken waar je je boardje in kan drukken (en zonodig weer uit kan halen).

Als je een beetje zoekt zal je bij een Nederlandse shop vast zo'n setje (of soortgelijk) vinden:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/8KyUnt1IKISeuo2n98cttf0Z.jpg?f=user_large)
----
fwiw, quick & dirty kent ook zijn plek.
Hier is nu een Nodemcu aan een "powerbank" bevestigd met tie-wraps om een ds18b20 en dht22 uit te lezen omdat m'n vriendin graag wilt weten hoe warm het is in haar vensterbank kweekbak.
Dat ding is over een aantal weken weg, dus recyclegehalte is hoog.
:strip_exif()/f/image/BcRlL9NME4uZqucCMPk4fahk.jpg?f=fotoalbum_large)
[ Voor 27% gewijzigd door Raymond P op 14-04-2022 12:20 ]
- knip -
Ja, je hebt natuurlijk helemaal gelijk. Dat is gewoon precies DIE dataCurlyMo schreef op donderdag 14 april 2022 @ 09:19:
[...]
En wat denk je dat die hard-coded binary string representeert?

Maargoed, hoe krijg ik die (binaire) file (die ik dan op SPIFFS heb) op de juiste manier in die character array zodat ik hem aan m'n sound-functie kan geven?
Hoe kan het trouwens dat dit zo lastig is? Is dat omdat het ook écht lastig is, of omdat er (eventueel) andere problemen spelen waardoor het straks "verderop" alsnog fout gaat? (bijvoorbeeld memory-fouten omdat het over grote bestanden/veel data gaat?)
Hier ben ik eigenlijk wel extreem benieuwd naar
Door hem in binary naar SPIFFS te schrijven en weer op te halen. Inladen in een unsigned char array. Ook je webformulier moet zorgen dat hij correct als binary data verzonden wordt.Atmoz schreef op donderdag 14 april 2022 @ 13:55:
[...]
Maargoed, hoe krijg ik die (binaire) file (die ik dan op SPIFFS heb) op de juiste manier in die character array zodat ik hem aan m'n sound-functie kan geven?
Alles staat en valt met kennis van de materie. Er spelen hier een aantal dingen tegelijk (mede door de microcontroller omgeving):Hoe kan het trouwens dat dit zo lastig is? Is dat omdat het ook écht lastig is, of omdat er (eventueel) andere problemen spelen waardoor het straks "verderop" alsnog fout gaat? (bijvoorbeeld memory-fouten omdat het over grote bestanden/veel data gaat?)
1. Geheugenproblemen voorkomen
2. Correcte omgang met binaire data
3. Correct gebruik van de modules
Op alle drie de punten ben ik je aan het toetsen, waarvan ik in ieder geval al zeker weet dat je onvoldoende begrip hebt hoe je met binary data werkt in C. Het kan dus zijn dat de WAV module daarop crashed.
[ Voor 3% gewijzigd door CurlyMo op 14-04-2022 14:50 ]
Sinds de 2 dagen regel reageer ik hier niet meer
Ja precies, ik snap denk ik wat je bedoeld: het hébben van de juiste file (op de PC) is één ding! Het goed op de ESP32 (SPIFSS) krijgen is weer een heel ander ding...CurlyMo schreef op donderdag 14 april 2022 @ 14:49:
Door hem in binary naar SPIFFS te schrijven en weer op te halen. Inladen in een unsigned char array. Ook je webformulier moet zorgen dat hij correct als binary data verzonden wordt.
Je hebt hier helemaal gelijk in. Maar wat ik eigenlijk bedoelde (ik had dit tijdens het typen van mijn vorige post erbij gezet, maar had het voor het daadwerkelijke posten alweer verwijderd, mijn excuses voor de verwarring) is dat ik nergens niet echt verder kom hiermee. Het "project" staat op Fiverr, Upwork, hier op V&A en op het officiële Arduino forum... Hier in het topic ben ik het verst gekomen (met jou vooral danAlles staat en valt met kennis van de materie. Er spelen hier een aantal dingen tegelijk (mede door de microcontroller omgeving):
1. Geheugenproblemen voorkomen
2. Correcte omgang met binaire data
3. Correct gebruik van de modules
Op alle drie de punten ben ik je aan het toetsen, waarvan ik in ieder geval al zeker weet dat je onvoldoende begrip hebt hoe je met binary data werkt in C. Het kan dus zijn dat de WAV module daarop crashed.
Maar het gekke is; ik WEET gewoon dat dit voor de echte kenners/vakmensen SUPER simpel is. Ik programmeer heel veel voor de PC (fijn: die hebben minder moeite met slordige code en herstarten ook wat minder vaak als je iets "fout" doet

Begin eens met vast te stellen waar het precies fout gaat.Atmoz schreef op donderdag 14 april 2022 @ 14:59:
[...]
Maar het gekke is; ik WEET gewoon dat dit voor de echte kenners/vakmensen SUPER simpel is. Ik programmeer heel veel voor de PC (fijn: die hebben minder moeite met slordige code en herstarten ook wat minder vaak als je iets "fout" doet![]()
), dus ik weet dat dit soort dingen gewoon easy moeten kunnen! En dat frustreert misschien nog wel het meeste
Sinds de 2 dagen regel reageer ik hier niet meer
Het is geluktCurlyMo schreef op donderdag 14 april 2022 @ 15:06:
Begin eens met vast te stellen waar het precies fout gaat.
Woohoow eindelijk!!
Geluidsdata inladen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| void LoadSoundWav(){ File readStorage = SPIFFS.open("/sound.wav", "rb"); if (readStorage) { byte buf; int i = 0; SendUDP("begin met file uitlezen"); while(readStorage.available()){ buf = readStorage.read(); //SendUDP(String(buf)); soundData[i] = buf; i++; } SendUDP("einde file uitlezen"); } Tele3 = new XT_Wav_Class(soundData); } |
Geluid afspelen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| void PlaySoundWav(){ boolean SoundSpeelt = true; SoundAangezetMillis = millis(); digitalWrite(PAMPOWER, HIGH); delay(50); while (SoundSpeelt){ long currentMillis = millis(); if (currentMillis - SoundAangezetMillis >= 3000) {SoundSpeelt = false;} //4000 voor tele1 DacAudio.FillBuffer(); rainbowCycle2(); Tele3->RepeatForever=false; if(Tele3->Playing==false){DacAudio.Play(Tele3, false);} } SendUDP("na spelen sound"); digitalWrite(PAMPOWER, LOW); wipe(); DacAudio.StopAllSounds(); } |
Het probleem is nu alleen dat ik dus over de "hardcoded" character array "soundData[]" (die tijdens het compileren in het PROGMEM gezet wordt) heen schrijf. Ik denk dat dat een stuk beter/netter c.q. minder foutgevoelig kan.
Als de nieuwe geluidsdata (sound.wav) die ik via SPIFSS kan inladen korter is dan de bestaande array in PROGMEM, dan wordt er tijdens het afspelen van het geluid ook nog "oude geluidsinformatie" afgespeeld. Dat zit dus nog niet lekker... En andersom is het volgens mij ook een probleem: als de nieuwe data groter is, dan past er op het einde v/d bestaande array niets meer bij.. (tenminste, zou werkt dat toch? of wordt die array dan vanzelf groter?)
Is op dit gebied nog een slimme oplossing te bedenken?
[edit]
Zou het een idee kunnen zijn om dat hele array in PROGMEM weg te laten, en dan tijdens runtime gewoon een array aanmaken met precies dezelfde grootte als de data die erin moet komen? (soms tot wel 200KB)
Of is dat vanwege te verwachten geheugen-problemen echt geen goed idee?
[ Voor 6% gewijzigd door Atmoz op 14-04-2022 20:36 ]
Daarvoor heb je drie opties:Atmoz schreef op donderdag 14 april 2022 @ 20:10:
[...]
Het probleem is nu alleen dat ik dus over de "hardcoded" character array "soundData[]" (die tijdens het compileren in het PROGMEM gezet wordt) heen schrijf. Ik denk dat dat een stuk beter/netter c.q. minder foutgevoelig kan.
- C++ String gebruiken
- C malloc & free
- Een vaste grootte aan statische buffer ergens anders dan in PROGMEM.
Realiseer je je wel dat (grote) geheugenallocaties op een ESP potentieel tot geheugen fragmentatie crashes kan leiden.
Dan \0 terminate je de nieuwe string niet of je geeft een verkeerde grootte aan.Als de nieuwe geluidsdata (sound.wav) die ik via SPIFSS kan inladen korter is dan de bestaande array in PROGMEM, dan wordt er tijdens het afspelen van het geluid ook nog "oude geluidsinformatie" afgespeeld.
Nee, dan krijg je buffer overflows wat vaak tot crashes leidt.Dat zit dus nog niet lekker... En andersom is het volgens mij ook een probleem: als de nieuwe data groter is, dan past er op het einde v/d bestaande array niets meer bij.. (tenminste, zou werkt dat toch? of wordt die array dan vanzelf groter?)
Dat is niet te zeggen. Als dat het enige doel is en je zeker weet dat je dat geheugen ten alle tijde vrij houdt, dan kan je dat gewoon doen en dan is dat misschien ook wel verstandig om geheugen fragmentatie crashed te voorkomen. Ik reserveer voor een bepaald project 16KB aan geheugen uit de 2nd heap juist om die reden.Zou het een idee kunnen zijn om dat hele array in PROGMEM weg te laten, en dan tijdens runtime gewoon een array aanmaken met precies dezelfde grootte als de data die erin moet komen? (soms tot wel 200KB)
Of is dat vanwege te verwachten geheugen-problemen echt geen goed idee?
Overigens mist hier nog de HTML upload functionaliteit
Sinds de 2 dagen regel reageer ik hier niet meer
Pins aan het boardje zelf gesoldeerd (voor het eerst gesoldeerd) en WLED met addressable RGB erop gezet. Alles werkt tot nu toe prima.
Enige waar ik mee zit is de bedrading.... En ik verwacht dat dat een terugkerend probleem is.
Hoe werk je mooi de bedrading weg naar de LEDS? Zeker als je niet standaard 1 ledstrip hebt, en daarop nog Power Injection doet wordt het al snel een rommeltje.
Ben bezig met een vakkenkast waar ledstrips komen om de inhoud op te lichten
:fill(white):strip_exif()/f/image/cdeXX5cmrxpshhgdhw1lTIJ8.png?f=user_large)
en heb nu het volgende bedradingsplan:
:fill(white):strip_exif()/f/image/G1MqliJZrP3AP0g32KfsNL94.png?f=user_large)
Rood is de stroomaanvoer (dus wit en rood), en groen/geel zijn de verschillende data-lines die de strips nodig hebben. Die zijn directional dus vandaar dat ze aan één kant van buitenaf gevoed worden. Op deze manier heb ik straks 4 groepen in WLED (vandaag de ESP32, de ESP8266 kan maar 3 groepen aan in WLED)
Hoe kun je de draden wat netjes bij elkaar langs de achterkant van de kast laten lopen, en vervolgens mij de LED's krijgen die vooraan de kast zitten? Hoe bepaal je wat voor connector je gebruikt?
Er zijn vele tutorials over het maken van een ledstrip met ESP boards, maar alles is in de versie "draadjes op het ontwikkelboard, Voila het eindresultaat". Hoe men de bedrading doet laten ze nooit zien
Je kan speciale connectors kopen maar als het nooit meer los hoeft zou ik het gewoon solderen.

(maar dan natuurlijk met 3/4 aders tussen de losse strips)