Der ESP32-Faden

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Der ESP32-Faden

Beitrag von Kuddel »

Ich schreibe hier statt im Arduino-Faden, weil das doch etwas anders ist.
Ich habe diese total einfach zu programmierenden ESP32 gekauft und stelle fest, das das total fies ist. Nix mit einfach. Die Bibliotheken legt er überall ab, zumindest wollte ich ein Programm auf meinem Server ablegen, und die Arduino-Software hat alle Bibliotheken verloren. Egal, habe ich (fast) wieder hinbekommen.

Mein eigentliches Problem ist der interne Temperatursensor, den ich nicht auslesen kann. Kriege ich einfach nicht hin. Scheinbar hat nicht jede Version des ESP32 einen. Egal. Flugs einen LM75 rangespaxt, und Zack-> NIX. Es will einfach nicht.
Ich muss dazu sagen, dass ich das Heltec Teil gekauft habe:
https://heltec-automation-docs.readthed ... e_log.html
Hat ein Display. Habe zwei Aussagen:
Angeblich sind die SDA+SCL Pin21+22 nicht vom Display belegt.
Angeblich sind die SDA+SCL Pin21+22 doch vom Display belegt.
Das Display wird dunkler, wenn ich "Wire.begin();" in den Code schreibe. Laut Oszi sind dort dauern 3,3 Volt anliegend. Egal ob mit oder ohne Pullup.

Frage: Hat jemand schon mal einen LM75 an den ESP32, insbesondere an das Heltec mit Display zum laufen bekommen? Verzweifle geraed.
Danke und Gruß
Kuddel
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Hallo,

Die LM75 neigen dazu bei unsauberer Versorgungsspannung sich auf zu hängen und blockieren damit den kompletten Bus.
Ich glaube Finger hatte das Problem auch schon mal und hat die Versorgungsspannung schaltbar gemacht.

Ich verwende statt den LM75 den TC77.

Grüße Jan
Benutzeravatar
Finger
Administrator
Beiträge: 7392
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: Der ESP32-Faden

Beitrag von Finger »

Jup, die interne Statemachine kann sich aufhängen, dann sind SCL oder SDA auf Low gezogen. Ist das hier der Fall?
Mach doch sonst I2C per Bitbang. Gibts auch ne Lib für und der Traffic ist gering bei dem Sensor...
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Die beiden Puns sind dauerhaft auf High. Da kommt nix an. Gar nix.Nüscht.
Wenn ich im Code die Wire.h aktiviere, dann wird das Display dunkler. Lsut Datenblatt ist das Displsy nicht mit Pin 21 und 22 verbunden.

Als Alternative sehe ich derzeit einen 500g Hammer und das Anschreien des Monitors.
Benutzeravatar
zauberkopf
Beiträge: 9481
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Der ESP32-Faden

Beitrag von zauberkopf »

Als Alternative sehe ich derzeit einen 500g Hammer und das Anschreien des Monitors.

Oder Tasmota !
Gut.. jetzt ohne Display.. aber Du hast dann ein Thermometer mit Homepage...
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Kuddel hat geschrieben: So 18. Okt 2020, 15:54 Die beiden Puns sind dauerhaft auf High. Da kommt nix an. Gar nix.Nüscht.
Wenn ich im Code die Wire.h aktiviere, dann wird das Display dunkler. Lsut Datenblatt ist das Displsy nicht mit Pin 21 und 22 verbunden.

Als Alternative sehe ich derzeit einen 500g Hammer und das Anschreien des Monitors.
Poste mal bitte deinen Initialisierungscode.

Grüße Jan
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Hier die ersten 16 Zeilen:

Code: Alles auswählen

#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>
#include "Arduino.h"
#include "heltec.h"
#include "images.h"

#include <Temperature_LM75_Derived.h>

#include <Wire.h>
Generic_LM75 temperature1(0x48);
Generic_LM75 temperature2(0x49);

Hier das Setup:

Code: Alles auswählen

void setup(void) {
  //Temperaturkram:
  Wire.begin();
Sobald "Wire.begin" drinsteht, wird das Display gedimmt. I

Und dier das Hauptprogramm:

Code: Alles auswählen

void loop(void) {
  server.handleClient();
   Serial.print("Temperature 1 = ");
  Serial.print(temperature1.readTemperatureC());
  Serial.println(" C");
delay(250);
Es wird immmer -0,5 angezeigt.

Des ESP hat zwei I2C Leitungen, Vielleicht ist das irgendwie anders beschaltet als im Datenblatt beschrieben.
https://resource.heltec.cn/download/WiF ... m_V2.1.pdf
Als nächstes würde ich zum test entweder das Display ausschalten oder einanderes Board ohne Display nehmen.
Gruß
Kuddel
Edit: Das andere vorliegende Board hat leider keine I2C Anschlüsse ausgeführt.
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Kuddel hat geschrieben: So 18. Okt 2020, 18:22 Hier das Setup:

Code: Alles auswählen

void setup(void) {
  //Temperaturkram:
  Wire.begin();
Der Code ist nicht mehr ganz richtig in aktuellen Port von ESP32 werden die Datenpins mit -1 und die Datenrate mit 0 initialisiert.
Es sollte heißen:

Code: Alles auswählen

void setup(void) {
  //Temperaturkram:
  Wire.begin(21, 22, 100000);
Es kann sein das dein Display-Driver die Pins nachträglich konfiguriert. Der LM75-Driver tut dieses jedoch nicht.

EDIT: Bei vielen Bordkonfigurationen sind die I2C-Busse vorkonfiguriert, jedoch nicht beim Standard ESP32 Modul.

Grüße Jan
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Vielen Dank. Hat leider auch nicht funktioniert.
Benutzeravatar
AlexVR6
Beiträge: 539
Registriert: Sa 6. Dez 2014, 14:35
Wohnort: Angelroda

Re: Der ESP32-Faden

Beitrag von AlexVR6 »

Warum "Serial.print(temperature1.readTemperatureC());"?

Ich denke "Serial.print(temperature.readTemperatureC());" sollte funktioniere.
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Port-PIN kaputt?

Ein minimal Programm was die Pins wackelt funktioniert?

Oder schicke mal ein Bild von den Aufbau.

Grüße Jan
Benutzeravatar
Heaterman
Beiträge: 3990
Registriert: Fr 28. Jun 2013, 10:11
Wohnort: Am Rand der Scheibe, 6 m unter NN

Re: Der ESP32-Faden

Beitrag von Heaterman »

Mit dem Schnipsel hier hab ich das mal vor längerer Zeit an einem blanken ESP32 ohne Display getestet, hat funktioniert:

http://www.esp32learning.com/code/esp32 ... xample.php

Wenn ich irgendeine ESP-Lösung suche, ist das hier immer die erste Adresse:

https://randomnerdtutorials.com

Das erste Projekt war hier die DS18B20-Herde, die meine Heizung und die Solaranlage an das Smart Home Display denunizert ... Sieht dann so ähnlich aus wie in Deinem YT-Video.
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Erstmals habe ich endlich am Oszi ein Signal bekommen. Ich hatte einen I2C-Scanner laufen lassen, dabei ist das Display nicht an:

https://github.com/espressif/arduino-esp32/issues/977

Das Ergebnis ist allerdings schlimm:

Scanning I2C Addresses Channel 1
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 .. 12 13 14 15 16 17 .. 19 1A 1B 1C 1D 1E 1F
20 21 .. 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 .. 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E ..
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Scan Completed, 91 I2C Devices found.


Er findet entweder eine sehr große Anzahl an angeschlossenen I2C Geräten, oder gar keine. Oder irgend etwas dazwischen. Ohne dass ich den Grund nachvollziehen kann. Mit angeschlossenem Oszi findet er oft viel, aber auch nicht immer. Auf Adresse 48 befindet sich der Temperatursensor, kann auch auf 49 oder 4A sein, weil ich vorkonfektionierte LM75 habe, die ich für ein anderen Projekt mit dem guten alten Atmel nutze.
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Elektronik als Hobby zu verschenken.......
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Das Mistding findet übrigens nicht mal das Display, was ja fest verbaut ist.
andreas6
Beiträge: 4149
Registriert: So 11. Aug 2013, 15:09

Re: Der ESP32-Faden

Beitrag von andreas6 »

Entweder ist der Bus nicht richtig abgeschlossen, das Tempo zu hoch oder die Scannersoftware taugt nichts. Vor vielleicht 20 Jahren hatte ich das I2C am Druckerport des Pc realisiert und das hat vorzüglich geklappt. Damit wurden auch nur die angeschlossenen Geräte gefunden und ich konnte dann sehr schön damit spielen. Bei Dir muss irgend etwas grundlegendes faul sein.

MfG. Andreas
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Den angeblich vorhandenen internen Temperatursensor gibt es übrigens scheinbar gar nicht, nicht mehr, oder sonstwie.

Hat jemand eine Idee, wie ich einfach die Temperatur bestimmen kann, außer Analogsensor?
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Nachtrag: Gerade in den Tiefen des Internets gefunden:

Als ich nun das erste mal den Sender compiliert und gestartet habe, wollte ich zunächst die ermittelten Sensorwerte des BME280-Sensors kontrollieren. Im seriellen Monitor wurden mir aber leider entweder 100, 0, oder NaN angezeigt. Auch mit alternativen Libaries oder einer Adresse des Sensors wurden keine brauchbaren Messwerte angezeigt. Nach langer Recherche bin ich dann auf einen Artikel gestoßen, in dem auch ein BME280 am Heltec ESP32-Board betrieben wurde, und ebenfalls keine Messwerte ermittelt werden konnten. Der Author des Artikels veröffentlichte freundlicherweise seine Lösung des Problems, welche ich hier in meinem Artikel übernehme:

https://www.instructables.com/id/The-Su ... -LoRa-Wit/

Der Grund für die fehlerhaften Messwerte ist die Pin-Belegung des Heltec-Boards. Die Pins SDA und SCL sind im Port-Mapping auf 21 und 22 gelegt. Die Adafruit Bibliothek unterstützt dies aber aber nicht. Wir müssen daher die Belegung, wie unten gezeigt, anpassen:

C:\Users\<Username>\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.4\variants\wifi_lora_32_V2\

pins_arduino.h

Folgende Anpassungen müssen durchgeführt werden:


Ja, ich hasse Heltec!!
virtexultra
Beiträge: 127
Registriert: So 9. Dez 2018, 11:30

Re: Der ESP32-Faden

Beitrag von virtexultra »

Hallo,


wenn du mir mal das komplette Projekt und/oder das Binary zukommen lässt kann ich dir die I2C Funktion deines Programms bzw. der Scannersoftware validieren. Ich habe hier ein paar ESP32-DEV-04 (ESP-Wrooms mit UART-USB und Reset Schaltung) rumliegen - diese sind relativ ähnlich zu dem Board - falls notwendig bastle ich auch noch so ein OLED dran, der SSD1306 ist ja Std.

Der interne Temperatursensor ist in den HW Revisionen seit ca. 2018 nicht mehr spezifiziert und liefert auf meinen Boards überwiegend den Wert von 128 °F zurück.

Ein mögliches Problem mit I2C könnte der Heap sein - alle I2C Funktionen von Espressif nutzen diesen ausgiebig, ich gehe aber davon aus das die Arduino Umgebung das richtig initialisiert.

EDITH: Ich sehe es gibt eine andere Spur
Benutzeravatar
Später Gast
Beiträge: 1680
Registriert: Di 5. Apr 2016, 22:03
Wohnort: Karlsruhe
Kontaktdaten:

Re: Der ESP32-Faden

Beitrag von Später Gast »

Kuddel hat geschrieben: Mo 19. Okt 2020, 18:48 Hat jemand eine Idee, wie ich einfach die Temperatur bestimmen kann, außer Analogsensor?
Mit der Propanflöte draufhalten, bis Bauteile runterpurzeln. Dann hat das Teil mindestens 231°C. :twisted:

SCNR
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Da ich bei der CAM-Version des ESP32 gar keinen I2C-Abgriff habe, werde ich die Temperatur doch Analog messen. Ist auch viel einfacher.
Zum Testen mal über zwei 10k Widerstände als Spannungsteiler einen Eingang gemessen. Müsste ja eine konstante Zahl ergeben:


Temperature 1 = 1807 C
Temperature 1 = 1865 C
Temperature 1 = 1859 C
Temperature 1 = 1868 C
Temperature 1 = 1862 C
Temperature 1 = 1867 C
Temperature 1 = 1866 C
Temperature 1 = 1869 C
Temperature 1 = 1866 C
Temperature 1 = 1871 C
Temperature 1 = 1846 C
Temperature 1 = 1867 C
Temperature 1 = 1904 C



So viel rauschen!?!?!?!?!


Der Tread kann geschlossen werden. Für immer!!
*ESPimhohenBogenwerf*
andreas6
Beiträge: 4149
Registriert: So 11. Aug 2013, 15:09

Re: Der ESP32-Faden

Beitrag von andreas6 »

Die Schaltung zur Hardware wirft auch nur Rätsel auf. Ich habe selten eine so miserabel beschriftete Schaltung gesehen. Da stehen zu viele Zahlen an Schaltungspunkten ohne Erklärung herum. So etwas würde ich mir nicht antun. Das Kreuzworträtsel der Tageszeitung ist um Längen informativer. Viel Spaß beim weiteren Forschen. Ein großes Blatt Papier und ein Durchgangsprüfer sind hier angesagt.

MfG. Andreas
Benutzeravatar
Finger
Administrator
Beiträge: 7392
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: Der ESP32-Faden

Beitrag von Finger »

Komm her mit dem Teil, zusammen kriegen wir das hin!
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Finger hat geschrieben: Mo 19. Okt 2020, 20:04 Komm her mit dem Teil, zusammen kriegen wir das hin!
Vielen Dank für das Angebot, leider ist Autofahren gerade noch keine Option. Meine Augen übermittel mir noch zu viele parallelversetzte Bilder ;-)

Ich werde das jatzt mit dem analogen Eingang machen. Das Ergebnis zeige ich dann hier.
Das Cam-Modul hat eh kein I2C, daher geht es auch nicht anders.
andreas6
Beiträge: 4149
Registriert: So 11. Aug 2013, 15:09

Re: Der ESP32-Faden

Beitrag von andreas6 »

Natürlich bekommt man alles irgendwie hin. Wenn allerdings schon die Dokumentation des Herstellers grober Pfusch ist, fasst man solchen Murks gar nicht erst an. Jedenfalls sehe ich das so. Und lasse dann die Finger davon. Zu jedem Produkt gehört eine gute und lesbare Dokumentation. Fehlt die, will ich das nicht mal geschenkt haben. Ein Fall für die Tonne.

MfG. Andreas
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

andreas6 hat geschrieben: Mo 19. Okt 2020, 20:53 Natürlich bekommt man alles irgendwie hin. Wenn allerdings schon die Dokumentation des Herstellers grober Pfusch ist, fasst man solchen Murks gar nicht erst an. Jedenfalls sehe ich das so. Und lasse dann die Finger davon. Zu jedem Produkt gehört eine gute und lesbare Dokumentation. Fehlt die, will ich das nicht mal geschenkt haben. Ein Fall für die Tonne.

MfG. Andreas
Sehe ich genau so. Dürfte an der Firma Heltec liegen. Der ESP32 ist sonst wohl recht gut, aber sowas nervt. Der ADC2 ist auch nicht an seinem richtigen Ort. Laut meinem Datenblatt ist er ansprechbar, funzt aber einfach nicht.
Ich werde meine 3 Boards für einen lustigen Zweck vertüddeln, und dann für immer begraben. Bis es eine gute Alternative gibt.
sysconsol
Beiträge: 4059
Registriert: Fr 8. Jul 2016, 17:22

Re: Der ESP32-Faden

Beitrag von sysconsol »

Aber es war sooo schön billig, gell?

Das Problem mit dem Rauschen des ADC hat man auch in der Forschung gehabt.
Ich habe das noch nicht untersucht, allerdings habe ich die Befürchtung, dass ich das demnächst tun dürfen muss. :roll:
Und es wird nicht alles an der Powerbank (frag mal einer sein Oszi dazu) und den fehlenden Abblockkondensatoren der Peripherie liegen.

Bei so einer Temperatursache kann man aber auch über die Zeit gehen.
Wie genau muss das denn werden?
virtexultra
Beiträge: 127
Registriert: So 9. Dez 2018, 11:30

Re: Der ESP32-Faden

Beitrag von virtexultra »

andreas6 hat geschrieben: Mo 19. Okt 2020, 19:40 Da stehen zu viele Zahlen an Schaltungspunkten ohne Erklärung herum.
Das sind die jeweiligen GPIO Nummern. Da hätte man natürlich GPIO_ davor schreiben können.

Wenn ich das aus dem Schaltplan/Pinout richtig entnehme ist dort DAC1 und DAC2 vertauscht.

Ich verstehe nicht wie der ADC2 nicht an seinem richtigen Ort sein kann. Dieser ist intern gemuxed und mit den GPIO-Nr. 0, 2, 4, 12 - 15 und 25 - 27 verbunden. Achtung - dieser ist nur nutzbar wenn kein Wifi aktiviert ist. Alternativ der ADC1, verbunden mit GPIO-Nr. 32 - 39.

Der ADC ist nicht wirklich berauschend - 10 Bit sollten aber nutzbar sein - Er hat eine ziemlichen Kennlinienknick im oberen Bereich, also diesen besser nicht nutzen. Alternativ kann man noch etwas mit der Dämpfung spielen und somit den Spannungbereich anpassen. Espressif empfiehlt folgende Spannungsbereiche: Dämpfung 0, 100-950mV; 2.5, 100-1250mV; 6, 150-1750mV; 11, 150-2450mV.
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Kuddel hat geschrieben: Mo 19. Okt 2020, 18:58 Der Grund für die fehlerhaften Messwerte ist die Pin-Belegung des Heltec-Boards. Die Pins SDA und SCL sind im Port-Mapping auf 21 und 22 gelegt. Die Adafruit Bibliothek unterstützt dies aber aber nicht.
Das ist beim ESP32 kann man den I2C-Hardware-Bus intern auf fast jedem beliebigen Pin routen, mit Ausnahme der Analog-Pins und der es SPI-Flash.
Die feste Zuordnung ist nur zu berücksichtigen wenn man den RTC-Coprozessor verwendet. Das ist ein völlig eigenständiger CPU der sich einige Peripherie und Speicher mit den beiden Haupt-CPUs teilt.

Bei dem Müll auf den I2C-Bus kann ich mich nur einem Vorredner anschließen das die HW defekt ist.

Grüße Jan
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Ich habe ja nun als Termperatursensor einen guten alten NTC genommen und mit einem 10µF Kondensator geglättet, Die Werte sind zwar extrem ungenau, aber damit kann ich leben. Um den Temperaturverlauf auf der erzeugten Webseite anzuzeigen, nutze ich html-Canvas-Objekte bzw. Linien. Soweit alles gut.

Hier der entsprechende Code-Ausschnitt. Die befüllung von Buffer2 habe ich nicht mitgeschrieben, ist hierfür unwichtig.

Code: Alles auswählen

char Buffer1[4200];
char Buffer2[1200];
  
for(i=tempzahler; i<20; i++) {
  snprintf(BufferY, 100,"tx.lineTo(%d,%d);",i+10,(240-tempwert[i]))*2;
  strcat(Buffer1, BufferY);

server.send(200, "text/html", strcat(Buffer1, Buffer2))
Das funktioniert, solange ich nur 20 Temperaturen anzeige ( i<20) . Wenn ich aber 180 Temperaturen anzeigen lassen will, kommt nix mehr an. Wohl, weil da einen Längenbeschränkung des Char-Arrays ist.

Frage: Wie kann ich eine größere Webseite erzeugen?
Benutzeravatar
Tjareson
Beiträge: 357
Registriert: Fr 3. Jul 2015, 05:01

Re: Der ESP32-Faden

Beitrag von Tjareson »

Das Theater mit eigener Implementierung auf ESP habe ich auch 2-3 Jahre gemacht. Hatte mir sogar mal eigene Platinen für die Module machen lassen. Schlussendlich bin ich auf die Tasmota-Firmware umgestiegen, die einfach betriebssicherer ist und relativ viel Peripherie unterstützen.
Letztlich nutze ich die sehr billigen SONOFF-Module (bestelle ich meistens direkt bei itead in China) die dann auch gleich ein 220V Netzteil für $5 oder so im Gehäuse dabei haben. Dafür bekommt es selber nicht zusammengelötet.
Die werden bei mir u.a. als Lichtschalter für Lampen usw. genutzt. Will ich irgendwo Temperaturen auslesen, schließe ich einfach so viele DS18B20 Sensoren an das Modul an wie ich will, und das Teil erkennt jeden Sensor einzeln und zeigt mir die Temperatur an. Abhängige Schaltvorgänge lassen sich bedarfsweise auch gleich mit rules implementieren, falls man das nicht zentral steuern will.
(Daneben geht auch übertragung per mqtt usw. für weitere Integration mit bspw. node red)
Hat u.a.den Nebeneffekt, dass ich hier im Haus eigentlich die Temperatur in jedem Raum kenne. :-)

Besten Gruß
Tjareson
bild.png
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Es scheint, mit diesem Trick zu klappen:
https://github.com/esp8266/Arduino/issues/3225

Gruß
Kuddel
Nachtrag: Das war es doch nicht. irgendwo ist da noch was im argen. Bekomme leider keine Fehlermeldung, sondern nur "keine Webseite". Ich mag diesen Kram langsam nicht mehr.
MSG
Beiträge: 2182
Registriert: Fr 9. Nov 2018, 23:24
Wohnort: Nähe Dieburg

Re: Der ESP32-Faden

Beitrag von MSG »

@Kuddel wo aus welcher Bibliothek kommt denn das Server. Send() her?

Ist ja irgendwie doof, die Ausgabe erst in einem Buffer zu sammeln und dann abzuschicken. Eventuell kann man das aufteilen. So dass Kopf, in der Schleife dann die Ausgaben direkt gesendet und dann der Fuß der Seite gesendet wird?
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Kuddel hat geschrieben: Mo 2. Nov 2020, 10:17 Frage: Wie kann ich eine größere Webseite erzeugen?
Hallo,
also ich habe das so gelöst, dass ein statische Website in SPIFFS-Speicher liegt, samt Konfiguration.
Diese wird von AsyncWebServer ausgeliefert und auch die REST-Schnittstelle läuft darin.
Jetzt braucht man nur noch via (nativ) Java-Script oder jQuery die Daten aus der REST runterladen und die Website erwacht zum Leben.

Der Vorteil ist man hat eine fast vollständige Entkoppelung von Model und Business-Logik und der View.
Zu dem kann man einen Großteil der Website statisch vorprogrammieren und hat es auch in der Codeversionierung einfacher.

PS. AsyncWebServer ist wichtig das nicht alle Browser die Daten sequenziell runterladen. Chrome ist da ein Sonderfall. Es will bis zu 8 Dateien parallel runterladen.
Der Normale WebServer kann jedoch nur eine ausliefern und verwirft die anderen 7. Firefox tut dieses auch, jedoch werden alle fehlgeschlagenen Dateien anschließend noch einmal probiert sequenziell herunterzuladen.

Grüße Jan
Fischjoghurt
Beiträge: 271
Registriert: Di 13. Aug 2013, 16:19

Re: Der ESP32-Faden

Beitrag von Fischjoghurt »

Hallo

Welche Entwicklungstools verwendet ihr eingentlich?
Ich verwendet Arduino Sketch. Finde es grotten langsam (OK liegt auch ein bisschen am meinen PC) und habe auch viel Ärger mit den Bibliotheken.
Was ist besser und empfehlenswert?

Gruss
Walter Steinchen
Beiträge: 12
Registriert: Mo 2. Sep 2013, 22:37

Re: Der ESP32-Faden

Beitrag von Walter Steinchen »

Ich nutze hauptsächlich VSMicro, also eine Erweiterung zu VisualStudio.
Habe mittlerweile etwa 1 Dutzend Projekte mit dem ESP32 umgesetzt, und bin soweit eigentlich sehr Zufrieden damit.
Nutze oft Module von TTGO .. vor allem solche die schon mit Farbdisplays kommen.
WLAN, viele IO's und jede Menge sonstiger Optionen .., Schnell! und das alles zu einem Spottpreis ... was will man mehr ?
OverTheAir Update, Debugging über's Netz .. will Ich 'ne neue Software auf ein Device im Keller schieben muss Ich mich nicht mal aus dem Sessel Erheben ;-)


Einen Kritikunkt habe Ich, das ist die Langzeitstabilität .. so etwa nach 14 Tagen bleiben die Module gern mal hängen, waum weiss Ich nicht. Der integrierte Watchdog taugt leider nicht weil der aus der Arduino IDE nicht wirklich gut angesprochen werden kann; das würde nur mit dem Espressif SDK funktionieren. Deshalb wird auf alle meine Module ein ATTiny85 der als externer Watchdog dient mit dazugepappt. Das funktioniert logischerweise immer. Wird er nicht mehr gefüttert resetted er den ESP32.
Das Problem haben übrigens die ESP8266 nicht .. da habe Ich Laufzeiten von 1 jahr...

Klar die ADC's sind keine Ausgeburt an Genauigkeit .. aber wer das braucht muss halt einen Externen nehmen, für die meisten Anwendungen reichts.

WLAN ist ein absolutes Muss für die meisten meiner Anwedungen .. schon allein wegen dem OTA ...

Servus
Wurschtel
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Mein Hauptkritikpunkt ist die langsame IDE und schlechte Bibliotheksverwaltung.
Dass er manchmal aussteigt habe ich schon öfters gehört. Für ernste Anwendungen würde ich das Ding niemals einsetzen.

Vielleich probiere ich nochmal Mictopython, ansonsten suche ich eine Alternatuve.
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: Der ESP32-Faden

Beitrag von ch_ris »

Sloeber ist eine Eclipse distro für Arduino. bzw. avr. aber wohl auch esp.
Hier wird die toolchain fertig eingerichtet, im gegensatz zu eclipse+plugins+basteln.
ich finds ganz gut, kannte eclipse aber auch schon vorher.
musste ausprobieren obs dir behagt.
Benutzeravatar
Heaterman
Beiträge: 3990
Registriert: Fr 28. Jun 2013, 10:11
Wohnort: Am Rand der Scheibe, 6 m unter NN

Re: Der ESP32-Faden

Beitrag von Heaterman »

Kuddel hat geschrieben: Mi 4. Nov 2020, 07:38 Mein Hauptkritikpunkt ist die langsame IDE und schlechte Bibliotheksverwaltung.
Dass er manchmal aussteigt habe ich schon öfters gehört. Für ernste Anwendungen würde ich das Ding niemals einsetzen.

Vielleich probiere ich nochmal Mictopython, ansonsten suche ich eine Alternatuve.
Man darf die IDE nicht mit allem aufblasen, was es gibt. Lieber etwas schlanker nur mit den Boards, die man tatsächlich benutzt, und die Examples kann man auch rauswerfen. Dann auch nur Bibliotheken nutzen, die einigermaßen koscher und nicht aus exotischen Ecken gekramt sind (ich hab da meine Erfahrungen mit LED- und Displaytreibern gemacht). Und Bibliotheken kann man für den konkreten Fall auch selber abspecken und da alles rauswerfen, was man nicht braucht. Gutes Beispiel sind die riesigen Displaytreiber-Libraries, die sämtliche Versionen enthalten, von denen man ja nur eine konkret braucht. Und da sind dann auch noch zig Grafikbeispiele drin, die man auch meist nicht benötigt.

Micropython ist tatsächlich eine Alternative. Ich hab da mal mit dem BBC micro:bit angefangen und auch schon versuchshalber einen 8266 an einem BME280 nach Vorlage aus Random Nerd Tutorials bespaßt. Geht, ist stabil und wurde sogar in unserem Journal für eine Veröffentlichung für gut befunden.
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Walter Steinchen hat geschrieben: Di 3. Nov 2020, 23:42 Einen Kritikunkt habe Ich, das ist die Langzeitstabilität .. so etwa nach 14 Tagen bleiben die Module gern mal hängen, waum weiss Ich nicht.
Das ist ein Fehler im Code der Wifi-Lib.
Der ist seit Jahren bekannt. Keine Ahnung warum die Chinesen den nicht schon gefixt haben. Den Patch kann ich am WE posten.

Grüße Jan
Benutzeravatar
AlexVR6
Beiträge: 539
Registriert: Sa 6. Dez 2014, 14:35
Wohnort: Angelroda

Re: Der ESP32-Faden

Beitrag von AlexVR6 »

Gut zu wissen, jetzt weiß ich auch warum mein ESP32 alle 2 Wochen den Dienst verweigert...
Jannyboy hat geschrieben: Mi 4. Nov 2020, 12:24 Den Patch kann ich am WE posten.
Ich bitte darum...

mfg Alex
Zuletzt geändert von AlexVR6 am Mi 4. Nov 2020, 13:38, insgesamt 2-mal geändert.
Walter Steinchen
Beiträge: 12
Registriert: Mo 2. Sep 2013, 22:37

Re: Der ESP32-Faden

Beitrag von Walter Steinchen »

Jo, bitte!
Walter Steinchen
Beiträge: 12
Registriert: Mo 2. Sep 2013, 22:37

Re: Der ESP32-Faden

Beitrag von Walter Steinchen »

Kuddel hat geschrieben: Mi 4. Nov 2020, 07:38 Mein Hauptkritikpunkt ist die langsame IDE und schlechte Bibliotheksverwaltung.
Dass er manchmal aussteigt habe ich schon öfters gehört. Für ernste Anwendungen würde ich das Ding niemals einsetzen.

Vielleich probiere ich nochmal Mictopython, ansonsten suche ich eine Alternatuve.
Also VSMicro (als Erweiterung für VisualStudio) ist alles andere als langsam .. der Editor ist der von VisualStudio... und der hat schon sehr viele wirklich coole Eigenschaften

>> Dass er manchmal aussteigt habe ich schon öfters gehört. Für ernste Anwendungen würde ich das Ding niemals einsetzen.

Ich mach mittlerweile alles mit dem Teil .. habe euren PodCast bzgl. der MC's die Ihr verbaut gelauscht und gedacht Ich bin 10 Jahre zurück ;-)

Alles was Ich baue hat ein IP Interface ..es muss sich ja meist in irgendein grösseres Konzept einbinden lassen und da sind REST Schnittstellen einfach Unschlagbar.. Und an einen Arduino oder dergleichen erstmal Anfangen einen WLAN oder Ethernet Chip dranzutüteln ?

Das war einmal .. ;-)

Servus
Wurschtel
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

AlexVR6 hat geschrieben: Mi 4. Nov 2020, 13:36 Gut zu wissen, jetzt weiß ich auch warum mein ESP32 alle 2 Wochen den Dienst verweigert...
Jannyboy hat geschrieben: Mi 4. Nov 2020, 12:24 Den Patch kann ich am WE posten.
Ich bitte darum...

mfg Alex
Hallo,

hier ist wie versprochen der Patch.
Der muss unter /home/$USER/Arduino/hardware/eps32 eingespielt werden.
Unter Windows muss der Path entsprechend angepasst werden, nach dem ob die ESP32-Extention automatisch oder manuell installiert wurde.

Code: Alles auswählen

diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp
index 05458a26..06ea8517 100644
--- a/libraries/WiFi/src/WiFiGeneric.cpp
+++ b/libraries/WiFi/src/WiFiGeneric.cpp
@@ -574,7 +574,7 @@ bool WiFiGenericClass::mode(wifi_mode_t m)
  */
 wifi_mode_t WiFiGenericClass::getMode()
 {
-    if(!lowLevelInitDone){
+    if(!lowLevelInitDone || !_esp_wifi_started){
         return WIFI_MODE_NULL;
     }
     wifi_mode_t mode;
Bei einem Abbruch/Störung der Wifi-Verbindung gibt es einen undefinierten Zustand der einen Reconnect bzw. das weitere Ausführen des Programms unmöglich macht.
Meine Commit-Hash ist kein offizieller, da nur bei mir lokal der Patch ist.

Edit:
https://github.com/espressif/arduino-es ... 4e35c9ebb1
Ich sehe gerade espressif hat den Patch am 30.09.2020 in das aktuelle master-repo 1.0.5-rc1 mit aufgenommen, geprüft habe ich das noch nicht.
Vielleicht kann das einer mal bestätigen. Ich verwende leider noch eine ältere Codebasis, da ich noch viel mehr am Code angepasst habe.

Grüße Jan
Dateianhänge
0001-Wifi_Status_bug.patch.txt
(451 Bytes) 40-mal heruntergeladen
Benutzeravatar
Lukas_P
Beiträge: 1709
Registriert: Mo 12. Aug 2013, 21:21

Re: Der ESP32-Faden

Beitrag von Lukas_P »

Mal ne Fraage:

Wenn ich meinen ESP8266 als Webserver verwende - gibt es dann eine Möglichkeit dem eine "url" zu geben ? Also übers lokale Netzwerk aufrufen über die IP ist klar, aber kann ich das auch irgendie "elegant" machen (ala localhost für 10.0.0.1 oder fritz.box für die fritzboxbesitzer) ... bzw. was ist das zauberwort dafür ? dns ? :oops:
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Lukas_P hat geschrieben: Mi 11. Nov 2020, 18:44 Mal ne Fraage:

Wenn ich meinen ESP8266 als Webserver verwende - gibt es dann eine Möglichkeit dem eine "url" zu geben ? Also übers lokale Netzwerk aufrufen über die IP ist klar, aber kann ich das auch irgendie "elegant" machen (ala localhost für 10.0.0.1 oder fritz.box für die fritzboxbesitzer) ... bzw. was ist das zauberwort dafür ? dns ? :oops:
DNS heißt das Zauberwort.
Guck Dir mal das Example vom WLAN Captive Portal an. Da müsstest du nur das Sternchen gegen deinen DNS-Name ersetzen.

Grüße Jan
traeu
Beiträge: 27
Registriert: Mi 24. Jun 2020, 01:03

Re: Der ESP32-Faden

Beitrag von traeu »

Lukas_P hat geschrieben: Mi 11. Nov 2020, 18:44 Mal ne Fraage:

Wenn ich meinen ESP8266 als Webserver verwende - gibt es dann eine Möglichkeit dem eine "url" zu geben ? Also übers lokale Netzwerk aufrufen über die IP ist klar, aber kann ich das auch irgendie "elegant" machen (ala localhost für 10.0.0.1 oder fritz.box für die fritzboxbesitzer) ... bzw. was ist das zauberwort dafür ? dns ? :oops:
localhost funktioniert auf jedem Rechner, weil das lokal in der Hosts-Datei hinterlegt ist. Wenn du den Pfad der Host-Datei für dein Betriebssystem ergoogelst und einen Blick reinwirfst, ist die Logik sofort klar. Auf diese Weise könntest du auch einen beliebigen Eintrag für den ESP8266 anlegen, funktioniert dann halt nur auf dem Gerät, auf dem die Host-Datei geändert wurde. Und kann manchmal für große Verwirrung sorgen, wenn man das mal nicht mehr auf dem Schirm hat...

Die Variante, die das WLAN Captive Portal-Beispielprojekt nutzt, dürfte MDNS sein. Dabei darf sich ein Gerät einen eigenen Namen, auf ".local" endend, aussuchen. Dein Computer schickt DNS-Anfragen, die auf .local enden, an alle Gerät im Heimnetz und der ESP sollte antworten. MDNS wird eigentlich von jedem Gerät unterstützt, bei mir hat es aber leider aus unerfindlichen Gründen nicht geklappt, als ich es das letzte Mal getestet habe.

Am saubersten wäre es, DNS im eigentlichen Sinne zu nutzen. Also dort einen Eintrag für den ESP zu hinterlegen, wo eh schon die DNS-Anfragen aller Geräte im Heimnetz landen, das wird zu 99% dein Router sein. Bei Fritzboxen geht es relativ leicht, es reicht, das Gerät bei der Heimnetz-Übersicht umzubenennen, zB in ESP. Dann ist das Teil auch unter "esp" oder unter "esp.fritz.box" erreichbar. Ob andere Router vergleichbare Funktionen haben, weiß ich leider nicht, sollte sich aber herausfinden lassen!
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Hallo zusammen,

ich spiele gerade mit meinem inzwischen vierten ESP32 rum, diesmal mit einem der auch die I2C Schnittstelle in Funktion hat und auch auf Anhieb funktioniert.
Allerdings ist mir bei allen ESP32 aufgefallen, dass ich die Webseite auf dem Rechner wunderbar schnell aufrufen kann, auf meinem Android-Handy jedoch nur sehr schwer, oft bekomme ich die Fehlermeldung, dass der ESP nicht erreichbar sein. Mir scheint ja auch, dass immer nur ein Gerät Zugriff drauf haben kann, was ich mir auch nicht so recht erklären kann.

Hat jemand eine Erklärung dafür? Oder ist das einfach Zufall?

Danke und Gruß
Kuddel
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Der ESP32-Faden

Beitrag von Jannyboy »

Habe ich hier schon mal geschrieben.
Jannyboy hat geschrieben: Mo 2. Nov 2020, 12:35 PS. AsyncWebServer ist wichtig das nicht alle Browser die Daten sequenziell runterladen. Chrome ist da ein Sonderfall. Es will bis zu 8 Dateien parallel runterladen.
Der Normale WebServer kann jedoch nur eine ausliefern und verwirft die anderen 7. Firefox tut dieses auch, jedoch werden alle fehlgeschlagenen Dateien anschließend noch einmal probiert sequenziell herunterzuladen.
Jo Das Problem ist bekannt, dass Problem ist Chrome bzw. der (Very) Simple Webserver des ESPs je nach dem wie man es nimmt.
Der kann nur eine Socket-Verbindung gleichzeitig, jedoch versucht Chrome die Web-Site mit 4-8 Sockets parallel runterzuladen.
Firefox tut dieses auch, jedoch versucht es nach einem Fehler beim Laden der Seite diese noch einmal sequenziell über ein Socket zu laden.
Das funktioniert dann meistens auch.

Baue dein Programm auf asyncWebserver um und es wird wie gewünscht funktionieren.
https://github.com/me-no-dev/ESPAsyncWebServer
Die Lib benötigt noch weitere Libs unter anderem asyncTcp, etc.

Grüße Jan
Benutzeravatar
Kuddel
Beiträge: 5075
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der ESP32-Faden

Beitrag von Kuddel »

Danke für die Info. Warum es passiert, habe ich jetzt verstanden.
Was ich dagegen machen kann, klingt aber sehr kompliziert, also, zumindest für mich. Das muss ich mir mal in Ruhe angucken.
Meine Idee wäre auch noch, die ganze Webseite regelmäßig auf einen kleinen Server kopieren und mit einer zusätzlich Webseite versehen. So kann man ohne das leidige IP-Adressengetippe am Handy alle ESPs in der Stube einfach anklicken.
Gruß
Kuddel
Antworten