Hinter dem heutigen Türchen befindet sich ein weiterer 1 kOhm Widerstand. Allerdings muss heute nichts am Hardwareaufbau vom gestrigen Tag verändert werden. Es wird lediglich eine Kleinigkeit an der Oberfläche variiert.

Auch das Programm müssen Sie nicht erneut hochladen, wenn Sie einfach die Oberfläche von gestern manuell anpassen. Falls Sie die Oberfläche sicherheitshalber dennoch in die App laden möchten, finden Sie hier wie immer den QR-Code. Allerdings müssen Sie dann auch den Token neu in Ihr Programm eintragen.

Um die Änderungen manuell vorzunehmen, müssen Sie zunächst den Button, der vorher für die LED an D9 zuständig war, löschen. Dazu klicken Sie kurz auf den Button, während die Oberfläche nicht gestartet ist, und klicken unten den Punkt delete an. Dort wird auch die Energie angezeigt, die Sie „recyceln“. Nun müssen Sie statt dem Button einen Slider einfügen. Klicken Sie dazu oben rechts auf das Plus und wählen Sie Slider_L aus. Der Slider erscheint auf der Oberfläche. Mit kurzem Klick auf das Element gelangen Sie in dessen Einstellungen. Dort stellen Sie Output auf Digital D9 ein. Beachten Sie, dass hinter D9 in rot und klein PWM steht, ein kleiner Hinweis um was es heute geht. Nach diesen Änderungen können Sie die Oberfläche mit Klick auf den Play-Button oben rechts starten.
Was vorher nur mit der virtuellen LED möglich war ist nun auch mit realen Objekten möglich. Durch Verändern der Slider Position ändern Sie die Helligkeit der LED an D9. Sie könnten nun also z.B. eine dimmbare Wohnzimmerlampe bauen, die sich per App steuern lässt. Das Stichwort zu diesem Thema heißt PWM (Puls Weite Modulation). Denn anders als beispielsweise eine Glühlampe kann man bei einer LED nicht einfach mit weniger Spannung die Helligkeit verändern. Das Verfahren ist hier durchaus komplizierter und funktioniert über schnelles An- und Ausschalten des Ports. Die An- und Auszeiten variieren so, dass es den Anschein hat, dass die LED heller oder dunkler wird. Je länger die An-Zeit im Vergleich zu Auszeit, desto heller die LED. Dass das Flackern der LED nicht oder kaum zu sehen ist liegt an der hohen Geschwindigkeit, mit der der Port geschaltet wird. Mit diesem Verfahren lassen sich übrigens auch Motoren steuern oder Audio Signale generieren.
Das Programm: A16_P09_Blynk5_PWM.ino
/*
Blynk 5: PWM
No Change to previous programm
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
#define BUTTON 7
ESP8266 wifi(EspSerial);
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.)

21 Kommentare
Die Kommentarfunktion ist geschlossen. Die Kommentare stammen aus der früheren WordPress-Seite.
gestatten Sie mir eine Frage: Wenn Sie nicht wissen, wofür die Blynk-App eine Internetverbindung während der Ausführung benötigt, warum bilden Sie dann die Azubis aus?
Und bei mir kommt es auch nur zu minimalen Verzögerungen, weit weniger als eine Sekunde.
Bin mir nicht ganz sicher welche Initialwerte hier genau gemeint sind, aber z.T. kann man Blynk sagen dass er manche Werte auf dem Server speichern soll.
Es gibt allerdings eine Alternative, der Server ist Open Source und kann daher lokal installiert und betrieben werden. Dann ist eine Kommunikation innerhalb des lokalen Netzes (aber immer noch über den (lokalen) Server) ohne Internetverbindung möglich.
Dieser Aufbau minimiert auch die in Ihrem ursprünglichen Kommentar angesprochene Verzögerung.
vielleicht einfach nochmal das Bild von Tag 5 betrachten? Wenn Blynk mit dem Pretzel Board kommunizieren soll, dann geht das nur über das Internet. Alternativ über einen lokal installierten Server. Steht aber auf der Blynk-Seite. Was die freche Ausdrucksweise betrifft. Ist denn "… dieses Blynk ist ein Schrott…" oder "… diese blöde App…" dann eine bessere Ausdrucksweise?
Ich würde sagen, einfach nochmal zu den Azubis dazu setzen und nochmal schauen, ob im Kopf nicht noch was aufgeht.
teilweise lag zur blynkoberfläche. so man darf nicht zu schnell sein. Und mein Sony hat echte schwierigkeiten mit sliden.
nichts für ungut, aber ich sehe das anders. Blynk ist ein schöner Einstieg in das IoT.
In der Doku zu Blynk auf http://docs.blynk.cc/ ist zu lesen, dass auch Initialwerte übertragen werden können. Das ist dann halt etwas komplizierter. Dass die App über eine Internetverbindung geht ist ja gerade der Trick. Damit kann ich meine Steuerung von überall auf der Welt vornehmen. Eben das "Internet" of Things.
Aber auch lokal geht das. Man kann seinen eigenen Blynk-Server lokal im WLAN aufbauen, aber das ist auch mir momentan zu kompliziert.
Gruß Uli
Cmd skipped
was kann ich da machen es funktioniert auch nicht
Habe gerade die letzten 3 Tage nachgeholt, alles bestens, bis auf die Tatsache, dass der Kalender gestern leer war. Tss Tss.
Das Script für heute hat nur einen Effekt, Blynk zeigt an dass das Arduino Nano offline sei. Basta.
Wenn ich ältere Sketches laufen lasse, ist es auf einmal online!
Was läuft da schief. Hat man nur x Versuche pro Tag?
Die ID war jedenfalls jedesmal richtig! Wenn die falsch ist, bleibt Nano auch offline, das habe ich inzwischen mühsam gelernt, da die Mails manchmal ne halbe Stunde brauchen.
Beispiele:
Bei dem Taster könnte man sich die Frage stellen warum dieser 4 pins hat und in welcher Richtung der Strom fließt.
Wer noch nie mit einem Poti gearbeitet hat fragt sich vielleicht wie der Poti funktioniert (Stichwort Spannungsteiler) um die Bauteile auch in weiteren Projekten verwenden zu können.
Warum benötigt man für die LED einen Wiederstand von 100k und was passiert bei einem kleineren oder größeren Wiederstand?
Natürlich kann sich der interessierte Leser das alles googlen, ich meine ja nur, dass es die Qualität des Adventskalenders vor allem für Anfänger enorm erhöhen würde.
So wie es im Augenblick läuft, beschränkt sich der Lerngehalt darauf den Code zu kopieren und die App zu aktualisieren. Wenn das bis zum 24. so weiter geht, hat der Kalender den Lerngehalt von Malen nach Zahlen.
Die Blynk-App ist ja noch einigermaßen selbsterklärend, aber der Arduino-Code nicht. Was von den Blynk-Elementen muss hier eingefügt werden und was nicht? Und was muss von 255 auf 1023 konvertiert werden und warum?
So kann ich zwar die Schaltungen nach bauen und auch ein wenig damit spielen, aber eine eigene einfache Anwendung würde ich nicht hinbekommen, was ich sehr schade finde.
Ich hoffe, da folgt noch etwas.