NEWS
Einbindung eines Temperatursensors mit ESP 8266
-
@opöl said in Einbindung eines Temperatursensors mit ESP 8266:
@chris-1 ,
Du hast das Problem möglicherweise nicht richtig verstanden.
Möglich.
Ich habe verstanden: Du möchtest mit einem ESP 8266 & DS18B20 Temperatur messenIch habe keinen Arduino und auch nicht die Tools und keine serielle Verbindungsmöglichkeit.
Mit Arduino meinte ich die Arduino IDE, nicht einen Prozessor / SingleBoard Computer, da habe ich mich wohl missverständlich ausgedrückt.
So'n ESP32 (grosser Bruder des 8266) kostet als ESP32-C3 SuperMini 2€ bei Onkel Ali (gleich 5-10 bestellen!). Den Sensor hast Du. Tool (Arduino IDE) gibts für Linux/Mac und auch Windows für Lau zum Download und ein USB Kabel wirst Du auch noch finden.Ich brauche Zugriff auf die AP Weboberfläche um den Sensor für mein WLAN und MQTT für meinen Raspberry und iobroker zu konfigurieren. Da der Webserver aber nicht reagiert (scheint was proprietäres zu sein), werde ich das Teil mit Tasmota flashen. Einen seriellen Adapter brauche ich eh, wenn ich das Ding in Betrieb nehmen möchte, es sei denn, die zugesagte Anleitung gibt was anderes her.
Du denkst/vermutest etwas zu kompliziert und mit zu viel Umwegen. Du brauchst kein Web-Interface für eine einfache MQTT Datenübertragung. Das ist schnickschnack.
Schau, Deine gewünschte Anwendung entspricht den Default-Beispielen für die Programmierung eines ESP 8266 oder 32. Das heisst, Du musst eigentlich keinerlei Ahnung von Programmierung zu haben.
Du installiert Dir (im Anfang würde ich Arduino IDE, nicht Visual Studio empfehlen) mit Standard-Einstellungen.
Lädst den BeispielCode und fashed den per USB-Kabel auf Deinen ESP.Beim BeispielCode kannst Du einfach hardcoded Deinen WLAN Router eintragen, dann brauchst Du kein Web-Interface. Anschliessend fummelst Du noch als 3-Zeiler in die "loop" das Auslesen Deines Temperatursensors und schwups schieb der die Daten Richtung MQTT Server.
Beispielcode MQTT pubsubclient:
MQTT
Da würdest Du nur
a) oben Deine WLAN-Router eingeben
b) ganz unten in "loop" das "Hello World Blabla" durch das Auslesen des DS ersetzenAuslesen DS
DS18B20
Lass Dich nicht durch die Arduino Hardware irritieren, das geht ganz genauso mit nem ESP mit dem gleichen Code. Du gibst ja in der Arduino-IDE per Menü an, auf welcvhen Prozessor/Bpoard das soll.
Scroll runter zu "Sketch".
Du brauchst nur include, OneWire, DallasTemperatur in den "Kopf" vom MQTT Beispiel zu übernehmen.
In der MQTT "loop" ersetzt Du die Textausgabe "Hello World" durch einen Passus mit "sensors.getTempCByIndex(0)"Das wars
Lach..... hab gerade nochmal Tante Google bemüht.... es gibt das ganze auch schon fix und fertig für Dich:
esp8266-ds18b20-mqtt-ard.ino
config.h.sampleDa musst Du wirklich nur Deine WLAN Daten (config.h) eingeben, upload clicken und fertig
Gruss von der Ostsee
Chris -
@chris-1
Sein Problem ist, dass er (noch) keine serielle Verbindung herstellen kann.
Er kommt also schlicht und einfach nicht auf den ESP. Da geht dann weder die Arduino-IDE noch VS-Code oder sonstwas.Sobald das möglich ist, ist tatsächlich der Weg über den Browser der einfachste. Tasmota-Sensors drauf und gut ist.
-
Man lötet einen ESP32-C3 Mini und einen DS18B20 zusammen, steckt in die default vorhandene USB Buchse ein USB-Kabel und das ganze kostet einen unterm Strich 3€.
Sein Spannungswandler mag es noch 2€ teurer machen, man kann auch einen Batteriehalter dran machen, sich ein Gehäuse drucken lassen,.....Ich denke, er versteht nicht, dass er KEIN WEB-INTERFACE braucht, falls er den nicht zwischen Wohnung und Ferienhaus/Freundin/Eltern jedes Wochenende hin und her tragen will.
Das ist Schnickschnack im lokalen Netz.Chris
PS: Für seine Anforderung halte ich Tasmota für viel zu gross.
Code-Beispiel hatte ich oben unter dem "Lach" gepostet. -
@chris-1
Er will ja keine ESP32 und DS18B20 zusätzlich kaufen. Er hat die 8266 Dinger ja bereits und will die in Betrieb nehmen.
Ich hab' so'n Kram hier auch dutzendfach rumfliegen. MiniS2, MiniS3, diverse andere ESP32 und ESP8266 mit den unterschiedlichsten Sensoren. Aber das hilft dem TE ja auch nicht weiter.Tasmota dürfte für die meisten Nicht-Nerds das Einfachste sein. Ob's für den Anwendungsfall ggf. etwas überkandidelt ist, spielt wohl eher keine Rolle.
-
Was benötigt er, um Tasmota auf den ESP zu bekommen...
Und wenn er das hat, was kann er dann auch lightweight drauf spielen...Chris
PS
Du hast gewiss eine Tasmota-IR am laufen.
Hast Du zufällig Orion-TV Codes bzw eine Universal-Fernbedienung? -
@chris-1 sagte in Einbindung eines Temperatursensors mit ESP 8266:
Du hast gewiss eine Tasmota-IR am laufen.
Nope.
Ich habe zwar diverse Controller, IR-Sensoren dürften auch noch in der Grabbelkiste rumfliegen und Tasmota kann ich zur Not noch mit VS-Code selbst passend bauen.
Aber laufen habe ich sowas nicht. Liegt wohl daran, dass ich keinen passenden Anwendungsfall habe -
@opöl said in Einbindung eines Temperatursensors mit ESP 8266:
Was mich wundert ist, dass sich noch niemand aus dem Forum gemeldet hat, der über das gleiche Problem gestolpert ist. Bei der Anzahl der Angebote bei E… und dem Preis hätte ich vermutet, dass die Module massenhaft eingesetzt werden.
Nuja ist zwar nur subjektive Spekulation, aber hier im Forum schätze ich den Einsatz dieser Module als eher gering ein.
Der ESP01 ist schon ein paar Tage alt und aus der alten ESP8266 Serie derjenige mit den geringesten Features. Das in Kombination mit dem recht unflexiblen Steckmodul macht den Einsatz recht speziell und die Meisten haben dann eh einen Softwareweg im Kopf und möchte keinen vorprogrammierten Chinacode in ihr Netzwerk setzen. Dazu ist eine einfache Temperaturmessung ja nichts was noch so wirklich jeden vom Hocker zieht im kreativen Lösungsaustausch und etliches auch im Netz zu finden ist.Für den ESP8266 findet man häufiger den Einsatz eines D1 Mini
https://www.wemos.cc/en/latest/d1/d1_mini.htmlund in Anlehnung an Deinen Aufbau dazu auch solche Steckmodule:
Das alles für wenige Euro auch beim Ali zu bekommen und die haben direkt den USB TTL Konverter Onboard und können so direkt geflasht werden.
Problem: Die dort und überall zu findenden D1 Mini Kopien haben einen recht schlechten Spannungswandler verbaut (5V zu 3,3V). Es kann passieren dass schon mit Versorgung des DS18B20 mit 3,3V dieser überfordert ist und alles nicht stabil zu betreiben ist.
Fazit: Ich lass mitlerweile die Finger von den D1 Mini, da mit dem ESP32 der performantere Nachfolger schon länger am Markt ist und für alle Steck oder Kompatibilitätsdinge nehme ich ich ein ESP32-S2 Mini
https://www.wemos.cc/en/latest/s2/s2_mini.html
Die Kopien beim Ali liegen immer um 2€ haben bisher immer einen 500mA MicrOne Spannungswandler gehabt und waren für mich bisher unproblometaisch. Lötet man je Seite nur eine Pinleiste ein, sind sie kompatibel zu den Steckmodulen vom D1 Mini.
-
da ich noch nicht solange dabei bin, war mir die Historie mit den WLAN Modulen so nicht bekannt. Ich bin anlässlich meines Threads : https://forum.iobroker.net/topic/74899/eigenverbrauchsoptimierung/9?_=1720984538173
auf den genannten Sensor mit dem WLAN Modul gestoßen und irrtümlich davon ausgegangen, das das ähnlich wie bei z.B. Shellys via AP Konfig für das lokale WLAN und OTA Flashen funktioniert. Na dann halt nicht.
Da die Module eh da sind und auch dauerhaft als Temperatursensoren in meinen Kühlgeräten eingesetzt werden sollen, werde ich sie im Falle des Falles mit Tasmota in Betrieb nehmen. Ich halte das übrigens nicht für oversized. Was die Chinasoftware im WLAN angeht, vermeide ich das auch, wo es geht.
Ich verbuche das ganze mal unter „Lesson learned“.
Wenn ich demnächst mal was universelleres suche, frage ich vorher mal nachAber erst einmal schauen, ob sich China morgen mit der Anleitung meldet.
Gruß
-
die chinesische KI hat sich heute mit der bahnbrechenden Information gemeldet, dass der DS18B20 selbst nicht über eine drahtlose Kommunikationsfunktion verfügt. 🤪
Man wolle sich aber mit dem Hersteller in Verbindung setzen.
Da ich nicht davon ausgehe, dass eine nochmalige detaillierte Schilderung des Problems an der Sachlage etwas ändert, habe ich inzwischen den Programmer für sage und schreibe 93 ct bei Ali Express bestellt. Sobald der eingetroffen ist, kommt auf das Modul Tasmota drauf und ich werde hier meine Erkenntnisse für die Nachwelt hinterlassen.Bis dahin vielen Dank für Eure Unterstützung.
Gruß
-
@opöl said in Einbindung eines Temperatursensors mit ESP 8266:
die chinesische KI hat sich heute mit der bahnbrechenden Information gemeldet, dass der DS18B20 selbst nicht über eine drahtlose Kommunikationsfunktion verfügt. 🤪
Man wolle sich aber mit dem Hersteller in Verbindung setzen.Ob das jemals aufhört, dass man über sowas ein "Kribbeln im Bauch" verspürt? Wundern mag ich es ja nichtmal mehr nennen. Aus Fernost kommt so ein sinnfreier Kokolores und aus DE kommt gar nichts bzw wird ggf noch unfreundlich angepampt.
Wie erwähnt, wenn Du vor hast schon mal öfters etwas in dieser "Welt" zu spielen und zu basteln, dann ist so ein Programmer recht nützlich zu Hause zu Haben und für 93Cent ist es ja nicht der Rede wert. Wäre nur etwas "traurig" für die kleine Summe jetzt den Willkommensrabatt bzw. eine Email-Adresse beim Ali verbraten zu haben
Was Du dann da nacher draufspielst ist sehr subjektiv und gibt etliche Optionen angefangen vom Spaghetticode über Tasmota und ESPEasy bis hin zu ESPHome etc.
Viel Erfolg!
-
vom Händler des Sensors kam erwartungsgemäß nichts mehr, zum Ausgleich ist aber der von Dir empfohlene Programmer heute eingetroffen.
Also, unter strenger Beachtung der 3,3V Versorgung den Programmer mit dem WLAN Modul verbunden und Rx und Tx kreuzweise verbunden wie es sich gehört.
Dann den Treiber für den Programmer installiert. klappte auch hervorragend, Port COM 3 wird benutzt.
Dann das online Programmiertool gestartet, den COM 3 ausgewählt und mal testweise die Standardauswahl Tasmota (englisch) selektiert. Dann kam die Meldung: „Fehler beim initialisieren“ verbunden mit der Empfehlung, beim Starten den Reset Button zu drücken.
Der sitzt aber auf dem Temperatursensor, den ich aber wegen der Programmierkabelage nicht aufstecken kann.
Das WLAN Modul hat nämlich keinen Reset Button.Was habe ich versucht:
Verschiedene Tasmota Images
Testweise Rx und Tx vertauscht
Aus dem Menu des Flashers heraus das Modul resettet
Flashen mit und ohne vorherigem LöschenUm sicherzugehen, dass das Modul nicht beschädigt wurde, habe ich es wie vorher mit dem Temperaturmodul mittels 5V von dem Programmer in Betrieb genommen.
Der AP spannt wie weiter vorne beschrieben sein eigenes WLAN auf, an dem ich mich ja nicht anmelden kann.
Also nix kaputt gegangen, alles ist wie vorher.Was nun?
Das einzige, was mir einfällt, ist den RST Pin des WLAN Moduls beim Einschalten auf Masse zu legen.
Wobei ich nicht weiß, ob die Verbindung während des Flashens bestehen bleiben kann.Gibt es dazu andere Meinungen, Erfahrungen oder bessere Ideen?
Ich würde mich über Tipps freuen.
Gruß
-
@opöl said in Einbindung eines Temperatursensors mit ESP 8266:
Was nun?
Das einzige, was mir einfällt, ist den RST Pin des WLAN Moduls beim Einschalten auf Masse zu legen.Hi,völlig normal und man muß bei den ESPs (nicht nur beim ESP01) den Chip in den Flashmodus bringen. Dazu gilt es beim Booten den GPIO0 auf GND zu haben. Wichtig ist der Zeitpunkt beim Booten, wenn Du kurz danach wieder die Verbindung GPIO0 und GND löst ist das fürs Flashen kein Problem.
Um einen EPS Chip zu booten, kannst Du entweder kurz den RST Pin auf GND ziehen und dann eben gleichzeitig GPIO0 mit GND verbunden haben oder du trennst einfach kurz die +3,3V/ Spannungsversorgung um das Booten auszulösen.
Der Rest klingt sehr gut und genau nachdem Verhalten was ich erwarten würde. Nur noch den Chip in den Flashmodus bringen.
RX/TX vom Flasher zum Chip kreuzen auch genau richtig.
Bzgl. des Webflashers: Die Reihenfolge: GPIO auf GND legen, dann Neubooten (Chip ist im Flashmodus) und dann auf Connect im Flasher klicken (Erase in dem Fall würde ich auch anhaken um alle Reste zu löschen).
Nach erfolgtem Flash den Chip ohne GPIO zu GND Verbindung neu booten und er ist fertig.Hier ein Beispiel (Abschnitt: "ESP01 in den Flashmodus bringen") wie "praktisch" das mit einem Flasher für den ESP01 funktioniert (dürfte bei Dir einfacher gehn):
https://fremdgesteuert.net/esp-01-esp8266-mit-einem-usb-programmer-flashen/ -
naja, Du hattest mal geschrieben, das das mit dem Programmer alles automatisch geht.
"Zum Flashen kann ich dir nur den Online Flasher empfehlen. Super Easy. Einen Browser verwenden der diese serielle Kommunikation unterstützt wie Chrome. Version/Sprache auswählen, dann verbinden und der Rest läuft alleine: https://tasmota.github.io/install/"Daher habe ich das mit dem Reset beim Booten für erledigt gehalten. Bisher hieß Reset für mich auch, den RST Pin auf Ground zu ziehen, der entscheidende Hinweis war, den GPIO0 auf GND zu legen und erst danach 3,3 V anzulegen. Dann war alles ganz einfach....
Tasmota ist also auf den beiden ESP 8266 drauf, das Einbinden ins WLAN ging wie gewohnt problemlos. MQTT läuft auch und iobroker hat die Datenpunkte angelegt.Aaaber, die Module zeigen weder im Web Interface noch im iobroker eine Temperatur an.
Nach der Anleitung: https://tasmota.github.io/docs/DS18x20/#wiring
sollte GPIO0 auch für den DS18B20 in der Konfig eingetragen werden. Das klappt bisher aber weder mit dem Standard Tasmota Image noch mit dem Sensors Image.
Ich könnte mir vorstellen, dass noch das passende Template fehlt:
Hat da vielleicht jemand eine Idee zu?
Gruß
-
Ich hab auch Widerstände im Konstrukt.
Musste nicht löten, lässt sich tatsächlich auch über
Wagoklemmen regeln.Hier habe ich die Verkabelung her welche ich mit Wagoklemmen umgesetzt habe
https://www.youtube.com/watch?v=jQrcybWapuA -
ich habe mich leider erfolglos an Deinem Setup orientiert.
Ich habe den ESP 8266, der hat ja nur GPIO 0-3 auf Pins geführt. Der GPIO0 sollte es nach meinem Kenntnisstand eigentlich bei mir sein. Mein Modul hat ja auch nur einen DS18B20, der fest verdrahtet ist. Hast Du denn das gleiche Modul?
Und hast Du auch das Tasmota Image „Sensors“ im Einsatz oder ein anderes?Gruß
-
Das normale Tasmota. Da gibt es ja meines Wissens das Template für die Sensoren.
Ich habe auch ein 8266.
Auf jedenfall wird in jedem Video und in jedem Schema mit Widerständen gearbeitet . -
@opöl said in Einbindung eines Temperatursensors mit ESP 8266:
naja, Du hattest mal geschrieben, das das mit dem Programmer alles automatisch geht...
Dann war alles ganz einfach....Naja, Notwendigkeiten auf Hardwarebasis werden üblicherweise nicht durch eine Software substituiert. Aber schön, dass es dann sofort geklappt hat.
Hat da vielleicht jemand eine Idee zu?
Ich vermute nicht, dass es an der Version von Tasmota liegt. Sobald DS18B20 auswählbar ist, sind die notwendigen Codeteile aktiv und sollten funktionieren.
Dass ein Widerstand (PullUp) fehlt, würde ich auch erst einmal nicht von ausgehen, da genau für diesen Zweck das Aufsteckmodul entworfen worden ist. Traut man dem Modul nicht würde ich einmal Nachverfolgen ggf Durchmessen was die Widerstände R1, R2 oder R5 für eine Position in der Schaltung und Werte haben. Müssen wir aber anfangen fertige Module aus China zu debuggen, dann haben wir noch andere Probleme....
Da du nur einen DS18B20 am ESP01 betreibst dürfte der Unterschied eines ESP01 zum ESP01S interessant sein. Der Letztere besitzt interne PullUp-Widerstände. Unter Tasmota kannst Du sie mit
setzen.Ich habe keinen DS18B20 an Tasmota laufen und kann Dir nicht sagen wie informativ Tasmota dbzgl. ist. Erste Anlaufstelle wäre für mich die Konsole und dort würde ich innerhalb der Lesefrequenz eine Meldung erwarten. Gibt es dort etwas bzgl. DS18B20? Hieraus könnte man etwas schließen.
Da das flashen so einfach war. Würde ich ggf zum Test mal ESPeasy flashen:
https://td-er.nl/ESPEasy/Passwort des Acces Points: configesp
Dort unter Devices einen DS18B20 anlegen und dabei im Menü gibt es eine Auswahl zur Adresse des DS18B20.
Darauf möchte ich hinaus. Siehst Du hier eine DS18B20 Adresse, dann wird Dein DS18B20 gefunden und er lebt schon mal grob und es kann weiter gehn.
-
-
Oja, defintiv GPIO2
Der externe Pullup ist ebenso bereits vorhanden (R5 =4,7kOhm)
Siehe Anhang:ESP-01S DS18B20 v1.0 sch.pdf
-
Hallo zusammen,
ich kann Vollzug melden. Mit diesen Einstellungen:
Kommt dann so etwas heraus:
Hier nochmal separat der komplette Template String (Menu: Configure Other):
{"NAME":"DS18B20","GPIO":[1,1,1312,1,1,1,1,1,1,1,1,1,1,1],"FLAG":0,"BASE":18}Und die Ausgabe auf der Konsole:
15:51:53.290 MQT: tele/tasmota_6F4C36/SENSOR = {"Time":"2024-07-22T15:51:53","DS18B20":{"Id":"3C01B556A05B","Temperature":30.2},"TempUnit":"C"}Die 5V für die Versorgung des Moduls habe ich temporär von dem Programmer genommen. Später kommt da eine gescheite Versorgung dran.
Der entscheidende Punkt war der GPIO2 wie in dem Beitrag von ralla66 beschrieben. Leider hatte ich den Beitrag in seinem Link (noch) nicht gefunden. Keine Ahnung, wo ich vorher Richtung GPIO0 abgebogen bin...
Ich hatte zwar alle GPIOs durchprobiert, muss aber jetzt sagen, es ist nicht zielführend, mehrere Pins blind gleichzeitig zu konfigurieren und darauf zu hoffen, dass der richtige schon dabei sein wird. Bei mir hat es halt nicht funktioniert.
Vielen Dank an alle, die hier so geduldig geholfen haben, insbesondere @ralla66 und @Dieter_P , mit deren Unterstützung ich es letztlich hinbekommen habe.
Wie schon weiter vorne angekündigt, werde ich das Ganze mal für die Nachwelt kompakt zusammenfassen, damit der nächste, der sich dieses Modul zulegt es ein wenig leichter hat.
(Und als Feedback für die Leute, die hier in diesem Forum ihr Wissen anderen täglich kostenlos zur Verfügung stellen.)Beste Grüße und einen schönen Abend noch