Table des matières:

Chatière extérieure IoT pour animaux de compagnie : 6 étapes (avec photos)
Chatière extérieure IoT pour animaux de compagnie : 6 étapes (avec photos)

Vidéo: Chatière extérieure IoT pour animaux de compagnie : 6 étapes (avec photos)

Vidéo: Chatière extérieure IoT pour animaux de compagnie : 6 étapes (avec photos)
Vidéo: TOP 3 : Meilleure Chatière à Puce Électronique 2020 2024, Juillet
Anonim
Porte extérieure pour animaux de compagnie IoT
Porte extérieure pour animaux de compagnie IoT
Porte extérieure pour animaux de compagnie IoT
Porte extérieure pour animaux de compagnie IoT
Porte extérieure pour animaux de compagnie IoT
Porte extérieure pour animaux de compagnie IoT
Porte extérieure pour animaux de compagnie IoT
Porte extérieure pour animaux de compagnie IoT

J'ai été inspiré par cette instructable pour créer une porte de poulailler automatique. Non seulement je voulais la porte du poulailler sur une minuterie, mais je voulais aussi connecter la porte à Internet afin de pouvoir la contrôler avec mon téléphone ou mon ordinateur. Cette porte a été construite pour mon poulailler, cependant, elle pourrait facilement être appliquée à d'autres types de logement pour une variété d'animaux de compagnie. Vous pouvez également utiliser différents types de moteurs 12V en plus de l'ancien moteur d'antenne de voiture que j'ai utilisé.

Après avoir configuré et connecté Adafruit IO et IFTTT à mon ESP8266, ma porte de poulailler peut être contrôlée en ligne. La porte peut être ouverte ou fermée:

1) A des heures précises où j'entre sur adafruit.io

2) En appuyant sur un bouton de mon téléphone

3) En envoyant un SMS à un numéro spécifique

4) En cliquant sur un bouton sur adafruit.io

5) En appuyant sur un bouton physique

En plus de ces fonctionnalités, la porte du poulailler peut envoyer des notifications push à mon téléphone via l'application IFTTT en cas de problème avec la porte, tel qu'une porte qui ne s'ouvre pas ou ne se ferme pas.

Parce que mon poulailler est à environ 500 pieds de mon routeur WiFi, j'ai utilisé un émetteur et un récepteur RFM69HCW à 433 MHz couplés à un ESP8266 pour accomplir ce projet. Il y a un boîtier émetteur intérieur noir avec du matériel connecté à Internet et un boîtier récepteur extérieur gris qui contrôle le moteur.

Cette instructable vous guidera tout au long du processus de création du matériel requis pour contrôler un moteur 12V qui ouvre ou ferme la porte de mon poulailler.

J'ai utilisé les pièces suivantes:

Adafruit 32u4 avec 433MHz RFM69HCW - 25 $

IC d'extension de ports d'entrée/sortie Adafruit MCP23017 I2C 16 - $2.95

Adafruit Feather HUZZAH avec ESP8266 WiFi - 16,95 $

Adafruit Radio FeatherWing 433MHz RFM69HCW - 10 $

Connecteur SMA Adafruit pour PCB de 1,6 mm d'épaisseur - $2.50

Connecteur d'antenne Adafruit uFL SMA - 0,75 $

Bouton poussoir RGB Adafruit - 10,95 $

Alimentation 12V - 7$

Alimentation USB 5V - 7$

Câble Micro USB - 5 $

Carte relais 4 canaux (peut utiliser 2 canaux) - 7 $

Convertisseur DC-DC Buck (un seul utilisé mais livré en pack de 5) - 20 $

