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: A16_P08_Blynk4_VirtualLEDs.ino
/*
Blynk 4: Virtual LEDs
Change ssid, password and token
*/

char ssid[] = "YourSSID";
char password[] = "YourPassword";
char token[] = "YourToken";

#define BLYNK_DEBUG
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266_SoftSer.h>
#include <BlynkSimpleShieldEsp8266_SoftSer.h>

// Set ESP8266 Serial object
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(11, 12); // RX, TX

ESP8266 wifi(EspSerial);

#define BUTTON 7

//Virtual LED Widgets
 WidgetLED led1(V0);
 WidgetLED led2(V1);

void setup()
{
  // Set console baud rate
  Serial.begin(19200);
  EspSerial.begin(19200);

  Blynk.begin(token, wifi, ssid, password);

  pinMode(BUTTON, INPUT_PULLUP);
}

void loop()
{
  Blynk.run();
  checkPin();
  checkPoti(); 
}

boolean currState = false ;

void checkPin()
{
  if (!digitalRead(BUTTON))
  {
    currState = !currState;

    //write current state to virtual LED
    if (currState){
       led1.on();
    }
    else{
       led1.off();
    }

    //wait till button is released
    while (!digitalRead(BUTTON)){  
    }
   
  }
}
int lastValue = 0;

void checkPoti()
{
  //read A0 and convert it to values 0-255
  int currValue = map(analogRead(A0), 0, 1023, 0, 255);

  //if values have changed write to virtual led2
  if (!(currValue == lastValue)){
      lastValue = currValue;
      Blynk.virtualWrite(V1, currValue);
  }
}

(Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.)

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