Tag 8: Virtuelle LEDs

In dem Versuch des sechsten Tages haben Sie gesehen, wie Sie einen Tastschalter auf der Hardwareseite auf einen Button in der App abbilden können. Ein anderes Widget, nämlich das LED Widget ist für diesen Fall allerdings viel eindeutiger. Wie man dieses Widget richtig einsetzt und welche Möglichkeiten das bietet sehen Sie in dem heutigen Versuch.

Hinter dem heutigen Türchen befindet sich wieder ein 1 kOhm Widerstand, der für spätere Versuche wichtig wird. Heute wird allerdings die Schaltung von gestern mit einem zusätzlichen Taster verwendet.

Der Aufbau des heutigen Projekts

Der Aufbau des heutigen Projekts

Die Oberfläche des heutigen Tages können Sie wieder per QR-Code einfügen. Vermutlich wird die Blynk-App aber dann einen Hinweis ausgeben, dass Sie nicht genug Energie haben. Wie am Tag 6 erwähnt, können Sie das Problem umgehen, indem Sie die alten Projekte löschen. Schon haben Sie wieder genug Energie für das heutige Projekt.

blynk_tag88

http://tinyurl.com/h68em5v

Das Programm des Tages finden Sie weiter unten. Fügen Sie Ihre WLAN-Daten und den Token-Code ein und schon können Sie das Programm uploaden.

Das Programm vereint jetzt mehrere Hardware- und Softwareaktoren und Buttons. Drücken Sie beispielsweise in der App auf den ersten Button, beginnt die LED an D9 zu leuchten. Der zweite Button schaltet die LED D3, die fest auf dem Board verbaut ist. Mit dem Taster auf dem Steckboard verändern Sie den Zustand der ersten App LED. Mit dem Poti können Sie die Helligkeit der zweiten LED beeinflussen. Viele verschiedene Ansteuerungsmöglichkeiten für viele verschiedene Elemente also.

Die heutige Oberfläche

Die heutige Oberfläche

58 Kommentare

  1. lukas

    poti hat gerade angefangen zu rauchen…

    1. lukas

      naja der funktioniert noch halbwegs (stufenfrei ist das auf jedenfal nicht) aber der taster will nicht?

  2. Philip Vedder

    Also ich kann mich den anderen hier (zum Glück) nicht anschließen. Bis jetzt hat jede Schaltung auf anhieb funktioniert. Auch wenn außer acht steht das das Board viel zu harte Buchsen hat! Kleiner Tipp von mir: Entweder nen anderes Board nehmen, oder die Pinne von der LED und den Widerständen mit einer Flachzange sehr weit unten greifen und dann mit dieser hineinstecken…das funktioniert ganz gut. Auch das Poti ist qualitativ leider nicht gerade überragend, tut aber bis jetzt was es soll. Bin zufrieden :D

    1. Beni

      Ich habe alle Buchsen mit einer Pinnadel durchgestochen.

      Hat sehr gut funktioniert.

      LG Beni

    2. Beni

      Ich hab alle Buchsen mit einer Pinnadel durchgestochen.
      Hat gut funktioniert und klingt besser als mit einer Zange zu hantieren.

      LG Beni

  3. Bernd Krische

    Tja,
    nachdem ich mühevoll die Beinchen vom Taster verlängert habe (draht von tag 3 dran gelötet)funktioniert jetzt wenigstens die LED wieder. Aber das poti ändert die helligkeit überhaupt nicht (weder die rote noch die blaue) gestern konnte ich noch die stapelhöhe damit regulieren. Wenn der taster gedrückt gehalten wird leuchten die LEDs nicht mehr. Der Text in den buttons bleibt aber gleich – nur in LED 9 geht „das licht“ an und aus mit dem taster.
    Ist es das was man mit dem heutigen sketch machen kann oder funtioniert abgesehen vom Poti auch anderes nicht?
    Ich finde es nicht besonders gut, dass die Beschreibung der erwarteten effekte reichlich kümmerlich ist.

    1. bibikati

      Hallo Bernd,
      sowohl der Taster als auch der Poti ändern die beiden LED Anwendungen in Blynk und tun nicht mit deiner Hardware, die vor dir auf dem Tisch liegt.
      Mit dem Taster geht schaltest du in Blynk die linke LED Anwendung (grüne virtuelle LED)durch drücken an und auch wieder aus. Die rechte LED Anwendug (blaue virtuelle LED)kann mit dem Poti von AUS (0 V) bis helles blau (5 V) stufenlos heller geregelt werden, sozusagen eine LED mit Dimmer. Das die LEDs an der Hardware nicht mehr funktionieren bei Tasterdruck teilweise durch den kürzeren und widerstandfreieren Weg ohne LED über den Taster geschuldet. Das ist halt die Physik, die bei so welchen Dingen immer mitspielt. Ein kleines Ester Ege was nicht wirklich gewollt ist.
      Hoffe ich konnte helfen.
      LG
      bibikati

  4. Athanasie

    Na super. Da kommt man von nem Montageeinsatz aus Bayern zurück und freut sich auf sein IoT-Kalender und darf feststellen, dass man dank Schrott-Poti und schlechtem BreadBoard nichts machen kann :(

    Morgen erstmal zum Conrad…

  5. rsoldie

    Ich hab etwas die lust und den Spaß verloren.
    Ich erkenne den fehjer nicht, an den router komme ich auch nicht ran und das nanodongs kann maximal noch blinken.
    Gestern, das analog… hat noch gut funktioniert. Heute , unverändert nichts, nicht mal die led kann ich schalten.
    : error: internet connection. Ist das teil kaputt ?
    Die tage zuvor hat die vebindung ins netz funktionier und ab heute nix mehr. Vielleicht frag ichconrad mal nach ersatz. Befriedigend ist das nicht.

    1. rsoldie

      Ps: ich kann leider erst sonntag weitermachen. Das werd ich dann wohl nicht mehr aufholen wenn,s kein ersatz gibt.

  6. basti

    soweit läuft es. aber in anzeige im com kommt nach der erfolgreichen verbindung folgendes:

    OK
    [7668] Connected to WiFi
    [12769] <msg 2,1,32
    #token
    [12871] msg 0,1,200
    [12883] Ready (ping: 13ms).
    [12887] <msg 20,2,8

    und das setzt sich "unendlich" fort…

    weiß einer was das bedeutet?

    1. Uli

      Das ist die Debug-Ausgabe. Da kannst Du die Kommunikation zum ESP sehen. Wenn Dich das nervt, dann kannst Du es abschalten, indem Du
      #define BLYNK_DEBUG
      mit
      //#define BLYNK_DEBUG
      rauskommentierst.

      1. basti

        ah, vielen Dank für den Hinweis. Bei den anderen Programmen gab es diese Ausgabe nicht…

  7. Ralf

    Heute hatte ich das erste Mal Schwierigkeiten, die Schaltung zum Laufen zu bringen. Am Ende lag es am Poti, nach Ersatz durch ein anderes funktioniert nun alles. Auch die LED kann in der Helligkeit verändert werden.

    Bin weiter gespannt.

  8. Marco

    Mal eine generelle Frage, betreibt hier irgendjemand den NanoESP im WLAN Netz einer Unitymedia Connect Box?

    Hintergrund:
    Ich bekomme seit Tag 4 keine stabile Verbindung zwischen NanoESP und Router hin. Richtig aufgefallen ist es mir erst bei Blynk, das aufgrund der ständigen Verbindungsabbrüche einfach nicht richtig funktioniert. Also bin ich mal ganz zurück zu den Grundlagen und habe festgestellt, dass selbst die unterste Ebene (AT Kommandos) Probleme hat. AT+CWLAP beispielsweise findet mein Netz nur in ca einem von fünf Fällen, AT+CWJAP stellt zwar mal kurz eine Verbindung her, die bricht aber innerhalb von Sekunden wieder ab.

    Heute hab ich den ganzen Aufbau mal bei einem Freund getestet, läuft reibungslos. Habe daraufhin seine Router Einstellungen komplett übernommen (alle die bei mir verfügbar sind, selbst SSID) nur um festzustellen, dass es bei mir trotzdem nicht funktioniert…
    Das führt mich nun zu der begründeten Befürchtung, dass ein vernünftiger Betrieb an der Connect Box aufgrund irgendeiner Inkompatibilität nicht möglich ist (was auch immer Unitymedia sich da zusammen gebastelt hat).

    1. Uli

      Ich habe auch Unitymedia, aber mit einem Router von DLink. Ich bin von WPA2 auf WPA umgestiegen, weil bei mir die Verbindung zum WLAN auch instabil funktioniert hat. Seit WPA statt WPA2 funktioniert der nanoESP stabil.

      1. Marco

        Hi Uli,
        ja das ist leider einer der störenden Aspekte an der Connect Box, ich habe nur die Wahl zwischen WPA2 und dem gemischten Modus, das hilft aber auch beides nicht. Zudem läuft die Fritzbox meines Freundes auch im reinen WPA2 Modus und da funktioniert es.

        Habe aber einen anderen „Workaround“ gefunden und jetzt einfach meinen Raspberry Pi als Router konfiguriert, damit läuft alles!

  9. Haiko

    Hat alles prima funktioniert.
    Habe lediglich „#define BLYNK_DEBUG“ auskommentiert („//“) damit hier und da ein bissl Spam weg fällt und alles schick aus schaut ;)

  10. Benchi

    Es läuft bisher richtig gut, bis auf den Poti…ist der bei euch auch an den „Beinen“ größer als auf den Schaltplänen zu sehen ist? Damit alles passt und die zwei oberen Beine in die Reihe „I“ passen, muss man diese schon arg verbiegen und locker waren diese auch schon von Anfang an -.-

  11. jo

    hi

  12. Sven

    Naja, die Potiregelung von LED2 funktionierte kurz mal aber jetzt leuchtet sie konstant. Ansonsten ist alles wie erwartet.

  13. Michael2016

    hier funktioniert alles ohne Probleme, echt komisch, das es bei machen geht und bei einigen NICHT :-/
    Habe bis jetzt alle Projekte hin bekommen….
    Der Poti lässt sich nicht vernünftig regeln, gestern waren in dem Graph auch immer Sprünge drin, die virtuelle LED geht allerdings schön langsam AN und AUS.

  14. Michael

    hier funktioniert alles ohne Probleme, echt komisch, das es bei machen geht und bei einigen NICHT :-/
    Habe bis jetzt alle Projekte hin bekommen….
    Der Poti lässt sich nicht vernünftig regeln, gestern waren in dem Graph auch immer Sprünge drin, die virtuelle LED geht allerdings schön langsam AN und AUS.

  15. rsoldie

    @uli
    Danke für antwort.
    Name passwort und token sind korrekt. Kopiere ich und hat auch so bis tag 7 funktioniert. Nur heute geht nix auch das von gestern nicht. Ich versteh es nicht. Muss ich alles nochmal von vorn machen ?

    1. DS2072

      Entferne mal den Button. Ich habe das Problem, wenn ich den Button drin habe, geht nichts. Entferne ich die Verbindung zu D7, bin ich imInternet und ich kann die LED an D9 einschalten etc. Auch D13 funktioniert, kaum aktiviere ich den Button wieder, bekomme ich in Blynk die Meldung, Arduino Nano wurde disconnected.

      1. rsoldie

        Und wie entferne ich bitte den button ?

  16. prisma01

    Nach dem gestrigen Problem mit dem Trimmpoti hab ich mir heute ein neues besorgt. Das hat zwar keinen Drehgriff, geht aber mit ner passenden Schraubklinge.
    Welchen Wert hatte das vorhandene Poti? Ich hatte 10 KO gemessen und mir ein ebensolches besorgt, aber die Regelung nach der gestrigen Schaltung zeigte, dass ich nur in einem Millimeterbruchteil von 270° regeln konnte, sodass es im Prinzip nur schaltet von ‚on‘ zu ‚off‘. Auch in der heutigen Schaltung wird die Helligkeit der rechten LED in der Blynk App nicht beeinflusst. Was läuft da falsch?

    1. HGR73

      Thema Poti:
      Hast Du beachtet, dass die 5V aus Tag6 ja auf die untere „Außenleitung“ vom Steckboard geführt war. Ab Tag 7 ist dieser Weg anders und diese „Außenleitung“ repräsentiert den sich verändernden Mittelwert des Potis.

      1. prisma01

        ja klar: nicht mehr auf [5V], sondern auf [A0]. Aber gestern reagierte das Poti gar nicht, und heute quasi nur [on/off] ohne grossartige Regelung…

  17. Marco

    Kurze Erläuterung zu dem Fehler: „function() was not declared in this scope“, da das hier immer wieder auftaucht (function() ist hier nur Platzhalter):

    Zunächst mal kann der Fehler behoben werden, indem man oben in der Datei einen Prototyp deklariert. Das sieht so aus:
    void function();
    Hat die Funktion einen anderen Rückgabewert als „void“ (bspw. int) muss das entsprechend zu
    int function();
    angepasst werden.
    Außerdem müssen die Parameter mit angegeben werden, das heißt, wenn die Funktion ein Integer x nimmt (function(int x) {….}) ist der Prototyp (bei Rückgabewert int):
    int function(int x);

    Verwendet man vorgegebene Funktionen aus eingebundenen Libraries, so sind in diesen Libraries die Prototypen für die Funktionen enthalten und somit dem Compiler bekannt.
    Die ganze Problematik in der Arduino IDE mit eigenen Funktionen entsteht dadurch, dass in der IDE nicht wirklich in „reinem“ C++ programmiert wird! Stattdessen wird vereinfachtes C++ programmiert und die IDE erzeugt daraus dann den richtigen C++ Code, der anschließend kompiliert wird. Teil der Aufgaben, die die IDE übernimmt, ist die automatische Generierung von Prototypen für die verwendeten Funktionen. Und genau dieser Prozess ist leider nicht 100% zuverlässig (zum Teil können Funktionen nicht richtig zugeordnet werden, zum Teil gibt es Konflikte mit vordefinierten Funktionen in eingebundenen Libraries) und dadurch entsteht der „not in scope“ Fehler.

  18. Marc

    Oh ha: Wehe man kommentiert heute Zeile 11 wirklich aus…dann wird nicht mehr erfolgreich kompiliert.

    1. µC-Junkie

      Unterschied des heutigen Sketches zu den letzten ist,
      dass das BLYNK_DEBUG aktiv gesetzt ist
      #define BLYNK_DEBUG
      #define BLYNK_PRINT Serial // Comment this out to disable prints and save space

      Du hast //#define BLYNK_PRINT Serial auskommentiert
      Die Fehlermeldung sagt:
      ?:\Dokumente\Arduino\libraries\Blynk/Blynk/BlynkProtocol.h:268:48: error: ‚BLYNK_DBG_DUMP‘ was not declared in this scope

      BLYNK_DBG_DUMP(„>“, inputBuffer, hdr.length);
      dass die Variable BLYNK_DBG_DUMP nicht declariért ist. Der Fehler tritt in BlynkProtocol.h auf.
      Sucht man in diesem File findet man
      #ifdef BLYNK_DEBUG
      BLYNK_DBG_DUMP(„<", buff+5, len2s-5);
      #endif
      heisst ist BLYNK_DEBUG declariert muss auch BLYNK_DBG_DUMP
      declariert sein. Mögliche Include sind am Anfang
      definiert, hier
      #include
      #include
      #include

      Schaut man sich die BlynkDebug.h an findet man

      #ifdef BLYNK_PRINT

      #if defined(ARDUINO) || defined(SPARK) || defined(PARTICLE)
      #include
      #include

      #define BLYNK_DBG_DUMP(msg, addr, len) if (len) {…
      d.h. BLYNK_DBG_DUMP wird nur definiert, wenn BLYNK_PRINT definiert wurde. Doch das haben wir mit
      //#define BLYNK_PRINT Serial
      verhindert. Lange Beschreibung, wenig Inhalt..
      D.h. wenn Du BLYNK_PRINT nicht definierst muss du auch
      BLYNK_DEBUG auskommentieren, dann läuft auch das Kompelieren.

      1. µC-Junkie

        immer wieder falle ich drauf rein, keine spitze Klammern in Kommentaren

        Nachtrag zu den Includes
        #include Blynk/BlynkDebug.h
        #include Blynk/BlynkProtocolDefs.h
        #include Blynk/BlynkApi.h

        sorry…

  19. rsoldie

    Heute geht wieder garnichts. Vielleicht zu viel gelobt gestern. Bekomme heute die meldung : (1515) failed to disable echo.
    Habe dann nochmal bis tag 4 nach gespielt, alles ok.
    Danach immer das selbe und nanoesp ist nicht mehr im netzwerk. Dabei habeich alles wie zuvor getan.
    Weis jemand bitte rat ? Der Spaßfaktor sinkt grad mächtig.

    1. Uli

      Komisch, woher die Fehlermeldung wohl kommt? Vielleicht liegt das an der Kommunikation zwischen dem Mega328 und dem ESP. Ich meine, die geht über
      SoftwareSerial EspSerial(11, 12); // RX, TX
      Stimmt da alles in Deinem Programm?

      1. rsoldie

        Soo viel wissen habe ich nicht. Bis tag 5 geht alles einwandfrei. Ich habe ausser den einstellungen für router, passwort und token nichts am programm getan. Gestern hatte das ja auch noch funktioniert und heute nicht. Das verwirrt mich sehr. Zumal ich ja nichts mit den fehlermeldungen anfangen kann. :(

        1. rsoldie

          Ps: im monitor erscheint die meldung für heute,
          (0) blynk v0.3.4
          (499) connecting to fritzbox
          (10580) failed to connect wifi
          (15639) <msg 20,1,8
          (15639) cmd skipped
          Und dann ist schluss

          1. Uli

            connecting to fritzbox
            failed to connect wifi
            Das heißt für mich, dass der nanoESP nicht in Dein WLAN kommt. Stimmen SSID und Passwort wirklich? Vielleicht hilft auch ein Reset des Routers. WPA2 ist schlecht. Ich habe meinen Router auf Gastzugang mit WPA umgestellt.

  20. Philipp

    Hallo,
    bei mir hat alles sehr gut Funktioniert, soweit so gut.
    Nun aber habe ich mir die heutige Datei zur Sicherheit auf den Desktop kopiert um darin etwas herum zu Experimentieren.
    Nun kommt leider jedesmal folgende Fehlermeldung sobald ich ein Projekt hochladen möchte egal welches. Ich hoffe ihr könnt mir helfen . Meiner Meinung nach findet er nur einen bestimmten Pfad nicht?

    Arduino: 1.6.13 (Windows 10), Board: „Arduino Nano, ATmega328“

    C:\Users\Philipp\AppData\Local\Temp\Temp1_A16_P08_Blynk4_VirtualLEDs.zip\A16_P08_Blynk4_VirtualLEDs\A16_P08_Blynk4_VirtualLEDs.ino:13:46: fatal error: BlynkSimpleShieldEsp8266_SoftSer.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Fehler beim Kompilieren für das Board Arduino Nano.

    Danke im Vorraus schonmal:)

    1. Uli

      Die IDE findet die Library nicht mehr. Kopiere Dein Experiment nicht auf den Desktop, sondern in ein neues Verzeichnis neben dem bisherigen.
      Also neben A16_P08_Blynk4_VirtualLEDs legst Du ein A16_P08_Blynk4_VirtualLEDsTest an und kopierst den Inhalt von dem 1. Verzeichnis in das 2. Dann sollte es funktionieren.

      1. Philipp

        Okay danke dann weiß ich es für das nächste mal.
        Nun aber wie gesagt gehen alte Projekte von den letzten Tagen auch nicht mehr. Wo ich die IDE geöffnet habe hat er mir auch vorhin gesagt es sei ein Update der Library vorhanden, dies habe ich auch ausgeführt. Könnte es auch daran liegen?

        1. Uli

          Oh, ein Update… Irgendwo in den früheren Posts der vergangenen Tage stand, dass man die Library (glaube die ESP) von Hand installieren muss, weil in dem ZIP mehrere Librarys enthalten sind. Bestimmt ist durch den automatischen Update etwas verloren gegangen. Installiere doch nochmal die ESP(?) drüber. Vielleicht hilft das ja.

          1. Marc

            Tja, das dumme Update der Bibliothek. Habe ich auch ausgeführt – danach ging kein Sketch mehr!
            Drüber kopieren hat auch nicht gereicht. Erst musste ich die Ordner (von Blynk) in der Bibliothek löschen und dann neu kopieren….
            Dann klappt es

      2. Philipp

        Ja genau!
        Danke für deine/eure Tipps.
        Ich habe mir die alte Blynk Library die hier verlinkt war bei Tag 5 nun herunter geladen und durch die neue ersetzt. Nun funktioniert alles wieder wie gehabt. In dem neuen Update gab es die Datei die von der IDE angemekkert wurde garnicht erst.

  21. Fauli

    Hallo, heute gibt es wieder Probleme. Zuerst kam, wie schon am sechsten Tag, die Fehlermeldung: „exit status 1‚ checkPin‘ was not declared in this scope“. Die konnte ich beseitigen, indem ich unter #define BUTTON 7 gemäß dem Ratschlag von Marco die Zeile „void checkPin();“ eingefügt habe. Jetzt kommt aber eine neue Fehlermeldung: „exit status 1 expected initializer before ‚WidgetLED'“. Wer kann mir helfen?

  22. SilentGuy

    Tja, so 100% kann ich das wegen dem sofort kaputt gegangenen Poti nicht testen und ich sehe auch nicht ein jetzt extra in die Stadt fahren zu müssen um mir ein Ersatzteil zu kaufen, aber sonst funktioniert’s. Allerdings schummele ich auch ein wenig und passe mein Programm und meine GUI immer nur passend an statt alles neu zu machen…

    1. Doc

      Hallo,

      kleiner Tip: einen Poti gibt es in Tür 17 nochmal!

  23. Andy K.

    Hallo Sam B,

    zunächst mal danke, hat zumindest dazu geführt, dass sich die Fehlermeldung zu:

    A16_P08_Blynk4_VirtualLEDs:43: error: ‚checkPoti‘ was not declared in this scope

    verändert hat ;-)

    Vielleicht kann mir hierzu ja noch jemand helfen ?

    Das mit dem nicht auskennen ist leider auch mein Problem. Nächstes Mal gibts wieder nen Adventskalender mit Schokolade.

    1. Alex

      Hallo Andy,

      hast du am Code etwas verändert bzw. wenn ja, kannst du die Änderungen posten?

      lg

      1. Andy K.

        Hallo Alex, nein habe nichts verändert.

        Aber mit dem Tipp von Sam B. ist es nun durchgelaufen…

    2. Sam B

      Ok, Glück gehabt:) probier dasselbe nochmal mit void checkPoti(); ich denke das sollte auch in diesem Fall helfen

      1. Uli

        Das liegt an den Vorwärts-Referenzen. Der Compiler liest die Source von oben nach unten durch. Wenn er auf einen Funktionsnamen trifft, den er nicht kennt, dann sagt er: „Hoppala, was ist denn das? Das kenne ich ja gar nicht“.
        Mit dem „void checkPoti();“ ohne anschließenden Inhalt zwischen {} sage man ihm: „Weiter unten kommt da eine Funktion mit diesem Namen.“ Dadurch die Fehlermeldung.
        Ich verwende die Android-IDE 1.6.13. Der ist eine Vorwärts-Referenz egal und sie denkt sich bei einem unbekannten Funktionsnamen: „Naja, nehme ich mal an, es ist eine Funktion, die weiter unten schon mit Inhalt gefüllt werden wird.“
        Ich hoffe, die Erklärung war etwas nützlich für’s Verständnis.

        1. Sam B

          Wieder was dazu glernt, danke für die Info :)

      2. Andy K.

        Prima, danke schön ist durchgelaufen… :-)

  24. Andy K.

    Hallo, vielleicht kann mir jemand am frühen Morgen behilflich sein ?

    Bekomme folgende Fehlermeldung:

    A16_P08_Blynk4_VirtualLEDs:42: error: ‚checkPin‘ was not declared in this scope

    Dieselbe Fehlermeldung hatte ich bereits am sechsten Tag….

    Recht herzlichen Dank !

    1. Sam B

      Hallo, ich kenne mich da auch nicht so aus, aber schreib mal unter #define BUTTON 7 void checkPin(); vielleicht hilft das was ;)

      1. Voulxe

        In Zeile 47 vom Listing gibt es bereits die Funktion checkPin … eine doppelte Deklaration wäre unklug.

        1. SilentGuy

          Hm, nö, das sollte gehen, dass ist doch die Trennung von Deklaration und Definition. Sollte eigentlich nicht nötig sein, bei mir geht’s ohne, aber erlaubt ist das in C++.

Schreiben Sie einen Kommentar

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