Interrupteur à lames (capteur d'interrupteur de porte magnétique) - 9 $

Antenne omnidirectionnelle 2x 433MHz - 6 $

Adaptateur de câble uFL vers SMA (un seul utilisé mais livré en pack de 2) - 5 $

Boîte de projet ABS extérieure étanche - 11 $

Boîte à projet ABS noire - 10 $

Écran LCD à caractères bleus 20x4 - 10 $

Moteur d'antenne de voiture 12V - ~ 25 $ sur ebay

Fils et résistances

Étape 1: Récepteur extérieur

Récepteur extérieur
Récepteur extérieur
Récepteur extérieur
Récepteur extérieur

Le récepteur extérieur se compose d'un Adafruit 32u4 avec 433MHz RFM69HCW connecté à quelques relais qui allument ou éteignent l'alimentation d'un moteur 12V. Ces modules ainsi qu'un convertisseur 12V à 5V DC-DC se trouvent à l'intérieur d'un boîtier de projet gris étanche. Enfin, il y a un capteur d'interrupteur de porte connecté à l'une des broches du microcontrôleur Arduino 32u4 qui détecte si la porte s'est ou non correctement ouverte ou fermée quand elle aurait dû.

Toutes les 15 secondes, l'émetteur intérieur enverra "Open" ou "Close". Sur la base de la commande reçue, l'Arduino 32u4 activera ou désactivera un relais. Pour le moteur que j'ai choisi, qui est un vieux moteur d'antenne de voiture, j'ai dû allumer ou éteindre deux relais en raison de la façon dont le moteur est câblé. Fondamentalement, il y avait un relais pour mettre sous tension, puis un autre relais qui contrôlait si le moteur était sorti ou rétracté.

Une fois la transmission d'ouverture ou de fermeture reçue, le récepteur extérieur répond par "sensorOpen" ou "sensorClosed" pour indiquer l'état du capteur de l'interrupteur de porte. Idéalement, la commande "open" renverrait une réponse "sensorOpen", cependant, si la porte se bloque ou si le moteur se bloque, ceux-ci ne correspondront pas. Lorsqu'ils ne correspondent pas, l'émetteur intérieur affichera ces informations et une notification push sera envoyée à votre téléphone.

Étape 2: connexion du matériel du récepteur extérieur

Connexion du matériel du récepteur extérieur
Connexion du matériel du récepteur extérieur
Connexion du matériel du récepteur extérieur
Connexion du matériel du récepteur extérieur
Connexion du matériel du récepteur extérieur
Connexion du matériel du récepteur extérieur

Le matériel pour le récepteur extérieur n'est pas trop difficile à câbler. J'ai inclus un schéma fritzing ci-dessous afin que les broches que j'ai utilisées puissent être facilement visualisées.

Comme je l'ai dit plus haut, le moteur que j'ai utilisé nécessitait deux relais. J'ai inclus une photo du brochage. La seconde où vous connectez 12V au fil rouge, le moteur se rétractera s'il est étendu. Si vous connectez 12V au fil rouge et au fil vert en même temps, le moteur s'allongera.

L'interrupteur à lames que j'ai lié ci-dessus doit être câblé comme un interrupteur normalement fermé. La différence entre normalement ouvert et normalement fermé est expliquée dans l'image que j'ai jointe ci-dessus. À l'aide d'un logiciel, une résistance de rappel interne est attachée à la broche d'entrée du 32u4. Il vous suffit donc de connecter l'interrupteur de porte à la broche d'entrée et à la terre.

Vous devrez attacher une antenne à l'Adafruit 32u4. Veuillez consulter le didacticiel très bien expliqué d'Adafruit sur cette étape. J'ai choisi d'utiliser une antenne externe au lieu d'un morceau de fil pour obtenir une meilleure portée.

Étape 3: Transmetteur d'intérieur

Émetteur d'intérieur
Émetteur d'intérieur
Émetteur d'intérieur
Émetteur d'intérieur
Émetteur d'intérieur
Émetteur d'intérieur

L'émetteur d'intérieur se compose d'un Adafruit Radio FeatherWing 433MHz RFM69HCW empilé sur un Adafruit Feather HUZZAH avec ESP8266 WiFi. Ces modules sont connectés à un écran de 20x4 caractères et à un bouton argent RVB à l'intérieur d'une boîte de projet noire.

L'affichage a une horloge synchronisée NTC, la force RSSI en dB (mesure la force des signaux radio), l'heure à laquelle la porte du poulailler s'ouvrira, l'heure à laquelle la porte du poulailler se fermera et l'état actuel de la porte. Le bouton est rouge lorsque la porte est fermée et vert lorsque la porte est ouverte.

Si le récepteur extérieur perd de l'alimentation ou si le signal 433MHz ne peut pas être envoyé pour une raison quelconque, l'affichage et le bouton RVB passeront dans le premier des deux modes d'erreur possibles. Dans le premier mode d'erreur, l'affichage indiquera « ERREUR ! Essayez de redémarrer le récepteur extérieur. » et le bouton n'aura pas de couleur. Si le capteur de l'interrupteur de porte détecte que la porte ne s'est pas fermée ou ouverte correctement, l'affichage et le bouton RVB passeront dans le deuxième des deux modes d'erreur. Dans le deuxième mode d'erreur, l'affichage indiquera « ERREUR ! Problème de capteur de porte ou d'interrupteur ». et le bouton n'aura pas de couleur. Lorsque le problème se résout, l'affichage et le bouton RVB reviennent à la normale. Vous pouvez recevoir des notifications push sur votre téléphone si l'un de ces modes d'erreur se produit (je passerai en revue cette configuration dans une étape ultérieure).

Étape 4: connexion du matériel de l'émetteur intérieur

Connexion du matériel de l'émetteur intérieur
Connexion du matériel de l'émetteur intérieur
Connexion du matériel de l'émetteur intérieur
Connexion du matériel de l'émetteur intérieur

Après avoir empilé le Adafruit Radio FeatherWing 433MHz RFM69HCW sur un Adafruit Feather HUZZAH avec ESP8266 WiFi, il ne reste que 2 broches qui ne sont pas prises, les broches I2C SDA et SCL. C'est pourquoi j'ai opté pour le circuit intégré (IC) MCP23017. C'est un circuit intégré vraiment cool qui connecte jusqu'à 16 broches d'entrée/sortie supplémentaires à n'importe quel microcontrôleur via I2C. De plus, il existe une bibliothèque pré-écrite appelée Adafruit-RGB-LCD-Shield qui utilise ce circuit intégré avec un affichage de caractères qui est techniquement écrit pour ce produit Adafruit, cependant, cela fonctionne parfaitement pour ce projet.

L'idée d'utiliser le MCP23017 avec un affichage de caractères vient de cette instructable très bien écrite. Vérifie s'il te plaît!

J'ai pris cette instructable et au lieu de connecter plusieurs boutons et un écran RVB au circuit intégré, je n'ai connecté qu'un seul bouton contenant une LED RVB à l'intérieur et un écran monochrome au circuit intégré. Cela m'a permis de définir le PIN 1 de l'IC (généralement utilisé pour le rétroéclairage bleu d'un écran RVB) comme le rétroéclairage de mon écran monochrome, le PIN 28 (généralement utilisé pour le rétroéclairage vert d'un écran RVB) comme la LED rouge à l'intérieur du et PIN 27 (généralement utilisé pour le rétroéclairage rouge d'un écran RVB) comme LED verte à l'intérieur du bouton. La broche 24 était connectée à un côté du bouton et l'autre côté était connecté à la terre. Vous pouvez voir le brochage du bouton dans l'image ci-jointe (j'ai laissé la cathode bleue déconnectée).

