WeMos D1 mini als WLAN-Sensor/-Aktor
Moderator: Co-Administratoren
-
- Beiträge: 142
- Registriert: 17.07.2016, 10:40
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
ALLES klar
Und da sehe ich wieder einmal das mir massiv das elektrotechnische
Grundwissen zu fehlen scheint für meine Projekte
Also scheint da gar nicht zu gehen in meinem fall das ich vom Wemos das pwm ausgebe
und an den Arduino Anschließe und das mit Analog Read auswerte weil es nicht
Sauber genug wäre? Ja?
Muss denn immer alles so kompliziert sein für so eine einfache Funktion...
Und ein ESP32 kann ein solches Signal ausgeben?
Oder muss ich wirklich eine neue Steuerung bauen die ich direkt ansprechen kann...
Aber das bekomme ich nicht gebacken mit webserver und Poti und lüfter und servo... im leben nicht
Und da sehe ich wieder einmal das mir massiv das elektrotechnische
Grundwissen zu fehlen scheint für meine Projekte
Also scheint da gar nicht zu gehen in meinem fall das ich vom Wemos das pwm ausgebe
und an den Arduino Anschließe und das mit Analog Read auswerte weil es nicht
Sauber genug wäre? Ja?
Muss denn immer alles so kompliziert sein für so eine einfache Funktion...
Und ein ESP32 kann ein solches Signal ausgeben?
Oder muss ich wirklich eine neue Steuerung bauen die ich direkt ansprechen kann...
Aber das bekomme ich nicht gebacken mit webserver und Poti und lüfter und servo... im leben nicht
-
- Beiträge: 2373
- Registriert: 19.09.2012, 10:53
- System: CCU
- Wohnort: Jottweedee
- Hat sich bedankt: 250 Mal
- Danksagung erhalten: 348 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Du nimmst einen WeMos, lässt den ein (passendes) PWM ausgeben und das wandelst du dann mit dem verlinkten PWM to Voltage Converter Modul in eine dir genehme DC Spannung um. Den Wemos kannst du ja problemlos z.B. per http requests von der CCU aus steuern. Was dir nicht erspart bleiben wird, ist einen entsprechenden Webserver auf dem Wemos einzurichten. Da gibt es aber bestimmt schon gebrauchsfertige Sketches für eine webbasierte Servosteuerung im Netz zu finden. Einfach mal suchen.
Trotzdem nochmal der Kommentar:
Ich verstehe die Motivation, deine bisherige Steuerung so unverändert zu behalten, aber was du da vor hast ist eigentlich ein klassischer Fall von "Von-hinten-duch-die Brust-ins-Auge".
Trotzdem nochmal der Kommentar:
Ich verstehe die Motivation, deine bisherige Steuerung so unverändert zu behalten, aber was du da vor hast ist eigentlich ein klassischer Fall von "Von-hinten-duch-die Brust-ins-Auge".
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!
-
- Beiträge: 142
- Registriert: 17.07.2016, 10:40
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Also besser etwas neues?!
Dann fällt der wemos schonmal raus weil man da nicht 2 Poti anschließen kann...
Oder ich verzichte auf die potis und schließe da nur Servo und mosfet für den Lüfter an... Rest muss dann über scetch...
Und das muss dann über http laufen... Wert 0 bis 100
Puhhh
Ob ich da nochmal wochenlang jeden Abend opfern will...
Da muss ich mich erst mal hinsetzen und suchen ob ich was in der groben Richtung finde... Mit fehlen halt die basics und die Zeit für sowas....
Die Geschichte mit dem homeduino und später wemos haben mich schon wochenlang gestresst .. eher Monate
Dann fällt der wemos schonmal raus weil man da nicht 2 Poti anschließen kann...
Oder ich verzichte auf die potis und schließe da nur Servo und mosfet für den Lüfter an... Rest muss dann über scetch...
Und das muss dann über http laufen... Wert 0 bis 100
Puhhh
Ob ich da nochmal wochenlang jeden Abend opfern will...
Da muss ich mich erst mal hinsetzen und suchen ob ich was in der groben Richtung finde... Mit fehlen halt die basics und die Zeit für sowas....
Die Geschichte mit dem homeduino und später wemos haben mich schon wochenlang gestresst .. eher Monate
-
- Beiträge: 2373
- Registriert: 19.09.2012, 10:53
- System: CCU
- Wohnort: Jottweedee
- Hat sich bedankt: 250 Mal
- Danksagung erhalten: 348 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Mal eine Alternative ohne Notwendigkeit zur Erzeugung von (zusätzlichen) Steuerspannungen:
So wie ich das verstehe brauchst du nur deinen bestehenden Arduino, der den Servo steuert, mit einem WLAN- bzw. Ethernet-Shield ausstatten und einen entsprechenden Sketch mit Webserver neu aufziehen. Der Sketch muss natürlich auch so angepasst werden, dass er noch die Eingaben über die angeschlossenen Potis zur manuellen Steuerung verarbeitet.
Erforderliche neue Hardware: 1x Ethernet-Shield oder WLAN-Shield.
Und einige Programmierarbeit - je nachdem, ob sich schon was "Halb-fertiges" im Netz finden lässt oder nicht.
Aber ich kenne natürlich nicht deinen Kompetenz-Level bzgl. Arduino-Programmierung und kann daher nicht abschätzen, wie schwierig sich die Sache für dich darstellt.
Auf welche Weise du dein Vorhaben umsetzen willst kannst nur du entscheiden.
So wie ich das verstehe brauchst du nur deinen bestehenden Arduino, der den Servo steuert, mit einem WLAN- bzw. Ethernet-Shield ausstatten und einen entsprechenden Sketch mit Webserver neu aufziehen. Der Sketch muss natürlich auch so angepasst werden, dass er noch die Eingaben über die angeschlossenen Potis zur manuellen Steuerung verarbeitet.
Erforderliche neue Hardware: 1x Ethernet-Shield oder WLAN-Shield.
Und einige Programmierarbeit - je nachdem, ob sich schon was "Halb-fertiges" im Netz finden lässt oder nicht.
Aber ich kenne natürlich nicht deinen Kompetenz-Level bzgl. Arduino-Programmierung und kann daher nicht abschätzen, wie schwierig sich die Sache für dich darstellt.
Auf welche Weise du dein Vorhaben umsetzen willst kannst nur du entscheiden.
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!
-
- Beiträge: 142
- Registriert: 17.07.2016, 10:40
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Ganz klar, sehr schwierig ...
Mein Level ist wohl höchstens 1,5 von 10
Mein Level ist wohl höchstens 1,5 von 10
-
- Beiträge: 2373
- Registriert: 19.09.2012, 10:53
- System: CCU
- Wohnort: Jottweedee
- Hat sich bedankt: 250 Mal
- Danksagung erhalten: 348 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Ich hätte noch eine andere, für dich ziemlich sehr leicht umzusetzende Idee auf Basis eines PWM to Voltage Converter Moduls.
Die wäre, einfach den HM-LC-Dim1PWM-CV Dimmer zu nehmen und dessen Ausgang mit einem PWM to Voltage Converter auf die gewünschte DC-Spannung zu konvertieren. Leider scheitert diese einfache Idee momentan daran, dass die PWM-Frequenz des HM-LC-Dim1PWM-CV bei ca. 200Hz liegt*, der verlinkte China-Konverter aber eine Frequenz im Bereich von 1kHz-3kHz erwartet. Einen Konverter für den 200Hz-Bereich habe ich leider noch nicht finden können.
* Die technischen Specs auf der ELV Seite sagen zwar "200Hz-1kHz", aber in entsprechenden ELV-Forenbeiträgen spricht der ELV-Support einmal von 200Hz und ein anderes mal von 400Hz. Gehe also mal stark davon aus, dass 1kHz nicht möglich ist.
UPDATE: Es müsste funktionieren
Gemäß Artikel Homematic Know-How Teil 22
https://files.elv.com/bilder/journal/20 ... teil22.pdf
kann man in der WebUI die PWM Frequenz bis auf 1 kHz anheben.
Was wieder einmal zeigt, dass der ELV Technik Support relativ wenig Ahnung von den verkauften Produkten hat ...
Die wäre, einfach den HM-LC-Dim1PWM-CV Dimmer zu nehmen und dessen Ausgang mit einem PWM to Voltage Converter auf die gewünschte DC-Spannung zu konvertieren. Leider scheitert diese einfache Idee momentan daran, dass die PWM-Frequenz des HM-LC-Dim1PWM-CV bei ca. 200Hz liegt*, der verlinkte China-Konverter aber eine Frequenz im Bereich von 1kHz-3kHz erwartet. Einen Konverter für den 200Hz-Bereich habe ich leider noch nicht finden können.
* Die technischen Specs auf der ELV Seite sagen zwar "200Hz-1kHz", aber in entsprechenden ELV-Forenbeiträgen spricht der ELV-Support einmal von 200Hz und ein anderes mal von 400Hz. Gehe also mal stark davon aus, dass 1kHz nicht möglich ist.
UPDATE: Es müsste funktionieren
Gemäß Artikel Homematic Know-How Teil 22
https://files.elv.com/bilder/journal/20 ... teil22.pdf
kann man in der WebUI die PWM Frequenz bis auf 1 kHz anheben.
Code: Alles auswählen
Homematic PWM-Dimmer (HM-LC-Dim1PWM-CV)
Dieser flache Funk-Dimmer ermöglicht das Dimmen
von 12- und 24-VDC-LED-Anordnungen per PWM. Die Ansteuerung
kann von allen Sendern und Zentralen des Homematic Systems
sowie über eine Taste am Gerät selbst erfolgen. Bei der Ansteuerung
über die Zentrale CCU2 kann hier als Komfortmerkmal die PWM-Frequenz
zwischen 200 und 1000 Hz eingestellt werden, um, je nach LED, ein unerwünschtes
Flimmern, das besonders an den Bereichsgrenzen auftreten
kann, zu unterdrücken.
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!
- TomT
- Beiträge: 565
- Registriert: 19.11.2014, 15:13
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
ok, jetzt habe ich es verstanden
Da ich das Gebastel wie cmjay auch schon schrieb für von-hinten-durch-die-Brust-ins Auge halte
fragen wir mal so :
- Kannst du ohne geeignete Vorlagen überhaupt den Wemos so programmieren, daß er die UART abfragen und auswerten kann?
- Ist am Arduino die UART frei zur Nutzung?
Es ist nämlich per CuxD ziemlich einfach möglich, Webrequests von der CCU zum Wemos zu schicken.
Eine einfache Beschreibung zum Schlten eines ESP8266 mittels CuxD findest du hier : https://forum.iobroker.net/assets/uploa ... e-cuxd.pdf .
Das könnte man ohne Probleme dann auch erweitern....
Diese könnten 2 Infos liefern, nämlich Servostellung und Lüftergeschwindigkeit. (2 Hilfsvariablen der CCU)
Diese könntest du am Wemos auslesen und dann entsprechende Werte per UART an den Arduino schicken.
Der Arduino filtert diese aus und stellt dir dann passend in deinem Programm den Servo und den Lüfter.
Voraussetzung ist, du kriegst den Programmcode dazu in dein vorhandenes Programm integriert.
Da ich vermute, das du das selbst geschrieben hast, sollte das wohl nicht das Problem sein, oder traust du dir das nicht zu?
Wenn deine StandardUART am Arduino schon belegt ist, kannst du eine zusätzliche Software Serial an jedem freien Pin des Arduino nutzen.
Da du ja eigentlich auch nur die Richtung WEMOS zu ARDUINO brauchst und der Wemos nur 3,3V liefert kommst du ohne Levelshifter aus.
Dem Arduino reicht als Eingang (RX) auch 3,3V.
So bräuchtest du keine zusätzliche Hardware ausser dem Wemos....
Grüße
Tom
EDIT : Welcher Arduino genau ist es denn eigentlich? Nano oder Micro oder????
EDIT2 :
Noch eine Möglichkeit wäre, am Arduino mittels einer Programmschleife das PWM Signal auszuwerten und dementsprechend weiter zu verarbeiten.
Funktionsweise grob :
Schleife starten und den Pin, wo das PWM Signal anliegt für einen gewissen Zeitraum per DigitalRead abfragen.
Beim Wechsel von LOW auf HIGH Pegel einen Zähler starten und dann solange erhöhen lassen, bis der nächste HIGH (!!!!) Pegelwechsel erreicht wird.
Also nicht einfach nur beim ersten LOW aufhören mit der Schleife, sondern weiter...
Der Zähler beinhaltet die gesamte Laufzeit von High bis zu High. Einen Weiteren Zähler dann solange erhöhen, bis der 1. LOW Pegel kommt.
Mit dem Gesamtzähler und dem "HIGH"-Zähler hast du nun den DUTY CYCLE deines Signals.
Da du ja die Frequenz deines PWM Signals kennst, kennst du auch die Laufzeitbeschränkung der Schleife.
Denn wenn beide Zähler identisch groß sind ist es 100% PWM, wenn beide Zähler 0 sind, dann ist die PWM auch 0.
Das müsste in den Arduino in dein Programm mit rein. Die PWM Frequenz des Wemos sollte nicht sehr hoch gewählt werden, denn die Abfrage und assuwertung innerhalb der Schleife braucht Zeit. Kommt natürlich auch drauf an, wie genau (sprich welche Auflösung) du brauchst...
Da ich das Gebastel wie cmjay auch schon schrieb für von-hinten-durch-die-Brust-ins Auge halte
fragen wir mal so :
- Kannst du ohne geeignete Vorlagen überhaupt den Wemos so programmieren, daß er die UART abfragen und auswerten kann?
- Ist am Arduino die UART frei zur Nutzung?
Es ist nämlich per CuxD ziemlich einfach möglich, Webrequests von der CCU zum Wemos zu schicken.
Eine einfache Beschreibung zum Schlten eines ESP8266 mittels CuxD findest du hier : https://forum.iobroker.net/assets/uploa ... e-cuxd.pdf .
Das könnte man ohne Probleme dann auch erweitern....
Diese könnten 2 Infos liefern, nämlich Servostellung und Lüftergeschwindigkeit. (2 Hilfsvariablen der CCU)
Diese könntest du am Wemos auslesen und dann entsprechende Werte per UART an den Arduino schicken.
Der Arduino filtert diese aus und stellt dir dann passend in deinem Programm den Servo und den Lüfter.
Voraussetzung ist, du kriegst den Programmcode dazu in dein vorhandenes Programm integriert.
Da ich vermute, das du das selbst geschrieben hast, sollte das wohl nicht das Problem sein, oder traust du dir das nicht zu?
Wenn deine StandardUART am Arduino schon belegt ist, kannst du eine zusätzliche Software Serial an jedem freien Pin des Arduino nutzen.
Da du ja eigentlich auch nur die Richtung WEMOS zu ARDUINO brauchst und der Wemos nur 3,3V liefert kommst du ohne Levelshifter aus.
Dem Arduino reicht als Eingang (RX) auch 3,3V.
So bräuchtest du keine zusätzliche Hardware ausser dem Wemos....
Grüße
Tom
EDIT : Welcher Arduino genau ist es denn eigentlich? Nano oder Micro oder????
EDIT2 :
Noch eine Möglichkeit wäre, am Arduino mittels einer Programmschleife das PWM Signal auszuwerten und dementsprechend weiter zu verarbeiten.
Funktionsweise grob :
Schleife starten und den Pin, wo das PWM Signal anliegt für einen gewissen Zeitraum per DigitalRead abfragen.
Beim Wechsel von LOW auf HIGH Pegel einen Zähler starten und dann solange erhöhen lassen, bis der nächste HIGH (!!!!) Pegelwechsel erreicht wird.
Also nicht einfach nur beim ersten LOW aufhören mit der Schleife, sondern weiter...
Der Zähler beinhaltet die gesamte Laufzeit von High bis zu High. Einen Weiteren Zähler dann solange erhöhen, bis der 1. LOW Pegel kommt.
Mit dem Gesamtzähler und dem "HIGH"-Zähler hast du nun den DUTY CYCLE deines Signals.
Da du ja die Frequenz deines PWM Signals kennst, kennst du auch die Laufzeitbeschränkung der Schleife.
Denn wenn beide Zähler identisch groß sind ist es 100% PWM, wenn beide Zähler 0 sind, dann ist die PWM auch 0.
Das müsste in den Arduino in dein Programm mit rein. Die PWM Frequenz des Wemos sollte nicht sehr hoch gewählt werden, denn die Abfrage und assuwertung innerhalb der Schleife braucht Zeit. Kommt natürlich auch drauf an, wie genau (sprich welche Auflösung) du brauchst...
-
- Beiträge: 315
- Registriert: 16.02.2015, 17:05
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 126 Mal
- Danksagung erhalten: 35 Mal
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Fehlermeldung: ISR not in IRAM
nur für den Fall, dass andere vor demselben Problem stehen:
Ein WeMos D1 mini überträgt seit etwa 2 Jahren die Sensorwerte (gezählte Impulse) von einer Wasseruhr zur CCU
Nun wollte ich auch von einer zweiten Wasseruhr die Sensorwerte erfassen. Der praktisch gleiche Sketch liess sich zwar hochladen, brachte aber im seriellen Monitor die Fehlermeldung "ISR not in IRAM". Meine aktuelle Arduino-Version (oder einer Bibliotheksversion) ist strikter als früher.
Eine zusätzliche Zeile, bei mir vor dem Setup, war die nach langer Suche gefundene Lösung:
nur für den Fall, dass andere vor demselben Problem stehen:
Ein WeMos D1 mini überträgt seit etwa 2 Jahren die Sensorwerte (gezählte Impulse) von einer Wasseruhr zur CCU
Nun wollte ich auch von einer zweiten Wasseruhr die Sensorwerte erfassen. Der praktisch gleiche Sketch liess sich zwar hochladen, brachte aber im seriellen Monitor die Fehlermeldung "ISR not in IRAM". Meine aktuelle Arduino-Version (oder einer Bibliotheksversion) ist strikter als früher.
Eine zusätzliche Zeile, bei mir vor dem Setup, war die nach langer Suche gefundene Lösung:
Code: Alles auswählen
void ICACHE_RAM_ATTR NAMEderInterruptServiceRoutine(); // letting the compiler know about where to put the function - RAM
Mit Mut und Entschlossenheit gegen Intoleranz
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: WeMos D1 mini als WLAN-Sensor/-Aktor
Mir war gar nicht bewusst, dass es jemals ohne das Attribut ICACHE_RAM_ATTR ging.