Table des matières:

Mug connecté : 5 étapes (avec photos)
Mug connecté : 5 étapes (avec photos)

Vidéo: Mug connecté : 5 étapes (avec photos)

Vidéo: Mug connecté : 5 étapes (avec photos)
Vidéo: Mug Press - comment personnaliser un Mug avec les rouleaux Infusible Ink 2024, Novembre
Anonim
Mug connecté
Mug connecté

Parfois le matin en sirotant mon café avant d'aller au bureau, j'aimerais avoir un aperçu de ce qu'il m'attend dans ma boite mail. c'est-à-dire le nombre et le ton des e-mails reçus… si le projet que je viens de terminer la veille fonctionne ou non et s'il y a des commentaires positifs ou négatifs à son sujet. D'un autre côté, cela ne me dérange pas vraiment d'ouvrir l'application client de messagerie avec mon mobile et de commencer à lire les e-mails pendant le petit-déjeuner.

De ces considérations vient l'idée de ce projet; il utilise une tasse à café rehaussée de lumières LED qui changent de couleur en fonction du résultat de l'analyse des sentiments effectuée sur les derniers e-mails non lus reçus dans mon compte de messagerie. Il suffit de brancher la tasse et les lumières LED deviendront vertes si les derniers e-mails reçus contiennent des messages positifs, la couleur rouge pour le contraire.

L'analyse des sentiments des e-mails non lus est effectuée par les services IBM Watson IoT. Une carte Arduino MKR1000 est utilisée pour contrôler la bande LED et pour se connecter aux services IBM Watson IoT via WiFi à l'aide du protocole MQTT.

Étape 1: Composants matériels

Composants matériels
Composants matériels
Composants matériels
Composants matériels

Carte de développement matériel:

Arduino MKR1000

Nomenclature matérielle

  • 3 résistances de 100 ohms
  • 3x transistors TIP122 NPN
  • 1x prise d'alimentation
  • 1x bande lumineuse LED RVB (AglaiaLT-S2)
  • Câbles de rechange

Le câblage pour contrôler la bande LED avec Arduino MKR1000 est basé sur ce tutoriel:

Étape 2: créez un compte sur IBM Watson IoT et enregistrez votre appareil

Afin de créer une application cloud capable d'effectuer une analyse des sentiments des e-mails non lus avec IBM Watson IoT, il est d'abord nécessaire de signer pour un compte d'essai gratuit (https://www.ibm.com/internet-of-things/trial/). La deuxième étape consiste à créer une application pour la plate-forme Watson IoT et à enregistrer votre carte Arduino MKR1000; il s'agit désormais d'une procédure standard pour connecter les plates-formes matérielles à IBM Watson IoT, et elle est bien documentée dans les guides de démarrage rapide IBM:

console.ng.bluemix.net/docs/services/IoT/i…

IBM fournit également des modèles standard pour l'IoT qui accélèrent ces étapes en délimitant les services et les temps d'exécution nécessaires pour lancer votre application IoT. IoT for Electronics Starter Boilerplate a été celui utilisé pour ce projet.

Le guide d'enregistrement de l'appareil étape par étape est fourni ici:

console.ng.bluemix.net/docs/services/IoT/i…

Notez votre org-id, vos informations d'identification, votre device-id et votre type d'appareil une fois la procédure d'enregistrement de l'appareil terminée, car ils seront nécessaires pour configurer Arduino Sketch et l'application NodeRED.

Étape 3: Développer l'application Node-RED pour l'analyse des sentiments

Développer l'application Node-RED pour l'analyse des sentiments
Développer l'application Node-RED pour l'analyse des sentiments

NodeRED est un outil visuel qui peut être utilisé dans la plateforme IBM Watson IoT pour créer des dispositifs de câblage d'applications et des services Cloud (nodered.org).

L'application NodeRED développée est très simple et composée de deux flux, un pour l'analyse des sentiments des e-mails et un autre pour l'enregistrement de l'état de l'Arduino MKR1000 (score de sentiments reçu par l'appareil et combinaison RVB pour la LED affichée).

