Bluetooth-Umweltmonitor

Dieses Projekt verwendet eine Android-App, die mit MIT App Inventor erstellt wurde, um Umweltdaten von einem Arduino-Board zu empfangen und anzuzeigen. Das Arduino-Board holt Daten von einem DHT11-Sensor, um Temperatur und Feuchtigkeit zu messen. Sobald die Daten gesammelt sind, werden sie über Bluetooth übertragen. Die App zeigt die Daten auf dem Bildschirm an, sobald sie empfangen werden.

Die Android-Anwendung wird unter Verwendung einer kostenlosen webbasierten Plattform namens MIT App Inventor erstellt. Das Projekt bietet eine ausgezeichnete Gelegenheit, sich mit der Schnittstelle zwischen einem Arduino und einem Smartphone vertraut zu machen.

Benötigte Komponenten

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

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Sie können sie auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Steckbrett

BUY

Jumperkabel

BUY

Feuchtigkeitssensor-Modul

BUY

1. Bauen Sie den Schaltkreis

../_images/08-bluetooth_environmental_monitor_bb.png ../_images/08_ble_home_schematic.png

2. Erstellen Sie die Android-App

Die Android-Anwendung wird unter Verwendung einer kostenlosen Webanwendung namens MIT App Inventor entwickelt. MIT App Inventor dient als ausgezeichneter Einstiegspunkt für die Android-Entwicklung, dank seiner intuitiven Drag-and-Drop-Funktionen, die die Erstellung einfacher Anwendungen ermöglichen.

Lassen Sie uns beginnen.

  1. Gehen Sie zu Get Started with MIT App Inventor und klicken Sie auf „Online-Tool“, um sich anzumelden. Sie benötigen ein Google-Konto, um sich bei MIT App Inventor zu registrieren.

    ../_images/08_ai_signup.png
  2. Nach dem Einloggen navigieren Sie zu Projects -> Import project (.aia) from my computer. Laden Sie anschließend die Datei ble_environmental_monitor.aia hoch, die sich im Pfad elite-explorer-kit-main\iot_project\08-bluetooth_environmental_monitor befindet.

    Sie können sie auch direkt hier herunterladen: ble_environmental_monitor.aia

    ../_images/08_ai_import.png
  3. Nach dem Hochladen der .aia-Datei sehen Sie die Anwendung in der MIT App Inventor-Software. Dies ist eine vorkonfigurierte Vorlage. Sie können diese Vorlage ändern, nachdem Sie sich mit MIT App Inventor vertraut gemacht haben, indem Sie die folgenden Schritte befolgen.

  4. In MIT App Inventor haben Sie 2 Hauptbereiche: den Designer und die Blocks. Sie können zwischen diesen beiden Bereichen in der oberen rechten Ecke der Seite wechseln.

    ../_images/08_ai_intro_1.png
  5. Der Designer ermöglicht es Ihnen, Buttons, Text, Bildschirme hinzuzufügen und das Gesamtaussehen Ihrer Anwendung zu ändern.

    ../_images/08_ai_intro_2.png
  6. Als Nächstes gibt es den Bereich Blocks. Dieser Abschnitt ermöglicht es Ihnen, benutzerdefinierte Funktionalitäten für Ihre App zu erstellen, indem Sie jedes Element in der grafischen Benutzeroberfläche der App programmieren, um die gewünschten Funktionen zu erreichen.

    ../_images/08_ai_intro_3.png
  7. Um die Anwendung auf einem Smartphone zu installieren, navigieren Sie zum Reiter Build.

    ../_images/08_ai_intro_4.png
    • Sie können eine .apk-Datei erstellen. Nachdem Sie diese Option ausgewählt haben, erscheint eine Seite, auf der Sie zwischen dem Herunterladen einer .apk-Datei oder dem Scannen eines QR-Codes für die Installation wählen können. Folgen Sie der Installationsanleitung, um die Installation der Anwendung abzuschließen.

      Sie können auch unsere vorab kompilierte APK hier herunterladen: ble_environmental_monitor.apk

    • Wenn Sie diese App auf Google Play oder einem anderen App-Marktplatz hochladen möchten, können Sie eine .aab-Datei generieren.

3. Code hochladen

  1. Öffnen Sie die Datei 08-bluetooth_environmental_monitor.ino unter dem Pfad elite-explorer-kit-main\iot_project\08-bluetooth_environmental_monitor, oder kopieren Sie diesen Code in die Arduino IDE.

    Bemerkung

    Um die Bibliothek zu installieren, verwenden Sie den Arduino-Bibliotheksmanager, um nach „DHT sensor library“ und „ArduinoBLE“ zu suchen und diese zu installieren.

  2. Nachdem Sie das richtige Board und den richtigen Port ausgewählt haben, klicken Sie auf die Schaltfläche Hochladen.

  3. Öffnen Sie den Seriellen Monitor (Baudrate auf 9600 einstellen), um Debug-Nachrichten zu sehen.

4. App- und Bluetooth-Modul-Verbindung

Stellen Sie sicher, dass die zuvor erstellte Anwendung auf Ihrem Smartphone installiert ist.

  1. Schalten Sie zunächst das Bluetooth auf Ihrem Smartphone ein.

    ../_images/08_app_1.png
  2. Öffnen Sie nun die neu installierte Environmental Monitor-APP.

    ../_images/08_app_2.png
  3. Wenn Sie diese App zum ersten Mal öffnen, erscheinen nacheinander zwei Autorisierungsaufforderungen. Dies sind die Berechtigungen, die für die Verwendung von Bluetooth erforderlich sind.

    ../_images/08_app_3.png
  4. In der App klicken Sie auf die Schaltfläche Connect, um eine Verbindung zwischen der App und dem Bluetooth-Modul herzustellen.

    ../_images/08_app_4.png
  5. Diese Seite zeigt eine Liste aller gekoppelten Bluetooth-Geräte an. Wählen Sie die Option xx.xx.xx.xx.xx.xx UNO R4 Home aus der Liste. Der Name jedes Geräts ist neben seiner MAC-Adresse aufgeführt.

    ../_images/08_app_5.png
  6. Wenn Sie auf der oben gezeigten Seite keine Geräte sehen, können Sie versuchen, den Standort-Schalter des Geräts einzuschalten (einige Android-Systemversionen bündeln den Standort-Schalter mit der Bluetooth-Funktion).

    ../_images/08_app_6.png
  7. Nach einer erfolgreichen Verbindung werden Sie zur Hauptseite umgeleitet, auf der Temperatur und Luftfeuchtigkeit angezeigt werden.

    ../_images/08_app_7.png

5. Code-Erklärung

  1. Importieren von Bibliotheken und Definieren von Konstanten

    • Importieren Sie die erforderlichen Bibliotheken und definieren Sie Konstanten für den DHT-Sensor-Pin und -Typ.

    Bemerkung

    Um die Bibliothek zu installieren, verwenden Sie den Arduino-Bibliotheksmanager, um nach „DHT sensor library“ und „ArduinoBLE“ zu suchen und diese zu installieren.

    #include <DHT.h>
    #include <ArduinoBLE.h>
    #define DHTPIN 11
    #define DHTTYPE DHT11
    
  2. Initialisierung von BLE-Diensten und -Merkmale

    BLEService environmentalSensingService("181A");
    BLEShortCharacteristic temperatureCharacteristic("2A6E", BLERead | BLENotify);
    BLEUnsignedShortCharacteristic humidityCharacteristic("2A6F", BLERead | BLENotify);
    
  3. Setup-Funktion

    • Initialisieren Sie die serielle Kommunikation, den DHT-Sensor und BLE.

    void setup() {
      Serial.begin(9600);
      dht.begin();
      if (!BLE.begin()) {
        Serial.println("starting Bluetooth® Low Energy module failed!");
        while (1)
          ;
      }
      setupBle();
    }
    
  4. Haupt-Schleife

    • Abfragen von BLE-Ereignissen und regelmäßiges Aktualisieren der Sensordaten.

    • Die Zeile millis() - lastUpdateTime > updateInterval stellt sicher, dass die Sensordaten alle updateInterval Millisekunden aktualisiert werden.

    void loop() {
      BLE.poll();
      if (millis() - lastUpdateTime > updateInterval) {
        // Read sensor data and update BLE characteristics
      }
    }
    
  5. BLE- und Debug-Funktionen

    Funktionen für das Einrichten von BLE, das Drucken von Debug-Informationen und das Verwalten von BLE-Ereignissen.

    void printDHT(float h, float t) { /* ... */ }
    void setupBle() { /* ... */ }
    void blePeripheralConnectHandler(BLEDevice central) { /* ... */ }
    void blePeripheralDisconnectHandler(BLEDevice central) { /* ... */ }
    
    • printDHT(float h, float t): Wird verwendet, um die vom DHT11 gelesenen Temperatur- und Feuchtigkeitsdaten auf dem seriellen Monitor auszudrucken. Diese Funktion dient zu Debugging-Zwecken.

    • setupBle(): Initialisiert Bluetooth, einschließlich der Einstellung des Sendenamens, der Merkmale und Dienste.

    • blePeripheralConnectHandler(BLEDevice central) und blePeripheralDisconnectHandler(BLEDevice central): Diese Funktionen behandeln Ereignisse, wenn Bluetooth sich verbindet oder trennt. Wenn ein Gerät erfolgreich über Bluetooth mit dem UNO R4 verbunden ist, leuchtet die LED an Bord. Wenn das Gerät die Verbindung trennt, schaltet sich die LED aus.