Inhaltsverzeichnis:
- Schritt 1: Hardwarekomponenten
- Schritt 2: Erstellen Sie ein Konto bei IBM Watson IoT und registrieren Sie Ihr Gerät
- Schritt 3: Entwickeln Sie die Node-RED-Anwendung für die Stimmungsanalyse
- Schritt 4: Arduino-Skizze
- Schritt 5: Verbinden Sie Ihre Tasse
Video: Verbundene Tasse - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Manchmal möchte ich morgens, während ich meinen Kaffee trinke, bevor ich ins Büro gehe, einen Blick darauf werfen, was mich in meinem E-Mail-Postfach erwartet. d.h. die Anzahl und der Ton der eingegangenen E-Mails….ob das Projekt, das ich am Vortag abgeschlossen habe, funktioniert oder nicht und ob es positive oder negative Kommentare dazu gibt. Auf der anderen Seite macht es mir nichts aus, die E-Mail-Client-Anwendung mit meinem Handy zu öffnen und beim Frühstück E-Mails zu lesen.
Aus diesen Überlegungen ergibt sich die Idee zu diesem Projekt; Es verwendet eine Kaffeetasse, die mit LED-Leuchten ausgestattet ist, die ihre Farbe basierend auf dem Ergebnis der Stimmungsanalyse ändern, die für die letzten ungelesenen E-Mails in meinem E-Mail-Konto durchgeführt wurde. Stecken Sie einfach die Tasse ein und die LED-Leuchten werden grün, wenn die zuletzt empfangenen E-Mails positive Nachrichten enthalten, rot für das Gegenteil.
Die Sentimentanalyse ungelesener E-Mails wird von IBM Watson IoT Services durchgeführt. Zur Steuerung des LED-Streifens und zur Verbindung mit IBM Watson IoT-Diensten über WLAN unter Verwendung des MQTT-Protokolls wird ein Arduino MKR1000-Board verwendet.
Schritt 1: Hardwarekomponenten
Hardware-Entwicklungsboard:
Arduino MKR1000
Hardware-Stückliste
- 3x 100 Ohm Widerstände
- 3x TIP122 NPN-Transistoren
- 1x Stromanschluss
- 1x RGB-LED-Lichtleiste (AglaiaLT-S2)
- Ersatzkabel
Die Verkabelung zur Steuerung des LED-Streifens mit Arduino MKR1000 basiert auf diesem Tutorial:
Schritt 2: Erstellen Sie ein Konto bei IBM Watson IoT und registrieren Sie Ihr Gerät
Um eine Cloud-Anwendung zu erstellen, die eine Sentimentanalyse ungelesener E-Mails mit IBM Watson IoT durchführen kann, müssen Sie sich zunächst für ein kostenloses Testkonto anmelden (https://www.ibm.com/internet-of-things/trial/). Der zweite Schritt besteht darin, eine Anwendung für die Watson IoT-Plattform zu erstellen und Ihr Arduino MKR1000-Board zu registrieren. Dies ist jetzt ein Standardverfahren zum Verbinden von Hardwareplattformen mit IBM Watson IoT und in den IBM Schnellstartanleitungen gut dokumentiert:
console.ng.bluemix.net/docs/services/IoT/i…
IBM bietet auch Boilerplate-Vorlagen für das IoT, die diese Schritte beschleunigen, indem die Dienste und Laufzeiten begrenzt werden, die zum Starten Ihrer IoT-Anwendung erforderlich sind. IoT for Electronics Starter Boilerplate wurde für dieses Projekt verwendet.
Eine Schritt-für-Schritt-Anleitung zur Geräteregistrierung finden Sie hier:
console.ng.bluemix.net/docs/services/IoT/i…
Notieren Sie Ihre org-id, credential, device-id und device-type, sobald die Geräteregistrierung abgeschlossen ist, da diese zum Konfigurieren von Arduino Sketch und der NodeRED-Anwendung benötigt werden.
Schritt 3: Entwickeln Sie die Node-RED-Anwendung für die Stimmungsanalyse
NodeRED ist ein visuelles Tool, das in der IBM Watson IoT-Plattform verwendet werden kann, um Anwendungen zur Verkabelung von Geräten und Cloud-Services (nodered.org) zu erstellen.
Die entwickelte NodeRED-Anwendung ist sehr einfach und besteht aus zwei Flows, einem für die Stimmungsanalyse von E-Mails und einem weiteren für die Protokollierung des Status des Arduino MKR1000 (vom Gerät empfangene Stimmungsbewertung und RGB-Kombination für die angezeigte LED).
Der erste Flow stellt regelmäßig eine Verbindung zu einem E-Mail-Konto her und ruft die letzten ungelesenen E-Mails ab. Die Konfiguration hängt von Ihrem E-Mail-Konto ab. Jede empfangene E-Mail wird an die Sentiment-Analysebox gesendet, die basierend auf dem negativen/positiven Inhalt des analysierten Textes eine Punktzahl (weniger oder über 0) zurückgibt (siehe Informationen https://github.com/thisandagain/sentiment/blob/mas… für mehr Details). Die Stimmungsbewertung wird an eine einfache Funktionsbox gesendet, die den Durchschnitt der zuletzt empfangenen Daten berechnet und das Ergebnis an den nächsten Knoten weiterleitet. Schließlich sendet der letzte Block eine Nachricht mit dem Wert des Sentiment-Scores über das MQTT-Protokoll an das verbundene Gerät; Dieser Block muss mit den während der Geräteregistrierung generierten Anmeldeinformationen konfiguriert werden.
Der zweite Flow wird zu Testzwecken verwendet, um den Status des Arduino-Boards zu visualisieren; Es verbindet einen IoT-Eingangsknoten für Ihr Arduino-Board mit der IBM Quickstart-Webseite für die Datenvisualisierung (https://quickstart.internetofthings.ibmcloud.com/). Der IoT-Eingangsknoten ist wie oben konfiguriert, um Statusnachrichten vom Arduino Board unter Verwendung der MQTT-Protokolle zu empfangen. Statusmeldungen enthalten den Sentiment-Score und die RGB-Kombination für LED, die derzeit in Arduino verwendet wird.
Die Node-RED-Anwendung wurde in die Zwischenablage exportiert und hier als.txt-Datei angehängt.
Schritt 4: Arduino-Skizze
Arduino-Skizze basiert auf der MQTT-Clientbibliothek von Gilberto Conti (https://github.com/256dpi/arduino-mqtt), die für die Verbindung mit IBM Watson IoT modifiziert wurde. Der Code besteht aus drei Teilen:
- setup(): Verbindung mit WiFi-AP und IBM MQTT-Broker; einen Rückruf für von IBM Watson IoT empfangene Nachrichten registrieren
- loop (): RGB-Pin setzen, um LED-Leuchten zu steuern; den Status des Geräts (RGB und Sentiment Score) an IBM Watson IoT senden
- messageReceived(…): Rückruf, der beim Empfang von Nachrichten mit Sentiment-Score von der Watson IoT-Anwendung aufgerufen wird. Der Score wird dem RGB-Wert zugeordnet (negativ: rot; positiv: grün).
Konfigurieren Sie den Code basierend auf den während der Geräteregistrierung generierten Anmeldeinformationen (org-id, device-type, device-id) wie folgt:
- MQTT_MODE = IBM_API_KEY
- char *client_id = "d:Ihre-Organisations-ID:Ihr-Gerätetyp:Ihre-Geräte-ID";
- char *user_id = "use-token-auth";
- char *pwd = "dein-pwd";
- char *ibm_hostname = "Ihre-Organisations-ID.messaging.internetofthings.ibmcloud.com";
Die Anwendung abonniert das Thema iot-2/cmd/+/fmt/string und der Rückruf MessageReceived analysiert Nachrichten für den Befehlstyp sentiment.
Statusmeldungen werden unter folgendem Thema veröffentlicht: iot-2/evt/status/fmt/json
Hinweis: Denken Sie daran, das SSL-Zertifikat für MKR1000 zu aktualisieren; Folgen Sie den Anweisungen hier: https://github.com/arduino-libraries/WiFi101-Firm… und geben Sie Ihren ibm_hostnamen ein, um die Root-Zertifikate herunterzuladen und in MKR1000 zu installieren.
Arduino-Skizze beigefügt.
Schritt 5: Verbinden Sie Ihre Tasse
Es wäre schön gewesen, etwas mehr Elektronik und LEDs in die Tasse zu integrieren, aber für dieses Projekt habe ich einfach den Klebe-LED-Streifen um die Tasse herum befestigt, wie im Bild gezeigt.
Dann schließe ich den LED-Streifen an die Steckplatinenschaltung an, schalte die LED und den Arduino MKR1000 ein und warte darauf, Nachrichten mit der Stimmungsbewertung von der NodeRED-Anwendung zu erhalten. Auf dem Bild habe ich zum Beispiel getestet, indem ich E-Mails mit Texten wie "Großartige Arbeit!, Ihr Projekt ist wunderbar!" an mein Konto gesendet habe. usw.
Es ist auch möglich, auf der öffentlichen IBM Quickstart-Webseite (https://quickstart.internetofthings.ibmcloud.com) den Status der Arduino-Anwendung in Echtzeit zu überprüfen (RGB-Code wird angezeigt und der Sentiment-Score empfangen). Geräte-ID eingeben..
Jetzt kann ich endlich meinen Kaffee in einer angeschlossenen Tasse genießen.
Empfohlen:
Smart B.A.L (verbundene Mailbox): 4 Schritte
Smart B.A.L (Connected Mailbox): Sie haben es satt, jedes Mal Ihre Mailbox zu überprüfen, während sich nichts darin befindet. Sie möchten wissen, ob Sie während einer Reise Ihre Post oder ein Paket erhalten. Es benachrichtigt Sie, wenn der Postbote eine Post oder eine Par
Verbundene LED-Lampen - IoT-Projekte: 7 Schritte (mit Bildern)
Verbundene LED-Lampen | IoT-Projekte: Dies ist nicht nur eine weitere gravierte LED-Lampe, die Sie heutzutage auf dem Markt sehen. Dies ist eine erweiterte Version dieser Lampen. Im Zeitalter der vernetzten Geräte habe ich meine eigenen vernetzten Lampen hergestellt. Dieses Projekt ist von einem Produkt namens Filimin inspiriert: