Forum: Haus & Smart Home Auswahl eines Arduinos für API Abfrage per WLAN und Taster schalten


von Horst-Herbert (Gast)


Lesenswert?

Moin,

Die SuFu dieses Forums hat mich seit Beginn meines Maschinenbaustudiums 
2011 mehr als einmal erheblich aufgeschlaut wenn es um E-Technik oder 
µc-Programmierung ging. Aus diesen Erfahrungen habe ich auch die böse 
Vorahnung, dass ich für diese Fragen eventuell auch bitter niedergemacht 
werden könnte, aber sei es drum. Ist nicht meine Kernkompetenz.

Ich blicke in dem Dschungel aus Arduinos, Platinen, Shields und 
vergleichbaren Lösungen nicht durch und brauche einen Schubs in die 
richtige Richtung, um mir die passenden Komponenten zu besorgen, habe 
mit sowas noch nie gearbeitet.

*Vorhaben, was soll es tun in Kurzfassung:*

*Ein Arduino (o. Ä.) soll per WLAN 1-2 mal täglich eine Web-API 
abfragen, und darauf basierend einen Ausgang schalten. Dieser Ausgang 
soll ein Signal per Relais oder Optokoppler schalten.*


Warum, wieso, weshalb:
Ich habe eine ältere Gastherme, Solarthermie und Pufferspeicher. 7 
Monate im Jahr ist die Therme nur im Standby, da die Solarthermie 
ausreichend Warmwasser erzeugt.
Wenn die Sonnenstunden weniger werden, reicht es aber nicht immer mit 
dem Warmwasser. Die Warmwasserbereitung ist zeitgesteuert, ich kann nur 
einstellen in welchem Zeitintervall die Therme den Puffer auf Temperatur 
halten soll. Oder die Warmwasserbereitung ganz abstellen, wobei es da 
einen manuellen Taster gibt für "1x Warmwasserbereitung". Ich will das 
System smarter machen und den Taster abhängig von der Wetterprognose 
früh morgens automatisch schalten können, um den Wärmeeintrag der 
Solarthermie effizienter nutzen zu können. Sowie ab und zu automatisiert 
Hochheizen lassen wegen Legionellen, in Abhängigkeit der verstrichenen 
Zeit, in der eine Warmwasserbereitung nicht notwendig gewesen ist.
Softwareseitig bekomme ich das hin, aber hinsichtlich der Plattform 
erhoffe ich mir hier einen Ratschlag wie "hol dir xyz, das ist wie der 
MKR 1010 WiFi, dann brauchst du noch Platine abc und paar Stiftleisten. 
Die Entwicklungsumgebung ist dann Atmel Studio, viel Spaß".

von Peter* (Gast)


Lesenswert?

Hallo

Nun, wenn die Software kein Problem ist!?

Schlage ich doch ESP32, Optokoppler, Relais und fertig.

von N. M. (mani)


Lesenswert?

Peter* schrieb:
> Schlage ich doch ESP32, Optokoppler, Relais und fertig.

Hätte ich jetzt auch gesagt.
Nimm PlatformIO. Ist ein Plugin für Visual Studio Code. Da kannst du 
auch (wenn du möchtest) die Arduino Libs nehmen, musst dich also nicht 
groß umstellen.

Mit einem Beispiel aus dem Netz hast du dich in 30 Minuten ins WLAN 
connected und einen Webserver aufgezogen.

von Klaus S. (kseege)


Lesenswert?

Horst-Herbert schrieb:
> Aus diesen Erfahrungen habe ich auch die böse
> Vorahnung, dass ich für diese Fragen eventuell auch bitter niedergemacht
> werden könnte, aber sei es drum. Ist nicht meine Kernkompetenz.

Die beste Methode dagegen ist m.M.n., bei sich selbst die 
"Sich-angegriffen-fühlen-und auf-Gegenangriff-schalten-Automatik" 
abzuschalten und entweder freundlich oder gar nicht zu reagieren. 
Gelingt aber nur Wenigen.

> *Ein Arduino (o. Ä.) soll per WLAN 1-2 mal täglich eine Web-API
> abfragen, und darauf basierend einen Ausgang schalten. Dieser Ausgang
> soll ein Signal per Relais oder Optokoppler schalten.*

Es gibt 1000 verschieden Methoden. das zu erreichen. Die Einfachste ist, 
etwas zu nehmen, was Du schon kennst. Ich würde z.B. einen Arduino Nano, 
den einfachsten ESP8266 mit AT-Befehlen und einen PhotoMOS-Koppler 
nehmen, weil ich die in der Bastelkiste habe und mit Arduino-IDE in 2 
Stunden zusammengefrickelt hätte. Für mich ist aber die 
UART-Schnittstelle pillepalle, weil ich das schon 1000mal gemacht habe 
und einen Oszi dranhalten kann. Wer den nicht hat, für den sind selbst 
einfachste UART-Probleme ein heiteres Im-Nebel-Stochern, das sich 
tagelang hinziehen kann, wo der Oszi-Benutzer keine 5 Minuten braucht.

Solltest Du schon mit Platform-IO gearbeitet haben, ist das sicher eine 
gute Wahl. Solltest Du Dich da aber erst einarbeiten Müssen, ist es aus 
meiner Sicht völliger Overkill.

Insofern könnte man Dir bessere Tipps geben, wenn Du anführen könntest, 
was Du schon mal gemacht hast und was Du kennst.

Just my 2 cents

von Paul (Gast)


Lesenswert?

Klaus S. schrieb:
> Ich würde z.B. einen Arduino Nano,
> den einfachsten ESP8266 mit AT-Befehlen und einen PhotoMOS-Koppler
> nehmen,

Warum zum ESP noch einen Nano? Läßt Du Deinen Golf auch immer vom 
Porsche anschieben?
Du kannst den ESP mit der Arduino-IDE (oder auch mit Platformio) mit 
fast dem gleichen Script wie den Nano füttern und hast einen kompletten 
Arduino gespart.

von Klaus S. (kseege)


Lesenswert?

Paul schrieb:
> Warum zum ESP noch einen Nano? Läßt Du Deinen Golf auch immer vom
> Porsche anschieben?
> Du kannst den ESP mit der Arduino-IDE (oder auch mit Platformio) mit
> fast dem gleichen Script wie den Nano füttern und hast einen kompletten
> Arduino gespart.

Wenn Du es nicht geschrieben hättest, wäre ich glatt nicht drauf 
gekommen.
Da ich von 1000 Möglichkeiten geschrieben habe (hast Du gelesen?), sind 
es jetzt 1001 ;-)))

Gruß Klaus (der soundsovielte)

von Horst-Herbert (Gast)


Lesenswert?

Klaus S. schrieb:
> Die beste Methode dagegen ist m.M.n., bei sich selbst die
> "Sich-angegriffen-fühlen-und auf-Gegenangriff-schalten-Automatik"
> abzuschalten und entweder freundlich oder gar nicht zu reagieren.
> Gelingt aber nur Wenigen.

Ja, habe das während meiner Zeit als passiver Mitleser im Studium schon 
bemerkt. Kopf untenhalten, und sich per SuFu durch die Beiträge mit 
"benutze die SuFU!" wühlen.


Peter* schrieb:
> Schlage ich doch ESP32, Optokoppler, Relais und fertig.

Ich konnte die Antworten hier nicht abwarten, und habe mir einen Pi Pico 
W bestellt, das geht ja in ne ähnliche Richtung wie der ESP32!

Zudem ein fertiges Relaismodul aus dem berrybase-shop, ich bin mir noch 
nicht sicher ob ich das überhaupt benötige zum Schalten des Tasters.
Meine Idee ist, dass ich auf der Rückseite der Platine des 
Heizregler-Terminals auf die Vias des "Warmwasser-anfordern" Tasters 
gehe. Mir ist aktuell noch nicht ganz klar, mit welcher Spannung der 
Eingang arbeitet (Multimeter ist bestellt), das Teil wird per Opentherm 
mit Spannung versorgt.
Im Bestenfall muss ich nur irgendeinen Eingang auf Masse ziehen, im 
dümmsten Fall klemme ich das Relais mit rein.
Wenn das alles tut, gibts ne Platine mit abgesicherter 
Spannungsversorgung und das Teil wandert in die Hohlwanddose hinter dem 
Terminal.

Warum kein komplettes OpenTherm Interface mit mehr Eingriffsoptionen? 
Ich backe lieber erstmal kleine Brötchen, die AT-basierte Heizregelung 
läuft auch so sehr gut, ich will kein Risiko eingehen, mir gehts nur um 
die automatisierte WW-Anforderung.

Während ich auf das Teil warte, habe ich schon mit Python angefangen 
rumzuspielen und mich mit der brightsky-api auseinanderzusetzen, das 
klappt ganz gut.

Klaus S. schrieb:
> Insofern könnte man Dir bessere Tipps geben, wenn Du anführen könntest,
> was Du schon mal gemacht hast und was Du kennst.

Im Studium 2-3 Sachen mit einem ATMega8-Evalboard, LinBus Interface 
damit bedienen, digitale Filter, PWMs ausspucken, irgendwas einlesen, 
irgendwas damit regeln ;)
Ich bin arbeitstechnisch mittlerweile im Dunstkreis 
Simulation/Modellbildung/Regelungstechnik zuhause, programmiere viel in 
C und Matlab, allerdings bringen andere Spezis meine Anteile der 
Software auf die Hardware, ich hatte mit µCs, MPSoCs und Co. bisher nie 
direkt zu tun.

Ganz hoffnungslos ist es nicht, bin offen gesagt auch ziemlich gehypt 
auf mein erstes Projektlein mit sowas, paar Anwendungen spuken mir schon 
im Kopf rum.

von Klaus S. (kseege)


Lesenswert?

Das hört sich nicht so an, als ob Du noch weitere Tipps brauchtest, das 
läuft ja schon wie geschmiert.

Und der Relaiskontakt ist genau richtig, um parallel zum Taster 
geschaltet zu werden. Da damit ein Strom geschaltet wird, ist die 
Spannung in der zu steuernden Elektronik relativ unerheblich. Strom und 
Spannung dort dürfen nur nicht größer sein als das, was der 
Relaiskontakt maximal verträgt.

Gruß Klaus (der soundsovielte)

von Horst-Herbert (Gast)


Lesenswert?

Ich wollte mal ein Lebenszeichen von mir geben und berichten, wie es 
denn so läuft!

Auf der Platine des Heizungs-Terminals habe ich zwei Adern aufgelötet, 
um den Taster extern zu betätigen. Zwischen den beiden habe ich 3.2V 
gemessen, also dachte ich mir ich lasse das Relais weg und ziehe 
entweder den einen mit dem Pico runter, oder den anderen auf 3.3V. Da 
hat sich nichts getan, aber ich weiß jetzt grob, was eine Tastermatrix 
ist. Das Relais wird also benötigt. Schöner wäre wahrscheinlich ein 
Optokoppler, aber das wäre wahrscheinlich erst ne Option, falls alles 
auf ein eigenes PCB soll.
Um kurz vorzugreifen, was sind bei einem Optokoppler wie dem FOD8173 die 
relevanten Punkte hinsichtlich Input und Output?
1
Recommended Operating Conditions FOD8173:
2
VDD Supply Voltages: min 3.0V, max 5.5V
3
VFL Logic Low Input Voltage: min 0.0V, max 0.8V
4
IOL Logic Low Output Current: min 0mA, max 7mA
5
IFH Logic High Input Current: min 5.0mA, max 16 mA
VDD => VDD_Pico = 3.3V, passt.
VFL => GPIO Output low Pico = 0V, passt.
IOL => muss ich rausfinden, ob der Eingang des µC auf TerminalPCB das 
abkann?
IFH => bezieht sich das auf den Strom, den der Optokoppler aus dem 
schaltenden Pin des Pico ziehen kann? Das wäre beim Pico max 16mA.


Softwareseitig funktioniert die Routine grundlegend, aktuell schreibe 
ich Logs in den internen Flash, will mir aber eine eigene REST Api 
hosten, an die ich Logs posten kann und von extern Parameter setzen 
kann.
Was mir Kopfzerbrechen bereitet, ist das Thema mit lightsleep und 
deepsleep. Irgendwie ist das seltsam dokumentiert.
Ich würde gerne nach Durchlauf der Routine ein RTC Wecker stellen und 
den Pico schlafen schicken bis zum nächsten Morgen. Beim ESP8266 ist das 
ganz gut beschrieben, beim Pico bin ich mir nichtmal sicher, ob er das 
kann.
Habe mir provisorisch damit beholfen, dass ich am Ende des 
while(True)-Loops das WIFI ausschalte und sleep(timeBis5UhrMorgens) 
mache - nicht gerade ideal.

Generell zweifle ich, ob der Pico für die Anwendung nicht etwas "drüber" 
ist.

Aktuell hängt der Aufbau jetzt erstmal paar Tage am Schreibtisch und 
lässt das Relais morgens klicken. Ich sammle erstmal Daten, und schaue 
mir in paar Tagen das Log an, um die Parameter für einen Feldtest setzen 
zu können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.