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+ |
Sie können sie auch separat über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
1. Bauen Sie den Schaltkreis
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.
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.
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 Pfadelite-explorer-kit-main\iot_project\08-bluetooth_environmental_monitor
befindet.Sie können sie auch direkt hier herunterladen:
ble_environmental_monitor.aia
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.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.
Der Designer ermöglicht es Ihnen, Buttons, Text, Bildschirme hinzuzufügen und das Gesamtaussehen Ihrer Anwendung zu ändern.
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.
Um die Anwendung auf einem Smartphone zu installieren, navigieren Sie zum Reiter Build.
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
Öffnen Sie die Datei
08-bluetooth_environmental_monitor.ino
unter dem Pfadelite-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.
Nachdem Sie das richtige Board und den richtigen Port ausgewählt haben, klicken Sie auf die Schaltfläche Hochladen.
Ö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.
Schalten Sie zunächst das Bluetooth auf Ihrem Smartphone ein.
Öffnen Sie nun die neu installierte Environmental Monitor-APP.
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.
In der App klicken Sie auf die Schaltfläche Connect, um eine Verbindung zwischen der App und dem Bluetooth-Modul herzustellen.
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.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).
Nach einer erfolgreichen Verbindung werden Sie zur Hauptseite umgeleitet, auf der Temperatur und Luftfeuchtigkeit angezeigt werden.
5. Code-Erklärung
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
Initialisierung von BLE-Diensten und -Merkmale
Definieren Sie die UUIDs für BLE Environmental Sensing Service und Merkmale. Wir verwenden die von Bluetooth SIG bereitgestellten vordefinierten UUIDs. Der environmentalSensingService wird
0x181A
zugewiesen, während0x2A6E
und0x2A6F
für temperature and humidity reserviert sind.
BLEService environmentalSensingService("181A"); BLEShortCharacteristic temperatureCharacteristic("2A6E", BLERead | BLENotify); BLEUnsignedShortCharacteristic humidityCharacteristic("2A6F", BLERead | BLENotify);
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(); }
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 } }
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)
undblePeripheralDisconnectHandler(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.