NEWS
Ferraris Zähler mit TCRT5000 und esp8266
-
@eisbaeeer Hier noch mein log vom buid, vielleicht siehst du nochwas. Ich bin mir unsicher, ob da alles okay verlaufen ist. Ist allerdings ohne vorheriges 'clean'.
so@soso ~/workspace/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000/source/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000 master ● ? ⍟1 pio run Processing nodemcuv2 (platform: espressif8266@3.0.0; board: nodemcuv2; framework: arduino) -------------------------------------------------------------------------------------------------------------------------------------------------------------------- Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html PLATFORM: Espressif 8266 (3.0.0) > NodeMCU 1.0 (ESP-12E Module) HARDWARE: ESP8266 160MHz, 80KB RAM, 4MB Flash PACKAGES: - framework-arduinoespressif8266 3.30000.210519 (3.0.0) - tool-esptool 1.413.0 (4.13) - tool-esptoolpy 1.30000.201119 (3.0.0) - toolchain-xtensa 2.100200.0 (10.2.0) LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Running npm ci... npm <command> Usage: npm install install all the dependencies in your project npm install <foo> add the <foo> dependency to your project npm test run this project's tests npm run <foo> run the script named <foo> npm <command> -h quick help on <command> npm -l display usage info for all commands npm help <term> search for help on <term> npm help npm more involved overview All commands: access, adduser, audit, bin, bugs, cache, ci, completion, config, dedupe, deprecate, diff, dist-tag, docs, doctor, edit, exec, explain, explore, find-dupes, fund, get, help, hook, init, install, install-ci-test, install-test, link, ll, login, logout, ls, org, outdated, owner, pack, ping, pkg, prefix, profile, prune, publish, rebuild, repo, restart, root, run-script, search, set, set-script, shrinkwrap, star, stars, start, stop, team, test, token, uninstall, unpublish, unstar, update, version, view, whoami Specify configs in the ini-formatted file: /home/so/.npmrc or on the command line via: npm <command> --key=value More configuration info: npm help config Configuration fields: npm help 7 config npm@8.1.4 /usr/local/lib/node_modules/npm Running npx browserslist@latest --update-db... Entering npm script environment at location: /home/so/workspace/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000/source/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000/.pio/libdeps/nodemcuv2/ESP8266 IoT Framework/scripts Type 'exit' or ^D when finished Running npm run build... npm <command> Usage: npm install install all the dependencies in your project npm install <foo> add the <foo> dependency to your project npm test run this project's tests npm run <foo> run the script named <foo> npm <command> -h quick help on <command> npm -l display usage info for all commands npm help <term> search for help on <term> npm help npm more involved overview All commands: access, adduser, audit, bin, bugs, cache, ci, completion, config, dedupe, deprecate, diff, dist-tag, docs, doctor, edit, exec, explain, explore, find-dupes, fund, get, help, hook, init, install, install-ci-test, install-test, link, ll, login, logout, ls, org, outdated, owner, pack, ping, pkg, prefix, profile, prune, publish, rebuild, repo, restart, root, run-script, search, set, set-script, shrinkwrap, star, stars, start, stop, team, test, token, uninstall, unpublish, unstar, update, version, view, whoami Specify configs in the ini-formatted file: /home/so/.npmrc or on the command line via: npm <command> --key=value More configuration info: npm help config Configuration fields: npm help 7 config npm@8.1.4 /usr/local/lib/node_modules/npm Found 41 compatible libraries Scanning dependencies... Dependency Graph |-- <ArduinoJson> 6.18.5 |-- <ESP8266 IoT Framework> 1.9.0 | |-- <ArduinoJson> 6.18.5 | |-- <ESP8266WiFi> 1.0 | |-- <ESP8266HTTPClient> 1.2 | | |-- <ESP8266WiFi> 1.0 | |-- <DNSServer> 1.1.0 | | |-- <ESP8266WiFi> 1.0 | |-- <EEPROM> 1.0 | |-- <LittleFS(esp8266)> 0.1.0 | |-- <ESP Async WebServer> 1.2.3 | | |-- <ESPAsyncTCP> 1.2.2 | | |-- <Hash> 1.0 | | |-- <ESP8266WiFi> 1.0 | | |-- <ArduinoJson> 6.18.5 |-- <ESP Async WebServer> 1.2.3 | |-- <ESPAsyncTCP> 1.2.2 | |-- <Hash> 1.0 | |-- <ESP8266WiFi> 1.0 | |-- <ArduinoJson> 6.18.5 |-- <PubSubClient> 2.8.0 |-- <LittleFS(esp8266)> 0.1.0 Building in debug mode warning: Calling missing SConscript without error is deprecated. Transition by adding must_exist=False to SConscript calls. Missing SConscript 'scripts/preBuild.py' File "/home/so/.platformio/penv/lib/python3.8/site-packages/platformio/builder/main.py", line 188, in <module> Retrieving maximum program size .pio/build/nodemcuv2/firmware.elf Checking size .pio/build/nodemcuv2/firmware.elf Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" RAM: [====== ] 55.3% (used 45320 bytes from 81920 bytes) Flash: [========= ] 89.3% (used 932264 bytes from 1044464 bytes) =================================================================== [SUCCESS] Took 6.66 seconds ===================================================================
-
@so Dein Log sieht doch erstmal gut aus. Ich sehe keinen Fehler. Was funktioniert nicht?
-
-
@so ok, da fehlt tatsächlich der Webserver. Da hat das npm ci nicht funktioniert. Ich teste das morgen mal bei mir. Hab bisher nur auf Windows compiliert.
-
@so Also ich habe das gleiche Phänomen. Scheinbar compiliert er die Webseite mit den Configuration und dashboard items nicht. Das "sudo npm ci" läuft bei mir durch. Kannst du diesbezüglich ein issue aufmachen? https://github.com/maakbaas/esp8266-iot-framework/issues
Gruß Lars -
@eisbaeeer
Okay, hab ein Issue aufgesetzt. -
Hallo zusammen,
ich habe jetzt echt mal eine Frage : Wie zum Geier funktioniert dieses Ding ?
Ich habe zuerst versucht, das ganze mit der Lichtschranke in Gang zu bekommen. Leider funktioniert das bei meinem Zähler überhaupt nicht und ich werde wohl ohnehin einen Digitalen bekommen.Jetzt habe ich noch einen weiteren Zähler, der hat einen Potenzialfreien S0 Kontakt per Optokoppler. Nun hätte ich versucht, statt des Digital Pins der Lichtschranke das Signal des S0 Kontaktes zu verwenden. Ich Schickte 3,3V zum S0 Eingang vom ESP und gehe vom S0 Ausgang auf den D1 Pin. Aber die Impulse werden nicht erkannt. Auch bringt ein Pulldown nix. Der Pulse Graph macht was er will.
Von der Lichtschranke kommt doch auch nur ein 3,3V Signal oder ein 0V per Pulldown (auf der Lichtschranke)Oder liege ich da falsch.
Lg Chris
-
@chr2002 Hallo Chris. Die Eingänge werden auf Ground gezogen. Versuche mal die Eingänge auf GND zu Brücken, dann solltest du einen Impuls bekommen. Den S0 kannst du mit der Schaltung auch verwenden.
Gruß Lars -
@eisbaeeer Das habe ich auch probiert. Also erst per Pullup gegen 3,3V und GND auf D1.
Dann auch mal ohne PullUP. Der Impuls geht mal auf Low, mal nicht. Und manchmal bleibt er auch auf Low, obwohl die Brücke zu gnd raus ist und der 10k Ohm Pullup gegen 3,3V drin ist. -
Oder ist da irgendein check drin, der eine Wartezeit zwischen den Impulsen vorraussetzt. Ich wenn ich eine ganze weile Warte, gibts einen Flankenwechsel. Wenn ich zu kurz hintereinander die Brücke gegen GND mache, passiert nichts. Danach geht aber iwie erstmal gar nichts mehr, auch wenn ich viel später wieder die Brücke setze.
-
Ich bekomme den Graphen nichtmal zuverlässig auf LOW oder High, wenn ich eine Brücke setze. Da wird irgendwas wohl noch mit einbezogen. Hiermit geht also kein S0.
-
@chr2002 Ähm ja, die Entprellzeit. Stell die mal niedriger, dann sollte das klappen.
-
@eisbaeeer Auch schon probiert Leider ohne Erfolg. Der Graph macht immernoch was er will.
-
Ich gebs auf. Hier ist was faul. ESPeasy zählt aber vernünftig. Keine Ahnung, am ESP liegt es nicht. Mit der Lichtschranke kommen auch keine anständigen Impulse zustande. Sehr seltsam. Vllt ist die 0.92 verbuggt ? Kann das sein ?
Ich lasse das sein. Und werde eine anständige Wandlermessung hinter den Zähler packen Von dort per Modbus weiter.
-
@Eisbaeeer
Hallo Lars,
ich bin mal ein bisschen durch deinen Code gegangen.Ich baue gerade einen Ferraris Zähler mit Analogauswertung via Maxim MAX127 ADC mit 12Bit mit "programmierbarer" Hysterese auf der Basis deines Codes. Ich bin auch bei 80% des Projekts
Grund:
Ich hatte in der Vergangenheit das Problem das sich zwei ESP Wemos D1 nach 3-4 Monaten nicht mehr gemeldet haben. Nach neu flashen ging es immer so ein paar Wochen und später meldete sich der ganz Kram auch nach Neustart nicht.Wenn ich das ja soweit verstanden habe wir ja quasi in den "EEPROM" geschrieben den der ESP aber nicht hat und das durch den Flash emuliert wird.
Die macht der ja über die beiden JSON "Strukturen" dash und configuration .
Soweit ich das jetzt Überblicke wird bei jedem Impuls und neuem kW und bei der MQTT übertragen daten in den Flash geschrieben.
Somit haben wir ja nach 2-3 Monaten die sicheren Schreibzyklen von (100.000) mal erreicht und haben das Risiko eines Speicherschädigung.
Bei einer Schreibzeit alle 30s wären es 720 Zyklen am Tag. 100.000/720 = 138,8 Tage.
Oder liege ich mit den häufigen Schreibzyklen auf dem falschem Weg?Ich habe die Quellen bzw die Beschreibung der Libs für des Dashboard.h und configuaration.h leider nicht auf Anhieb gefunden.
Aber vielleicht liebe ich da auf dem Holzweg.Ich habe den Sinn der ProcInput1-4() Routinen nicht ganz verstanden mit array und modulo. Wozu hast du die mit im Programm?
Gruß
DerDani -
@dan-master sagte in Ferraris Zähler mit TCRT5000 und esp8266:
@Eisbaeeer
Hallo Lars,
ich bin mal ein bisschen durch deinen Code gegangen.Wenn ich das ja soweit verstanden habe wir ja quasi in den "EEPROM" geschrieben den der ESP aber nicht hat und das durch den Flash emuliert wird.
Die macht der ja über die beiden JSON "Strukturen" dash und configuration .
Soweit ich das jetzt Überblicke wird bei jedem Impuls und neuem kW und bei der MQTT übertragen daten in den Flash geschrieben.
Somit haben wir ja nach 2-3 Monaten die sicheren Schreibzyklen von (100.000) mal erreicht und haben das Risiko eines Speicherschädigung.
Bei einer Schreibzeit alle 30s wären es 720 Zyklen am Tag. 100.000/720 = 138,8 Tage.
Oder liege ich mit den häufigen Schreibzyklen auf dem falschem Weg?Ja, das EEPROM wird emuliert und im flash gespeichert. ABER ich speichere nur bei vollen KWh ab. Ich habe dir mal die Stellen markiert:
Schau mal im Code nach "saveconfig", nur dann wird gespeichert.
Gruß Lars -
@dan-master sagte in Ferraris Zähler mit TCRT5000 und esp8266:
Grund:
Ich hatte in der Vergangenheit das Problem das sich zwei ESP Wemos D1 nach 3-4 Monaten nicht mehr gemeldet haben. Nach neu flashen ging es immer so ein paar Wochen und später meldete sich der ganz Kram auch nach Neustart nicht.
Gruß
DerDaniWie macht man das denn?
btw....Ich nutze aber eine eigens compillierte und abgespeckte ESPeasy Version für den Counter.....mit 160 MHz Tacktung
Von 9 D1 Mini und 2 NodeMCU ist mir bis Dato noch keiner abgeraucht.
Alle mit Tasmota und ESPeasy geflasht....einer ist noch im Testmode mit ESPhome.Irgendwas muss ich wohl falsch machen......
-
Wemos D1 Mini, Beispiel mit selbstgefrickeltem Programm:
Betriebszeit: 1241 17:01:49 (Tage Std:Min:Sek)
Man bekommt viele Clones mit unterschiedlicher Qualität.
Also erst mal die Lötvebindungen zwischen Modul und Platine inspizieren und oft einfach alle nachlöten.
Dann IMMER noch einen 1000µF Kondensator parallel zu den 3.3V und meist auch einen parallel zu den 5V. Im Notfall noch einen 10µF Cerco dirakt an die 3.3V am Modul zum Gehäuse.
Dann laufen die jahrelang stabil.
Was manchmal vorkommt: Wenn die Funkverbindung schlecht wird, gibt es bei manchen Programmen Neustarts.
Einen ESP32 habe ich tatsächlich verloren. Der war immer nach einigen Stunden weg.
Ansonsten laufen die 8266 D1 Mini recht rund. Mit selbstgefrickelter SW, ESPEasy, ESPHome, Tasmota. -
@klassisch , ich bestelle auch immer beim Händler des Vertrauens....hier in DE.
....auch mein China Mann schickt kostenlosen Ersatz. Das hatte ich mal bei einem CC1001....der schickte mir dann gleich drei Stück nach.
Da habe ich bei ihm eine glückliche Hand gehabt..... -
Inzwischen habe ich eine -43 dBm Verbindung zum Zählerschrank.....
Da brauche ich mir keine Sorgen machen.....