ESP8266 zur Heizungsüberwachung und anderes

Begonnen von Toshi, 17 November 2015, 14:54:21

Vorheriges Thema - Nächstes Thema

Toshi

Hi Friedrich,

ja, Du hast natürlich recht, ich hätte das dazuschreiben sollen. Ich verwende einen 1117 auf einem kleinen vertikal stehenden Breakout, welches man entsprechend drehen kann, sodaß die Anschlüsse passen. Der 78xxl war der einzige, den ich bei Fritzing gefunden habe, der von Größe Form und Funktionalität meinem 1117-Modul entsprach.
Hier ein Link auf die Bauform, die ich verwendet habe, nur dass ich für ein 10er-Bundle um die 4,50€ gezahlt habe.
http://de.aliexpress.com/store/product/DC-5V-to-3-3V-Step-Down-Power-Supply-Module-AMS1117-3-3-LDO-800MA/1679099_32357910447.html

Den kleinen 110nF hätte ich auch noch gerne angeschlossen, habe aber in meiner Bastelkiste nichts passendes gefunden. Den 470er auf der Input-Seite habe ich mir geschenkt, da auf dem fertig gelöteten Prototyp kein Platz mehr war, allerdings sind auf dem 1117-Modul auch schon vier Kondensatoren und ein Power-Led drauf.

Die entscheidende Verbesserung hat aber in jedem Fall der Pull-Up am RST gebracht. Erstaunlich welch Wirkung so ein kleiner Widerstand haben kann.

Im jedem Fall werde ich Deine Vorschläge in den nächsten Sensor mit einbauen :-) Es scheint, dass Du unter diesem Problem auch schon gelitten hast.

Viele Grüße
Toshi

kb958291

Hallo,

habe mal die Schaltung mit einem Sensor aufgebaut, hat auch brav auf dem seriellen Monitor die Temperatur ausgegeben.
Dann ins Fhem wie in "Teil 4 - Programmierung  FHEM" beschrieben eingebaut, ab da ständig ein Reset:


***********
ESP Chip-ID : 701069
Flash Chip-ID : 1327328
Flash Chip-Size : 4194304
Flash Chip Speed : 40000000

.......
Connected to wlan
IP address: 192.168.1.72
MDNS responder started
HTTP server started
  Chip = DS18B20
ROM =28FFD0165152A6
  Data = 1 93 1 4B 46 7F FF C 10 F6  CRC=F6
  Temperature = 25.19 Celsius,
  Data = 1 93 1 4B 46 7F FF C 10 F6  CRC=F6
  Temperature = 25.19 Celsius,

ets Jan  8 2013,rst cause:4, boot mode:(1,6)

wdt reset

Er überträgt 1-2 Messwerte an Fhem und macht einen Reset.
Was ist da falsch?
FHEM@ASUS-PN40, HM-CFG-LAN, CUL868, CUL433, HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-LC-Bl1PBU-FM, IT1500, Elero, Tasmota

ckbln

Hallo Toshi,

zu deiner Software FHEM_8266.txt
Diese funktioniert mit 3 Stck.  ESP8266-01 meiner Sammlung. Sind noch im Dauertest.
Ich habe einen ESP8266-01 da funktioniet alles bis auf das senden an FHEM. Vermutlich ist der beschädigt.

zu deiner Software FHEM_8266_1.txt
Wenn ich das richtig beobachtet habe kommen die Meldungen in FHEM alle 12-13 sek. an.
Lt. deiner Beschreibung müsten es alle 55 Sek. sein.
Die Meldung in FHEM sind nicht zeitgleich mit der seriellen Ausgabe.
Hier sind auch die wdt resets.


Viele Grüße
Christof

kb958291

In Fhem kommt trotz den Resets aber alles alle 5 Minuten an:

Auszug aus dem Log:
2015-12-06_10:09:43 8266_Heizung T1: 23.31 T2: 23.12 T3: 22.94 T4: 23.06 T5: 23.00
2015-12-06_10:14:49 8266_Heizung T1: 23.31 T2: 23.12 T3: 22.87 T4: 23.00 T5: 23.00
2015-12-06_10:19:43 8266_Heizung T1: 23.25 T2: 23.06 T3: 22.87 T4: 23.00 T5: 23.00
2015-12-06_10:24:48 8266_Heizung T1: 23.25 T2: 23.06 T3: 22.87 T4: 23.00 T5: 23.00
2015-12-06_10:29:45 8266_Heizung T1: 23.25 T2: 23.06 T3: 22.87 T4: 23.00 T5: 23.00
2015-12-06_10:34:45 8266_Heizung T1: 23.25 T2: 23.06 T3: 22.87 T4: 23.00 T5: 23.00
2015-12-06_10:39:38 8266_Heizung T1: 23.19 T2: 23.06 T3: 22.87 T4: 23.00 T5: 22.94
2015-12-06_10:44:28 8266_Heizung T1: 23.19 T2: 23.06 T3: 22.87 T4: 23.00 T5: 23.00
2015-12-06_10:49:20 8266_Heizung T1: 23.06 T2: 23.00 T3: 22.81 T4: 23.00 T5: 22.94
2015-12-06_10:54:29 8266_Heizung T1: 23.06 T2: 23.00 T3: 22.75 T4: 22.94 T5: 22.87

