Table des matières:

IDC2018IOT GarbageCan-Online : 7 étapes
IDC2018IOT GarbageCan-Online : 7 étapes

Vidéo: IDC2018IOT GarbageCan-Online : 7 étapes

Vidéo: IDC2018IOT GarbageCan-Online : 7 étapes
Vidéo: Create A Free Online Store in 2024 ~ A Free Shopping Cart Tutorial For Beginners 2024, Juillet
Anonim
Image
Image
Pièces requises
Pièces requises

introduction

Tout le monde sait ce qui se passe lorsque nous laissons les déchets dans la poubelle trop longtemps sans les retirer. Eh bien, la chose la plus évidente est qu'il n'y a plus de place pour plus de déchets, mais ça commence aussi à puer, et ça devient très désagréable.

Avec ce projet, nous visons à vous aider à surveiller vos poubelles dans la maison, l'espace de travail, etc., afin que vous puissiez toujours savoir quand elles sont pleines et prendre des mesures immédiates en sortant les poubelles.

Le système vous avertira par notification téléphonique ou alerte de tableau de bord que vous devez vider la poubelle. Le système prend en compte le niveau de remplissage de la poubelle, mais aussi la température et l'humidité mesurées à l'intérieur. Nous connaissons tous l'urgence de vider les poubelles par temps chaud et humide…

Caractéristiques principales

  1. Tableau de bord de surveillance:

    • Section principale:

      • Niveau de plénitude de chaque poubelle.
      • Température et humidité de chaque poubelle.
    • Section des statistiques:

      • La poubelle la plus pleine.
      • La poubelle la plus chaude.
  2. Système d'alertes et de notifications:

    • Les événements suivants sont pris en charge:

      • La poubelle est pleine.
      • Une erreur de capteur s'est produite.
    • Les alertes de remplissage prennent en compte le niveau de remplissage de la poubelle, mais aussi les niveaux de température et d'humidité de la poubelle.
    • Les alertes peuvent être envoyées via des notifications téléphoniques et des alertes de tableau de bord.
    • Chaque canal d'alerte peut être activé et désactivé via le tableau de bord.
  3. Évolutivité:

    • À l'aide du bouton de calibrage, il est possible d'adapter le système à différentes poubelles de capacités variables.
    • Il est possible d'ajouter plus de poubelles relativement facilement. On peut assembler le même système sur une nouvelle poubelle, définir l'ID de la poubelle et le calibrer (pression d'un bouton). Avoir plus de 3 poubelles nécessitera une extension du tableau de bord (tâche facile à réaliser).

Qui sommes nous?

Ce projet a été créé (avec amour et dévouement !) par Rom Cyncynatus et Daniel Alima - Étudiants de l'IDC Herzliya en tant que projet final de notre cours IoT. Nous espérons que vous trouverez notre travail utile et que vous apprécierez de l'utiliser !

Étape 1: Pièces requises

Afin de construire le système, vous devrez acquérir les composants et pièces suivants:

  1. Poubelle (de préférence avec un couvercle): Elle servira à… ben.. tu sais ce qu'on va faire de celle-ci, hein ?;)
  2. Planche à pain: pour connecter tous les différents composants sans utiliser de soudure.
  3. NodeMCU (ESP-8266): En charge de la lecture des capteurs et de l'envoi des informations vers le cloud.
  4. Capteur infrarouge de distance - Sharp 0A41SK: ce capteur mesurera la quantité de déchets (niveau de plénitude) à l'intérieur de la boîte.
  5. Capteur de température et d'humidité - DHT11: Ce capteur mesurera la température et l'humidité à l'intérieur de la poubelle.
  6. Interrupteur momentané: Sera utilisé pour calibrer le capteur de distance en fonction de la taille de la poubelle.
  7. Feuille d'aluminium: Sera utilisé pour former un détecteur de l'état du couvercle - qu'il soit ouvert ou fermé.
  8. Fils de raccordement: obtenez-en beaucoup, de différentes longueurs et couleurs. Connectera tout ensemble.
  9. Ruban adhésif: Nous devrons attacher les choses en place.
  10. Câble Micro-USB: Pour connecter le NodeMCU à votre ordinateur pour la programmation, et plus tard pour une alimentation électrique.
  11. Alimentation USB (chargeur de smartphone): fournira de l'énergie au NodeMCU lorsqu'il est installé sur la poubelle.

Étape 2: Câblage et assemblage

Câblage et assemblage
Câblage et assemblage
Câblage et assemblage
Câblage et assemblage
Câblage et assemblage
Câblage et assemblage

Câblage

Placez le NodeMCU sur la maquette de manière à ce qu'il soit pratique de le fixer plus tard à votre poubelle et connectez-y le câble USB. Ensuite, consultez l'image du schéma de câblage ci-dessus pour connecter les différents composants au NodeMCU. Assurez-vous d'utiliser des fils longs pour les capteurs et les fils d'état afin qu'il soit pratique d'installer le système et d'utiliser la poubelle avec.

  • Capteur infrarouge de distance - Sharp 0A41SK:

    • Vin (Rouge) Vin
    • GND (Noir) GND
    • Vout (Jaune) A0
  • Capteur de température et d'humidité - DHT11:

    • Vin (Rouge) 3V3
    • GND (Noir) GND
    • DONNÉES (Jaune) D4
  • Commutateur momentané:

    • Pin1 D3
    • Broche2 GND
  • Fils d'état du couvercle (ouvert/fermé):

    • Fil1 D2
    • Fil2 GND

Assemblée

L'assemblage du système sur la poubelle est assez simple. Attachez la planche à pain à la poubelle, de préférence près du couvercle. Utilisez du ruban adhésif ou un serre-câble pour le fixer en place. Puis:

  1. Placez le capteur de distance IR au milieu du couvercle (de l'intérieur !). Assurez-vous de le sécuriser correctement, ou vous rencontrerez de fausses lectures !
  2. Placez le capteur de température et d'humidité quelque part à l'intérieur de la poubelle. Fixez avec du ruban adhésif.
  3. Couvrir le côté du couvercle et le bout de la poubelle avec du papier d'aluminium. Assurez-vous qu'il y a un bon contact lorsque le couvercle est fermé. Cela signalera au système que la poubelle est ouverte ou fermée. Ensuite, collez chacun des fils d'état du couvercle dans l'une des feuilles d'aluminium et fixez-le avec du ruban adhésif.

Étape 3: Configurer MQTT, Node-RED et IFTTT

Configurer MQTT, Node-RED et IFTTT
Configurer MQTT, Node-RED et IFTTT
Configurer MQTT, Node-RED et IFTTT
Configurer MQTT, Node-RED et IFTTT
Configurer MQTT, Node-RED et IFTTT
Configurer MQTT, Node-RED et IFTTT

La majeure partie de la logique du projet est en fait implémentée dans le cloud. Le NodeMCU envoie les données au serveur MQTT, et Node-RED les consomme et y applique sa logique (plus d'informations sur l'architecture plus loin). Enfin, afin de transmettre des notifications push (alertes) à notre smartphone, nous avons utilisé IFTTT.

Nous utiliserons les services cloud CloudMQTT et FRED comme serveurs MQTT et Node-RED respectivement, et nous utiliserons IFTTT pour les notifications push.

  1. Inscrivez-vous à CloudMQTT avec le forfait gratuit. Notez vos informations d'identification sur le serveur MQTT (nom d'utilisateur et mot de passe).
  2. Inscrivez-vous à IFTTT. Créez une nouvelle applet de "Notification d'application Webhooks IFTTT". Utilisez « Notification par téléphone mobile » comme nom d'événement WebHookds. Consultez l'image ci-dessus pour plus de détails. Notez votre clé API de fabricant.
  3. Téléchargez l'application IFTTT sur votre téléphone et connectez-vous avec vos informations d'identification. Cela vous permettra d'obtenir des notifications push.
  4. Inscrivez-vous à FRED avec le plan gratuit.
  5. Une fois l'instance FRED opérationnelle, importez-y les flux attachés (bouton 3 barres Importer depuis le presse-papiers). Collez simplement le contenu de chaque fichier (widgest.json, alerts.json, statistics.json) et importez-le.
  6. Modifiez l'un des nœuds MQTT (un seul suffit) pour mettre à jour vos informations d'identification CloudMQTT.
  7. Modifiez le nœud IFTTT pour mettre à jour votre clé API de fabricant IFTTT.

Étape 4: programmez le NodeMCU et l'étalonnage de la capacité de la poubelle

Une fois que tout est câblé, nous devons programmer le NodeMCU avec le logiciel approprié (esquisse) afin qu'il utilise réellement tout ce qui y est connecté et communique avec Internet.

  1. Téléchargez et installez l'IDE Arduino à partir d'ici.
  2. Installez et définissez le type de carte NodeMCU comme expliqué au début de l'instruction suivante.
  3. Installez les bibliothèques suivantes (Sketch Include Library Gérer les bibliothèques…):

    1. Bibliothèque Adafruit MQTT (par Adafruit)
    2. Bibliothèque de capteurs DHT (Par Adafruit)
    3. SharpIR (par Giuseppe Masino)
    4. EEPROMAnything - explication ici.
  4. Ouvrez le fichier GarbageCanOnline.ino et mettez à jour les éléments suivants:

    1. Vos identifiants WiFi (WLAN_SSID, WLAN_PASS)
    2. Vos identifiants CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. S'il s'agit d'une deuxième poubelle ou plus, modifiez l'ID de la poubelle (GARBAGECAN_ID)
  5. Téléchargez le croquis mis à jour sur votre NodeMCU.
  6. Ouvrez la fenêtre du moniteur série (Ctrl+M) et assurez-vous qu'il parvient à publier les données des capteurs sur CloudMQTT.
  7. Maintenant, lorsque le couvercle est fermé et que la poubelle est vide, appuyez longuement sur le bouton d'étalonnage pour calibrer la capacité de la poubelle.
  8. La poubelle est prête. Vous pouvez le déconnecter de votre ordinateur et le connecter à son emplacement désigné à l'aide de l'alimentation USB.

Étape 5: Utilisation du système

Utilisation du système
Utilisation du système
Utilisation du système
Utilisation du système
Utilisation du système
Utilisation du système

Si vous êtes arrivé jusqu'ici, tout devrait être opérationnel. Faisons un rapide tour d'horizon des différents aspects d'utilisation du système.

Nous supposons que vous n'avez qu'une seule poubelle connectée, mais il est facile d'en ajouter d'autres plus tard !

Tout d'abord, notez le tableau de bord principal. Vous devriez être dans l'écran d'accueil, voir la plénitude de la poubelle, la température et les niveaux d'humidité. Vous pouvez contrôler les notifications du téléphone et les alertes du tableau de bord à l'aide des commutateurs sur la gauche.

Lorsque la quantité de déchets à l'intérieur de la poubelle change, vous verrez la jauge changer en conséquence. C'est également le cas pour les graphiques de température et d'humidité.

Lorsque le niveau de remplissage atteint 85 % à 90 % (le seuil exact dépend de la température et de l'humidité) ou qu'une erreur de capteur s'est produite, vous recevrez une notification via votre ou vos méthodes préférées. Vous serez averti une fois par heure par poubelle.

Dans la vue Statistiques, vous pourrez voir la poubelle actuellement la plus pleine et la plus chaude. Titre peu flatteur, si l'on peut dire…

Étape 6: Comprendre le flux

Comprendre le flux
Comprendre le flux
Comprendre le flux
Comprendre le flux
Comprendre le flux
Comprendre le flux
Comprendre le flux
Comprendre le flux

Comme vous l'avez probablement remarqué maintenant, le système a beaucoup de "pièces mobiles". Nous allons essayer de clarifier comment les choses sont liées les unes aux autres.

Tout d'abord, nous avons notre poubelle avec le NodeMCU et ses capteurs. Nous pouvons en avoir beaucoup - juste des "copies" les uns des autres.

Le NodeMCU mesure les différents capteurs placés dans la poubelle, et publie les données sur le serveur MQTT (protocole MQTT). Vous pouvez considérer le serveur MQTT comme un grand échange d'informations, auquel de nombreuses poubelles peuvent rapporter leurs informations.

Une autre entité qui se connecte au serveur MQTT est Node-RED. Node-RED écoute les différents messages provenant de la ou des poubelles contenant les données sensorielles, et y applique sa logique. Il fonctionne en utilisant des "flux" d'informations. Chaque fois qu'un message est reçu, en fonction de son type (thème MQTT), il entre dans des chaînes d'opérations spécifiques qui finissent par activer les différentes fonctionnalités du système (mise à jour du tableau de bord, envoi d'alertes, etc.) Il serait très correct de dire que Node-RED est le "cerveau" du système. Il est conscient de tout ce qui se passe partout et peut agir en conséquence.

À l'intérieur de Node-RED, nous avons construit 3 principaux flux d'informations:

  1. Widgets - Les informations sensorielles introduites dans Node-RED sont ensuite affichées sur le tableau de bord via des jauges et des graphiques.
  2. Alertes - Les informations sensorielles sont traitées pour déterminer si une alerte doit être déclenchée (sur le tableau de bord ou sur l'application smartphone). Le niveau de remplissage, avec la température et l'humidité sont pris en compte pour décider d'informer l'utilisateur que la poubelle est pleine. En outre, les erreurs sensorielles sont signalées par le même flux.
  3. Statistiques - Les informations sensorielles sont agrégées pour afficher les poubelles les plus pleines et les plus chaudes.

Pour que Node-RED envoie une notification push, il se connecte à un service appelé IFTTT (par protocole HTTP). Il active un certain événement IFTTT avec le texte de notification pertinent, et IFTTT envoie la notification à notre smartphone (protocoles HTTP et XMPP).

Consultez les images ci-dessus pour mieux comprendre (a) la structure générale du système et (b) les 3 flux d'informations différents à l'intérieur de Node-RED

Étape 7: Défis, limites et plans pour l'avenir…

Défis

Les principaux défis de ce projet étaient principalement la gestion des services MQTT et Node-RED. Nous avons d'abord utilisé AdafruitIO, mais son implémentation MQTT personnalisée n'était pas très bonne pour nous. Ce n'était pas pratique de travailler avec ses "flux" à l'intérieur de Node-RED. Par conséquent, nous avons finalement opté pour CloudMQTT, qui est basé sur le serveur Mosquitto MQTT, et est beaucoup plus standard. Ensuite, nous sommes passés à gérer Node-RED, ce qui était assez difficile, principalement parce que Node-RED est une bête. Par exemple, il est beaucoup plus complet et professionnel que IFTTT de notre point de vue. Nous avons dû nous adapter et apprendre à utiliser son approche de conception basée sur les flux pour construire les fonctionnalités requises du système. De plus, l'un de ses plus grands avantages est la prise en charge du code javascript, mais il a fallu un certain temps pour s'y habituer car nous ne sommes pas des programmeurs javascript. Malgré tout cela, nous avons vraiment apprécié de travailler avec cet outil particulier, et nous l'avons trouvé très intéressant et utile.

Limites

En ce qui concerne les limitations, la première serait le fait que nous n'utilisions que des services gratuits et qu'ils ne permettront pas de passer à grande échelle. Le plan gratuit CloudMQTT ne permettra pas d'avoir plus de 5 connexions parallèles, ce qui signifie que nous ne pouvons avoir que 4 poubelles et le Node-RED. Le forfait gratuit FRED Node-RED n'autorise que 24 heures d'utilisation directe, après quoi vous devez vous connecter manuellement et réinitialiser la minuterie. Cependant, ces problèmes peuvent être facilement résolus en exécutant ces services localement ou en payant un petit supplément pour lever les limitations. La deuxième limitation est le fait que lorsque l'on ajoute la quatrième poubelle et au-delà, il doit éditer manuellement le flux de widgets dans Node-RED pour ajouter ses widgets appropriés.

Projets pour l'avenir

Nous avons eu quelques idées pour améliorer encore notre système et l'étendre:

  1. Passez aux services cloud non gratuits. (une seule journée de travail).
  2. Ajout d'un compresseur d'ordures à la poubelle, réduisant ainsi la fréquence de vidange. (4 mois de travail)
  3. Travailler avec des poubelles urbaines et industrielles pour améliorer l'efficacité des camions urbains qui manipulent les déchets dans la ville. Cela signifierait une amélioration considérable du tableau de bord et du système de notification afin que les chauffeurs routiers puissent mieux planifier leur itinéraire lorsqu'ils manipulent les déchets. (6 mois de travail).
  4. Ajout de capacités de recyclage à la poubelle, comme la capacité de verser des solutions biologiques spéciales dans les ordures et d'aider à les recycler pendant qu'elles sont encore à l'intérieur de la poubelle. Cela peut être utilisé au niveau domestique, par exemple pour produire du compost pour les jardins, mais peut également être utilisé également sur des bidons industriels. (6 mois de travail).

Conseillé: