ESP8266 mit espduino

  • Hallöchen ihr,

    wie schon angekündigt möchte ich ein paar Worte über das Projekt espduino verlieren ;)
    Kurz zu meinem Projekt:

    Ich möchte über das Message Queue Telemetry Transport Protokoll (kurz MQTT) viele Geräte untereinander kommunizieren lassen. Diese Geräte werden über dieses Protokoll dann ein paar LEDs beschalten. Damit ein Gerät neue Informationen direkt an seine Kollegen weitergegeben kann, verwende ich MQTT.
    Auf der Suche nach einer geeigneten Arduino API bin ich dann relativ schnell auf espduino gestoßen. Der Entwickler wirbt mit folgenden Features:

    • Sicherer Umgang als über die AT COMMAND


    MQTT module:

    • Stabiler MQTT client (verwendet Native MQTT client (esp_mqtt))
    • Unterstützt folgende MQTT Befehle: subscribe, publish, authentication, keep alive pings und alle 3 QoS Levels
    • Mehrfache Verbindungen (auch zu unterschiedlichen Broker) sind möglich
    • SSL Support
    • Einfach zu installieren und zu benutzen


    REST module:

    • Unterstützt GET, POST, PUT, DELETE
    • setContent type, set header, set User Agent
    • Benutzerfreundliche API
    • SSL Support
    • Mehrfache Verbindungen möglich

    Dieses Projekt beinhaltet zum einen eine eigene Firmware für den ESP8266 und zum anderen die API für den Arduino - zusätzlich liegen noch 3 kleinere Beispiel Sketche bei.
    Außerdem ist eine komplette Installationsanleitung (mit Bildern über Schaltungen) vorhanden.

    Meine in Betriebnahme:
    Das Projekt ist leicht durch Git herunter geladen und die ersten Schritte bestehen aus der verkabelung des ESP8266 an den Arduino.
    Die Bilder / Fritzing Diagramme sind schön übersichtlich und leicht nachzuvollziehen.
    Nachdem alles verkabelt ist, kann man mit einem beiliegenden Python Flash Tool die eigene Firmware auf den ESP ziehen. Danach noch ein paar Leitungen umstecken und schon ist der ESP fertig für den Einsatz - bisher alles super reibungslos.

    Danach bestand die Aufgabe darin, einen kostenfreien Broker (einen MQTT Server) zu finden. Einer der ersten Treffer war der mosquitto Test Broker. Mit diesem Server habe ich in dem Beispiel Sketch "mqtt" hinterlegt, dazu noch meine WLan Zugangsdaten eingetragen und direkt mal hochgeladen auf meinen Arduino.
    Ich wurde erstmal von einer Welle aus Log-Nachrichten erschlagen - aber irgendwo tauchte mal das "Connected to mosquitto.org" auf und war erstmal begeistert. Um nun irgendwelche Daten hin und her zu verschicken, habe ich mir einen kostenlosen Client runtergeladen (MQTT.fx). Wie auch schon auf dem Arduino verbinde ich mich mit dem Client auf dem Broker. Einen Channel subscribed, eine Message publiziert und enttäuscht festgestellt: es kommt nix an! Naja ok ... kann viele Ursachen haben. Probiere ich doch erstmal vom Arduino eine Nachricht zu verfassen. Leider ging das nicht sooooo wie ich wollte - nämlich gar nicht ;)
    Nach tage langer suche im Internet bin ich auf einen Blog-Kommentar aufmerksam geworden, der eine ziemlich einfache und fast auch schon banale Lösung hatte: Einfach mal den Broker wechseln. Darauf hin habe ich noch 2 weitere Broker ausprobiert aber leider auch erfolglos. Bei dem dritten kam dann endlich der lang ersehnte Erfolg! Ich konnte endlich Nachrichten lesen und schreiben - Ja sogar der Letzte Wille (eine Funktion im MQTT Protokoll) funktioniert!

    Naja wenn ihr in der Konsole irgendwelche Einträge seht die in etwa so aussehen wie dieser, dann solltet ihr mal den Broker wechseln ;)
    Die Queue wurde bei mir so massiv voll gepackt (2048 bytes), sodass der komplette Arduino sich aufgehangen hatte. Er konnte sich zwar noch 1-2 Minuten wieder fangen aber erstmal kam keine einzige Meldung mehr an.

    Display Spoiler

    Bis auf das Problem was scheinbar nicht nur ich hatte, ist espduino eine echt starke API für den ESP8266. Die versprochenen Features wurden echt super eingehalten - mit der API ist es super einfach sich mit dem Netzwerk zu verbinden, um diverse Server zu kontaktieren. Wenn ich mein anfängliches gehampel mit den ganzen AT-Commands vorstelle... da ist dieses Projekt eine echte bereicherung!
    Hat vielleicht noch jemand von euch Erfahrungen mit dieser API oder mit dem ESP und dem MQTT Protokoll gemacht ? Würde mich brennend interessieren! :)
    Aber für mich heißt es erstmal wieder: weiter basteln!

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

    Edited once, last by Turael (September 1, 2015 at 5:09 PM).


  • Das unbekannte rote Bauteil wird wohl ein LevelShifter sein. Der funktioniert im Prinzip so: http://playground.arduino.cc/uploads/Main/i…hift-mosfet.png
    Es wird der Spannungslevel von 5V (Arduino) auf 3,3V (ESP) abgesenkt.

    Danke dir ;) Sowas in der Art hab ich schon vermutet. Nur ist das Teil ein wenig über - der Arduino hat ja schließlich schon einen 3.3V Ausgang.


    Ich hab grade mal ein Video gemacht - das was ich da grade am PC im Webinterface mache, machen später dann andere Geräte ;)

    Adafruit NeoPixel Ring gesteuert mit dem MQTT Protokoll (ESP8266)

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

  • Es geht dabei aber primär nicht um die Versorgungsspannung des ESP, sondern darum, dass die Datenleitungen nicht 5V tolerant sind und die Spannung der Datenleitungen auf 3,3V herab gesetzt werden muss. Den passenden Auszug aus dem Datenblatt habe ich hier gefunden: https://blog.thesen.eu/wp-content/upl…sp8266_gpio.png

    Einige wenige User schreiben, dass das bei Ihnen mit 5V gut funktioniert. Fertigungstoleranzen? Viele User im Netz schreiben, dass der ESP mit 5V abgeraucht ist.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!