Aufhängen scheint er sich aber hier:

///  **** Meldung an fhem
    send_fhem();

dann wieder der Reset:

ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset

usw...

Man könnte meinen, das Fhem nur alle 5 Minuten "zuhört"...
FHEM@ASUS-PN40, HM-CFG-LAN, CUL868, CUL433, HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-LC-Bl1PBU-FM, IT1500, Elero, Tasmota

Toshi

#34
Mein Modul läuft inzwischen seit dem 28.11.15 mit der Software xxxx_1.txt  produktiv und hat seitdem anscheinend auch noch keinen Reset gehabt.
Das Modul sendet einmal pro Minute, allerdings lauscht mein FHEM nur alle 5 Minuten.
Das kann im FHEM-Modul über das Attribut event-min-interval auf state:300 eingestellt werden.

Die Stromversorgung ist das fast alles Entscheidende, insbesondere wenn man kein nodeMCU verwendet. Bitte nur die Schaltung zwei verwenden und bei weiteren Schwierigkeiten die Anmerkungen von Friedrich beachten (die in meinem Modul aber nicht enthalten sind).

Zum Testen kann man auch versuchen das Funkteil etwas unter Last zu bekommen. Relativ gut geht das, wenn man ein Dauerping auf die Adresse schickt (ping n.n.n.n -t) und gleichzeitig die Webseite von dem Modul (http:// n.n.n.n/status) aufruft. Wenn das Modul es dann auch noch zwischendurch schafft, eine Seite an das FHEM zu senden, dann sollte alles gut sein.


@ Christof
Freut mich, dass einige Deiner Module auch laufen.
Wenn Dein Modul alle 15 Secs sendet klingt das nach regelmäßigem Reset. Das dauert in etwa solange.
Die Schleife ist auf 55 sec gestellt, da in dem Aufruf jedem DS1820 eine Sekunde gegeben wird, um die Sensordaten in seinen Speicher zu schreiben.
Da bei mir 5 Sensoren laufen und ich möglichst genau an die Minute kommen wollte, ergab sich daraus ein Wert von 55. Allerdings schwankt das Intervall doch zwischen 61 und 62 sec.

@KB...
Was für ein Modul verwendest Du ?
Wie sieht Deine Spannunsversorgung aus.
Ist der Reset-Pin auf Vcc ?
Ja, der reset erfolgt in meiner Funktion send_FHEM(), da dort das WLAN genutzt wird und die Stromaufnahme des Moduls auf seinen höchsten Wert steigt.

Einen schönen Nikolaus
Toshi

Prof. Dr. Peter Henning

Zitatda in dem Aufruf jedem DS1820 eine Sekunde gegeben wird

Das ist ein Missverständnis - so lange braucht das Ding wirklich, um die Messung durchzuführen, das Schreiben in den Speicher geht viel schneller..

Ein DS1822 kann die Messung, wenn man ihn entsprechend einstellt, bei 9 Bit Auflösung innerhalb von 95 ms erledigen

LG

pah

kb958291

#36
KB...
Modul: ESP8266 ESP-07 + Breadboard Adapter
http://www.ebay.de/itm/191604522352?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Spannunsversorgung:
einmal nur mit 3,3V aus dem PL2303 USB-TTL-Wandler
dann mit einem 3,3V Regler und 3x NiMh-Akku
dann mit beiden gleichzeitig, auch mit ELKO´s

Reset-Pin auf Vcc ? Ja, über 10K an VCC

Dauerping gibt 7 mal Antwort bis zur Zeitüberschreitung...

Ich werde mal die Schaltung anders aufbauen bzgl. der Stromversorgung, mal sehen, ob es dann besser klappt...

FHEM@ASUS-PN40, HM-CFG-LAN, CUL868, CUL433, HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-LC-Bl1PBU-FM, IT1500, Elero, Tasmota

kb958291

Edit:
Habe mal die Stromversorgung in allen Varianten getestet, hat leider nix gebracht!!!

Was jetzt bei mir zum Erfolg geführt hat: Einstellungen siehe Bild im Anhang.

Hatte irgendwo gelesen, man soll die Flash-Größe auf 512k ein stellen, unabhängig davon, was das Modul hat (z.B. 4MB).
Seit dem funktioniert es absolut zuverlässig auf allen meinen ESP8266-Modulen....

Würde jetzt gerne noch "Schaltzustände" z.B. Pumpe (3 Pumpen) ein usw. erfassen, wie könnte man das im Programm realisieren?
- evtl. mit OneWire DS2413 ?
- einen bzw. mehrere GPIO nutzen?
FHEM@ASUS-PN40, HM-CFG-LAN, CUL868, CUL433, HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-LC-Bl1PBU-FM, IT1500, Elero, Tasmota

Toshi

Klasse, dass Deine Module jetzt auch stabil laufen.
Die One-Wire-GPIOs habe ich bisher nicht verwendet und habe mir erst mal die Beschreibung dazu gegönnt, sieht ja auch sehr interessant aus.
Wenn Du aber 07er oder 12er 8266er verwendest, hast Du doch sowieso genügend GPIOs frei. Von der Programmierung her wäre das dann sehr einfach. Du könntest dann einfach die Pumpen per Opto-Koppler direkt anbinden.

ernst1024

Hallo,

bin beim Kreuz- und Querlesen zum ESP8266 auf diesen thread gestoßen. Verstehe zwar nur knapp die Hälfte aber ich werde es mir mal in Ruhe zu Gemüte zu führen. Ich habe meine ESP8266 01 gestern bekommen und warte jetzt noch auf den USB to Serial Adapter, den ich wohl brauche um den ESP8266 zu programmieren (so habe ich das jedenfalls verstanden).

Jetzt lese ich hier von einem NodMCU ? Was ist das? ESP8266 und den USB - Seriell Adapter in einem Modul vereint? Also per USB Kabel am PC anschließen ohne verkabeln und sofort loslegen?

Vielen Dank .. Ernst
Gruß Ernst

Olly

Zitat von: ernst1024 am 01 Februar 2016, 21:01:16
Hallo,

bin beim Kreuz- und Querlesen zum ESP8266 auf diesen thread gestoßen. Verstehe zwar nur knapp die Hälfte aber ich werde es mir mal in Ruhe zu Gemüte zu führen. Ich habe meine ESP8266 01 gestern bekommen und warte jetzt noch auf den USB to Serial Adapter, den ich wohl brauche um den ESP8266 zu programmieren (so habe ich das jedenfalls verstanden).

Jetzt lese ich hier von einem NodMCU ? Was ist das? ESP8266 und den USB - Seriell Adapter in einem Modul vereint? Also per USB Kabel am PC anschließen ohne verkabeln und sofort loslegen?

Vielen Dank .. Ernst
Hallo,

ja, im Prinzip ist eine nodeMCU ein ESP-12 mit integriertem USB-seriell-Modul.

Gruß

    Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

ernst1024

Super Danke.

Dann wäre ja so ein NodMCU als Einstieg ja wohl die bessere Wahl? Aber für einen späteren Betrieb mit  Batterie z.B wäre dann der pure ESP8266 besser geeignet?
Gruß Ernst

Olly

Zitat von: ernst1024 am 01 Februar 2016, 21:17:42
Super Danke.

Dann wäre ja so ein NodMCU als Einstieg ja wohl die bessere Wahl? Aber für einen späteren Betrieb mit  Batterie z.B wäre dann der pure ESP8266 besser geeignet?
Richtig,

mit der NodeMCU ersparst du dir die externe Beschaltung, die du bei einem "nackten" ESP noch brauchst. Quasi Plug&Play.
Wenn es dann nachher um Batteriebetrieb geht, ist man mit dem minimal beschalteten ESP wohl besser dran.

Gruß

   Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

ernst1024

Hi, ich bin's nochmal, der FHEM/ESP8266 usw Azubi im ersten Lehrjahr :-)

Habe es jetzt geschafft den ESP8266-01 über die Arduino Software anzusprechen und zu flashen. (Das geht sogar, wenn man wie ich zur Zeit keinen USB-Serial Konverter hat mit einem Arduino Nano als Konverter).

Jetzt würde ich mich also dran machen die Schaltung aus ESP8266-01 und dem DS18B20 zu bauen, aber da habe ich so meine Schwierigkeiten, oder besser, keinen blassen Schimmer. Ich denke als Datenpin kommt ja nur GPIO2 des ESP8266 in Frage? Als Spannungsversorgung erstmal 3,3V vom Netzteil, später 3V Batterie.

1.) Zum Betrieb des ESP8266 ist ja nach dem flashen doch nur:

VCC       3,3 V
CH_PD   3,3V
GRND

nötig?

2.) Wie binde ich den Sensor ein? Ich dachte VCC und Grnd ist klar, jetzt nur noch den DatenPin des Sensors and GPIO2 und fertig ist die Laube, oder?
Das mit dem 4,7K Resistor war doch nur nötig bei 5V Spannung?

Also wenn da mal einer drüberschauen könnte wäre ich sehr dankbar

Alaaf
Gruß Ernst

Kuzl

Der DS18B20 ist ein 1-Wire Sensor und die brauchen Nunmal einen Pullup, egal an Welcher Spannung sie Betrieben werden. (ob das allerdings mit 3V noch funktionert musst du probieren, ich mein im Kopf zu haben, dass die laut Datenblatt nur bis 3.3V gehen)

Zur Beschaltung also:

         VCC, CH_PD, RST und VCC vom Sensor=> 3.3V
         GND mit GND von Spannungsquelle, Nano und Dem Sensor verbinden => 0V
         DATA vom Sensor mit  z.b. GPIO2
         TX und RX zum Nano
         Zwischen GPIO2 und VCC ein Widerstand 4,7K
         Zwischen VCC und GND ein Kondensator 100µF o.ä
         (Zwischen VCC und GND ein Kondensator 100nF)