En plus d'utiliser cette instructable que j'ai liée pour aider à câbler l'affichage, j'ai inclus un schéma fritzing qui vous aidera à tout connecter.

Vous devrez raccourcir trois broches sur le dessus du FeatherWing 433MHz RFM69HCW comme expliqué dans ce tutoriel Adafruit. Vous devrez également fixer une antenne au FeatherWing 433MHz RFM69HCW. Veuillez consulter le didacticiel très bien expliqué d'Adafruit sur cette étape. J'ai choisi d'utiliser une antenne externe avec un connecteur SMA monté sur le côté au lieu d'un morceau de fil pour obtenir une meilleure portée.

Étape 5: Connexion à Adafruit. IO et IFTTT

Connexion à Adafruit. IO et IFTTT
Connexion à Adafruit. IO et IFTTT
Connexion à Adafruit. IO et IFTTT
Connexion à Adafruit. IO et IFTTT

Adafruit IO:

Veuillez suivre les instructions de ce tutoriel Adafruit pour vous inscrire à Adafruit. IO si vous n'avez pas de compte. Vous devriez également lire ce qu'est un flux et un tableau de bord.

En termes simples, un tableau de bord est un peu comme l'interface utilisateur graphique, tandis que les flux sont ce à quoi vous envoyez des données afin que vous puissiez les stocker sur Internet. Vous devrez créer 1 tableau de bord et 4 flux. J'ai nommé le mien avant de savoir comment épeler correctement le poulailler, alors veuillez pardonner l'orthographe incorrecte. Si vous ne souhaitez pas renommer les noms de flux dans le code arduino, utilisez simplement le même nom que moi.

Créez d'abord les quatre flux:

1) "Coup de poulet" Ceci est pour l'interrupteur Ouvert/Fermé

2) "Chicken Coup Timer" Ceci est pour la minuterie ouverte

3) "Chicken Coup Timer 2" Ceci est pour la minuterie de fermeture

4) "Chicken Coup Error Message" Ceci est pour les messages d'erreur

Créez ensuite un tableau de bord appelé Chicken Coup et ajoutez 4 blocs à l'aide du bouton bleu +. Veuillez voir l'image ci-dessus pour les types de blocs que vous devez placer ainsi que les noms des blocs. Assurez-vous de nommer les états du commutateur exactement « Ouvert » et « Fermé »

IFTTT:

La partie IFTTT de ce projet ajoute la possibilité d'appuyer sur un bouton de votre téléphone et d'envoyer un SMS pour ouvrir ou fermer la porte du poulailler. Il permet également à l'application IFTTT de vous envoyer des notifications push si quelque chose est publié dans le flux de messages d'erreur Chicken Coup. Si vous ne souhaitez pas ces fonctionnalités, vous pouvez ignorer cette section.

Tout d'abord, créez un compte IFTTT si vous n'en avez pas déjà un. Si vous souhaitez utiliser les applets prédéfinis que j'ai créés, accédez simplement à mon compte et activez les applets que vous souhaitez. Sinon, vous devrez créer le vôtre et vous abonner ou publier sur le flux adafruit que vous avez créé ci-dessus.

Étape 6: Téléchargement du code et modification du SSID et du mot de passe WiFi

Vous devrez parcourir cette page du tutoriel Adafruit pour pouvoir télécharger le code sur l'émetteur intérieur.

Vous devrez passer par cette page du tutoriel Adafruit pour pouvoir télécharger le code vers le récepteur extérieur.

Vous devrez installer la bibliothèque RFM69, la bibliothèque Adafruit_RGBLCDShield, la bibliothèque d'horloge NTC appelée simpleDSTadjust et la bibliothèque ticker. Vous pouvez trouver un tutoriel sur la façon de le faire ici.

Ouvrez Arduino IDE et téléchargez le code "Outdoor_Receiver.ino" sur l'Arduino 32u4 extérieur via un câble USB.

Ensuite, ouvrez "Indoor_Transmitter.ino", ouvrez l'onglet config.h et entrez votre nom WiFi (SSID) et votre mot de passe entre guillemets. Ensuite, obtenez votre nom d'utilisateur et votre clé IO Adafruit. IO en suivant cette page de tutoriel et entrez-les dans l'onglet config.h.

Si vous avez modifié les noms des flux Adafruit IO, vous devrez modifier le code dans l'onglet principal Indoor_Transmitter. Modifiez les éléments suivants:

AdafruitIO_Feed *toggleSwitch = io.feed("Coup de poulet");

AdafruitIO_Feed *timer = io.feed("Chicken Coup Timer");

AdafruitIO_Feed *timer2 = io.feed("Chicken Coup Timer 2");

AdafruitIO_Feed *error = io.feed ("Message d'erreur de coup de poulet");

Cela devrait être tout ce que vous avez à faire ! Si vous souhaitez mieux comprendre le fonctionnement des deux croquis, j'ai commenté le code. S'il vous plaît laissez-moi savoir si vous avez des questions. Bonne chance!

Conseillé: