Table des matières:

IDC2018IOT Connected Pet Food, Water and Monitor System : 7 étapes
IDC2018IOT Connected Pet Food, Water and Monitor System : 7 étapes

Vidéo: IDC2018IOT Connected Pet Food, Water and Monitor System : 7 étapes

Vidéo: IDC2018IOT Connected Pet Food, Water and Monitor System : 7 étapes
Vidéo: Connected Pet Control System 2024, Novembre
Anonim
Image
Image
IDC2018IOT Connected Pet Food, Water and Monitor System
IDC2018IOT Connected Pet Food, Water and Monitor System

introduction

Que vous soyez un étudiant sous pression, un travailleur acharné ou simplement loin de chez vous plus de quelques heures par jour. En tant que propriétaires d'animaux bienveillants, nous voulons nous assurer que nos bien-aimés restent en bonne santé, nourris et bien sûr NE PAS s'allonger sur le canapé (enfoiré !). Il est temps d'arrêter de demander des faveurs, ou même de payer pour de tels services.

Avec ce projet sympa, nous visons à vous offrir la possibilité de le faire vous-même (j'ai entendu dire que c'est une chose maintenant). Nous allons créer une solution pour mieux surveiller nos animaux de compagnie et même prendre des mesures au bureau, à l'école ou simplement en train de passer du temps avec nos amis ou nos proches.

Ce système vous permettra de nourrir votre animal à distance tout en contrôlant la quantité de nourriture que vous versez du récipient, remplissez le bol d'eau chaque fois qu'il se vide. De plus, nous pouvons désormais surveiller les niveaux d'eau du bol en temps réel, mesurer le contenu des contenants de nourriture et surtout regarder l'animal en direct à l'aide d'un simple module de caméra.

À propos de nous

Tomer Maimon, Gilad Ram et Alon Shprung. Trois étudiants passionnés en informatique de l'IDC Herzeliya. Il s'agit de notre premier projet Instructables dans le cadre d'un atelier IoT - nous espérons que vous le trouverez intéressant et amusant à construire !

Étape 1: Comprendre l'architecture:

Comprendre l'architecture
Comprendre l'architecture
Comprendre l'architecture
Comprendre l'architecture

On peut diviser ce système en deux parties principales:

  1. Canaux de données entrants:

    • Capteur d'eau - échantillonnant les niveaux d'eau à l'intérieur du bol pour animaux de compagnie, les données sont transmises de l'unité Node-MCU au serveur Blynk et sont enfin présentées via le tableau de bord pour animaux de compagnie.
    • Capteur sonar - échantillonnant le contenu du récipient alimentaire, les données sont transmises de l'unité Arduino (avec extension de blindage Ethernet) au serveur Blynk et sont enfin présentées via le tableau de bord Pet.
    • Module de caméra Pi - échantillonne constamment les images de la zone de l'animal, le Pi héberge son propre serveur qui fournit le flux en direct au tableau de bord de l'animal.
  2. Flux de commandes:

    • Bouton d'alimentation (tableau de bord) - mise à jour d'une valeur de broche virtuelle via Blynk, la fonction correspondante est déclenchée sur la carte Arduino, le servo se déplace alors afin de permettre aux aliments de passer à travers le couvercle.
    • Donner de l'eau (tableau de bord) - met à jour activement une valeur de broche virtuelle via Blynk, la fonction correspondante est déclenchée sur la carte Node-MCU, le relais est activé, la pompe à eau commencera à faire couler de l'eau dans le bol de l'animal.
    • Pet Live Feed (Dashboard) - intégré au tableau de bord et présentant des données en direct via le serveur de flacons qui s'exécute sur l'appareil Pi.

Étape 2: Liste des pièces

Liste des pièces
Liste des pièces
Liste des pièces
Liste des pièces
Liste des pièces
Liste des pièces

Pour commencer à travailler sur ce système, vous aurez besoin des pièces suivantes (ou similaires):

  1. Physique:

    • Conteneur alimentaire: Nous avons utilisé un tuyau industriel double face de 45 cm, que nous avons acheté dans un grand magasin. Il est important d'avoir 2 sorties. Une pour la mesure du contenu et une seconde sortie pour le mécanisme d'ouverture/fermeture.
    • Duct Tape: pour garder les choses ensemble;)
    • Cavaliers: Plus on est de fous, toujours bon d'en avoir en plus si quelque chose ne va pas.
    • Câble Ethernet: Pour connecter notre Arduino (avec blindage Ethernet) à Internet.
    • Pot de jardinage: utilisé comme récipient pour l'eau et la pompe à eau.
    • Tube d'eau court: connecté à la pompe et verse de l'eau dans le bol de l'animal.
  2. Capteurs:

    • Capteur de niveau d'eau WINGONEER: mesurez les niveaux d'eau dans le bol de l'animal.
    • Capteur sonar - Mesurez la distance entre le niveau des aliments et le couvercle supérieur à l'intérieur du récipient.
    • Relais TONGLING: Permet d'allumer/éteindre la pompe à eau qui fait couler l'eau.
    • Module de caméra Pi: connecté à un appareil Raspberry Pi et diffuse des images de la zone de l'animal.
    • Servo générique: verrouille et déverrouille le conteneur de nourriture.
  3. Appareils/cartes électroniques:

    • Arduino Uno: contrôle la mise en œuvre de l'unité de conteneur alimentaire.
    • Arduino Ethernet Shield: Fournit une connexion Internet à notre carte.
    • NodeMCU (ESP-8266): contrôle l'unité d'eau, à la fois pour mesurer et verser de l'eau. Cette carte a la capacité de se connecter via WiFi.
    • Raspberry Pi 3 - héberge le serveur de caméra et fournit un flux en direct au tableau de bord pour animaux de compagnie.
    • Pompe à eau submersible VicTsing 80 GPH: Fait couler l'eau de la boîte de jardinage vers le bol, avec le tube d'eau.

Étape 3: Câblage et mise en place des éléments

Câblage et mise en place des choses ensemble
Câblage et mise en place des choses ensemble
Câblage et mise en place des choses ensemble
Câblage et mise en place des choses ensemble
Câblage et mise en place des choses ensemble
Câblage et mise en place des choses ensemble

Câblage

Avant de commencer, il est recommandé de placer l'Arduino / Node-MCU sur une maquette pour faciliter l'assemblage de tous les fils et leur placement sur n'importe quel emplacement physique. De plus, il est recommandé d'utiliser des fils longs pour éviter les erreurs dues au détachement du câble. Nous vous avons fourni un schéma de câblage pour le Node-MCU (Water Unit) et l'Arduino (Food Unit).

  1. Unité alimentaire (Arduino):

    • Capteur sonar:

      • GND (noir) = GND
      • VCC (rouge) = 5V
      • Trig (violet) = 3
      • Écho (Bleu) = 4
    • Servo:

      • GND (noir) = GND
      • VCC (rouge) = 5V
      • Signal (Jaune) = 9
  2. Unité d'eau (nœud):

    • Capteur de niveau d'eau:

      • S (Bleu) = A0
      • + (Rouge) = 3v3
      • - (Noir) = GND
    • Relais (câblé électriquement à la pompe à eau):

      • IN (Jaune) = D1
      • VCC (Rouge) = Vin
      • GND (noir) = GND
  3. Unité de caméra (Pi):

    • Capteur de caméra:

      • Connectez-vous au port de caméra unique du Pi (câble de flux)
      • Si vous cherchez à en savoir plus sur Pi avec module caméra - Lien

Assembler des pièces ensemble

Dans cette partie, vous êtes invités à personnaliser et modifier ce projet afin de le "faire vôtre". Mais nous vous fournirons des images et une description pour reconstituer notre version du produit.

  1. Unité alimentaire (Arduino): Le conteneur est assez simple, nous allons nous concentrer sur la fabrication des deux couvercles.

    • Couvercle supérieur: Découpez 2 trous dans le couvercle pour que le capteur sonar puisse s'y insérer (voir l'image ci-jointe).
    • Couvercle inférieur + mécanisme: commencez par prendre l'un des accessoires en plastique (fournis avec le servo-capteur) et construisez une forme de « marteau de masse » en utilisant du ruban adhésif/des bâtons en bois (nous n'avons utilisé que du ruban adhésif). Ensuite, attachez-y le servo. Maintenant, nous avons besoin de 2 trous sur le couvercle lui-même. Le premier devrait permettre au servo de s'insérer dans le mécanisme que nous avons construit et placé sur le "côté intérieur" du couvercle. Découpez un autre trou en fonction du côté de la "tête de marteau" que vous avez fabriquée. De cette façon, chaque fois que le servo s'ouvre, la queue du marteau va balayer les aliments vers la sortie et empêcher les gros morceaux de se coincer.
  2. Unité d'eau (Node-MCU): Connectez simplement le tube d'eau à la pompe à eau, placez-le maintenant dans le pot de jardin (assurez-vous de NE PAS placer la mauvaise pièce avec le relais et les fils électriques à l'intérieur de l'eau).
  3. Unité de caméra: Tout ce que vous avez à faire est de placer le Pi avec module de caméra à l'emplacement de votre choix.

Étape 4: Configurer Blynk

Configurer Blynk
Configurer Blynk
Configurer Blynk
Configurer Blynk

Toutes les fonctionnalités à distance de ce projet sont basées sur Blynk. Ce service nous fournit essentiellement un serveur Web gratuit et une API RESTful pour communiquer avec nos périphériques Arduino/Node-MCU sur Internet à l'aide du protocole HTTP. Blynk nous permet de définir des broches virtuelles, qui serviront d'adresse pour exécuter des fonctions spécifiques liées au versement d'eau, à l'alimentation et à l'échantillonnage des différents capteurs (nous avons fait cette partie pour vous, il vous suffit d'obtenir votre propre jeton d'application, qui sera expliqué par la suite).

Comment obtenir mon jeton d'authentification Blynk

  1. Téléchargez l'application Blynk via AppStore / PlayStore pour votre appareil mobile.
  2. Inscrivez-vous à ce service (il est gratuit).
  3. Commencez un nouveau projet, assurez-vous de sélectionner le bon appareil (dans notre cas ESP8266).
  4. Après la création, un email avec AUTHENTICATION TOKEN sera envoyé - Enregistrez le token pour les prochaines étapes.

Remarque: Blynk peut être entièrement utilisé via l'application, mais nous avons décidé de mettre en œuvre notre propre tableau de bord personnalisé.

Enfin, afin de passer à l'étape suivante, vous devez télécharger et installer la bibliothèque Blynk - Lien (passez à la partie 3)

Étape 5: Configurer le récipient alimentaire, la pompe à eau et la caméra en direct

Configurer le récipient alimentaire, la pompe à eau et la caméra en direct
Configurer le récipient alimentaire, la pompe à eau et la caméra en direct
Configurer le récipient alimentaire, la pompe à eau et la caméra en direct
Configurer le récipient alimentaire, la pompe à eau et la caméra en direct

À ce stade, nous avons fini d'assembler toutes les pièces et avons obtenu notre blynkAuthAppToken (voir étape 3).

Nous vous avons fourni tout le code dont vous avez besoin pour exécuter ce projet, tout ce que vous avez à faire est de changer quelques variables dans le code, ce qui en fera "votre propre" système privé.

Tout d'abord, commencez par télécharger l'IDE Arduino (si vous ne l'avez pas encore fait) - Lien

Conteneur de nourriture Arduino

  1. Configurez l'IDE sur la carte Arduino: Outils -> Carte -> Arduino/Genuino Uno
  2. Assurez-vous que ces bibliothèques sont installées: Sketch -> Inclure la bibliothèque -> Gérer les bibliothèques

    Relais (Par Rafael)

  3. Ouvrez le fichier de croquis PetFeeder.ino, configurez les paramètres suivants (voir l'image ci-jointe pour obtenir de l'aide):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Compilez et téléchargez le croquis sur votre appareil Arduino.

Unité d'eau Node-MCU

  1. Configurez l'IDE sur la carte Node-MCU:

    Voir la première partie de cette instructable pour une explication détaillée

  2. Assurez-vous que ces bibliothèques sont installées: Sketch -> Inclure la bibliothèque -> Gérer les bibliothèques

    Gestionnaire WiFi (Par tzapu)

  3. Ouvrez le fichier de croquis PetFeeder.ino, configurez les paramètres suivants (voir l'image ci-jointe pour obtenir de l'aide):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "VOTRE_WIFI_SSID"; // En gros c'est le nom de votre réseau WiFi
    • pass = "YOUR_WIFI_PASSWORD"; // si vous n'avez pas de mot de passe, utilisez une chaîne vide ""
  4. Compilez et téléchargez le croquis sur votre appareil Node-MCU.

Module de caméra en direct Pi

  1. Connectez le module de caméra pi
  2. Exécutez " sudo raspi-config " et activez l'option "caméra".
  3. Testez l'appareil photo à l'aide de la commande "raspistill" pour capturer une image

    r aspistill -o image.jpg

  4. Configurez le serveur de caméra Web Flask:

    • Installez toutes les exigences en utilisant pip install -r requirements.txt
    • Utilisez python pour exécuter camera_server.py
    • Découvrez-le sur 127.0.0.1:5000/video_feed
  5. Configurez le serveur Web Flask pour qu'il s'exécute au démarrage:

    • Ajoutez la ligne suivante à /etc/rc.local (avant la ligne de sortie):

      python /camera_server.py

Étape 6: Comment utiliser le panneau de configuration

Comment utiliser le panneau de configuration
Comment utiliser le panneau de configuration

Installer

Cette partie est assez simple, il vous suffit d'insérer le "blynk app token" dans le fichier "index.js" comme suit:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // utilise le même jeton des étapes précédentes.

Usage

  1. Ouvrez le tableau de bord en double-cliquant sur le fichier "index.html".
  2. Le tableau de bord échantillonnera automatiquement le système toutes les 10 minutes.
  3. Les mesures des conteneurs d'eau et de nourriture peuvent être prises manuellement.
  4. Les boutons « Donner de l'eau » et « Alimentation » sont utilisés pour fournir activement à votre animal de la nourriture et de l'eau.
  5. La partie inférieure du tableau de bord présentera le flux en direct du module de caméra si vous avez suivi attentivement les instructions de l'étape précédente.

Remarque: Si vous souhaitez personnaliser le nombre d'ouvertures du récipient alimentaire lorsque vous nourrissez, ouvrez le fichier « index.js » et modifiez la « valeur » sur la ligne suivante de « 3 » à n'importe quel nombre de votre choix:

fetch(baseURL + '/update/V1?value=3');

Étape 7: Défis, limites et plans futurs

Défis

Les principaux défis pour nous dans ce projet étaient liés à la conception du mécanisme d'ouverture/fermeture du conteneur alimentaire et à la création d'un code concurrent stable pour contrôler et mesurer l'unité alimentaire. Je crois que nous avons essayé au moins 4 versions différentes jusqu'à ce que nous soyons satisfaits. La principale préoccupation était la nourriture qui bloquait la sortie. Afin d'éviter cela, nous avons choisi une conception Sledge-Hammer, de cette façon, chaque fois que nous ouvrons le conteneur, la queue du "marteau" balaie la nourriture vers la sortie. De plus, l'utilisation d'un tube à deux côtés a rendu notre vie beaucoup plus simple lors de la construction du récipient alimentaire. Un tel objet est parfait pour placer le mécanisme de sortie d'un côté, et un capteur de distance de l'autre côté pour mesurer son contenu.

Limites

A cette phase du projet, il y a quelques limitations au système:

  1. Ce n'est pas entièrement automatisé, ce qui signifie que l'alimentation et le versement de l'eau se font manuellement via le tableau de bord de surveillance sans aucun programmateur intelligent (qui pourrait être ajouté à l'avenir ou mis en œuvre par vous !).
  2. Le tableau de bord s'exécute localement à partir de votre propre ordinateur portable, afin de le rendre plus accessible, il peut être hébergé sur des plateformes populaires telles que "Heroku".
  3. Nous avons utilisé un module caméra très simple, qui peut être remplacé par un module beaucoup plus compliqué pour permettre une meilleure qualité d'image et éventuellement l'ajout de canal de communication avec votre animal (à l'aide d'un haut-parleur).

Plans futurs

Si nous avions le temps et le budget pour continuer à développer ce système, nous avions quelques idées et un calendrier possible en tête:

  1. Ajout d'un système de planification automatique pour l'alimentation des animaux - 2 à 3 jours de travail.
  2. Création d'un site Web pour permettre aux utilisateurs de notre système de créer un tableau de bord personnalisé hébergé en ligne et accessible depuis n'importe quel appareil connecté - 1 à 2 mois de travail.
  3. Travailler sur une version industrielle pour ce système, permettant à plus de propriétaires d'animaux de mieux contrôler et communiquer avec leurs animaux en ligne, nous avons eu beaucoup d'intérêt de la part d'amis qui ont vu le résultat de ce Instructable. Donc, si vous avez la passion du temps pour faire passer le projet au niveau supérieur - vous avez un soutien total !

Nous espérons que vous avez apprécié la lecture (et, espérons-le, la construction !) de ce projet:)

Conseillé: