Forum: Projekte & Code ESP8266: ShellyEM3 auslesen und mit 71 * WS2812 anzeigen


von Pepe T. (pepe_t)


Angehängte Dateien:

Lesenswert?

Das ist mein arduino - ESP8266 projekt um mir den stromverbrauch / 
erzeugung schnell und gross anzeigen zu lassen. Ich verwende einen 
WS2812 led-streifen zur anzeige. Messen tut ein "shelly EM3" im 
anschlusskasten unten im keller. Des hat "split-core" stromsensoren, 
lässt sich ohne elektriker montieren und und erfasst auch einspeisung.

Der led-streifen hat 71 LED. Jede phase hat ihre eigenen farbe.
Die mitte ist 0 watt, jedes pixel abweichung 20W.
Out für ws2812 data ist PIN 4
Lässt sich im code einstellen.

#define PIN        4
#define NUMPIXELS 71
#define MIDPIXEL  35
#define WATTPERPIXEL 20 //-700 to +700 Watts

Die SSID, password und shelly IP müsst ihr individuell einstellen.
Der code sollte einfachst an shelly PM1 oder 2.5 anpassbar sein.
Eigentlich an alles was JSON über WiFi ausspuckt.

Die LED blinken rot wenn von der solaranlage mehr als 600W eingespiesen 
wird. Das ist für mich das zeichen "wasserwärmepumpe anwerfen". Noch 
nicht automatisiert.

Ich habe ine 0.7V drop diode im 5V VCC der WS2812 um den eingang auf 
3.3V anzupassen. Denkbar wäre auch den ausgang auf open-drain zu 
schalten und mit 1k auf +5V zu ziehen.

Viel spass dabei !

: Bearbeitet durch User
von Bumperino (Gast)


Lesenswert?

Scheint niemanden zu interessieren.

von Heinz R. (heijz)


Lesenswert?

Bumperino schrieb:
> Scheint niemanden zu interessieren.

schönes Projekt - aber ich wüsste jetzt nicht wo ich mir so einen 
LED-STreifen hinkleben wollte

von Pepe T. (pepe_t)


Lesenswert?

Nachtrag:
Man kann den ausgang auch als "open drain" definieren und das mit 1k R 
auf +5V ziehen. Damit spart man die diode, die WS2812 bekommen die 
vollen 5V ab, und man braucht keine level-shifter.

Im code geht das so:
pinMode(PIN, OUTPUT_OPEN_DRAIN);

Die PIN nummer ist die GPIO nummer. Das ist dann mit D4 oder auch mit D2 
angeschrieben, je nachdem welches board man braucht.

: Bearbeitet durch User
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.