Table des matières:

Distributeur de friandises IoT pour animaux de compagnie : 7 étapes (avec photos)
Distributeur de friandises IoT pour animaux de compagnie : 7 étapes (avec photos)

Vidéo: Distributeur de friandises IoT pour animaux de compagnie : 7 étapes (avec photos)

Vidéo: Distributeur de friandises IoT pour animaux de compagnie : 7 étapes (avec photos)
Vidéo: Elle Était Coincée Donc Ce Policier L'aide 2024, Novembre
Anonim
Image
Image
Distributeur de friandises IoT pour animaux de compagnie
Distributeur de friandises IoT pour animaux de compagnie

J'ai deux chats, et devoir leur donner des friandises environ 3 fois par jour est devenu assez ennuyeux. Ils me regardaient avec leurs visages mignons et leurs regards intenses, puis couraient vers une boîte pleine de chats verts, miaulant et suppliant pour eux. J'avais décidé que ça suffisait. Plus besoin de vous lever pour donner quelques friandises à un chat. Le moment était venu pour une machine de distribution de friandises, car comme le dit l'adage: "Les programmeurs existent pour faire des choses compliquées pour faire des choses simples moins."

DFRobot a parrainé ce projet.

Liste des pièces:

  • DFRobot Raspberry Pi 3
  • Module de caméra DFRobot Raspberry Pi
  • Moteur pas à pas DFRobot avec engrenage planétaire
  • I2C LCD 16x2
  • Barrel Jack à Terminal
  • Pilote de moteur pas à pas DRV8825
  • Condensateur 100 µF
  • Arduino UNO et Genuino UNO
  • Cavaliers (génériques)

Étape 1: Création d'un design

Création d'un dessin
Création d'un dessin

Le premier était le choix de la façon de contrôler ma machine nouvellement pensée. Bluetooth aurait eu une portée trop courte, à seulement 30 pieds sans obstruction. Avec ces informations, j'ai choisi d'utiliser le WiFi. Mais maintenant, comment utiliser le WiFi pour contrôler la machine ? Un Raspberry Pi 3 a des capacités WiFi intégrées, me permettant d'utiliser Flask pour héberger une page Web. Ensuite était le sujet de l'enclos et comment distribuer des friandises. J'ai opté pour une conception de roue rotative, où les friandises tomberaient en petites sections, seraient tournées, puis les friandises tomberaient sur une rampe et se déplaceraient vers l'avant de la machine.

Étape 2: Création du modèle Fusion 360

Création du modèle Fusion 360
Création du modèle Fusion 360
Création du modèle Fusion 360
Création du modèle Fusion 360
Création du modèle Fusion 360
Création du modèle Fusion 360

J'ai commencé par créer un modèle de base pour le réceptacle à friandises. Les friandises tombent dans une mini-trémie où elles sont ensuite transportées dans une roue rotative.

Ensuite, j'ai ajouté le Raspberry Pi 3 à la conception Fusion, ainsi que les autres composants électroniques, y compris un module de caméra LCD et Raspberry Pi. J'ai également fait une trémie qui pourrait stocker des friandises supplémentaires.

Les parois du distributeur de friandises sont censées être découpées dans du contreplaqué de 1/4 de pouce sur un routeur CNC. Il y a 7 pièces, 4 murs, un sol et un dessus et un couvercle qui peuvent s'ouvrir et se fermer pour exposer les friandises.

Enfin, j'ai créé une poignée "fantaisie" pour ouvrir le couvercle.

Étape 3: Configuration du Pi

DFRobot m'a contacté et m'a envoyé son module de caméra Raspberry Pi 3 et Raspberry Pi. Donc, après avoir ouvert les boîtes, je me suis mis au travail en configurant la carte SD. Je suis d'abord allé sur la page de téléchargement de Raspberry Pi et j'ai téléchargé la version la plus récente de Raspbian. J'ai ensuite extrait le fichier et l'ai placé dans un répertoire pratique. Vous ne pouvez pas simplement copier/coller un fichier.img sur une carte SD, vous devez le "graver" sur la carte. Vous pouvez télécharger un utilitaire de gravure comme Etcher.io pour transférer facilement l'image du système d'exploitation. Une fois le fichier.img sur ma carte SD, je l'ai inséré dans le Raspberry Pi et lui ai donné le pouvoir. Après environ 50 secondes, j'ai débranché le cordon et retiré la carte SD. Ensuite, j'ai remis la carte SD dans mon PC et suis allé dans le répertoire "boot". J'ai ouvert le Bloc-notes et l'ai enregistré en tant que fichier vierge nommé "ssh" sans extension. Il y avait aussi un fichier que j'ai ajouté appelé "wpa_supplicant.conf" et j'y ai mis ce texte: network={ ssid= psk=} Ensuite, j'ai sauvegardé et éjecté la carte et l'ai remise dans le Raspberry Pi 3. Cela devrait maintenant permettre l'utilisation de SSH et la connexion au WiFi.

Étape 4: Installation du logiciel

Il existe plusieurs logiciels différents qui peuvent diffuser de la vidéo, tels que VLC et motion, mais j'ai décidé d'utiliser le mjpeg-streamer en raison de sa faible latence et de sa facilité d'installation. Selon les instructions sur le site, faites a:git clone https://github.com/jacksonliam/mjpg-streamer.git Dans un dossier, puis tapez: sudo apt-get install cmake libjpeg8-dev Pour installer les bibliothèques nécessaires. Changez votre répertoire dans le dossier que vous avez téléchargé puis tapez: make Suivi de: sudo make install Pour compiler le logiciel. Saisissez enfin: export LD_LIBRARY_PATH=. Et pour l'exécuter tapez:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Vous pouvez accéder au flux en vous rendant sur: https:// L'ip local du pi: 8080/stream. html Pour voir le flux.

Étape 5: Configuration d'un serveur Web

Pour que la machine soit contrôlée de manière externe par WiFi, j'avais besoin d'un serveur Web. Un serveur Web sert essentiellement des pages Web à la demande, généralement par un navigateur. Je voulais quelque chose de simple et rapide à installer et à utiliser, en retirant Apache de la table. Je voulais également interfacer le serveur Web avec Python afin de pouvoir contrôler l'Arduino Uno avec PySerial. Cette quête m'a finalement conduit à Flask, une belle bibliothèque Python qui permet aux utilisateurs de créer rapidement un serveur Web. Le code complet est joint à cette page de projet. Le script python configure essentiellement 2 pages Web, une qui est hébergée dans le répertoire racine, '/', et une autre qui est hébergée dans '/dispense'. La page d'index a un formulaire HTML qui, une fois soumis, envoie une demande de publication à la page de distribution. La page de distribution vérifie ensuite si la valeur de publication est correcte et si c'est le message "D\n" est envoyé via série à l'Arduino Uno.

Étape 6: Contrôler les E/S

Contrôler les E/S
Contrôler les E/S
Contrôler les E/S
Contrôler les E/S
Contrôler les E/S
Contrôler les E/S
Contrôler les E/S
Contrôler les E/S

J'ai décidé d'utiliser le DRV8825 pour piloter mon moteur pas à pas, principalement parce qu'il n'avait besoin que de 2 broches IO et d'une limitation de courant réglable. J'ai essayé d'utiliser un L293D mais il ne pouvait pas supporter la charge du moteur pas à pas. Le DRV8825 est contrôlé en pulsant la broche STEP via PWM, et la direction est contrôlée en tirant la broche DIR vers le haut ou vers le bas. Le moteur pas à pas que j'utilise a une consommation de 1,2 A, j'ai donc ajusté la tension VREF à 0,6V. Vient ensuite l'écran LCD. Je voulais utiliser I2C pour réduire la quantité d'E/S nécessaire et simplifier le code. Pour installer la bibliothèque, recherchez simplement "LiquidCrystal_I2C" et installez-la. Enfin, l'Arduino Uno vérifie la présence de nouvelles informations dans le tampon série et s'il correspond à « D ». Si c'est le cas, l'Uno fait bouger le moteur pas à pas de 180 degrés, puis de -72 degrés pour empêcher les friandises de se loger.

Conseillé: