WeMos – WLAN Sensoren und Aktoren zum zusammenstecken

Ich bin ein großer Fan der kleinen ESP8266-Bausteine. Bereits beim MySensoors-WLAN-Gateway kommt eine Version des ESP8266-Chips zum Einsatz. Mit diesem Chip lassen sich leicht eigene Schaltungen ins heimische WLAN-Netzwerk einbinden und so die Verbindung zu FHEM herstellen. Ein weiterer Vorteil ist der geringe Preis. Bereits für knappe 4€ lässt sich der Chip bei Amazon bestellen (Amazon Affiliate-Link).

Nun habe ich im Internet die WeMos-Bausteine (http://www.wemos.cc/) entdeckt. WeMos bietet bereits seit längerem größere Boards mit WLAN-Funktion an. Neuerdings vertreiben sie aber auch ein kleines Board mit integriertem ESP8266-Baustein -> den D1-Mini. Zusätzlich gibt es bereits eine große Auswahl ein WeMos-Shields. Diese werden einfach auf das „Grundboard“ draufgesteckt. Der Vorteil, diese Boards lassen sich stapeln. So lässt sich mit einem Grundboard ein komplexer Sensor/Aktor realisieren und dies in einer verdammt kompakten Bauform 😉 Perfekt für die Hausautomation.

WeMos Shield Alle

D1-Mini-Board

Der D1-Mini ist ein kleines Board mit 11 digitalen Ein-/Ausgänge und einem analoger Eingang. Programmiert kann das Board mit der Arduino- oder nodemcu-Umgebung. Angeschlossen wird es über Micro-USB.

WeMos D1 mini

Klingt nach einem Arduino-Nano oder Micro. Im großen und ganzen stimmt dies auch. Aber das WeMos-Board kann noch mit einem Extra auftrumpfen. Nämlich den ESP8266-WLAN-Chip. Das Board lässt sich also ohne extra Hardware mit dem WLAN verbinden.

D1-Mini-Shield

Sensoren und Aktoren lassen sich entweder direkt an das Board über die Ein-/Ausgänge anschließen. Oder man verwendet die bereits oben genannten WeMos-Shields. WeMos bietet da bereits eine große Auswahl:

  • DHT-Shield (DHT11)
  • DHT-ProShield (DHT22)
  • OLED-Shield
  • I-Button-Shield
  • Relay-Shield
  • MicroSD-Shield
  • ProtoBoard-Shield

Zu kaufen gibt es das Board und die Shields im WeMos-Shop auf AliExpress.

WeMos_DHTWeMos D1 miniWeMos_OLED2

Ich persönlich habe mir einige D1-Mini-Boards, DHT-ProShields, I-Button-Shields, Relay-Shields und ein OLED-Shield zugelegt.

Einstieg und Beispiel-Programme

Für den schnellen Einstieg gibt es bereits einige Beispiel-Programme. Mit diesen lässt sich das Board und das verwendete Shield schnell auf Funktion testen. Ich habe dafürdie Arduino-Umgebung verwendet.

Board-Treiber installieren

Damit man mit der Arduino-IDE das WeMos-Board programmieren kann, ist es notwendig, dass der passende Board-Treiber installiert ist. Dazu trägt man unter der Arduino-IDE unter Datei/Voreinstellung die folgende „Zusätzliche Boardverwalter-URL“ ein:

Anschließend kann man unter Werkzeuge/Board/Boardverwalter die benötigten ESP8266-Treiber installieren.

WeMosTreiber

Unter Werkzeuge/Board kann man nun das WeMos D1 mini auswählen. Nun noch den passenden Port auswählen und schon kann das Programmieren beginnen.

Benötigte Libaries

Damit man die Beispiel-Programme auf dem Board zum laufen bekommt, müssen folgende Libaries in das Arduino-Sketchbook eingebunden werden:

D1-Mini-Exmaple
https://github.com/wemos/D1_mini_Examples/archive/master.zip

DHT-Sensor-Libary für die DHT-Shields
https://github.com/adafruit/DHT-sensor-library

SparkFun Micro OLED Libary für das OLED-Shield
https://github.com/sparkfun/SparkFun_Micro_OLED_Arduino_Library/tree/master

Dazu einfach die oben genannten Beispiele/Libaries downloaden und in euren persönlichen Sketchordner kopieren. Den Pfad zu eurem Sketchordner findet ihr unter Datei/Voreinstellungen.

Die D1-Mini-Exmaple würde ich ich direkt im Sketchordner unter „D1-Mini-Example“ kopieren. Die beiden Libaries in einen Ordner mit dem Namen „libaries“.

Alternativ könnt ihr die Libaries natürlich auch in euren Installationsordner der Arduino-Installation kopieren. Ich persönlch speicher jedoch zusätzliche Beispiele/Libarys in meinem persönlichen Sketchordner. Dies hat den Vorteil, dass der Sketchordner schnell mit anderen Arduino-Installationen verwendet werden kann.

Für weitere Beispiele müssen eventuell noch weitere Libaries eingebunden werden. Welche benötigt werden, lassen sich auf der entsprechenden Shield-Homepage nachlesen.

Nach einem Neustart der Arduino-IDE lassen sich die Beispiele unter Datei/Sketchbook finden. Unter Punkt 4 finden sich Beispiele für die Shields.

WeMos Beispiele

Mit Hilfe der Beispiele kann man relativ schnell die Syntax lernen und beginnen eigene Projekte zu realisieren.

Auf meiner „to-do-Liste“ sind die WeMos-Chips weit nach oben gerutscht. Der Gedanke diese WeMos-Sensoren/Aktoren in FHEM einzubinden lässt mich nicht locker 😉 Mit Easy-ESP ist dies auch schnell und simple erledigt und die WeMos-Shields können mit FHEM gesteuert bzw. ausgelesen werden.

WeMos bei Amazon (Affiliate-Link):

Letzte Aktualisierung am 3.12.2016 / Affiliate Links / Bilder von der Amazon Product Advertising API

9 Kommentare zu “WeMos – WLAN Sensoren und Aktoren zum zusammenstecken

  1. Hi,
    Habe mal eine bescheidene Frage:

    Wieviel Sensoren kann man an so ein WeMos hängen?

    Ich möchte daran 5 Reedkontakte unabhängig von einander überwachen können.

    Gruß Markus

    • Hallo Markus. Das Relais-Shield von WeMos lässt sich nur einemmal einsetzten, da dieses über die GPIO5 an das D1-Shield angeschlossen wird. Was natürlich geht, ist der Einsatz von selbst gebauten Reedkontakten. Da kann man ja dann an jedem Ausgang vom D1-Shield ein Kontakt anschließen. Insgesamt dann bis zu 11.
      Gruß Daniel.

  2. Hallo,

    ich habe auch einen Wemos, allerdings den älteren D1. An diesem ist ein Hall-Effekt angeschlossen. Wenn ich ihn Neustarte (Szenario Stromausfall) während der Sensor am Magneten liegt, dann scheint der Wemos nicht zu booten (ESPEasy WebGUI nicht erreichbar). Außerdem signalisiert die Indikator-LED am Hall-Effekt auch dann einen Magneten, wenn ich diesen entfernt habe. Ich muss ihn also dann außer Reichweite des Magneten erneut neustarten, damit er wieder funktioniert. Ist das vielleicht ein Wemos-spezifisches Problem? Würde das selbe auch am Wemos mini passieren? Würde notfalls auf alternative Boards ausweichen.

    Wo hier schon die Rede von Reed-Kontakten war: Gern würde ich auch den Hall-Effekt durch einen Reed-Schalter ablösen, da es auf Ali günstige Fensterkontakte gibt und diese leichter zu befestigen sind. Kann ich diesen dann ebenso an einen digitalen GPIO anschließen und erwarten, dass mir via ESPEasy 0 und 1 übertragen werden? Ich habe verschiedene Schaltungen gefunden, welche wären geeignet (Widerstand notwendig?)? Bsp. https://cdn.sparkfun.com/assets/learn_tutorials/5/1/9/example_circuit_bb-2.png oder https://lh3.googleusercontent.com/5SRJOblxuvx6G8NGc8ouEyWvVHq5ZZmCWL1tb6eCZPwdNSdLqqWx8dPyyOMbCkLBTACl0FJ5lkUfDXjzyHnypSXLgcUVNhkNHC8v21qjEmHFMAINCPjxVrRn

    Freue mich über Input.
    Beste Grüße
    Flo

    • Hallo Flo,
      zu deiner ersten Frage kann ich leider nichts zu sagen. Besitze leider keinen Hall-Effekt-Sensor und im Internet habe ich auch nicht wirklich was gefunden. Welchen Sensor benutzt du den? Dann würde ich mal probieren diesen zu besorgen. Das Zusammenspiel mit den WeMos-Boards klingt interessant.

      Zu deiner zweiten Frage. Der Einsatz eines Reed-Kontaktes sollte problemlos klappen. Einfach an einen GPIO anschließen und über ESPEasy entsprechend konfigurieren. Der Status des Kontaktes sollte dann über ESPEasy ablesbar sein.

      Schaltplantechnisch funktionieren beide Pläne die du verlinkt hast. Bei dem Schaltplan ohne Widerstand ist jedoch darauf zu achten, dass man den internen Pull-Up-Widerstand aktiviert. Dies geschieht unter ESPEasy über den „Switch-Button-Type“ (http://www.esp8266.nu/index.php/Switch). Wenn der Button also an GND angeschlossen wird, dann muss der Button-Type auf „Push Button Active HIGH“ eingestellt sein. Ist der Button nun nicht gedrückt, dann wird das Potential intern auf HIGH gelegt. Beim Schaltplan 2 wird dies über den externen Widerstand geregelt. Ich persönlich benutze meistens einen externen Widerstand. Da fühl ich mich irgendwie mehr auf der sicheren Seite 😉 Aber wie gesagt, Schaltplan 1 reicht aus, da man den sogenannten Pull-Up-Widerstand auch softwareseitig realisieren kann.

      Gruß Daniel

    • Hallo Daniel,

      danke für deine schnelle Antwort und dein Engagement 🙂
      Den Hall-Effekt hab ich damals von diesem Link hier bezogen: http://www.banggood.com/Hall-Effect-Magnetic-Sensor-Module-DC-5V-For-Arduino-p-76469.html?p=DQ30066511122014069J&utm_campaign=educ8stv&utm_content=huangwenjie Allerdings wurde scheinbar das konkrete Produkt geändert, denn auf meinem steht nicht „Keyes“. Wahrscheinlich funktioniert dieser aber genau gleich. (In diesem Video wird meine Version verwendet: https://www.youtube.com/watch?v=4eqi0G7uY_4#t=1m11s )

      Dann würde sich ja die Notwendigkeit des Hall-Effekts erübrigen, wenn ich auf Reed umschalte. Mithilfe der Doku wäre ich wohl nie darauf gekommen, den Widerstand softwareseitig zu schalten 🙂 Vermutlich muss dann auch in ESPEasy Pull Up unter Devices eingestellt werden? Welche Sicherheitsbedenken hast du denn? Sollte der softwareseitige Widerstand nicht greifen, dann versagt doch einfach nur der GPIO und kann die Signale nicht „erkennen“. Oder ist mit ernsthafter Überlastung mit Schädigung des Boards zu rechnen oder sogar, dass es Feuer fängt? 😀

      Beste Grüße
      Flo

    • Hallo Flo,
      danke für die Links.
      Das mit dem Pull-Up habe ich gar nicht gesehen, aber das würde ich dann auch aktivieren. Einfach mal bisschen mit den Einstellungen spielen.
      Denke der Widerstand ist nicht nötigt. Softwareseitig kann man da ja genug einstellen. Im Fehlerfall hast du dann maximal ein „Fehlalarm“ bzw. es wird nicht richtig erkannt ob der Schalter geschlossen oder offen ist. Aber abbrennen kann da nichts. Und Überlastung an dem GPIO eigentlich auch nicht. So wie ich es verstanden habe, willst du den Reed-Kontakt ja nur zur Fenster-Überwachung verwenden, du wirst ja keine großen Verbraucher mit viel Leistung oder so schalten. Also alles im grünen Bereich ? sichere Seite war eher darauf bezogen, dass der Taster richtig erkannt wird. Aber das kommt daher, dass ich früher viel selbst programmiert habe und so. Bei so einem WeMos-Baustein mit ESPEasy wird die Software schon akurat funktionieren.

      Gruß Daniel

  3. Hallo Daniel,

    in der Zwischenzeit sind die Wemos Mini Pro sowie Reed-Kontakte bei mir eingetroffen 🙂 Seit gestern versuche ich allerdings vergeblich mittels ESPtool espeasy auf den Wemos zu flashen. Nach Ausführung der flash.cmd kommt am Ende immer die Fehlermeldung „warning: espcomm_sync failed error: espcomm_open failed“. Habe mittlerweile Version R120, R140 sowie R142 sowie 3 USB-Kabel versucht. Im Internet habe ich gelesen, dass GPIO0 GND 3,3V und RST in einer Kombination miteinander verbunden werden sollen, um einen Pull-Up zu bewirken. Wenn ich das richtig umgesetzt habe, hat auch das nicht geholfen. Auch Tips, erst kurz vor dem Hochladen den Wemos mit Strom zu versorgen, hat leider nichts gebracht. Übersehe ich hier etwas? Bin so langsam ratlos. Vielleicht hast du ja noch Tips bzw. kennst die Probleme vom Vorgänger.

     

    PS.: Bei meinem alten Wemos D1 R1 (reitred) hat das problemlos funktioniert per ESPtool.

     

    Beste Grüße

    Flo

    • Hallo Flo,

      habe leider nur die normalen Wemos Minis hier. Hab es gerade nochmal probiert. Das Flaschen mit dem Tool klappt wunderbar. Hast du den richtigen Port eingegeben?
      Kann natürlich auch sein, dass es ein spezielles Problem der Pros sind. Habe mir nun auch mal ein paar davon bestellt. Kann dir aber leider erst in 21-47 Tagen mehr dazu sagen 😉

      Ich denke, dass das Tool nicht für die Pros funktioniert. Man gibt ja den Flash-Size an. Zur Auswahl stehen ja nur 512, 1024 oder 4096. Man kann zwar auch andere Werte eingeben, der Pro hat zum Beispiel 16384 (16M). Problem ist dann aber, dass keine Datei für diese Flash-Größe vorhanden ist (Im Ordner ESP_Easy_R120 –> ESPEasy_R120_512.bin etc.). Andersrum kann man aber zum Beispiel den normales Wemos Mini (der hat 4096) mit 512 flashen. Also vllt. klappt es auch die Pros mit der 4096 Datei zu flashen. Naja, nur so ein paar Gedanken 😉 Wenn meine Pros ankommen, dann weiß ich mehr.

      Was vllt. eine Lösung sein kann, wenn man die Pros manuell mit der Arduino-IDE programmiert. Die benötigten Files befinden sich ja im Source-Ordner.

      Gruß Daniel

  4. Hi Daniel,

    danke für deine wiedermal sehr schnelle Antwort! Bin sehr auf deinen Lösungsweg gespannt, bei mir eilt das Projekt nicht sonderlich 🙂

    Ich gehe davon aus, so wie du bereits sagtest, dass das flashen mit 4096 schon möglich sein sollte – habe jedenfalls gelesen, dass dann nur die 4096 adressiert werden und nicht die ganzen 16MB. Für easyesp sollten die 4096 ja locker reichen.

    Vermutlich hängt das irgendwie mit dem Reboot bzw. mit dem Bootloader zusammen, denn ein paar „Trying to connect“ macht das esptool ja erfolgreich, bevor es failed.

    Lass dann auf jeden Fall was hören 🙂

    Beste Grüße

    Flo

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*