Hinter dem Türchen des heutigen Tages finden Sie einen Phototransistor. Dabei handelt es sich um einen Sensor, mit dem Helligkeit gemessen werden kann. Dies werden Sie heute auch tun, aber neben dem einfachen Messen gibt das heutige Projekt auch über verschiedene Kanäle Alarm, sobald per App einstellbare Grenzwerte überschritten werden. Damit dies alles auch funktioniert, müssen Sie den Sensor mit einer Spannungsteilerschaltung an den Pin A0 anschließen, wie auf dem unteren Bild zu sehen ist. Beachten Sie die richtige Polung des Phototransistors (kurzes Beinchen an VCC). Andersherum funktioniert er zwar auch, aber lange nicht so empfindlich.

Die Blynk-Oberfläche sieht heute ziemlich voll aus. Viele verschiedene Funktionen sind durch die Widgets realisiert. Über eines dieser Widgets, dargestellt durch den Twitter Vogel, können Sie Ihren Twitter Account mit dem Projekt verknüpfen. Hierbei handelt es sich um den einen Kanal über den eine Alarmmeldung gesendet wird.
Das Programm: A16_P12_Blynk8_LightSensor.ino
/*
Blynk 8: LightSensor
Change ssid, password, token and email
*/
char ssid[] = "YourSSID";
char password[] = "YourPassword";
char token[] = "YourToken";
char email[] = "Your@Email.com";
char subject[] = "Alarm NanoESP";
String alarmMsg = "Alarm! #NanoESP";
#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);
int alarmValueMin;
int alarmValueMax;
boolean alTwitter;
boolean alEmail;
boolean alarm = false;
WidgetTerminal terminal(V1);
void setup()
{
// Set console baud rate
Serial.begin(19200);
EspSerial.begin(19200);
Blynk.begin(token, wifi, ssid, password);
}
void loop()
{
Blynk.run();
compValue();
}
BLYNK_CONNECTED() {
//Sync all values and write MSG to terminal widget
Blynk.syncAll();
terminal.println(F("Blynk v" BLYNK_VERSION ": Device started"));
terminal.println("-------------");
terminal.println("Type in Alarmmessage.");
terminal.println("Current message:");
terminal.println(alarmMsg);
terminal.flush();
}
BLYNK_WRITE(V1) //Terminal: get new alarm msg
{
alarmMsg = param.asStr();
terminal.println("Message saved: ") ;
terminal.println(alarmMsg) ;
terminal.flush();
}
BLYNK_WRITE(V2) //AlarmValueMin
{
alarmValueMin = param.asInt();
}
BLYNK_WRITE(V3) //AlarmValueMax
{
alarmValueMax = param.asInt();
}
void compValue() { //compare values to max/min
int currValue = analogRead(A0);
if (alarm == false) {
if ((currValue < alarmValueMin) || (currValue > alarmValueMax)) {
//Alarm
terminal.println("Alarm!!!") ;
//Twitter if twitter alarm active
if (alTwitter) {
Blynk.tweet(alarmMsg + " " + currValue);
terminal.println("Tweet send");
}
//E-mail if E-mail alarm active
if (alEmail) {
Blynk.email(email, subject, alarmMsg + " Value: " + currValue);
terminal.println("Email send");
}
terminal.flush();
alarm = true;
}
}
else {
if ((currValue > alarmValueMin) && (currValue < alarmValueMax)) {
//deactivate alarm
terminal.println("No alarm") ;
terminal.flush();
alarm = false;
}
}
}
BLYNK_WRITE(V4) { //Email alarm activation
alEmail = param.asInt();
Blynk.virtualWrite(V7, param.asInt() * 255); // LED on/off
}
BLYNK_WRITE(V5) // Twitter alarm activation
{
alTwitter = param.asInt();
Blynk.virtualWrite(V6, param.asInt() * 255); // LED on/off
}
(Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.)
Auch im Arduino Programm gibt es heute etwas mehr zu tun. Neben WLAN-Daten und Token können Sie heute außerdem eine E-Mail, Adresse eingeben. Dies ist der andere Kanal über den eine Alarmmeldung versendet wird.
Wenn Sie die Oberfläche nun starten sehen Sie schon eine Reihe von Messwerten über das oberste Element wandern. Anhand der Linie können Sie den Verlauf der Werte eindeutig verfolgen. Wenn Sie mit der Hand über den Sensor fahren, werden die Messerwerte deutlich kleiner. Mit den Schiebereglern direkt unter den Messwerten können Sie Grenzwerte einstellen, die nicht unter oder überschritten werden dürfen. Unten gibt es noch einen blauen und einen weißen Button. Mit Ihnen wird die Meldung über Twitter oder über E-Mail aktiviert oder deaktiviert. Die LED neben dem jeweiligen Symbol zeigt den aktuellen Zustand an. Wird nun der erlaubte Bereich von einem Messwert verlassen, geht das System in einen Alarmzustand über und je nach gewähltem Kanal oder Kanälen, wird eine Meldung versendet. Ein Terminal in der Mitte informiert zusätzlich über aktuelle Ereignisse. Über das Terminal können Sie auch einen neuen Benachrichtigungstext festlegen. So sind Sie immer auf dem Laufenden ob z.B. Ihre Pflanzen genug Licht bekommen.



Ich brauch n Haus, in dem ich sowas vernünftig einbauen kann :)