5. Überwachung des häuslichen Umfelds

In diesem Kapitel werden wir Blynk verwenden, um einen Monitor für die häusliche Umgebung zu erstellen. Mit dem DHT11 und dem Fotowiderstand können Sie die Temperatur, Luftfeuchtigkeit und Lichtintensität eines Raumes messen. Indem Sie diese Werte an Blynk senden, können Sie die Umgebung Ihres Zuhauses über das Internet überwachen.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktischer, ein komplettes Set zu kaufen. Hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Alternativ können Sie diese auch über die untenstehenden Links einzeln erwerben.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

SunFounder R3 Platine

BUY

Breadboard

BUY

ESP8266 Modul

BUY

Jumper-Kabel

BUY

Widerstand

BUY

Fotowiderstand

BUY

DHT11 Feuchtigkeits- und Temperatursensor

-

1. Den Schaltkreis aufbauen

Bemerkung

Das ESP8266-Modul benötigt einen hohen Strom, um eine stabile Betriebsumgebung zu gewährleisten. Stellen Sie sicher, dass die 9V-Batterie angeschlossen ist.

../_images/wiring_dht11.jpg

2. Dashboard bearbeiten

  1. Für die Erfassung von Luftfeuchtigkeitswerten erstellen Sie einen Datastream vom Typ Virtual Pin auf der Datastream-Seite. Legen Sie den DATENTYP auf Double und MIN und MAX auf 0 und 100 fest. Setzen Sie auch die Einheiten auf Percentage, %.

    ../_images/sp220610_145748.png
  2. Erstellen Sie anschließend einen Datastream vom Typ Virtual Pin zur Erfassung der Temperatur. Legen Sie den DATENTYP auf Double, MIN und MAX auf -30 und 50 und die Einheiten auf Celsius, °C fest.

    ../_images/sp220610_145811.png
  3. Erstellen Sie zudem einen Datastream vom Typ Virtual Pin zur Erfassung der Lichtintensität. Nutzen Sie den Standarddatentyp - Integer mit den Werten MIN und MAX, die auf 0 und 1024 festgelegt sind.

    ../_images/sp220610_145834.png
  4. Navigieren Sie zur Wed Dashboard-Seite, ziehen Sie zwei Label-Widgets und weisen Sie ihnen die Datenströme V4 und V5 zu. Ziehen Sie ein Gauge-Widget und setzen Sie den Datenstrom auf V6. In den Widget-Einstellungen können Sie Farbwechsel basierend auf Wert aktivieren und die passende Farbe wählen, um das Widget ansprechender und intuitiver zu gestalten.

../_images/sp220610_150400.png

3. Den Code ausführen

  1. Öffnen Sie die Datei 5.home_environment_monitoring.ino unter dem Pfad 3in1-kit\iot_project\5.home_environment_monitoring oder kopieren Sie diesen Code in die Arduino IDE.

    Bemerkung

    • Hier wird die DHT sensor library verwendet. Sie können sie über den Library Manager installieren.

      ../_images/lib_dht11.png
  2. Ersetzen Sie die Template ID, Device Name und Auth Token durch Ihre eigenen Angaben. Sie müssen auch das ssid und das password des von Ihnen verwendeten WLANs eingeben. Für detaillierte Anleitungen verweisen Sie bitte auf 1.4 Verbindung des R3-Boards mit Blynk herstellen.

  3. Nach Auswahl des richtigen Boards und Ports klicken Sie auf die Upoad-Taste.

  4. Öffnen Sie den seriellen Monitor (Baudrate auf 115200 einstellen) und warten Sie, bis eine Meldung wie eine erfolgreiche Verbindung erscheint.

    ../_images/2_ready.png

    Bemerkung

    Wenn beim Verbinden die Meldung ESP antwortet nicht erscheint, befolgen Sie bitte diese Schritte.

    • Stellen Sie sicher, dass die 9V-Batterie angeschlossen ist.

    • Setzen Sie das ESP8266-Modul zurück, indem Sie den RST-Pin für 1 Sekunde auf GND setzen und dann trennen.

    • Drücken Sie die Reset-Taste auf dem R3-Board.

    Manchmal müssen Sie den oben beschriebenen Vorgang 3-5 Mal wiederholen, bitte haben Sie Geduld.

  5. Nun sehen Sie die aktuelle Umgebungstemperatur, Luftfeuchtigkeit und Lichtintensität auf Blynk.

    ../_images/sp220610_150400.png
  6. Wenn Sie Blynk auf mobilen Geräten verwenden möchten, verweisen Sie bitte auf Wie verwendet man Blynk auf einem mobilen Gerät?.

    ../_images/mobile_home.jpg

Wie funktioniert das?

Diese beiden Funktionen werden verwendet, um die Temperatur, Luftfeuchtigkeit und Lichtintensität des Raumes zu ermitteln.

int readLight(){
    return analogRead(lightPin);
}

bool readDHT() {

    // Reading temperature or humidity takes about 250 milliseconds!
    // Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
    humidity = dht.readHumidity();
    // Read temperature as Celsius (the default)
    temperature = dht.readTemperature();

    // Check if any reads failed and exit early (to try again).
    if (isnan(humidity) || isnan(temperature)) {
        Serial.println("Failed to read from DHT sensor!");
        return false;
    }
    return true;
}

Mit dem Blynk Timer werden die Umgebungstemperatur, Luftfeuchtigkeit und Lichtintensität jede Sekunde abgerufen und an den Datenstrom auf der Blynk Cloud gesendet, von wo aus die Widgets die Daten anzeigen.

void myTimerEvent()
{
    bool chk = readDHT();
    int light = readLight();
    if(chk){
        Blynk.virtualWrite(V4,humidity);
        Blynk.virtualWrite(V5,temperature);
    }
    Blynk.virtualWrite(V6,light);
}