Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@HF5236 Gezien je kabels hebt gesoldeerd: meet rx/tx eens door op kortsluiting.

- knip -


Acties:
  • 0 Henk 'm!

  • HF5236
  • Registratie: Augustus 2020
  • Laatst online: 11-08 21:43
Raymond P schreef op donderdag 9 maart 2023 @ 12:51:
@HF5236 Gezien je kabels hebt gesoldeerd: meet rx/tx eens door op kortsluiting.
Dan moet ik even een multimeter ergens regelen of kan dit ook op een andere manier?

Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@HF5236 Je kunt creatief aan de slag met 3V en een ledje/buzzer, maar een multimeter met doorpiepstand is sowieso handig om te hebben.
Je kunt het ook visueel inspecteren, wat wel eens voorkomt bij gebruik van kabel (neem voor het gemak aan dat dat geen massieve kern was) een strand brugt tussen twee soldeeroogjes. Wel iets waar je ontzettend makkelijk overheen kijkt.

fwiw: op een esp32-s2 zou je aan praktisch elke pin uart kunnen koppelen en had het switchen in code gewoon gewerkt. Of dat ook zo is in esphome weet ik niet.

- knip -


Acties:
  • 0 Henk 'm!

  • HF5236
  • Registratie: Augustus 2020
  • Laatst online: 11-08 21:43
Heb even gekeken of het helpt als ik twee nieuwe kabels er in hang maar helaas geen effect.

Acties:
  • 0 Henk 'm!

  • Frij5fd
  • Registratie: September 2012
  • Laatst online: 11-08 23:18
renevdstap schreef op zondag 22 januari 2023 @ 17:56:
Ik lees dat meerdere mensen issues hebben met de stabiliteit van de ESP-32 CAM. Nu heb ik net voor het eerst ook twee van deze modules besteld en krijg ze ook niet stabiel aan de praat. Eerst probeerde ik ze te flashen vanuit ESPHOME maar daar lijkt in de laatste versie een bug te zitten. Vervolgens heb ik ze geflasht vanuit Arduino IDE volgens de AI thinker versie, hoewel het geen originele is. Ik krijg wel een webinterface online maar met moeite komt daar een foto uit. De stream wil al helemaal niet starten.

Ook bij mij vermoed ik dat het aan de stroomtoevoer ligt. Heb het geprobeerd via de bijgeleverde seriele controller, vanaf een ESP8266 en vanaf een Raspberry PI. Heb ook een USB kabel gestript maar die kwam helemaal niet online.

Hebben jullie nog advies voor een stabiele stroomtoevoer? Of ervaring met een bepaalde versie ESP-32 CAM module? Ik heb de volgende:
https://www.amazon.nl/dp/...o2ov_dt_b_product_details

UPDATE:
Ik heb inmiddels een derde ESP-32 CAM ontvangen en die werkt zonder problemen. Dat is denk ik het risico van het shoppen op Amazon.
Ik heb wat zitten uitproberen met de de ESP-32 CAM die ik bij Tinytronics gekocht heb (ESP32-CAM - WiFi and Bluetooth Board with OV2640 Camera, AI-thinker-model), met de webcamserver sketch.

Als ik deze vanaf mijn PC met 5 Volt voedt met de FT232RL 3.3v-5v TTL USB Serial Port Adapter van Tinytronics kan ik een resolutie van 1600x1200 pixels met een refresh rate van 1 beeld per 2 à 3 seconden krijgen. De serial monitor van de Arduino IDE geeft daarbij overigens geen melding van brown-outs.

Als ik dezelfde voeding via een ESP32-CAM-MB Programmer Shield van Tinytronics gebruik, dan kan ik deze framerate alleen bij 320x200 pixels krijgen. Bij 1600x1200 bouwt er bijna geen beeld meer op.

Ik neem aan dat ik een add-on bordje nodig heb met losse 5 Volt-voeding aansluiting, waar de ESP-32 CAM opgeprikt kan worden, voor de beste framerate bij 1600x1200 pixels?

Acties:
  • 0 Henk 'm!

  • PurpleBlue
  • Registratie: Oktober 2004
  • Niet online
Ik heb een vraagje over een stukje lambda waar ik niet uitkom bij mijn Mi-Desklamp 1S.
Deze is geflasht met ESPHome.

Als ik aan de draainkop op de lamp draai, wordt de lamp feller, of zwakker.
Echter als hij "te ver dimt" gaat hij uit.

Dimmen gaat via dit stukje:
YAML:
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
- platform: rotary_encoder
    id: rotation
    pin_a: GPIO27
    pin_b: GPIO26
    resolution: 2
    on_value:
      # Draait iemand aan de knop?
      then: 
        - if:
            #Ga na of de lamp aan staat?
            condition:
              - light.is_on: light1
              
            then: 
            # Staat de lamp aan, ga kijken of hij is ingedukt
            - if:
                condition:
                    - lambda: 'return id(button).state;'
                    
                then:
                  # Ja, knop ingedrukt, stel temperatuur in
                  - lambda: |-
                      auto min_temp = id(light1).get_traits().get_min_mireds();
                      auto max_temp = id(light1).get_traits().get_max_mireds();
                      auto cur_temp = id(light1).current_values.get_color_temperature();
                      auto new_temp = max(min_temp, min(max_temp, cur_temp + (x*10)));
                      auto call = id(light1).turn_on();
                      call.set_color_temperature(new_temp);
                      call.perform();
                      
                else:
                  # niet ingedrukt, stel felheid in
                  - light.dim_relative:
                     id: light1
                     relative_brightness: !lambda |-
                      return x / 20.0;
                                              
            # Reset de waarde          
            - sensor.rotary_encoder.set_value:
                id: rotation
                value: 0


Ik dacht het zelf "simpel" te kunnen oplossen door dit toe te passen:
YAML:
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
- platform: rotary_encoder
    id: rotation
    pin_a: GPIO27
    pin_b: GPIO26
    resolution: 2
    on_value:
      # Draait iemand aan de knop?
      then: 
        - if:
            #Ga na of de lamp aan staat?
            condition:
              - light.is_on: light1
              
            then: 
            # Staat de lamp aan, ga kijken of hij is ingedukt
            - if:
                condition:
                    - lambda: 'return id(button).state;'
                    
                then:
                  # Ja, knop ingedrukt, stel temperatuur in
                  - lambda: |-
                      auto min_temp = id(light1).get_traits().get_min_mireds();
                      auto max_temp = id(light1).get_traits().get_max_mireds();
                      auto cur_temp = id(light1).current_values.get_color_temperature();
                      auto new_temp = max(min_temp, min(max_temp, cur_temp + (x*10)));
                      auto call = id(light1).turn_on();
                      call.set_color_temperature(new_temp);
                      call.perform();
                      
                else:
                  # niet ingedrukt, stel felheid in
                  - light.dim_relative:
                     id: light1
                     relative_brightness: !lambda |-
                     if (x / 25.0 >= 2){
                        return x / 25.0;
                      } else {
                        return 2;
                      }
                                              
            # Reset de waarde          
            - sensor.rotary_encoder.set_value:
                id: rotation
                value: 0


Dit werkt helaas niet, en de waarde/felheid blijft altijd op 100%

Iemand een idee hoe ik ervoor kan zorgen dat hij niet uitgaat bij "te ver dimmen"?
Iemand een idee hoe ik dit voor elkaar kan krijgen?

[ Voor 64% gewijzigd door PurpleBlue op 12-03-2023 16:06 . Reden: Iets meer yaml code ]


Acties:
  • 0 Henk 'm!

  • 19roland70
  • Registratie: Augustus 2013
  • Laatst online: 11-08 14:56
Ik heb een esp32 in gebruik voor de monitoring van de zonnepanelen.
Als ik nu in home assitant kijk staat deze ook in esphome , hier staat adoptie bij.
Wat kan ik hiermee en moet ik dit doen?

Acties:
  • 0 Henk 'm!

  • vonkkie
  • Registratie: Januari 2014
  • Laatst online: 22:03
als je hem met esphome heb geprogrammeert zou hij er al in moeten staan zo niet voegt hij hem toe zodat je hem uit esphome kan beheren

Acties:
  • 0 Henk 'm!

  • 19roland70
  • Registratie: Augustus 2013
  • Laatst online: 11-08 14:56
vonkkie schreef op zondag 12 maart 2023 @ 20:11:
als je hem met esphome heb geprogrammeert zou hij er al in moeten staan zo niet voegt hij hem toe zodat je hem uit esphome kan beheren
Ik heb in de esp een aparte bin file in geladen met specifieke software voor zonnepanelen , deze staat verder (voorlopig)los van HA

Acties:
  • +1 Henk 'm!

  • vonkkie
  • Registratie: Januari 2014
  • Laatst online: 22:03
dan zou ik hem niet toevoegenaan esphome

zou balen zijn als hij hem overschrijft

Acties:
  • 0 Henk 'm!

  • Kalkran
  • Registratie: Maart 2011
  • Laatst online: 12-08 11:34
PurpleBlue schreef op zondag 12 maart 2023 @ 13:39:
Ik heb een vraagje over een stukje lambda waar ik niet uitkom bij mijn Mi-Desklamp 1S.
Deze is geflasht met ESPHome.

Als ik aan de draainkop op de lamp draai, wordt de lamp feller, of zwakker.
Echter als hij "te ver dimt" gaat hij uit.
Makkelijkste is denk ik om je originele code te omringen met een max(), zo komt-ie nooit onder een minimumwaarde (in dit geval 2.0).

code:
1
2
3
4
5
6
7
#...
                  # niet ingedrukt, stel felheid in
                  - light.dim_relative:
                     id: light1
                     relative_brightness: !lambda |-
                      return max(x / 20.0, 2.0);
#...

Acties:
  • +1 Henk 'm!

  • PurpleBlue
  • Registratie: Oktober 2004
  • Niet online
Kalkran schreef op maandag 13 maart 2023 @ 14:41:
[...]


Makkelijkste is denk ik om je originele code te omringen met een max(), zo komt-ie nooit onder een minimumwaarde (in dit geval 2.0).

code:
1
2
3
4
5
6
7
#...
                  # niet ingedrukt, stel felheid in
                  - light.dim_relative:
                     id: light1
                     relative_brightness: !lambda |-
                      return max(x / 20.0, 2.0);
#...
Dank, echter blijft hij nu op 100% staan.

Ik zie in de logging als ik naar links draai:
code:
1
2
3
4
5
6
7
8
[16:11:20][D][sensor:127]: 'rotation': Sending state -1.00000 steps with 0 decimals of accuracy
[16:11:20][D][custom:092]: The value is: -0.050000
[16:11:20][D][light:035]: 'Bureaulamp Light' Setting:
[16:11:20][D][light:050]:   Brightness: 100%
[16:11:20][D][sensor:127]: 'rotation': Sending state 0.00000 steps with 0 decimals of accuracy
[16:11:20][D][custom:092]: The value is: 0.000000
[16:11:20][D][light:035]: 'Bureaulamp Light' Setting:
[16:11:20][D][light:050]:   Brightness: 100%


blijkbaar doet hij een stapje van "-0.050000" bij dimmen, of "0.050000" bij feller ten opzichte van de bestaande "felheid"
Ik moet dus eerst zien te achterhalen wat de huidige status is, en welke kant de rotary op gaat denk ik?

Edit:
Het is gelukt!: :)
Via de "id(rotation).state" kan ik bepalen of deze linksom of rechtsom draait (-1.0 of 1.0)
Verder een check via "id(light1)->remote_values.get_brightness()" gekeken of hij niet onder de gestelde waarde komt.
Hij blijft nu netjes gedimt, en bij inschakelen gaat hij dan ook naar laatste waarde in plaats van 100%
Voor de geïnteresseerde het resultaat:

YAML:
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
55
56
57
58
59
60
61
 - platform: rotary_encoder
    name: "Rotary decoder"
    id: rotation
    pin_a: GPIO27
    pin_b: GPIO26
    resolution: 2
    on_value:
      # Draait iemand aan de knop?
      then: 

        - if:
            #Ga na of de lamp aan staat?
            condition:
              - light.is_on: light1
              
            then: 
            # Staat de lamp aan, ga kijken of hij is ingedukt
            - if:
                condition:
                    - lambda: 'return id(button).state;'
                    
                then:
                  # Ja, knop ingedrukt, stel temperatuur in
                  - lambda: |-
                      auto min_temp = id(light1).get_traits().get_min_mireds();
                      auto max_temp = id(light1).get_traits().get_max_mireds();
                      auto cur_temp = id(light1).current_values.get_color_temperature();
                      auto new_temp = max(min_temp, min(max_temp, cur_temp + (x*5)));
                      auto call = id(light1).turn_on();
                      call.set_color_temperature(new_temp);
                      call.perform();
                      
                else:
                    - if:
                        condition:
                            - lambda: 'return id(rotation).state == -1.0;'
                        then:
                            - logger.log: "Links"
                            - light.dim_relative:
                                id: light1
                                relative_brightness: !lambda |-
                                    if (id(light1)->remote_values.get_brightness() >= 0.04) {
                                        return x / 25.0;
                                    } else {
                                      return 0.0;
                                    };
          
                    - if:
                        condition:
                            - lambda: 'return id(rotation).state == 1.0;'
                        then:
                            - logger.log: "Rechts"               
                            - light.dim_relative:
                                id: light1
                                relative_brightness: !lambda |-
                                    return x / 25.0;
        
            # Reset de waarde naar 0        
            - sensor.rotary_encoder.set_value:
                id: rotation
                value: 0

[ Voor 52% gewijzigd door PurpleBlue op 14-03-2023 15:52 ]


Acties:
  • 0 Henk 'm!

  • leecher
  • Registratie: December 2004
  • Laatst online: 20:13
Ik heb een ESP32 waar micropython op draait. Ongeacht de code die ik erop zet heb ik het volgende probleem: Als je voor het eerst stroom op de ESP zet dan boot hij niet, dat doet hij pas als je op de RST knop heb gedrukt. Wat ook werkt is hem om aan een pc te hangen en dan de IDE/REPL te openen, dan gaat hij ook van start.

Hoe kan ik ervoor zorgen dat hij direct boot.py (boot.py is leeg) -> main.py doet?

Acties:
  • 0 Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Ik heb een ESP8266 in mijn koffiemachine waarmee ik via SoftwareSerial een input uitlees en deze 1-op-1 doorstuur. Op deze manier zit mijn ESP8266 als het waren tussen de input van het bedieningspaneel en de body van het apparaat in. Doel is om de machine zowel via de esp8266 (dus wifi) als via het bedieningspaneel te kunnen bedienen.

Via onderstaande code lees ik in loop() de eventuele input op sofwareserial uit en stuur deze door naar de hardware tx.

code:
1
2
3
  while (swSer.available() > 0) {
    Serial.write(swSer.read());
  }


Echter als het apparaat aanstaat, komt er een constante stroom data vanaf het display. Dit resulteert in een constante stroom van data (opvragen van status-updates). Het lijkt erop dit dit eigenlijk altijd binnen korte of langere termijn leidt tot een reset van de esp8266.

Als ik dan esp.getResetReason() opvraag krijg ik deze output
code:
1
Fatal exception:4 flag:1 (Hardware Watchdog) epc1:0x40102fe5 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000 depc:0x00000000


Alleen ik kan niet echt herleiden wat nu precies de oorzaak is. Ik heb al verschillende esp's geprobeerd, dus het lijkt me geen daadwerkelijk hardware probleem. Als de koffiemachine uitstaat (er staan dan wel spanning op de esp8266) kan het apparaat een hele tijd draaien zonder reset, dus het lijkt te maken te hebben met zodra er daadwerkelijk data binnenkomt.

Concreet heb ik 2 vragen

1. Is mijn manier van 'doorsturen' van seriële data via softwareserial een ok-oplossing?
2. Wat kan de oorzaak zijn van het resetten van de esp via de watchdog?

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
@bartbh Over wat voor baudrate hebben we het?

En moet je beide kanten (dus display en main board) zowel zenden als ontvangen?

Acties:
  • 0 Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
@Septillion Baudrate van 115200.

Het is alleen ontvangen vanaf het display. De TX vanaf de body is aangesloten op de RX van zowel de esp als op de RX van het display.

Schematische poging:

code:
1
2
3
[display] TX ---->   RX(software)   [ESP]   TX ---->  RX [main]
                                            RX  <---  TX
           RX  <------------------------------------|^


Het is qua aansluiting hierop gebaseerd
Afbeeldingslocatie: https://github.com/chris7topher/SmartPhilips2200/blob/master/images/wiring.png?raw=true

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
@bartbh 115200 is vaak wel pittig voor SoftSerial....

Neem even aan dat er een foutje in het schema staat en dat de klassieke verwisseling van Rx en Tx op het main board. Of het is mooie onhandige labeling :)

Dus je wilt alleen naar de Txo van het display luisteren en dat doorsturen naar de Rxi van het main board? Wat het main board tegen het display roept wil je niet weten? Dan zou je namelijk ook gewoon af kunnen met een enkele Serial waarvan je de Rxi voor het display gebruikt en de Txo naar het main board stuurt.

En klein dingetje nog, gezien de rest op 5V werkt, is het serial signaal wel 3v3? ESP is niet 5V tolerant.

Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 23:19
Een forumlid heeft mij geholpen om met deze software mijn abb/powerone uit te lezen. Dit bevalt erg goed.

https://github.com/michelsciortino/esphome-aurora-inverter

Ik zou ook een upload willen naar pvoutput. Zoals bijvoorbeeld in deze code..

https://github.com/jantenhove/GoodWeLogger

Is dit (eenvoudig) te combineren? Beide omvormers gebruiken rs485 (modbus?)

Acties:
  • 0 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 22:14
bartbh schreef op woensdag 15 maart 2023 @ 17:45:

code:
1
2
3
  while (swSer.available() > 0) {
    Serial.write(swSer.read());
  }


Echter als het apparaat aanstaat, komt er een constante stroom data vanaf het display. Dit resulteert in een constante stroom van data (opvragen van status-updates). Het lijkt erop dit dit eigenlijk altijd binnen korte of langere termijn leidt tot een reset van de esp8266.
Als ik die "constante stroom data" letterlijk neem, kan het zijn dat je esp continue in de while loop blijft hangen. Dan worden de normale esp house keeping taken niet uitgevoerd en dus ook de wdt niet gereset.
Dat kan je oplossen door een yield() in de while loop op te nemen.

code:
1
2
3
4
  while (swSer.available() > 0) {
    Serial.write(swSer.read());
    yield();
  }


Van arduino.cc:
Scheduler - yield()


Passes control to other tasks when called. Ideally yield() should be used in functions that will take awhile to complete.

Acties:
  • 0 Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Septillion schreef op woensdag 15 maart 2023 @ 20:51:
@bartbh 115200 is vaak wel pittig voor SoftSerial....
Volgens de docs zou t/m 115200 nog moeten kunnen of zit ik daarmee al aan de max?
Neem even aan dat er een foutje in het schema staat en dat de klassieke verwisseling van Rx en Tx op het main board. Of het is mooie onhandige labeling :)

Dus je wilt alleen naar de Txo van het display luisteren en dat doorsturen naar de Rxi van het main board? Wat het main board tegen het display roept wil je niet weten? Dan zou je namelijk ook gewoon af kunnen met een enkele Serial waarvan je de Rxi voor het display gebruikt en de Txo naar het main board stuurt.
Plaatje is niet van mij. Doel is om zowel via display (met input buttons) als via esp8266 de status uit te lezen en input te geven.

Daarom gaat de Tx van het main board naar zowel het display als ook naar de esp8266. Dus 1 TX naar 2RX.

Daarnaast gaat dus de TX van het display (met de input commands van de buttons) naar de RX van SoftwareSerial. En dan via de TX van de esp8266 naar de RX van het main board.

Deze oplossing werkt an sich prima. Ik kan de status uitlezen via de esp8266 én input geven via zowel display/buttons als via de esp8266. Punt is dat de esp8266 dus zichzelf reset 1x in de zoveel tijd waardoor deze even niet reageert. Ergens verslikt ie zich dus in. En als de esp zich verslikt en opnieuw opstart wordt dus ook de data vanaf het display/buttons niet meer doorgestuurd en is het hele apparaat voor een paar seconden even niet te bedienen.

Alleen hoe lang de esp blijft draaien heb ik nog geen goed patroon in kunnen ontdekken. Dat kan 5-15 seconden zijn maar soms ook wel 5 min of meer.
En klein dingetje nog, gezien de rest op 5V werkt, is het serial signaal wel 3v3? ESP is niet 5V tolerant.
Zowel met 5v als met een logic level converter er tussen: de oplossing werkt wel maar de esp8266 blijft zichzelf af en toe resetten.
Albert_x schreef op woensdag 15 maart 2023 @ 21:56:
[...]


Als ik die "constante stroom data" letterlijk neem, kan het zijn dat je esp continue in de while loop blijft hangen. Dan worden de normale esp house keeping taken niet uitgevoerd en dus ook de wdt niet gereset.
Dat kan je oplossen door een yield() in de while loop op te nemen.

code:
1
2
3
4
  while (swSer.available() > 0) {
    Serial.write(swSer.read());
    yield();
  }


Van arduino.cc:

[...]
De webinterface van de esp werkt wel, dus dan ga ik er vanuit dat deze zich niet verslikt in de while loop?

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
ThinkPad in "Datalogging: PV systemen" Sonoff POW R2 rechtstreeks laten uploaden naar PVOutput

Het lijkt er alleen op dat met if upsecs%300==0 het commando twee keer wordt gerund. Vermoedelijk omdat hij alleen kijkt naar de seconden en niet ook de miliseconden.

Iemand wat meer ervaring met de Tasmota scripting engine die weet hoe ik dat kan voorkomen?
Ik heb ook if uptime%5==0 geprobeerd (minutes since start), maar dan triggert het script continu :?

https://tasmota.github.io...nguage/#special-variables

[ Voor 66% gewijzigd door ThinkPad op 16-03-2023 11:53 ]


Acties:
  • 0 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 22:14
bartbh schreef op donderdag 16 maart 2023 @ 00:12:
De webinterface van de esp werkt wel, dus dan ga ik er vanuit dat deze zich niet verslikt in de while loop?
Als je zeker weet dat de webinterface ook de laatste 8 sec voor de reset nog werkte niet nee. Dat is de timeout van de hardware watchdog.

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
@bartbh Toen ik met een P1 meter aan het spelen was zag ik op 115200 baud toch af en toe bitjes omvallen met SoftSerial. Jammer dat de tweede UART op de ESP8266 juist niet kan ontvangen maar alleen zenden in de standaard config :/ Zou ik zeker kijken of de bus met meeste data op de hardware serial te zetten en de ander op de software.

Maar begin toch te twijfelen of dat echt de reden van reset is. Draait je ESP echt alleen die forward while of nog meer? Anders denk ik niet dat het de SoftSerial is die voor problemen zorgt maar simpelweg een ander deel van je programma zodra dat werkelijk data te verwerken krijgt. En dat er dan ergens lang in een functie gehangen wordt ipv weer naar loop() te gaan.

Paar vuistregels:
- Geen delay() (ook al doet die op een ESP standaard wel yield() volgens mij)
- Voorzichtig met while() (maar eigenlijk alle loops), alleen toepassen als je weet dat je altijd snel er doorheen bent
- Gebruik de loop() werkelijk om te loopen, dus zorg dat je niet in een functie blijft hangen. Heb je veel te doen, maak dan een state machine en keer terug naar loop() en ga de volgende keer weer verder waar je was.

Overigens was de opmerking over 5V niet zo zeer voor het crashen. Maar dat de ESP er gewoon niet voor gemaakt is, level shifter toepassen van 5V => 3v3 is dus wel verplicht. Ook al hebben genoeg mensen laten zien dat hij niet gelijk stuk gaat maar door een chip buiten spec te gebruiken ka n je mooie spook zaken krijgen, zeker op lange termijn.

Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@ThinkPad Je kunt upsecs naar een variabele schrijven en een logic compare doen. Of gaat dat niet met enkel Rules?

- knip -


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
ThinkPad schreef op donderdag 16 maart 2023 @ 11:35:
ThinkPad in "Datalogging: PV systemen" Sonoff POW R2 rechtstreeks laten uploaden naar PVOutput

Het lijkt er alleen op dat met if upsecs%300==0 het commando twee keer wordt gerund. Vermoedelijk omdat hij alleen kijkt naar de seconden en niet ook de miliseconden.

Iemand wat meer ervaring met de Tasmota scripting engine die weet hoe ik dat kan voorkomen?
Ik heb ook if uptime%5==0 geprobeerd (minutes since start), maar dan triggert het script continu :?

https://tasmota.github.io...nguage/#special-variables
code:
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
>D 42
;long string required for key
y=0
m=0
d=0
b=0
key="Your-API-key"
id="Your-System-ID"
ws="WebSend [pvoutput.org]"
et=0
p=0
vlt=0

>T
et=((ENERGY#Total)*1000)
p=ENERGY#Power
vlt=ENERGY#Voltage
; every 5 minutes
if upsecs%300==0
and b==0
then
b=1
y=sb(tstamp 0 4)
m=sb(tstamp 5 2)
d=sb(tstamp 8 2)
=>%ws%/service/r2/addstatus.jsp?key=%key%&sid=%id%&d=%1.0(y)%%2.0(m)%%2.0(d)%&t=%1(sb(tstamp 11 5))%&v1=%s(2.0et)%&v2=%s(2.0p)%&v6=%s(2.0vlt)%&c1=2
else
b=0
endif

@ThinkPad Denk dat zoiets er wel voor moet zorgen dat hij niet twee keer getriggerd kan worden doordat hij snel genoeg (aka, binnen een seconde) weer loopt. Weet alleen niet of de variabele static zijn dus nog hun waarde hebben de volgende loop? Of is daarvoor een "permanent variable" voor nodig?

[ Voor 29% gewijzigd door Septillion op 16-03-2023 15:08 ]


Acties:
  • +1 Henk 'm!

  • Tim_bots
  • Registratie: April 2004
  • Laatst online: 02-08 10:29
@Septillion @bartbh. Ondanks dat een ESP8266 officieel een 3V3 IC is (en een level shifter dus wel degelijk nodig is om van 3V3 naar 5V te komen), zijn de inputs wel degelijk 5V tolerant.
Bron:
https://www.qworqs.com/20...-yes-they-officially-are/
https://www.facebook.com/...33731442/?hc_location=ufi (facebook post van de oprichten van espressif)

Alvast hartelijk bedankt voor al jullie hulp en reacties, Tim Bots


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
@Tim_bots Mja, ben niet van de "het stond op Facebook dus het is waar".... Datasheet is er duidelijk over iig.

Acties:
  • 0 Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
@Septillion de esp draait (natuurlijk :) ) meer dan alleen dat. In mijn eigen versie serveert de esp ook de webinterface. Daarnaast kun je ook een wens (1 kop koffie) ingeven en gaat de esp zelf net zo vaak het commando koffie/water/sterkte sturen zodat het overeenkomt je wens en start daarna met koffiezetten. Doel ervan is om geheel geautomatiseerd koffie te zetten.

Om te testen heb ik ook even de sketch van mijn inspiratie geladen (https://github.com/chris7...ESP8266/withWebserver.cpp) maar daar treed hetzelfde probleem in op.

Om dat uit te sluiten zal ik denk ik eens 3 dingen doen

1. yield() toevoegen in de loop
2. de while loop tijdelijk uitschakelen
3. een sketch maken met daarin alleen de while loop voor het doorsturen van de serial input
(4). de soft en hard serial eens omwisselen


@Albert_x Nee, niet 100% zeker. De webinterface is dan ook even non-responsive en durf eerlijk niet te zeggen of dat inderdaad rond die 8 seconden is. Dus ik ga zeker yield() eens toevoegen.


edit: nabrander
Zou een ESP32 nog verschil kunnen maken?

Acties:
  • 0 Henk 'm!

  • Tim_bots
  • Registratie: April 2004
  • Laatst online: 02-08 10:29
@Septillion, Dat snap ik. In dit geval is het alleen wel de oprichter van espressif die de opmerking maakt. Daarnaast heeft de community nog wat extra testen gedaan. https://hackaday.com/2022...is-curve-tracer-says-yes/

Alvast hartelijk bedankt voor al jullie hulp en reacties, Tim Bots


Acties:
  • 0 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 22:14
bartbh schreef op donderdag 16 maart 2023 @ 13:29:

edit: nabrander
Zou een ESP32 nog verschil kunnen maken?
Ja, die heeft twee hardware uarts dus dan heb je die softwareserial niet nodig...

Acties:
  • 0 Henk 'm!

  • Tim_bots
  • Registratie: April 2004
  • Laatst online: 02-08 10:29
Albert_x schreef op donderdag 16 maart 2023 @ 13:35:
[...]

Ja, die heeft twee hardware uarts dus dan heb je die softwareserial niet nodig...
Sterker nog. De ESP32 heeft 3 UARTs. Standaard zijn er echter maar 2 bruikbaar.
Echter omdat de ESP32 een IO matrix aan boord heeft kun je middels code de poorten verplaatsen. Als je in de setup() methode Serial.begin() aanroept met de gewenste pinnen als argumenten dan kun je de pinnen aanpassen naar wens.*
code:
1
2
3
4
5
6
    //Set the serial 0 port to 9600 baud on pins 2 and 4
    Serial1.begin(9600, SERIAL_8N1, 2, 4);
    //Set the serial 1 port to 9600 baud on pins 15 and 0
    Serial1.begin(9600, SERIAL_8N1, 15, 0);
    //Set the serial 1 port to 9600 baud on pins 32 and 33
    Serial1.begin(9600, SERIAL_8N1, 33, 32);

bron: https://microcontrollersl...mmunication-pins-example/
*de pinnen 35, 36, 37 and 39 zijn "input only". (zie https://randomnerdtutoria...2-pinout-reference-gpios/)
Mocht je toch een output pin op een input only pin aansluiten zal de ESP vanzelf een foutmelding genereren in de seriële log.

Alvast hartelijk bedankt voor al jullie hulp en reacties, Tim Bots


Acties:
  • +1 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
ESP32 heeft inderdaad een UART meer en feitelijk twee meer doordat ze te mappen zijn.

Maar denk dus niet dat daar het probleem zit, denk dat het programma zich ergens anders ophangt als er daadwerkelijk data te verwerken valt.

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
Septillion schreef op donderdag 16 maart 2023 @ 13:02:
[...]


code:
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
>D 42
;long string required for key
y=0
m=0
d=0
b=0
key="Your-API-key"
id="Your-System-ID"
ws="WebSend [pvoutput.org]"
et=0
p=0
vlt=0

>T
et=((ENERGY#Total)*1000)
p=ENERGY#Power
vlt=ENERGY#Voltage
; every 5 minutes
if upsecs%300==0
and b==0
then
b=1
y=sb(tstamp 0 4)
m=sb(tstamp 5 2)
d=sb(tstamp 8 2)
=>%ws%/service/r2/addstatus.jsp?key=%key%&sid=%id%&d=%1.0(y)%%2.0(m)%%2.0(d)%&t=%1(sb(tstamp 11 5))%&v1=%s(2.0et)%&v2=%s(2.0p)%&v6=%s(2.0vlt)%&c1=2
else
b=0
endif

@ThinkPad Denk dat zoiets er wel voor moet zorgen dat hij niet twee keer getriggerd kan worden doordat hij snel genoeg (aka, binnen een seconde) weer loopt. Weet alleen niet of de variabele static zijn dus nog hun waarde hebben de volgende loop? Of is daarvoor een "permanent variable" voor nodig?
Goed idee, maar helaas. Blijkbaar is de trigger gewoon te snel, dat hij binnen één seconde al twee keer kan triggeren.

Ik heb ook geprobeerd met een timer die op 300 staat en die ik elke seconde met -1 verlaag. Maar ik zie via een print dat de -1 actie alsnog 2x per seconde gedaan wordt. Heel accuraat is die methode dus ook niet :/

[ Voor 160% gewijzigd door ThinkPad op 16-03-2023 15:09 ]


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
@ThinkPad Als hij nu nog te snel is dan zijn de variabele denk ik niet static tussen de runs van het script. Ofwel, dan is hij bij elke run 0. Mij is even niet duidelijk of een "permanent variable" een static var is die wel bewaard blijf tussen runs.

Verwachting is dat dit niets meer post:
code:
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
>D 42
;long string required for key
y=0
m=0
d=0
b=1
key="Your-API-key"
id="Your-System-ID"
ws="WebSend [pvoutput.org]"
et=0
p=0
vlt=0

>T
et=((ENERGY#Total)*1000)
p=ENERGY#Power
vlt=ENERGY#Voltage
; every 5 minutes
if upsecs%300==0
and b==0
then
b=1
y=sb(tstamp 0 4)
m=sb(tstamp 5 2)
d=sb(tstamp 8 2)
=>%ws%/service/r2/addstatus.jsp?key=%key%&sid=%id%&d=%1.0(y)%%2.0(m)%%2.0(d)%&t=%1(sb(tstamp 11 5))%&v1=%s(2.0et)%&v2=%s(2.0p)%&v6=%s(2.0vlt)%&c1=2
else
b=0
endif


En om permanent variable te doen:
code:
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
>D 42
;long string required for key
y=0
m=0
d=0
p:b=0
key="Your-API-key"
id="Your-System-ID"
ws="WebSend [pvoutput.org]"
et=0
p=0
vlt=0

>T
et=((ENERGY#Total)*1000)
p=ENERGY#Power
vlt=ENERGY#Voltage
; every 5 minutes
if upsecs%300==0
and b==0
then
b=1
y=sb(tstamp 0 4)
m=sb(tstamp 5 2)
d=sb(tstamp 8 2)
=>%ws%/service/r2/addstatus.jsp?key=%key%&sid=%id%&d=%1.0(y)%%2.0(m)%%2.0(d)%&t=%1(sb(tstamp 11 5))%&v1=%s(2.0et)%&v2=%s(2.0p)%&v6=%s(2.0vlt)%&c1=2
else
b=0
endif


En nu ik zit te lezen, is het niet makkelijker het van >T naar >S te verplaatsen, dat wordt überhaupt maar 1x per seconde doorlopen.

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
Septillion schreef op donderdag 16 maart 2023 @ 15:18:
[...]
En nu ik zit te lezen, is het niet makkelijker het van >T naar >S te verplaatsen, dat wordt überhaupt maar 1x per seconde doorlopen.
Uiteindelijk bleek dit de oplossing :+ De extra boolean in de 'if' bleek niet nodig.
Ik moest overigens wel de ENERGY variabelen nog onder >T houden, anders kende hij ze niet. Heb het originele script bijgewerkt: ThinkPad in "Datalogging: PV systemen"

[ Voor 4% gewijzigd door ThinkPad op 16-03-2023 16:40 ]


Acties:
  • 0 Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
@Septillion en @Albert_x

Ik heb hele simpele sketch gemaakt met daarin alleen de SwSerial die de inkomende data 1 op 1 doorstuurt en 1 pin hoog zet.

C++:
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
#include <SoftwareSerial.h>
#define D7 (5) //Gnd for display 
SoftwareSerial swSer (4, 12);


void setup() {

    //HW serial
    Serial.begin(115200);

    //SW serial
    swSer.begin(115200);

    Serial.println("");
    Serial.println("Reset cause:");
    Serial.println(ESP.getResetInfo());

    pinMode(D7, OUTPUT);
    digitalWrite(D7, HIGH);
}

void loop() {
  while (swSer.available() > 0) {
    Serial.write(swSer.read());
    yield();
  }
}



Op de serial monitor zie ik heel veel gibberish voorbij komen, maar ook een reset van de esp.

code:
1
2
3
4
5
6
7
8
9
10
11
21:21:23.987 -> 
21:21:23.987 -> wdt reset
21:21:23.987 -> load 0x4010f000, len 3584, room 16 
21:21:24.007 -> tail 0
21:21:24.007 -> chksum 0xb0
21:21:24.007 -> csum 0xb0
21:21:24.007 -> v2843a5ac
21:21:24.007 -> ~ld
21:21:24.095 -> 
21:21:24.095 -> Reset cause:
21:21:24.095 -> Fatal exception:4 flag:1 (Hardware


Moet ik het dan toch hardwarematig zoeken? Ik heb al meerdere eps8266's geprobeerd.

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
@bartbh En dat krijg je dan meerdere keren spontaan? Er hangt nu wel iets aan dat data stuurt?

Gebruik je van alles de laatste versie? Dus Arduino, board def en SoftSerial? Nu moet ik zeggen dat ik nog ben blijven hangen bij Arduino 1.8.13 maar goed, dat zou je ook kunnen proberen.

Andere kant zou ik eens naar de voeding kijken, hoe voedt je de boel nu? Is het een losse ESP of een module zoals een WeMos?

Acties:
  • 0 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 22:14
@bartbh ZIe je behalve gibberish ook wel eens geldige data voorbijkomen?
Naast de voeding die septillion al noemde zou ik ook gaan denken aan het koffiezetapparaat. Komt daar wel geldige seriële data uit? Hoe zeker weet je dat het 115200 baud, 8N1 is? Misschien geïnverteerd?

Aan de software kant kan je nog een paar dingen proberen:
- naast de yield ook een expliciete reset van de wdt met ESP.wdtFeed();
- data sneller naar je computer doorsturen, bijv dubbele snelheid
- puur om te testen, data helemaal niet doorsturen

Wat zie je overigens net voor de wdt reset op de seriele monitor. Is die echt 8 seconde stil?

Acties:
  • 0 Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
@Septillion
De hardwarematige setup is gelijk gebleven. Dus het display hangt eraan een functioneert. Daarmee spuugt ie dus ook constant data uit (status-update requests). En dan krijg ik dus inderdaad meerdere keren spontaan de reboot

Ik zat nog op 1.8.9 maar heb zojuist alles bijgewerkt naar de laatste versie. Dus Arduino 2.0.4 en alle libraries bijgewerkt, helaas geen verschil.

Voeding is parasitair, dus voeding vanaf het main body op de vcc. Ik heb ook al eens een extra usb adapter aangesloten voor extra voeding, maar dat is het ook niet.

@Albert_x
Nee, als ik de ruwe data voorbij zie komen in de serial monitor zie ik alleen maar gibberisch. Maar in de daadwerkelijke sketch wordt de ontvangen input omgezet. Alleen begrijp ik zelf niet zo goed wat daar precies gebeurt. Alleen dat het daarna een voor mij 'leesbare code' oplevert. De ontvangen serial data van het display wordt dan in een char 'gedrukt'

code:
1
2
3
    char b = Serial.read();
    sprintf(&serInCommand[serInIdx], "%02x", b);
    serInIdx += 2;


Dit is de request die het beeldscherm maakt om een nieuwe status op te vragen.
code:
1
byte requestInfo[] =  {0xD5, 0x55, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x14};



Maar dat staat los van de reset lijkt me. In mijn simpele test sketch werkt de bediening van het koffieapparaat wel. Dus de ontvangen data wordt netjes doorgestuurd naar de main van het apparaat. In mijn daadwerkelijke sketch werkt het allemaal ook. Dus ik kan daar de status uitlezen en het apparaat bedienen. Alleen de esp8266 reset zich dus op onregelmatige momenten. Hij kan het dus ook prima langere tijd (dus ruim langer dan 8 seconden, eerder 20-200 seconden) volhouden.

edit: ik kan dus niet precies triggeren of voorspellen wanneer de esp8266 zich reset. Dat lijkt vooralsnog vrij random. Dat kan kort zijn maar ook wat langere met daarin veel input (dus te verwerken data).

edit2:
Albert_x schreef op donderdag 16 maart 2023 @ 22:57:
@bartbh ZIe je behalve gibberish ook wel eens geldige data voorbijkomen?

Aan de software kant kan je nog een paar dingen proberen:
1. naast de yield ook een expliciete reset van de wdt met ESP.wdtFeed();
2. data sneller naar je computer doorsturen, bijv dubbele snelheid
3. puur om te testen, data helemaal niet doorsturen
1. Dat zal ik nog eens meenemen. > Getest: help niet helaas.
2. Volgens mij kan ik dat niet veranderen, ik zit vast aan de 115200 van het display<>body vast.
3. Dat kan inderdaad ook nog.

[ Voor 18% gewijzigd door bartbh op 17-03-2023 00:24 ]


Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

Conform deze opzet heb ik al wat jaren m'n domme deurbel slim gemaakt. Dat werkt perfect. Wanneer de ESP echter geen verbinding kan maken (dat gebeurde toevallig van de week tijdens een, gelukkig zeldzaam, issue met de verbinding, gaat ie periodiek herstarten. Prima, maar de relay schakelt een fractie van een seconde tijdens deze reboot, wat een korte rinkel van de deurbel gong betekent.

Iets met restore_mode toevoegen lost dit echter niet op:

YAML:
1
2
3
4
5
6
  - platform: gpio
    id: relay
    inverted: true
    restore_mode: RESTORE_DEFAULT_OFF
    name: ${display_name} Chime
    pin: GPIO0


Iemand dit klikken van de relay bij een reboot wel succesvol kunnen voorkomen?

Acties:
  • 0 Henk 'm!

  • Tinusvolkel
  • Registratie: Augustus 2014
  • Laatst online: 23:42
JBS schreef op vrijdag 17 maart 2023 @ 11:40:
Conform deze opzet heb ik al wat jaren m'n domme deurbel slim gemaakt. Dat werkt perfect. Wanneer de ESP echter geen verbinding kan maken (dat gebeurde toevallig van de week tijdens een, gelukkig zeldzaam issue, met de verbinding, gaat ie periodiek herstarten. Prima, maar de relay schakelt een fractie van een seconde tijdens deze reboot, wat een korte rinkel van de deurbel gong betekent.

Iets met restore_mode toevoegen lost dit echter niet op:

YAML:
1
2
3
4
5
6
  - platform: gpio
    id: relay
    inverted: true
    restore_mode: RESTORE_DEFAULT_OFF
    name: ${display_name} Chime
    pin: GPIO0


Iemand dit klikken van de relay bij een reboot wel succesvol kunnen voorkomen?
Zit er een pullup op GPIO0? want op die pin zit dacht ik ook de flash button.
Dus misschien kan je het op een andere GPIO testen?

Strava | 8600 Wp zzo | 1600 Wp nnw


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
bartbh schreef op donderdag 16 maart 2023 @ 23:54:
@Septillion
De hardwarematige setup is gelijk gebleven. Dus het display hangt eraan een functioneert. Daarmee spuugt ie dus ook constant data uit (status-update requests). En dan krijg ik dus inderdaad meerdere keren spontaan de reboot
Doelde dus niet of hij gelijk gebleven is of niet maar waar hij uit bestaat. Is het een ESP module incl spanningsregeling of een losse ESP? Neem even aan een module als een WeMos?
Ik zat nog op 1.8.9 maar heb zojuist alles bijgewerkt naar de laatste versie. Dus Arduino 2.0.4 en alle libraries bijgewerkt, helaas geen verschil.
Belangrijkste mis ik dan nog in het rijtje, de board definities, die doen het wekelijke compilen. Alle versies echt benoemen is altijd handig als mensen het ook willen testen.

"Gibberisch" lijkt me normaal, de communicatie is geen ASCII maar gewoon geoptimaliseerde datapakketjes. Maar zie je met de simpele sketch ook werkelijk de rest ("Reset cause: " over de serial) voorbij komen spontaan? Je post het namelijk maar een enkele keer.

En met de simpele sketch, wat gebruik je dan op de PC? Dat kan namelijk ook een reset geven. Net als dat het hebben verbonden van een USB kabel meedoet met de voedingsspanning. Wil je dat niet zal je even met een losse USB-Serial adapter mee moeten luisteren.

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
@JBS en @Tinusvolkel GPIO0 is inderdaad de flash en zou dus hoog moeten zijn tijdens boot. Maar ik zie de pin als inverted staan dus juist hooggetrokken zou de bel stil moeten zijn.

Enige wat ik me dan kan bedenken is dat ESPhome de pinMode() en digitalWrite() (on in Arduino verkeerdom doet bij inverted. Dan zou je dit gedrag ook moeten hebben op een andere GPIO. Door de complexe opzet van ESPhome alleen geeeeen idee of het Dat zou helaas wel betekenen dat het niet is op te lossen voor een active low relais module.

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
- opgelost, ik was de 'then' vergeten in het Tasmota script :+ -

[ Voor 145% gewijzigd door ThinkPad op 23-03-2023 15:33 ]


Acties:
  • 0 Henk 'm!

  • vonkkie
  • Registratie: Januari 2014
  • Laatst online: 22:03
Hai ik probeer op een esp32 s2 mini
https://www.tinytronics.n...fi/wemos-s2-mini-esp32-s2

de BME680 Bsec werkend tekrijgen
https://esphome.io/components/sensor/bme680_bsec.html

als hij hem compiled krijg ik een foutmelding die ik niet begrijp


HARDWARE: ESP32S2 240MHz, 320KB RAM, 4MB Flash
- toolchain-riscv32-esp @ 8.4.0+2021r2-patch3
- toolchain-xtensa-esp32s2 @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
| |-- AsyncTCP-esphome @ 1.2.2
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.4
| |-- libsodium @ 1.10018.1
|-- Wire @ 2.0.0
|-- ArduinoJson @ 6.18.5
|-- WiFiClientSecure @ 2.0.0
|-- HTTPClient @ 2.0.0
|-- SPI @ 2.0.0
|-- BSEC Software Library @ 1.6.1480
Compiling /data/radar-computer-kamer/.pioenvs/radar-computer-kamer/src/main.cpp.o
Linking /data/radar-computer-kamer/.pioenvs/radar-computer-kamer/firmware.elf
/data/cache/platformio/packages/toolchain-xtensa-esp32s2/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: cannot find -lalgobsec
collect2: error: ld returned 1 exit status
*** [/data/radar-computer-kamer/.pioenvs/radar-computer-kamer/firmware.elf] Error 1
========================== [FAILED] Took 5.84 seconds ==========================

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 21:18
Septillion schreef op woensdag 8 maart 2023 @ 16:31:
@vanaalten Mijn C++ is wat roestig maar volgens mij kan volgende je gigantisch in de problemen helpen:
C++:
1
2
3
4
5
void udpSendMessage(String msg) {
    //alloc buffer space 
    uint8_t bufsize = msg.length()+1;
    uint8_t buffer[bufsize];
    msg.getBytes(buffer, bufsize);


Zo ver ik weet moeten alle var grotes bekend zijn tijdens compilen, ook die van local vars. Anders moet je malloc() en free() gebruiken (en daar de kennis van hebben!). Print voor de grap maar eens de grote van buffer, denk niet dat die verandert
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void udpSendMessage(String msg) {
   
   int tmp1 = 0;
   int tmp2 = 0;
   int tmp3 = 0;

    //alloc buffer space 
    uint8_t bufsize = msg.length()+1;
    uint8_t buffer[bufsize];
    msg.getBytes(buffer, bufsize);
   
    udp.beginPacket(udpAddress, udpPort);
    udp.write(buffer, bufsize-1); //skip trailing zero.
    udp.endPacket();
    #ifdef DEBUG
    Serial.println("Message sent:");
    Serial.println(msg);
    Serial.print("sizeof buffer: ");
    Serial.println(sizeof(buffer));
    #endif
}
@Septillion heb nu pas tijd gehad om er eens naar te kijken. Even jouw debug-code toegevoegd, maar:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sending message
Message sent:
{"id":"ztatz_dt","version":1.0,"t_unit":"C","t_in_avg":21.7,"t_out_avg":0.0,"t_in":21.688,"t_out":0.0,"seq":8}
sizeof buffer: 111
Sending message
Message sent:
{"id":"ztatz_dt","version":1.0,"t_unit":"C","t_in_avg":21.7,"t_out_avg":0.0,"t_in":21.688,"t_out":0.0,"seq":9}
sizeof buffer: 111
Sending message
Message sent:
{"id":"ztatz_dt","version":1.0,"t_unit":"C","t_in_avg":21.7,"t_out_avg":0.0,"t_in":21.625,"t_out":0.0,"seq":10}
sizeof buffer: 112
Sending message
Message sent:
{"id":"ztatz_dt","version":1.0,"t_unit":"C","t_in_avg":21.7,"t_out_avg":0.0,"t_in":21.625,"t_out":0.0,"seq":11}
sizeof buffer: 112

...lijkt er toch wel op dat er dynamisch een buffer gecreëerd wordt... toch?

Desondanks even wat zitten proberen - ik vermoed dat mijn C++ kennis nog een heel stuk slechter en roestiger is dan het jouwe - en de volgende code er voor in de plaats gedaan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void udpSendMessage(String msg) {
   uint8_t *buffer;

    //alloc buffer space 
    uint8_t bufsize = msg.length()+1;
    buffer = (uint8_t *)malloc(sizeof(uint8_t) * bufsize);
    if (buffer) {
      msg.getBytes(buffer, bufsize);
      udp.beginPacket(udpAddress, udpPort);
      udp.write(buffer, bufsize-1); //skip trailing zero.
      udp.endPacket();
      #ifdef DEBUG
      Serial.println("Message sent:");
      Serial.println(msg);
      Serial.println("sizeof buffer: ");
      Serial.println(sizeof(buffer));
      #endif
      free(buffer);
    }
}

...en dat werkt ook. Gek genoeg. Want, voorheen was 'buffer' de daadwerkelijke buffer en nu is het een pointer naar de buffer - maar de udp.write functie aanroep heb ik verder niet veranderd.

Opmerkelijk. Maar goed, beide stukken code - de originele en m'n gepruts van nu - lijken dus goed te werken.

[ Voor 20% gewijzigd door vanaalten op 25-03-2023 20:20 ]


Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
Handige site om juiste commando te creeren om in Tasmota de zomer-/wintertijd goed te hebben staan: https://tasmota-tz.netlify.app/

Acties:
  • 0 Henk 'm!

  • pentode
  • Registratie: Maart 2008
  • Laatst online: 29-04 13:56

pentode

illuster en luisterrijk

vonkkie schreef op dinsdag 21 maart 2023 @ 17:05:
Hai ik probeer op een esp32 s2 mini
https://www.tinytronics.n...fi/wemos-s2-mini-esp32-s2

de BME680 Bsec werkend tekrijgen
https://esphome.io/components/sensor/bme680_bsec.html

als hij hem compiled krijg ik een foutmelding die ik niet begrijp


HARDWARE: ESP32S2 240MHz, 320KB RAM, 4MB Flash
- toolchain-riscv32-esp @ 8.4.0+2021r2-patch3
- toolchain-xtensa-esp32s2 @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
| |-- AsyncTCP-esphome @ 1.2.2
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.4
| |-- libsodium @ 1.10018.1
|-- Wire @ 2.0.0
|-- ArduinoJson @ 6.18.5
|-- WiFiClientSecure @ 2.0.0
|-- HTTPClient @ 2.0.0
|-- SPI @ 2.0.0
|-- BSEC Software Library @ 1.6.1480
Compiling /data/radar-computer-kamer/.pioenvs/radar-computer-kamer/src/main.cpp.o
Linking /data/radar-computer-kamer/.pioenvs/radar-computer-kamer/firmware.elf
/data/cache/platformio/packages/toolchain-xtensa-esp32s2/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: cannot find -lalgobsec
collect2: error: ld returned 1 exit status
*** [/data/radar-computer-kamer/.pioenvs/radar-computer-kamer/firmware.elf] Error 1
========================== [FAILED] Took 5.84 seconds ==========================
Er schijnt een bug in de bsec bieb te zitten. Zie Error on link process - cannot find -lalgobsec
Daar is al 'omheen' gewerkt om het op te lossen. Maar nog niet door iedereen. Die gebruik maakt van de BSEC Software Library

Hier in huis hangen vijf BME680 ieder gekoppeld aan een esp8266. Via esphome zijn deze ge-flashed. Zonder problemen en worden via ota geupdate.
Even om uit te proberen op een esp32 device in esphome de besec code toegevoegd. Compileren lukt dan. Zonder foutmelding.

ESPHome code
code:
1
2
3
4
5
6
7
8
9
10
name: bme680esp32board
  platform: ESP32
  board: nodemcu-32s
  
i2c:
  scan: True

bme680_bsec:
  # i2c address override (default is 0x76)
  address: 0x77


Compile log:
code:
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
Install bme680esp32board.yaml
INFO Reading configuration /config/esphome/bme680esp32board.yaml...
WARNING 'bme680esp32board': Using the '_' (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see https://esphome.io/guides/faq.html#why-shouldn-t-i-use-underscores-in-my-device-name
INFO Generating C++ source...
INFO Compiling app...
Processing bme680esp32board (board: nodemcu-32s; framework: arduino; platform: platformio/espressif32 @ 5.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
|   |-- AsyncTCP-esphome @ 1.2.2
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- Wire @ 2.0.0
|-- ArduinoJson @ 6.18.5
|-- SPI @ 2.0.0
|-- BSEC Software Library @ 1.6.1480
RAM:   [==        ]  17.2% (used 56456 bytes from 327680 bytes)
Flash: [========= ]  92.6% (used 1698753 bytes from 1835008 bytes)
========================= [SUCCESS] Took 14.86 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 10.0.27.177
INFO Uploading /data/bme680esp32board/.pioenvs/bme680esp32board/firmware.bin (1704528 bytes)

[ Voor 0% gewijzigd door pentode op 26-03-2023 20:55 . Reden: verduidelijking ]

De mens leert. De mensheid niet.


Acties:
  • 0 Henk 'm!

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 22:56
Ik wil wat aparts, ik wil een ESPHOME sensor (watermeter pulse counter) op mijn werk koppelen aan mijn home assistant thuis. Ik kan de ESPHOME op het guest-wifi zetten, en vanaf daar heeft hij als het goed is redelijk onbeperkt toegang tot het internet.

Als ik hier naar google, en dat heb ik behoorlijk uitgebreid gedaan, dan vind ik informatie in twee categoriën:

1. Posts van mensen die dit ook willen maar net als ik niet begrijpen hoe
2. Posts van mensen die luchtig schrijven "gebruik VPN! gebruik MQTT!" zonder in meer detail uit te leggen hoe dan

Weet iemand een wat meer gedetailleerde how-to hoe je een ESPHOME sensor op netwerk A verbindt met een Home Assistant op netwerk B?

Xtool D1 10w laser cutter - IoT moet nooit op internet


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
Een VPN heeft altijd de voorkeur, maar dan zal er op je werk ook iets moeten zijn wat die VPN-tunnel naar huis kan opzetten. Als je werk een (redelijk) vast IP-adres heeft zou je aan jouw kant een port forward in je router kunnen maken waar je alleen je werk IP op toelaat. Risico is wel dat iedereen op dat netwerk bij je HASS zou kunnen.

Of je moet al iets van een publieke MQTT-server kennen waar de ESP z'n data op kan zetten en je HASS het weer vanaf plukt. Misschien is dit iets, weet zo niet wat de voorwaarden voor het gebruik zijn: https://www.hivemq.com/public-mqtt-broker/

Dit is overigens meer een vraag voor NT (netwerken) dan voor dit subforum.

[ Voor 17% gewijzigd door ThinkPad op 26-03-2023 12:03 ]


Acties:
  • +1 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 21:22

Gizz

Dunder-Mifflin, Inc.

@JeroenH met een VPN zorg je dat twee lokale netwerken met elkaar verbonden zijn (of een cliënt met een ander lokaal netwerk). Hier staan wat voorbeelden van mensen die de wireguard-client in ESPHome hebben gekregen. Aan de kant van HA draai je dan de wireguard add-on waarmee de client verbinding kan maken.

De andere route met MQTT houdt in dat je je MQTT-broker thuis(meestal Mosquitto) benaderbaar maakt via internet. Maar het is uit veiligheidsoogpunt vaak niet zo'n lekker plan om gewoon de betreffende poort in je router open te gooien zodat men van buitenaf bij je broker kan komen. Voor de veiligheid kun je dan het beste met een reverse proxy aan de slag gaan, zoals NGINX. Hiervoor zijn veel tutorials te vinden (zoals hoe je NGINX gebruikt om HA veilig te onsluiten).

Het gebruik van een publieke MQTT-server kan ook. Daar heb je geen garantie dat mensen met je data klooien of voor de lol verkeerde data naar je topic sturen. Maar dat maakt je misschien niet zoveel uit met een watermeter.

[ Voor 10% gewijzigd door Gizz op 26-03-2023 12:05 ]

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


Acties:
  • 0 Henk 'm!

  • vonkkie
  • Registratie: Januari 2014
  • Laatst online: 22:03
ik heb er al meerdere hangen in huis maar op de esp32 s2 mini gaf hij problemen maar ook de dfrobot sen0359 werkt niet goed samen met de esp32 s2 mini
dus nu maar een pcb ontworpen en besteld om een wemos d1 mini samen met een BME680 em een GY-30 en de dfrobot sen0359 in de bekende every presence one behuizing teplaatsen :) :) :) :) :)
pentode schreef op zondag 26 maart 2023 @ 10:15:
[...]

Er schijnt een bug in de bsec bieb te zitten. Zie Error on link process - cannot find -lalgobsec
Daar is al 'omheen' gewerkt om het op te lossen. Maar nog niet door iedereen. Die gebruik maakt van de BSEC Software Library

Hier in huis hangen vijf BME680 gekoppeld aan een esp8266. Via esphome zijn deze ge-flashed. Zonder problemen en worden via ota geupdate.
Even om uit te proberen op een esp32 device in esphome de besec code toegevoegd. Compileren lukt dan. Zonder foutmelding.

ESPHome code
code:
1
2
3
4
5
6
7
8
9
10
name: bme680esp32board
  platform: ESP32
  board: nodemcu-32s
  
i2c:
  scan: True

bme680_bsec:
  # i2c address override (default is 0x76)
  address: 0x77


Compile log:
code:
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
Install bme680esp32board.yaml
INFO Reading configuration /config/esphome/bme680esp32board.yaml...
WARNING 'bme680esp32board': Using the '_' (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see https://esphome.io/guides/faq.html#why-shouldn-t-i-use-underscores-in-my-device-name
INFO Generating C++ source...
INFO Compiling app...
Processing bme680esp32board (board: nodemcu-32s; framework: arduino; platform: platformio/espressif32 @ 5.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
|   |-- AsyncTCP-esphome @ 1.2.2
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- Wire @ 2.0.0
|-- ArduinoJson @ 6.18.5
|-- SPI @ 2.0.0
|-- BSEC Software Library @ 1.6.1480
RAM:   [==        ]  17.2% (used 56456 bytes from 327680 bytes)
Flash: [========= ]  92.6% (used 1698753 bytes from 1835008 bytes)
========================= [SUCCESS] Took 14.86 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 10.0.27.177
INFO Uploading /data/bme680esp32board/.pioenvs/bme680esp32board/firmware.bin (1704528 bytes)

Acties:
  • 0 Henk 'm!

  • pentode
  • Registratie: Maart 2008
  • Laatst online: 29-04 13:56

pentode

illuster en luisterrijk

vonkkie schreef op zondag 26 maart 2023 @ 19:19:
ik heb er al meerdere hangen in huis maar op de esp32 s2 mini gaf hij problemen maar ook de dfrobot sen0359 werkt niet goed samen met de esp32 s2 mini
dus nu maar een pcb ontworpen en besteld om een wemos d1 mini samen met een BME680 em een GY-30 en de dfrobot sen0359 in de bekende every presence one behuizing teplaatsen :) :) :) :) :)
[...]
@vonkkie
Voor de S2, S3 en C3 ESP32 modellen schijnt er ook een 'work around' oplossing te zijn. Door gebruik te maken van external_components voor nu.
Zie gitgub: Problem BME680 BSEC with ESP32-S2 En er is gevraag dit toe te voegen aan de ESPHome module.

Directe link
code:
1
2
3
4
external_components:
  - source: github://Schluggi/esphome@bsec2
    components:
      - bme680_bsec

[ Voor 5% gewijzigd door pentode op 26-03-2023 20:33 . Reden: aanvulling ]

De mens leert. De mensheid niet.


Acties:
  • 0 Henk 'm!

  • vonkkie
  • Registratie: Januari 2014
  • Laatst online: 22:03
@pentode

Zet je dat in de yaml bij bedoel je ?

Acties:
  • 0 Henk 'm!

  • pentode
  • Registratie: Maart 2008
  • Laatst online: 29-04 13:56

pentode

illuster en luisterrijk

vonkkie schreef op zondag 26 maart 2023 @ 20:40:
@pentode

Zet je dat in de yaml bij bedoel je ?
Ja, voor deze code:
code:
1
bme680_bsec:

Zie voor meer uitleg ESPHome External Components
Ook is het mogelijk bij github de zip te downloaden en dan naar de opgeslagen locatie verwijzen. Ja, ja.
Voor git, github heb je mogelijk credentials oid nodig.
Alleen ik kan de verwijzing niet (meer) vinden?

Zo te zien is het al opgepakt Fix platform restriction for bme680_bsec #4616
Dus nog even geduld tot de volgende ESPHome update.

[ Voor 20% gewijzigd door pentode op 26-03-2023 23:01 . Reden: verbeterd ervoor zetten niet vervangen ]

De mens leert. De mensheid niet.


Acties:
  • 0 Henk 'm!

  • vonkkie
  • Registratie: Januari 2014
  • Laatst online: 22:03
HM ALS IK DAT ER VOOR ZET EN HET BSEC WEG HAAL KRIJG IK ALLEEN MAAR RODE LIJNEN KENNELIJK VERWIJST HIJ DAN NIET MEER MORGEN GA IK WEL EEN S VERDER

Acties:
  • 0 Henk 'm!

  • vonkkie
  • Registratie: Januari 2014
  • Laatst online: 22:03
sorry caps

Acties:
  • 0 Henk 'm!

  • pentode
  • Registratie: Maart 2008
  • Laatst online: 29-04 13:56

pentode

illuster en luisterrijk

vonkkie schreef op zondag 26 maart 2023 @ 21:52:
hm als ik dat er voor zet en het bsec weg haal krijg ik alleen maar rode lijnen kennelijk verwijst hij dan niet meer morgen ga ik wel een s verder
code:
1
2
3
4
external_components:
  - source: github://Schluggi/esphome@bsec2
    components:
      - bme680_bsec


Oeps, de code hierboven zet je vóór deze
code:
1
2
3
bme680_bsec:
    # i2c address override (default is 0x76)
  address: 0x77

Je voegt het toe. Niet vervangen dus.
Zo ziet het er dan (ongeveer uit)
code:
1
2
3
4
5
6
7
# https://github.com/Schluggi/esphome/tree/bsec2
external_components:
  - source: github://Schluggi/esphome@bsec2
    components:
      - bme680_bsec

bme680_bsec:


link op github naar de repo branch Of even geduld hebben. Er wordt aan gewerkt om het op te lossen...

[ Voor 58% gewijzigd door pentode op 26-03-2023 23:30 . Reden: verduidelijking ]

De mens leert. De mensheid niet.


Acties:
  • +1 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 22:35

Septillion

Moderator Wonen & Mobiliteit
@vanaalten Aan de output te zien gaat het wel goed. Maar als ik even zoek is het niet volledig standaard C/C++, het is dus afhankelijk van de compiler of het goed of niet goed gaat.

Ipv malloc() zou je als het goed is ook new moeten kunnen gebruiken.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void udpSendMessage(String msg) {
   uint8_t *buffer;

    //alloc buffer space 
    const uint8_t Bufsize = msg.length()+1;
    buffer = new uint8_t[Bufsize]);
    if (buffer) {
      msg.getBytes(buffer, bufsize);
      udp.beginPacket(udpAddress, udpPort);
      udp.write(buffer, bufsize-1); //skip trailing zero.
      udp.endPacket();
      #ifdef DEBUG
      Serial.println("Message sent:");
      Serial.println(msg);
      Serial.println("sizeof buffer: ");
      Serial.println(sizeof(buffer));
      #endif
      free(buffer);
    }
}


Overigens lijkt het me logischer om een char array aka een (c-)string te pakken.

En let er op dat String soms tot mooie memory issues kan leiden omdat telkens als hij groter wordt een relocate nodig heeft.

Acties:
  • 0 Henk 'm!

  • Mitchelll010
  • Registratie: Oktober 2002
  • Laatst online: 21-07 19:48
Hi!

Kan iemand mij vertellen welke ik het beste kan nemen en waarom?

Afbeeldingslocatie: https://tinypic.host/images/2023/03/27/ESP.jpg

Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 21:22

Gizz

Dunder-Mifflin, Inc.

Op basis van die screenshot niet echt te zeggen. De officiële Lolin-store spreekt van versie 4, zonder expliciet type-c te noemen. Qua layout van componenten komt hij overeen met de bovenste in je screenshot.

Qua D1-mini's zijn er al jaren heel veel verschillende clones op de markt, regelmatig met ondermaatste 5V->3,3V voeding. Als je het écht zeker wil weten zou ik direct bij Lolin bestellen. De versie met ESP32 kost daar nauwelijks meer.

[ Voor 10% gewijzigd door Gizz op 27-03-2023 15:10 ]

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


Acties:
  • 0 Henk 'm!

  • Mitchelll010
  • Registratie: Oktober 2002
  • Laatst online: 21-07 19:48
Ja precies, twijfel daarom een beetje...
Het is voor een ledstrip projectje.. dillema's haha

Acties:
  • 0 Henk 'm!

  • vonkkie
  • Registratie: Januari 2014
  • Laatst online: 22:03
@pentode

Yep nu werkt het je bent geweldig

Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
Mitchelll010 schreef op maandag 27 maart 2023 @ 15:20:
Ja precies, twijfel daarom een beetje...
Het is voor een ledstrip projectje.. dillema's haha
ESP32-S2 is bedoeld als opvolger van de ESP8266...
Lolin/wemos S2 mini is pin compatible.

Die D1 v4 heeft een (mini) connector voor I2C, heb je die nodig?

- knip -


Acties:
  • 0 Henk 'm!

  • Mitchelll010
  • Registratie: Oktober 2002
  • Laatst online: 21-07 19:48
Raymond P schreef op maandag 27 maart 2023 @ 19:48:
[...]


ESP32-S2 is bedoeld als opvolger van de ESP8266...
Lolin/wemos S2 mini is pin compatible.

Die D1 v4 heeft een (mini) connector voor I2C, heb je die nodig?
Die van mijn plaatje is niet de S2.
Die werken niet lekker samen met WLED.
Maar nee, geen I2C nodig.. vraag me af of er verschil in stabiliteit/wifi ontvangst is.

Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@Mitchelll010 Wat werkt daar niet aan dan?

- knip -


Acties:
  • 0 Henk 'm!

  • Mitchelll010
  • Registratie: Oktober 2002
  • Laatst online: 21-07 19:48
Compiled niet lekker, moet je alles handmatig doen. Gedoe.. en ik ben lui..
Weet niet precies waar het in zit.

Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@Mitchelll010 Ah WLED is een pakketje dus.

Stabiliteit valt of staat met de kwaliteit van de ondersteunende componenten, in de basis zit er geen verschil tussen een 12F en een 12F.
Antenne-design is ook allemaal ongeveer gelijk. Als je een betere dekking wilt kan je kijken naar een 'pro' versie met een aansluiting voor een externe antenne.

- knip -


Acties:
  • 0 Henk 'm!

  • Mitchelll010
  • Registratie: Oktober 2002
  • Laatst online: 21-07 19:48
Duidelijk, Thnx!

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
Ik loop nog steeds tegen issues aan met mijn Tasmota > PVOutput upload script :/
Heb een conditie toegevoegd dat hij alleen overdag moet uploaden. Anders blijft hij na zonsondergang continu 0 Watt naar PVOutput sturen, beetje onnodig en vervuilt ook de data omdat hij het (lichte) sluipverbruik van de omvormers als opwek ziet.

Ik heb het volgende (deel van) script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>S
;every 5 minutes
if upsecs%300==0
then
    print Time is %time% Sunrise is at %sunrise%, sunset is at %sunset%.
    if time>sunrise and time<sunset
    then
        print Now uploading data to PVOutput...
        y=sb(tstamp 0 4)
        m=sb(tstamp 5 2)
        d=sb(tstamp 8 2)
        =>%ws%/service/r2/addstatus.jsp?key=%key%&sid=%id%&d=%1.0(y)%%2.0(m)%%2.0(d)%&t=%1(sb(tstamp 11 5))%&v1=%s(2.0et)%&v2=%s(2.0p)%&v6=%s(2.0vlt)%&c1=2
    else
        print Stop uploading since it is evening/night.
    endif
endif


Het vreemde is, dit werkt bij zonsopkomst prima: hij begint zoals het hoort pas met uploaden als de tijd > sunrise is. Maar hij stopt niet bij zonsondergang zoals zou moeten (time<sunset), hij gaat de hele avond door, tot 0:00. Ik snap niet wat er misgaat :? De tijd klopt overigens wel (minutes since midnight rekent de scripting engine mee):
"13:58:20.424 Time is 838.00 Sunrise is at 422.00, sunset is at 1210.00."

[ Voor 13% gewijzigd door ThinkPad op 03-04-2023 14:23 ]


Acties:
  • +1 Henk 'm!

  • Albert_x
  • Registratie: December 2020
  • Laatst online: 22:14
@ThinkPad Ik ken Tasmota zelf niet, maar ik zou het in ieder geval even proberen met haakjes, dus
if (time>sunrise and time<sunset)
of zelfs:
if ((time>sunrise) and (time<sunset))

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
De scripting engine ondersteunt twee methodes voor condities idd, de 'tekstuele' variant en die met brackets. Heb e.e.a. nu aangepast (kwam mooi uit met zonsondergang zonet) en het uploaden werkte iig nog en de volgende poging was na zonsondergang en werd overgeslagen. Even kijken hoe het morgenochtend is gegaan.

Edit: ochtend gaat ook goed. Opgelost dus :)

[ Voor 6% gewijzigd door ThinkPad op 04-04-2023 07:12 ]


Acties:
  • +2 Henk 'm!

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 22:56
Ik wil de luchtkwaliteit in een aantal kamers in onze woning gaan monitoren, om comfort- en gezondheidsredenen. Ik heb daarvoor een standaard sensortje gemaakt, met een MH-Z19b CO2 sensor, en een BME280 temperatuur/luchtvochtigheid/luchtdruksensor, gekoppeld aan een ESP32 die ESPHOME draait. Het heeft een paar iteraties gekost voordat ik een behuizing had waarbij de warmte van de ESP32 de BME280 niet meer zo sterk beïnvloedde.

De sensor, ik moet hem nog even in de beits zetten, en ik heb de optie nog iets van een logo of tekst in het rechter deel van het frontje te laseren:

Afbeeldingslocatie: https://tweakers.net/i/-nnBRXkDp3bxnsqIyN3F3RVGd8w=/234x176/filters:strip_exif()/f/image/UxijLYPWA8UbZnf2eVnSvN7m.png?f=fotoalbum_medium

De internals:

Afbeeldingslocatie: https://tweakers.net/i/jPpRW4v13SDH3PI7v9qBfLF7lG0=/234x176/filters:strip_exif()/f/image/BvBlb3KIXWdNboqf8BfvUpDx.png?f=fotoalbum_medium

En zo laat ik het op dit moment zien in Home Assistant:

Afbeeldingslocatie: https://tweakers.net/i/IEeMnHS8mL9_8AMwTv26wxSb7eE=/234x176/filters:strip_exif()/f/image/bEsXGeq958luyvgvymNNa6cu.png?f=fotoalbum_medium

Ik heb er nu twee, ik wil er in totaal vijf plaatsen, woonkamer, werkkamer en de drie slaapkamers. Ik denk dat er meer geventileerd moet gaan worden en misschien kan ik de temperatuurmeting in de toekomst gebruiken om verwarming/koeling te schakelen vanuit HA.

Xtool D1 10w laser cutter - IoT moet nooit op internet


Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@JeroenH Ziet er strak uit met zo'n laser.

M.i. is de BME280 totaal niet geschikt voor die toepassing. Waar 'ie wel héél goed in is is het detecteren van (minuscule) veranderingen in luchtdruk en temperatuur. (je kunt letterlijk meten of iemand langsloopt / stil staat)
De sensor loopt ook best heet, relatieve luchtvochtigheid heb je dus weinig aan tenzij je 'm een accurate temperatuur feed.

Je hebt nog zat ruimte en pins over, zou je geen SHT4x en/of DS18B20 erbij plakken?

- knip -


Acties:
  • 0 Henk 'm!

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 22:56
Raymond P schreef op dinsdag 4 april 2023 @ 10:26:
@JeroenH Ziet er strak uit met zo'n laser.

M.i. is de BME280 totaal niet geschikt voor die toepassing. Waar 'ie wel héél goed in is is het detecteren van (minuscule) veranderingen in luchtdruk en temperatuur. (je kunt letterlijk meten of iemand langsloopt / stil staat)
De sensor loopt ook best heet, relatieve luchtvochtigheid heb je dus weinig aan tenzij je 'm een accurate temperatuur feed.

Je hebt nog zat ruimte en pins over, zou je geen SHT4x en/of DS18B20 erbij plakken?
Ik heb de BME280 eigenlijk gebruikt omdat dat dat is wat ik heb :P Maar je hebt gelijk dat hij uit zichzelf wel wat warm wordt, en ik doe dan ook een compensatie van 1 graad celcius (dit grofweg geijkt met de thermostaat die in de woonkamer hangt).

Afbeeldingslocatie: https://tweakers.net/i/9h04stNKD_j3ypaCA886hVJXkqk=/234x176/filters:strip_exif()/f/image/vzJtW9bAWkNFP3LoEaRlEkVD.png?f=fotoalbum_medium
(dit is een eerdere versie met de ESP32 onderin de behuizing)

Maar ik zou dus beter af zijn met één van die sensoren die je noemt? Daar moet ik maar eens induiken dan :)

Xtool D1 10w laser cutter - IoT moet nooit op internet


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:14
Kun je de BME280 niet alleen aanzetten bij een meting (eens per 5 min. lijkt mij vaak genoeg voor temp/hum) en daarna weer uit, om zelfopwarming te voorkomen? Voeding van de BME280 via een GPIO pin. En anders met een extra transistor

En dan de sensor onderin de behuizing en de CPU bovenin (want warmte gaat omhoog enzo...)

[ Voor 35% gewijzigd door ThinkPad op 04-04-2023 10:40 ]


Acties:
  • 0 Henk 'm!

  • pentode
  • Registratie: Maart 2008
  • Laatst online: 29-04 13:56

pentode

illuster en luisterrijk

JeroenH schreef op dinsdag 4 april 2023 @ 09:53:
Ik wil de luchtkwaliteit in een aantal kamers in onze woning gaan monitoren, om comfort- en gezondheidsredenen. Ik heb daarvoor een standaard sensortje gemaakt, met een MH-Z19b CO2 sensor, en een BME280 temperatuur/luchtvochtigheid/luchtdruksensor, gekoppeld aan een ESP32 die ESPHOME draait. Het heeft een paar iteraties gekost voordat ik een behuizing had waarbij de warmte van de ESP32 de BME280 niet meer zo sterk beïnvloedde.

De sensor, ik moet hem nog even in de beits zetten, en ik heb de optie nog iets van een logo of tekst in het rechter deel van het frontje te laseren:

[Afbeelding]

De internals:

[Afbeelding]

En zo laat ik het op dit moment zien in Home Assistant:

[Afbeelding]

Ik heb er nu twee, ik wil er in totaal vijf paatsen, woonkamer, werkkamer en de drie slaapkamers. Ik denk dat er meer geventileerd moet gaan worden en misschien kan ik de temperatuurmeting in de toekomst gebruiken om verwarming/koeling te schakelen vanuit HA.
Ziet er mooi uit. Heb zelf de 'all in one' BME680 gebruikt. En geen aparte CO₂ sensor. Wil dat wel nog gaan doen. Nu is het een pseudo accuraat huis tuin en keuken CO₂ meting. 'Good enough for Australia (Not Austria)' zou Dave van EEVblog zeggen ;-P

En ook een IAQ (iaq uitleg in het Engels BME with Arduino) waarde grid card in HA gemaakt.

Dissipatie daar heb ik ook last van gehad. Bij het plaatsen van een Lanbon display. Dus de BMEx of andere temperatuur sensors ed zo veel mogelijk uit de warmte invloedsfeer van de electronica componenten halen.
Dat geldt ook in zekere mate voor licht sensors.

Hoe heb je het kastje gemaakt. Is dat met een laser cutter gedaan.

Voorbeeld IAQ card:
Afbeeldingslocatie: https://tweakers.net/i/7LOS7_fFCP5rDlQAa3xgUdtk9Bg=/800x/filters:strip_exif()/f/image/3ad9x6O68sr6d60gi1J8kHbp.png?f=fotoalbum_large

[ Voor 4% gewijzigd door pentode op 04-04-2023 11:20 . Reden: verduidelijking ]

De mens leert. De mensheid niet.


Acties:
  • +1 Henk 'm!

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 22:56
ThinkPad schreef op dinsdag 4 april 2023 @ 10:37:
Kun je de BME280 niet alleen aanzetten bij een meting (eens per 5 min. lijkt mij vaak genoeg voor temp/hum) en daarna weer uit, om zelfopwarming te voorkomen? Voeding van de BME280 via een GPIO pin. En anders met een extra transistor
Poe... geen idee. Vast wel :)
En dan de sensor onderin de behuizing en de CPU bovenin (want warmte gaat omhoog enzo...)
Zie de tekst onder de warmtebeeldfoto ;)
pentode schreef op dinsdag 4 april 2023 @ 10:44:
Ziet er mooi uit. Heb zelf de 'all in one' BME680 gebruikt. En geen aparte CO₂ sensor. Wil dat wel nog gaan doen. Nu is het een pseudo accuraat huis tuin en keuken CO₂ meting. 'Good enough for Australia (Not Austria)' zou Dave van EEVblog zeggen ;-P

En ook een IAQ waarde grid card gemaakt.
Nice! De goedkope NDIR-sensoren zoals de MH-Z19 die ik gebruik zijn ook maar nét nauwkeurig genoeg om iets over de CO2-concentratie te kunnen zeggen. Metingen aan gasmengsels zijn gewoon niet zo makkelijk.
Hoe heb je het kastje gemaakt. Is dat met een laser cutter gedaan.
Ja, zie mijn signature. Als iemand de lightburn file wil hebben dan post ik hem wel.

[ Voor 44% gewijzigd door JeroenH op 04-04-2023 10:51 ]

Xtool D1 10w laser cutter - IoT moet nooit op internet


Acties:
  • +1 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@ThinkPad De sensor warmt enorm op bij een start, langdurig aan laten staan en sampling laag of enkel on request werkt beter.
Een harde powertoggle werkt iig averechts.
Maar dan nog is 'ie niet geschikt om kamertemperatuur te meten.

@JeroenH Yes, daar doe je goed aan. De BME280 is zeker niet nutteloos hoor, je kunt er bijvoorbeeld tocht mee meten en open raam detectie mee doen.
Als m'n vriendin een warme douche heeft genomen en door het huis loopt op een half metertje afstand van die sensors dan is dat zichtbaar (met voldoende sampling). Voor zulke toepassingen is die sensor ook bedoeld.

Zelf gebruik ik een combi van SHT41 en DS18B20, plus hier en daar een BMP280 (want relHum zit ver van de waarheid).

- knip -


Acties:
  • 0 Henk 'm!

  • Autarky
  • Registratie: Maart 2023
  • Laatst online: 18-07 15:51
Ik ben hier nog helemaal nieuw mee, maar wil een ESP device met temperatuur meter opzetten. Ik heb de volgende onderdelen besteld:
- ESP8266 ESP-12 ESP-12F CH340G CH340 V2 Usb Wemos D1 Mini Pro
- Senseair S8
- Soldeerbout

Lijkt me eerst handig om op een beardbord aan de slag te gaan, welke zouden jullie aanraden? En welke chips/apparatuur heb ik nog meer nodig om hiermee te starten?

Acties:
  • 0 Henk 'm!

  • DurkVell
  • Registratie: Augustus 2011
  • Laatst online: 00:37
De Senseair S8 is een CO2 sensor? Maar je wilt temperatuur meten?

Acties:
  • +6 Henk 'm!

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 22:56
Raymond P schreef op dinsdag 4 april 2023 @ 10:53:

@JeroenH Yes, daar doe je goed aan. De BME280 is zeker niet nutteloos hoor, je kunt er bijvoorbeeld tocht mee meten en open raam detectie mee doen.
Omdat ik best een stel BME280's heb liggen heb ik eens een paar dagen in een Excel-document de meetwaarden opgeschreven, samen met wat de Itho kamerthermostaat op dat moment aangaf. Dat ziet er in een grafiek zo uit:

Afbeeldingslocatie: https://tweakers.net/fotoalbum/image/hBTK3sdp8AAWo29xxQcdhrnY.png

Behalve één outlier is daţ verband behoorlijk linear. Ik heb in de yaml van de ESPHOME een offset filter van 0,4C geplaatst, en als ik nu kijk zitten de Itho en de ESPHOME 90% van de tijd binnen 0,1C van elkaar, en een enkele keer 0,2C. Dat lijkt me voor hobby-materiaal helemaal niet gek :)

Ik houd het dus voorlopig toch maar bij BME280's, dat lijkt voor mijn doeleinden prima te werken.

Verder wil ik de airco vanuit HA kunnen bedienen, dus heb ik een ESPHOME IR transmitter gemaakt:

Afbeeldingslocatie: https://tweakers.net/fotoalbum/image/Fha1uuyhVnRvQ2vzOuevRaLg.png

De techniek bestaat uit een ESP32 die ESPHOME draait, een bordje met twee IR-LEDs en een bordje met een IR-ontvanger zodat je ook commando's van een afstandsbediening in kunt leren. Dat is met ESPHOME heel simpel te bouwen en werkte de eerste keer :*) Met de lasersnijder een geinig behuizinkje gemaakt, en dat projectje is ook weer klaar 8)

Xtool D1 10w laser cutter - IoT moet nooit op internet


Acties:
  • +1 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@JeroenH Als je 'm goed plaatst dan kan je inderdaad een offset gebruiken voor temperatuur. Je relatieve luchtvochtigheid is dan wel kaduuk natuurlijk, die zal je terug moeten rekenen.

Doe je dat direct in een koudestroom of looproute dan kan je de issues gaan ervaren waar ik tegenaan ben gelopen:
Afbeeldingslocatie: https://tweakers.net/i/nyXjrrz0681L1mMxXRJYKE9ezDA=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/lSvd85s8v29nMOTsBpPauoHE.png?f=user_large

Rond 17:00 is er even wat extra verse lucht naar binnen gehaald. Zou ik enkel op de BME280 sturen dan had m'n CV hard gaan draaien.
Wellicht dat het zo wat duidelijker is wat ik bedoel met het meten van luchtstromen. De BME hangt waar de kamerthermostaat hing, bij de sht, scd en groene ds18.

N.b. M'n vriendin is thuis (covid), dus het is wat warmer dan normaal. :X
De sdcx meet momenteel vooral de warmte van de sht41 die ik erbij geprikt heb, dat moet ik nog fixen.

- knip -


Acties:
  • 0 Henk 'm!

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Niet helemaal een coding vraag, maar eigenlijk een vraag voor de fase erna: Ik ben voornemens iets te bestellen als dit: "DC5-30V Power Supply ESP32-WROOM-32E WiFi BLE Module 8-channels Relay ESP32-WROOM Secondary Development Board for Arduino"
https://a.aliexpress.com/_mLw3xmc

Nu zou ik daar ook graag een mooie transparante behuizing bij willen hebben. :) Hij gaat dienen als vloer verwarming controller (kraantjes open en dicht draaien), dus het leek me wel mooi om niet zomaar een los printplaatje bij de verdeler te leggen / hangen, maar netjes een project case te gebruiken ervoor. :) Er komen dan ook nog flink wat ds18b20 sensoren en uiteraard de kabels voor de servomotoren bij: een flinke bos kabels.

De vraag: Waar halen jullie, of hoe maken jullie, doorgaans jullie "afmonteer" boxen? Ik zie bij die relay module bijvoorbeeld de afmetingen van de print staan, maar de afstand tussen de schroef gaatjes zie ik niet vermeld staan.

Ik zou verwachten dat ik een doosje zou moeten kopen weer dan ook de schroef terminals op de juiste plekken zitten, zodat ik mijn printje vast kan schroeven in de doos.

Overigens kan het zijn dat ik enkel een relay module koop, gezien ik de esp32 hier al heb liggen. Dus dat zou dan ook weer een andere afstand tussen de verschillende schroef gaten betekenen.

M.a.w.: waar is die website / webpagina met een groot assortiment aan betaalbare doosjes met mega veel verschillende schroef afstanden etc? :)

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?


Acties:
  • +1 Henk 'm!

  • tingbrouwer
  • Registratie: Augustus 2013
  • Laatst online: 00:00
Tanuki schreef op zaterdag 8 april 2023 @ 22:32:
Niet helemaal een coding vraag, maar eigenlijk een vraag voor de fase erna: Ik ben voornemens iets te bestellen als dit: "DC5-30V Power Supply ESP32-WROOM-32E WiFi BLE Module 8-channels Relay ESP32-WROOM Secondary Development Board for Arduino"
https://a.aliexpress.com/_mLw3xmc

Nu zou ik daar ook graag een mooie transparante behuizing bij willen hebben. :) Hij gaat dienen als vloer verwarming controller (kraantjes open en dicht draaien), dus het leek me wel mooi om niet zomaar een los printplaatje bij de verdeler te leggen / hangen, maar netjes een project case te gebruiken ervoor. :) Er komen dan ook nog flink wat ds18b20 sensoren en uiteraard de kabels voor de servomotoren bij: een flinke bos kabels.

De vraag: Waar halen jullie, of hoe maken jullie, doorgaans jullie "afmonteer" boxen? Ik zie bij die relay module bijvoorbeeld de afmetingen van de print staan, maar de afstand tussen de schroef gaatjes zie ik niet vermeld staan.

Ik zou verwachten dat ik een doosje zou moeten kopen weer dan ook de schroef terminals op de juiste plekken zitten, zodat ik mijn printje vast kan schroeven in de doos.

Overigens kan het zijn dat ik enkel een relay module koop, gezien ik de esp32 hier al heb liggen. Dus dat zou dan ook weer een andere afstand tussen de verschillende schroef gaten betekenen.

M.a.w.: waar is die website / webpagina met een groot assortiment aan betaalbare doosjes met mega veel verschillende schroef afstanden etc? :)
Ik gebruik deze: https://aliexpress.com/item/4000999069820.html

Compleet, wel duurder, werkt prima. (heeft wifi, 8 ingangen)

[ Voor 8% gewijzigd door _ferry_ op 09-04-2023 08:44 ]


Acties:
  • +1 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Tanuki
Ik haal mijn doosjes uit Tinkercad en een Prusa Mini plus ;)
Afbeeldingslocatie: https://tweakers.net/i/RschQGQhQbvdW15bStKRYJdx07M=/232x232/filters:strip_exif()/f/image/WHZyzDnVz43D661oKPSCepxU.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/OQCnEcz3c_lw97KiVfHMYaT-C3E=/232x232/filters:strip_icc():strip_exif()/f/image/fMVZeIZmbSXMiLBVuWV7qssN.jpg?f=fotoalbum_tile


Edit: max 16 cm breed

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


Acties:
  • +1 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@Tanuki Als je wilt fixeren en geen geklieder wilt met hot glue dan gebruik je thread inserts die je (met een soldeerboutje) in het plastic fixeert. Direct in je doos mits dik genoeg of op een adapter plaatje.
Bijvoorbeeld: deze

ABB maakt veel doosjes, (spat)waterdicht lijkt mij op zijn minst wel wenselijk. Zeker als je met 230V gaat spelen.

Wil je voor de superstrakke installatie gaan dan kun je ook kijken naar een verdeel of stuurkast.
Zo veel duurder hoeft dat namelijk niet te zijn (voorbeeld).

Het voordeel is dat DIN rail mount dan dichtbij is en je ineens minder hoeft te klooien, want relays mounten op een DIN plate wordt vaak gedaan. Shelly en Sonoff doen daar ook aan mee.
Het nadeel is dat het wat meer ruimte in beslag neemt.

Kleine doosjes met een ESPtje en een sensor of twee zijn leuk maar voor het serieuzere werk gebruik je imo gepaste doosjes.

- knip -


Acties:
  • 0 Henk 'm!

  • TECHboyy
  • Registratie: Augustus 2020
  • Laatst online: 15-07 21:12
hoi ik ben nog vrij nieuw in deze omgeving,
Maar ik wil met DS18B20 temperatuur sensoren en een esp32 een digitaal afleesbare tempratuurmeter maken.
maar ik weet niet goed hoe en krijg mijn esp32 ook niet gevonden in mijn IDE programma van arduino ik heb wel de drivers al geïnstalleerd kan iemand mij verder helpen?

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 21:18
TECHboyy schreef op zondag 9 april 2023 @ 23:04:
hoi ik ben nog vrij nieuw in deze omgeving,
Maar ik wil met DS18B20 temperatuur sensoren en een esp32 een digitaal afleesbare tempratuurmeter maken.
maar ik weet niet goed hoe
Welk display heb je er bij? Wellicht heb je iets aan mijn post:
vanaalten in "Het grote ESP topic"
en krijg mijn esp32 ook niet gevonden in mijn IDE programma van arduino ik heb wel de drivers al geïnstalleerd kan iemand mij verder helpen?
Mja, herkenbaar en het opstarten met een ESP en ArduinoIDE vond ik ook wat vaag en trial&error.
Hier heb ik "NodeMCU 1.0 (ESP-12E Module) COM3" geselecteerd en gecombineerd met de juiste USB poort werkt dat. Bij mij.

Acties:
  • 0 Henk 'm!

  • TECHboyy
  • Registratie: Augustus 2020
  • Laatst online: 15-07 21:12
vanaalten schreef op maandag 10 april 2023 @ 10:30:
[...]

Welk display heb je er bij? Wellicht heb je iets aan mijn post:
vanaalten in "Het grote ESP topic"

[...]

Mja, herkenbaar en het opstarten met een ESP en ArduinoIDE vond ik ook wat vaag en trial&error.
Hier heb ik "NodeMCU 1.0 (ESP-12E Module) COM3" geselecteerd en gecombineerd met de juiste USB poort werkt dat. Bij mij.
dit is de display : Otronic Mini OLED display wit 0.96 inch 128x64 I2C
ik heb wat info gevonden gehad op deze sites maar helaas nog zonder succes :
https://randomnerdtutoria...-temperature-arduino-ide/
https://randomnerdtutorials.com/getting-started-with-esp32/

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 21:18
TECHboyy schreef op maandag 10 april 2023 @ 11:32:
[...]


dit is de display : Otronic Mini OLED display wit 0.96 inch 128x64 I2C
Het gaat er om welke controller er gebruikt wordt - en dat kan ik zo snel nergens terugvinden. Echter gok ik dat het gewoon een controller zal zijn die ondersteund wordt door u8g2-lib.
https://github.com/olikraus/u8g2/wiki/u8g2setupcpp
Enkel het I2C adres wordt nog even wat puzzelen.

Acties:
  • +2 Henk 'm!

  • WoBBeL
  • Registratie: Juni 2004
  • Laatst online: 30-07 20:36

WoBBeL

*zwaai*

Tip: leg je ESP bordje niet op een schaar...dan gaat de magie eruit met wat magic smoke :+

Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
@WoBBeL Zit vast nog rook in. Heb je 3.3v geprobeerd te voeden op de juiste pin?

- knip -


Acties:
  • +1 Henk 'm!

  • WoBBeL
  • Registratie: Juni 2004
  • Laatst online: 30-07 20:36

WoBBeL

*zwaai*

ESP8266 devbordje, denk dat mn gevalletje dat de spanning regelt (5.0->3.3) kaduuk is (ik ben echt slecht in elektronica, vraag me niet hoe dat heet :+ ). Via 3.3 werkt ie nog.

Draait ESPhome al op dus kunnen we over WiFi weer aanpassen zonder al te veel moeite :D

[ Voor 20% gewijzigd door WoBBeL op 12-04-2023 20:32 ]


Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

TECHboyy schreef op zondag 9 april 2023 @ 23:04:
hoi ik ben nog vrij nieuw in deze omgeving,
Maar ik wil met DS18B20 temperatuur sensoren en een esp32 een digitaal afleesbare tempratuurmeter maken.
maar ik weet niet goed hoe en krijg mijn esp32 ook niet gevonden in mijn IDE programma van arduino ik heb wel de drivers al geïnstalleerd kan iemand mij verder helpen?
ik zou esphome adviseren (zeker als je home assistant hebt) tasmota kan ook

let op dat je DS18B20 5v willen en je een weerstand ertussen dient te zetten, terwijl je esp 3,3v werkt.
ook wel handig dat je de juiste (vrij-e) pin selecteerd. bv gpio4 ? met een 4k7 weerstand ertussen
je kan alle temperatuur sensor(s) aan elkaar bundelen alleen je doet er wel verstandig een binnen/buiten connector oid ertussen te maken zodat je case waterdicht blijft. (vocht is niet iets wat je wilt) bv een microjack oid.

deze kan https://randomnerdtutoria...oled-display-arduino-ide/ voor je display alleen zou dit niet beter zijn direct naar je telefoon ipv los schermpje?

in bv tasmota = juiste IP adres in de browser, bij esphome = extra regel "webserver aan" oid in de configuratie.


Ander dingetje is dat je als je een esp32 ergens in verwerkt en uit de buurt van een AP je echt wel een externe antenne oid wilt hebben aan je esp32. (iets met ontvangst)

vso in "Het grote "Zwembad DIY Automatiserings" topic"

DM me als je de Yaml van dit ding wilt voor esphome

Tja vanalles


Acties:
  • 0 Henk 'm!

  • Raymond P
  • Registratie: September 2006
  • Laatst online: 00:45
*Ds18b20 accepteert ook 3v (3 - 5.5).
Op een ESP32 is in principe elke GPIO vrij te gebruiken.

- knip -


Acties:
  • 0 Henk 'm!

  • gastje01
  • Registratie: Oktober 2005
  • Laatst online: 10-08 14:27
Ik ga een (grote) regenwatertank ingraven in de tuin die ik op mijn beregeningsinstallatie aan ga sluiten. Nu zou ik graag een sensor in die tank hangen om te kunnen zien hoeveel er nog in zit.

Ik ben al even door mijn favoriete Chinese supermarkt aan het klikken geweest, maar ik kom allemaal verschillende sensoren en types tegen. Zijn er hier mensen met ervaring met een relatief betrouwbare oplossing? Naar wat ik lees werkt een hydrostatische sensor het best. Ik wil dit bij voorkeur gebruiken met ESPhome, maar als andere software hiervoor beter geschikt is, dan is dat verder prima.

Ik zit er wel even mee hoe ik moet berekenen hoe veel liter er in de tank zit aangezien het geen nette vierkante bak is. Heeft iemand dit eerder gedaan?

Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 21:22

Gizz

Dunder-Mifflin, Inc.

Ultrasoon om de afstand tussen bovenkant tank en wateroppervlak te meten?

[ Voor 6% gewijzigd door Gizz op 12-04-2023 22:06 ]

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


Acties:
  • 0 Henk 'm!

  • gastje01
  • Registratie: Oktober 2005
  • Laatst online: 10-08 14:27
Dan schijn je last te kunnen hebben van reflecties die de metingen beïnvloeden? Ook vraag ik me af hoe goed zo'n sensor tegen water kan. Zo was ik op op een hydrostatische sensor gekomen, die meet hoeveel water er 'boven' de sensor zit, behoorlijk waterdicht dus.

Ik kan alleen niet voor veel praktijkvoorbeelden vinden van mensen die dit ook gedaan hebben.

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

gastje01 schreef op woensdag 12 april 2023 @ 22:03:
Ik ga een (grote) regenwatertank ingraven in de tuin die ik op mijn beregeningsinstallatie aan ga sluiten. Nu zou ik graag een sensor in die tank hangen om te kunnen zien hoeveel er nog in zit.

Ik ben al even door mijn favoriete Chinese supermarkt aan het klikken geweest, maar ik kom allemaal verschillende sensoren en types tegen. Zijn er hier mensen met ervaring met een relatief betrouwbare oplossing? Naar wat ik lees werkt een hydrostatische sensor het best. Ik wil dit bij voorkeur gebruiken met ESPhome, maar als andere software hiervoor beter geschikt is, dan is dat verder prima.

Ik zit er wel even mee hoe ik moet berekenen hoe veel liter er in de tank zit aangezien het geen nette vierkante bak is. Heeft iemand dit eerder gedaan?
je kan een "dual use" systeem gebruiken bv een peilstok in een aparte buis met onderin een stuk schuim (iets wat de stok omhoog duwt, op die stok plak je magneetjes. ernaast zet je in een waterdichte buis om de x cm een hall effect (magneet sensor) ..

Naarmate de tank vult zal 1 of meerdere sensors een x waarde registeren (stok gaat omhoog) hoe meer sensors iets uitlezen hoe voller de tank. daarnaast heb je ook nog een manuele aflees mogelijkheid als de techniek je in de steek laat.

hoeveel water erin zit ? pff goed meten en opdelen in vierkante blokken daar een volume berekening overheen gooien excel is daar heel goed in.

btw als je ingraaft zorg wel dat je een voor/na filter hebt oid zodat je geen slib onderin je ingegraven ton hebt tzt . en je kan een flowmeter gebruiken om te zien wat erin/eruit gaat bij benadering ..
gastje01 schreef op woensdag 12 april 2023 @ 22:44:
Dan schijn je last te kunnen hebben van reflecties die de metingen beïnvloeden? Ook vraag ik me af hoe goed zo'n sensor tegen water kan. Zo was ik op op een hydrostatische sensor gekomen, die meet hoeveel water er 'boven' de sensor zit, behoorlijk waterdicht dus.

Ik kan alleen niet voor veel praktijkvoorbeelden vinden van mensen die dit ook gedaan hebben.
Dit dus .. vandaar de hall effect oplossing kan wellicht "lastig" zijn om te bouwen maar 1maal werkend is dit ook redelijk "foolproof" te maken ..

je kan de uitslag ook verkleinen door een soort "wip" met een verschoven draaipunt maar dat is aan jou.

[ Voor 17% gewijzigd door vso op 12-04-2023 22:50 ]

Tja vanalles

Pagina: 1 ... 72 ... 80 Laatste