Le premier flux se connecte périodiquement à un compte de messagerie et récupère les derniers e-mails non lus; la configuration dépend de votre compte de messagerie. Chaque e-mail reçu est envoyé à la boîte d'analyse des sentiments, qui renvoie un score (inférieur ou supérieur à 0) basé sur le contenu négatif/positif du texte analysé (voir les informations https://github.com/thisandagain/sentiment/blob/mas… pour plus de détails). Le score de sentiment est envoyé à une boîte de fonction simple qui calcule la moyenne des dernières données reçues et envoie le résultat au nœud suivant. Enfin, le dernier bloc envoie un message contenant la valeur du score de sentiment à l'appareil connecté en utilisant le protocole MQTT; ce bloc doit être configuré avec les informations d'identification générées lors du processus d'enregistrement de l'appareil.

Le deuxième flux est utilisé à des fins de test pour visualiser l'état de la carte Arduino; il connecte un nœud IoT d'entrée pour votre carte Arduino à la page Web de démarrage rapide d'IBM pour la visualisation des données (https://quickstart.internetofthings.ibmcloud.com/). Le nœud IoT d'entrée est configuré comme ci-dessus pour recevoir des messages d'état de la carte Arduino à l'aide des protocoles MQTT. Les messages d'état contiennent le score de sentiment et la combinaison RVB pour la LED actuellement utilisée dans Arduino.

L'application Node-RED a été exportée dans le presse-papiers et jointe ici en tant que fichier.txt.

Étape 4: Esquisse Arduino

L'esquisse Arduino est basée sur la bibliothèque cliente MQTT de Gilberto Conti (https://github.com/256dpi/arduino-mqtt) qui a été modifiée pour se connecter à IBM Watson IoT. Le code est composé de trois parties:

  • setup(): connectez-vous avec le WiFi AP et le courtier IBM MQTT; enregistrer un rappel pour les messages reçus d'IBM Watson IoT
  • loop(): définissez la broche RVB pour contrôler les lumières LED; envoyer à IBM Watson IoT le statut de l'appareil (RVB et score de sentiment)
  • messageReceived(…): rappel appelé à la réception de messages avec score de sentiment de l'application Watson IoT. Le score est mappé à la valeur RVB (négatif: rouge; positif: vert).

Configurez le code comme suit, en fonction des informations d'identification générées lors de la procédure d'enregistrement de l'appareil (org-id, device-type, device-id):

  • MQTT_MODE = IBM_API_KEY
  • char *client_id = "d:your-org-id:your-device-type:your-device-id ";
  • char *user_id = "use-token-auth";
  • char *mdp = "votre-mdp ";
  • char *ibm_hostname = "votre-org-id.messaging.internetofthings.ibmcloud.com";

L'application s'abonne à la rubrique iot-2/cmd/+/fmt/string et le rappel messageReceived analyse les messages pour le type de commande sentiment.

Les messages d'état sont publiés dans le sujet: iot-2/evt/status/fmt/json

Remarque: n'oubliez pas de mettre à jour le certificat SSL pour MKR1000; suivez les instructions ici: https://github.com/arduino-libraries/WiFi101-Firm… et insérez votre ibm_hostname pour télécharger et installer dans MKR1000 les certificats racine.

Croquis Arduino joint.

Étape 5: Connectez votre tasse

Connectez votre tasse
Connectez votre tasse
Connectez votre tasse
Connectez votre tasse

Cela aurait été bien de faire un peu plus d'intégration de l'électronique et des LED dans la tasse, mais pour ce projet, j'ai simplement attaché la bande LED adhésive autour de la tasse comme indiqué sur la photo.

Ensuite, je connecte la bande LED au circuit de la maquette, alimente la LED et l'Arduino MKR1000 et attends de recevoir des messages avec le score de sentiment de l'application NodeRED. Dans l'image par exemple j'ai testé en envoyant à mon compte des emails contenant du texte comme "Super travail !, ton projet est magnifique !" etc.

Il est également possible de vérifier dans la page Web publique d'IBM Quickstart (https://quickstart.internetofthings.ibmcloud.com) l'état en temps réel de l'application Arduino (le code RVB étant affiché et le score de sentiment reçu); il suffit de entrez l'identifiant de l'appareil..

Je peux enfin savourer mon café dans un mug connecté.

Conseillé: