Forum: Mikrocontroller und Digitale Elektronik Projekt: Heizung Steuerung mit ESP8266 + 28BYJ + MCP16301


von Marcel B. (gigi)


Angehängte Dateien:

Lesenswert?

Guten Tag zusammen!

In einem anderen Thema habe ich schon einige Fragen zum MCP16301
beantwortet bekommen.

Nun habe ich mich entschlossen das "ganze" Projekt hier zur Schau zu 
stellen,
durchaus im Bewusstsein, das so Einige nur den Kopf schütteln werden.

Situation ist folgende :

1.)
  Sensor:
  Es gibt mehrere ESP, welche die Raumtemperaturen in Abständen 
überwachen.
  Hierbei handelt es sich um ein NodeMCU Board mit DS18B20 Sensor.
  Versorgt wird die Schaltung von einer 18650 Zelle.

2.)
  Der Aktor:
  Diese Seite soll die Heizung bzw. einen Schrittmotor steuern.
  Auf dem Steckbrett mit dem nötigsten aufgebaut funktioniert auch dies 
super.
  Hier gibt es nur den ESP, den A4988 Driver und VIN = 12V auf dem 
Steckbrett.
  Nun muss eine "bessere" Schaltung und eine Platine her.


Features bis jetzt:

- 3 Versorgungseingänge unabhängig von einander.
     1.- max 30V DC in -> Regelung durch MCP16301
     2.- Akkubetrieb (2x 18650 in Reihe) -> Regelung durch MCP16031
     3.- Backup -> Max 12V DC -> AMS1117 des NodeMCU nutzen

- Batteriespannung messen, Verbindung trennbar durch Jumper für
  DC IN > 8.4V

- Schrittmotor ebenfalls verschieden versorgbar über Jumper.
- MCP16031 Ausgang trennbar (Bei Nutzung des AMS1117).
- EEPROM 24LC32 zum Speichern der Motorposition um Flash vom ESP zu 
schonen.
  (verhindern von mehrmaligem auf/zu nach Stromunterbrechung / Wakeup 
aus
  DeepSleep)

RS vom A4988 hab ich auf Masse ziehen müssen, mit R4, weil der Motor 
fiept,
sobald der ESP in DeepSleep geht.
Bei 12V R4=4k7, bei 8V4 R4=820R.

Dieses Verhalten ist mir nicht ganz schlüssig, muss mit dem Pinzustand
im Deepsleep zusammenhängen. Wenn der ESP wach ist, ist alles i.O.
Scheint als wäre softwareseitiges Runterziehen im DeepSleep nichtmehr 
wirksam.

Mechanik für den Aktor, sowie die Batteriehalter sind selbst entworfen 
und
3D-gedruckt, falls sich jemand über die Batteriehalterfootprints, oder 
die Verwendung des Motors wundern sollte.

Würde mich freuen, wenn jemand Verbesserungsvorschläge hat, Anmerkungen, 
etc.
Vorallem gehts hier um Teil 2, also den Aktor. Die Sensorseite 
funktioniert soweit prima.


LG,
Marcel

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Schau mal, was Espressif zur Platzierung und dem Umfeld der Antenne 
empfiehlt
https://www.espressif.com/sites/default/files/documentation/esp8266_hardware_design_guidelines_en.pdf

von Marcel B. (gigi)


Lesenswert?

Steve van de Grens schrieb:
> Schau mal, was Espressif zur Platzierung und dem Umfeld der Antenne
> empfiehlt

Jau, stimmt, hab ich gesehen, aber in diesem Fall hätte ich was 
überstehen lassen müssen, das wolte ich vermeiden.

In einem anderen Projekt habe ich nichtmal die Groundplane reduziert und 
Verbindungsprobleme konnte ich keine feststellen.

Danke Dir



LG,
Marcel

von Helmut -. (dc3yc)


Lesenswert?

Und wie werden deine 18650 geladen? Willst du die immer alle 14 Tage 
extern laden?

von Marcel B. (gigi)


Lesenswert?

Helmut -. schrieb:
> Und wie werden deine 18650 geladen? Willst du die immer alle 14 Tage
> extern laden?

Yes, muss ich. Sonst könnte ich auch gleich eine Leitung zu jeder 
Heizung legen.
Leider keine Steckdosen in der Nähe.


LG,
Marcel

von Heinz R. (heijz)


Lesenswert?

Marcel B. schrieb:
> Yes, muss ich. Sonst könnte ich auch gleich eine Leitung zu jeder
> Heizung legen.
> Leider keine Steckdosen in der Nähe.

Hast Du einen Heimserver?

Ich würde auf Grund der Batteriethematik kein WLAN sondern z.B. 
Homematic-Sensoren nehmen
Auch hierfür gibt es Selberbauprojekte
https://asksinpp.de/


Für die Steuerung würde ich statt ESP8266 einen ESP32 nehmen

von Andreas M. (amesser)


Lesenswert?

Layout Aktor? (Wegen dem Schaltregler)

von Stefan S. (chiefeinherjar)


Lesenswert?

Ist es Absicht dass der Pin D0 bei dem Schematic zum Actor der Pin 
D0(GPIO16) vom NodeMCU mit dem Reset des NodeMCU verbunden ist anstatt 
dem A4988-Stepper Motor Treiber?
Am Pin D0(GPIO16) hängt nämlich das Flag "RST". Genau so am Reset-Pin 
des NodeMCU - da hängt auch das Flag "RST". Am Reset-Pin des A4988 hängt 
aber das Flag "RS".
Und im Gegenzug ist derzeit der Reset-Pin des A4988 mit nichts 
verbunden. Zumindest habe ich in diesem grässlichen Suchspiel kein 
korrespondierendes Flag mit "RS" gefunden.

: Bearbeitet durch User
von Marcel B. (gigi)


Lesenswert?

Andreas M. schrieb:
> Layout Aktor? (Wegen dem Schaltregler)

Da sitze ich gerade dran, ein erster Entwurf sollte bis heute Abend 
stehen.

Stefan S. schrieb:
> Am Pin D0(GPIO16) hängt nämlich das Flag "RST". Genau so am Reset-Pin
> des NodeMCU - da hängt auch das Flag "RST". Am Reset-Pin des A4988 hängt
> aber das Flag "RS".

Ja, die Verbindung wird benötigt um den ESP aus dem Tiefschlaf zu holen.
D0 gibt nach Ablauf der Zeit ein Signal aus.

Stefan S. schrieb:
> Und im Gegenzug ist derzeit der Reset-Pin des A4988 mit nichts
> verbunden.

D5 geht an den RS vom Treiber.

Stefan S. schrieb:
> Zumindest habe ich in diesem grässlichen Suchspiel kein
> korrespondierendes Flag mit "RS" gefunden.

Sorry, ich dachte mit Flags ists einfacher.

LG,
Marcel

von Stefan S. (chiefeinherjar)


Lesenswert?

Marcel B. schrieb:
> Stefan S. schrieb:
>> Und im Gegenzug ist derzeit der Reset-Pin des A4988 mit nichts
>> verbunden.
>
> D5 geht an den RS vom Treiber.

Sicher? Das Flag liest sich im PNG bei D5 viel mehr wie ein "R5" anstatt 
"RS".

Das ist genau das Problem - man muss manuell suchen und wenn man sich 
mal verschreibt, dann hat man gleich ein Problem. Bei direkt gezogenen 
Verbindungen gäbe es kein Rätselraten.

von Stefan S. (chiefeinherjar)


Angehängte Dateien:

Lesenswert?

Ich habe mal die Ausschnitte angehängt - und so mich meine Augen und die 
Kompression nicht täuschen, hast du ein Mal "R5" und das andere Mal "RS" 
geschrieben.

Ich habe auch mal zum Vergleich ein echtes "R5" vom zugehörigen 
Widerstand angehängt.

von Marcel B. (gigi)


Lesenswert?

Ach du liebes Lieschen!
DANKE, das hab ich selbst nicht gesehen, haha.

Edit: Doch ist RS, keine Ahnung wieso das auf dem Screenshot so 
aussieht.
Aber du hast Recht, sieht wirklich so aus!



Mal ne andere Sache...
kann mir jemand verraten was ich da für ein Gehäuse gekauft habe ? 
https://www.reichelt.de/eeprom-seriell-64-kb-8-k-x-8-i2c-2-5--5-5-v-so-8-24lc64-i-sn-p40079.html?&nbc=1

Im Datenblatt gibts kein SO-8, wenn ich nicht schon wieder was übersehen 
habe.


LG,
Marcel

: Bearbeitet durch User
von Stefan S. (chiefeinherjar)


Lesenswert?

Marcel B. schrieb:
> Im Datenblatt gibts kein SO-8, wenn ich nicht schon wieder was übersehen
> habe.

Aber sicher. SOIC mit 8 Pins.

von Udo S. (urschmitt)


Lesenswert?

Marcel B. schrieb:
> Würde mich freuen, wenn jemand Verbesserungsvorschläge hat, Anmerkungen,
> etc.

Anmerkungen:

So eine eigene Steuerung ist natürlich ein spannendes Projekt.
Aber bevor du das in deine Wohnung/Haus einbaust solltest du dir einige 
Fragen stellen:

1. Wenn du plötzlich für längere Zeit weg musst oder erkrankst, wer kann 
diese Steuerung sonst noch bedienen, Akkus nachladen, bei Problemen 
reparieren?
2. Was kann passieren wenn du/deine Familie 3 Wochen weg sind (Urlaub). 
Im Winter kann bei Heizungsausfall ein kapitaler Gebäudeschaden 
entstehen.
3. Falls es zu einem größeren Schaden kommt, was macht dann die 
Haftpflicht/Gebäude/Hausratversicherung?

Ich will dir nicht das Basteln vermiesen, aber man sollte sich doch mal 
Gedanken machen was die Folgen sein können wenn eine Bastelei versagt.

: Bearbeitet durch User
von Marcel B. (gigi)


Lesenswert?

Stefan S. schrieb:
> Aber sicher. SOIC mit 8 Pins.

Du meinst hier Seite 16 ?
https://cdn-reichelt.de/documents/datenblatt/A300/24AA64-MIC.pdf

Udo S. schrieb:
> Ich will dir nicht das Basteln vermiesen, aber man sollte sich doch mal
> Gedanken machen was die Folgen sein können wenn eine Bastelei versagt.

Da hast du vollkommen Recht, Urlaub ist bei mir nie,
wenn dann Elektronik, so wie jetzt, haha.

Sonst ist meine Frau auch noch da. Selten dass wir mal mehr als einen 
Tag weg sind.

Falls die Steuerung versagen sollte, kann man jederzeit die Original 
Thermostatköpfe wieder draufsetzen, die liegen daneben.


LG,
Marcel

: Bearbeitet durch User
von Marcel B. (gigi)


Angehängte Dateien:

Lesenswert?

Nabend zusammen,

Hier mal ein erster Entwurf,
nicht genau nach Datasheet, weil meine Bauteile größer sind.

Habe versucht mich so weit es geht, ans DS zu halten.
GND fehlt noch, das kommt am Ende, wenn der Rest steht.


LG,
Marcel

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Spule um 90° drehen, so dass der Pin 1 so nah wie es geht an den MCP ran 
kommt. Außerdem die Leiterbahn zwischen MCP, Pin 1 und D2 nicht dicker 
und länger als nötig, die bildet mit der GND Plane eine Kapazität bzw. 
eine Antenne und wird mit den 500kHz getaktet. Ich würds nicht breiter 
als die Bohrung der spule machen.

D2 würde ich auch um 90° Drehen und die Ausgangskerkos unterhalb der 
Diode platzieren, also zwischen Spule und dem Bauteil links, ebenfalls 
gedreht. Dann kannst Du zusätzlich zur Groundplane auf der anderen 
Platinenseite noch eine GND Fläche über D2, C1 und Ausgangskerkos 
machen, da muss der Strom gar nicht erst durch die Vias

Du hast zwei Strompfade, die möglichst kurz sein müssen:

a) D2->L1->Ausgangskerkos
b) C1 -> MCP -> L1 -> Ausgangskerkos

Die Leiterbahnn von L1 zu D1 muss nicht so dick sein und darf auch 
länger werden. Außerdem sollte es eine eigene Leiterbahn sein, nicht 
zusammen mit der Feedbackleitung. Der Spannungsteiler muss direkt an den 
Ausgangskerkos angepappt werden und sollte wirklich eine eigene 
Leiterbahn haben, nicht mit irgendwas anderem zusammen. Ich würde diese 
Feedbackleitung dann auch eher links herum um die Schaltung legen, also 
weit entfernt von allem was taktet.

von Marcel B. (gigi)


Angehängte Dateien:

Lesenswert?

'Nabend!

Andreas M. schrieb:
> a) D2->L1->Ausgangskerkos
> b) C1 -> MCP -> L1 -> Ausgangskerkos

Danke erstmal!
Hab nochmal umgebaut um diesen Kriterien besser zu entsprechen.
Nicht ganz was du vorgeschlagen hast, aber vielleicht akzeptabel ?

Außerdem hab ich mal ne Groundplane drum gemacht zur besseren Ansicht.

Edit:
Bitte zweites Bild schauen, jetzt ist D1 auch richtig verbunden.


LG,
Marcel

: Bearbeitet durch User
von Marcel B. (gigi)


Angehängte Dateien:

Lesenswert?

So, erster Entwurf der ganzen Platine steht.

von Andreas M. (amesser)


Angehängte Dateien:

Lesenswert?

Naja ok. Ich würde C4 und C5 noch drehen, so das ground unten ist. Dann 
hast du eine direkte Verbindung zwischen GND C4,C5 und D1 und C1. 
Aktuell muss dein C4/C5 GND per VIA auf die andere Seite. dann rüber und 
dort per VIA wieder nach oben.

Unter die Spule gehört keine Groundplane. Zwischen GND und allen 
Kupferflächen, die mit dem Schaltausgang des MCP verbunden sind sollte 
so viel wie möglich Abstand sein. Ich hatte ja oben schon geschrieben 
das sich zwischen (jeglichem) Kupfer und GND Plane ein Kondensator 
ausbildet. Wenn du jetzt also viel Kupfer an dem Schaltausgang hast, was 
dann auch noch dicht an GND ran reicht, dann bekommst du eine große 
parasitäre Kapazität. Diese muss bei jedem Schaltvorgang vom MCP 
umgeladen werden verbrennt also unnötig Energie die zum Teil auch noch 
in Funkwellen (EM) abgestrahlt wird. Für die paar mA die Du hier hast 
ist das vollkommen unnötig so breite Bahnen zu machen. Die Leiterbahnen 
sind doch nur wenige mm lang.

Ich habe Dir mal ein Screenshot von einem meiner Projekte gemacht. Das 
ist ein 1A DC/DC Wandler, die Leiterbahn ist kaum breiter als der Pin. 
(Des SOT-23-5)

Das Projekt (Kicad) liegt hier:

https://gitlab.com/amesser-group/electronic-devices/bastelino-esp32-s2

(Achtung, der Wandler taugt für deine 9V Eingangsspannung nicht, ich 
habe hier max 5V Vin)

von Marcel B. (gigi)


Lesenswert?

Mahlzeit,

Dann habe ich da was falsch verstanden, sorry.
Im Datenblatt stand "bottom is GND" oder so ähnlich.

Dann halte ich einfach auf beiden Layern GND weg vom Regler ?
Aber du hast ja auch GND drunter.
Ich versuch mich mal deinem Layout anzunähern.

Danke Dir!

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Marcel B. schrieb:
> Dann halte ich einfach auf beiden Layern GND weg vom Regler ?
> Aber du hast ja auch GND drunter.
> Ich versuch mich mal deinem Layout anzunähern.

Bei ner zweilagen Platinen würde ich schon auf der anderen Seite ne 
durchgehende GND Plane machen wenn es geht. Auch zur Kühlung. Bei vier 
Lagen nehme ich meist die mittleren Lagen raus wenn es geht.

: Bearbeitet durch User
von Marcel B. (gigi)


Angehängte Dateien:

Lesenswert?

Moin,

Andreas M. schrieb:
> Bei ner zweilagen Platinen würde ich schon auf der anderen Seite ne
> durchgehende GND Plane machen, wenn es geht.


Kondensatoren gedreht, GND unter Spule weg.
Meinst das passt nun ?

Bis auf die Leiterbahnbreite, da muss ich noch ran.

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Ja, sieht besser aus.

von Marcel B. (gigi)


Lesenswert?

Andreas M. schrieb:
> Ja, sieht besser aus.

Danke, Dir!
Dann kann ich das Dingen ja bald in Auftrag geben.


Mal ne andere Sache:

Jemand ein paar L-09HCP 15µH rumfliegen ?
Gerade das wichtigste Bauteil meiner Bestellung und steht nun unter 
offene Posten.

LG,
Marcel

von Andreas M. (amesser)


Lesenswert?

Marcel B. schrieb:
> Jemand ein paar L-09HCP 15µH

Hmm, was hast Du vor? Die ist doch gnadenlos überdimensioniert. Kein 
Wunder dass die so groß ist.

Denk noch mal drüber nach, ob du nicht doch besser ne SMD Spule willst. 
Ich vermute mal Du bestellst bei Reichelt? Die hier reicht dicke aus: 
L-1616FPS 15µ. Pads zum anlöten etwas breiter machen so dass Du mit dem 
Lötkolben dran kommst.

von Marcel B. (gigi)


Lesenswert?

Mist,

hatte ich erst im Korb, wollte dann aber auf Nummer sicher gehen.

Nur für ne Spule nochmal bestellen lohnt nicht, da muss ich mir nochmal 
meine Platinen anschauen ob ich da was zum auslöten finde.

Danke nochmal.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marcel B. schrieb:
> weil meine Bauteile größer sind.
Diese L1, was ist denn das?
Ist das so eine offene Tonnenspule, die super als Sendeantenne taugt? 
Ja, tatsächlich. Mein Tipp: nimm eine vernünftige magentisch 
geschlossene Spule.

Marcel B. schrieb:
> In einem anderen Thema habe ich schon einige Fragen zum MCP16301
> beantwortet bekommen.
Und genau dort wurde auch die Spule auch schon angesprochen:
- Beitrag "Re: MCP 16301 Schottky Diode"

Um das Thema aus einer anderen Richtung anzupacken: wenn du eine völlig 
andere Spule verwendest als der Hersteller in seinen 
Schaltungsbeispielen einsetzt, dann solltest du dir vollkommen sicher 
sein, dass die für die Anwendung taugt. Bei dieser riesigen Sendespule 
ist die Antwort: nein, die taugt nicht als Speicherspule für 
Schaltregler. Nimm eine SMD-Spule, die im MHz-Bereich spezifiziert ist.

von Marcel B. (gigi)


Lesenswert?

Lothar M. schrieb:

> Schaltregler. Nimm eine SMD-Spule, die im MHz-Bereich spezifiziert ist.

Darauf wirds hinauslaufen, danke. :)


LG,
Marcel

von Marcel B. (gigi)


Angehängte Dateien:

Lesenswert?

Marcel B. schrieb:
> Darauf wirds hinauslaufen, danke. :)

Dummerweise gibts in KiCad keinen passenden Footprint.

Musste einen ändern.
Kann jemand mal drüberschauen ob das so passt ?

Sieht irgendwie komisch aus,
aber im Datenblatt steht Padbreite : 1,5 / Padlänge: 3,6
und der Padabstand ist "nur" 1,55 ? (4,55 - 3)?

Edit: Quelle - 
https://cdn-reichelt.de/documents/datenblatt/B400/DS_1616FPS.pdf

LG,
Marcel

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Das passt schon so.

Nachtrag: Falls u mit lötkolben lötest, verlängere die Pads an den 
Außenkanten wenigstens um 0.5mm-0.7mm. Sonst hast du keine Chance da 
wärme drunterzubringe,

: Bearbeitet durch User
von Marcel B. (gigi)


Lesenswert?

Andreas M. schrieb:
> Nachtrag: Falls u mit lötkolben lötest,

Ich habe hier so einen Heissluftkolben, den wollte ich mal probieren.

Werde aber trotzdem nochmal verlängern.


Danke dir!

von Marcel B. (gigi)


Angehängte Dateien:

Lesenswert?

Mahlzeit,

hab hier nochmal mit der kleineren Spule was gebastelt.

Sieht besser aus, denke ich!


LG,
Marcel

von Lutz S. (lutzs)



Lesenswert?

Habe das hier einfacher gelöst. Raumsensoren über Funk (TiNo-Projekt), 
CR2032 Zelle hält ca. 3 Jahre.

https://github.com/nurazur/TiNo/blob/master/dokumentation.md

Als Gateway hatte ich erst wie im Projekt einen Raspi im Einsatz, jetzt 
einen ESP32.

Vorlauftemperatur weit runter, ca 35 Grad. Alle Thermostate komplett 
auf, wenn einer der wichtigen Räume 30 Minuten über 21,5 Grad ist wird 
der Brenner im Gaskessel eine Zeit zwangsweise deaktiviert 
(Brennersperre), Umwälzpumpe läuft weiter.

Wenn die Räume künftig bei tieferen Aussentemperaturen zu sehr 
auseinanderlaufen schrittweiser thermischer Abgleich über Durchfluss, 
ggf. auch Nutzung des Thermostats.

: Bearbeitet durch User
von Andreas M. (amesser)


Angehängte Dateien:

Lesenswert?

Marcel B. schrieb:
> Sieht besser aus, denke ich!

Ja, bis auf C4,C5. Ich würde die Spule um 180° drehen, C4 und C5 dann 
direkt unterhalb der spule platzieren. Siehe mein Bild, Ich habe da auch 
die Stromschleifen eingezeichnet die sich im Betrieb des DC/DC ergeben.

Ich würde dann vermutlich auch noch c3 drehen und parallel zu D1 setzen. 
Und dann den ganzen Block aus D2, L1, C4,C5 etwas nach rechts und nach 
oben ran schieben.

von Marcel B. (gigi)


Angehängte Dateien:

Lesenswert?

Was lange währt...
...
wird doch nur so halb gut.

Aaber ich habe ne kleinere Diode (DBoost) gefunden, auch aus dem MCP
Datenblatt. BF140, hat einen kleineren FP und macht die ganze
Sache ein bisschen schöner.

Nochmals riesen Dank für deine Hilfe!


Lutz S. schrieb:
> Vorlauftemperatur weit runter, ca 35 Grad. Alle Thermostate komplett
> auf, wenn einer der wichtigen Räume 30 Minuten über 21,5 Grad ist wird
> der Brenner im Gaskessel eine Zeit zwangsweise deaktiviert
> (Brennersperre), Umwälzpumpe läuft weiter.

Sehr guter Ansatz, hab ich leider keinen Zugriff drauf.
Danke dir trotzdem!

LG,
Marcel

Edit: Falsches Bild. (_202315) ist das Richtige.

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Ja. So find ichs ok.

von Marcel B. (gigi)


Lesenswert?

Nabend,
danke fürs drüberschauen!

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.