Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Jardin automatisé

Composants et fournitures

Arduino UNO
× 1
Raspberry Pi 2 Modèle B
Tout devrait fonctionner
× 1
Module de caméra Raspberry Pi
× 1
Arduino Ethernet Shield 2
× 1
Relais (générique)
× 1
Câble métallique OpenBuilds - Au pied
× 1
Résistance photo
× 1
Pompe à eau (générique)
× 1
fan (générique)
J'ai utilisé celui d'un vieil ordinateur.
× 1
Transistor à usage général NPN
× 1
Carte MicroSD (Générique)
16 Go pour le time lapse
× 1

Applications et services en ligne

Arduino IDE
Raspberry Pi Raspbian
win32diskimager
putty
myDevices Cayenne

À propos de ce projet

C'est le deuxième projet utilisant mon jardin automatisé, mais cette fois tout sera contrôlé par Cayenne donc ce sera beaucoup plus facile. J'ai aussi ajouté un Raspberry Pi afin de faire une vidéo time-lapse.

Configuration de l'Arduino

Afin de surveiller notre jardin, j'ai utilisé quelques appareils qui peuvent être utiles. Avant de commencer, n'oubliez pas de connecter le shield Ethernet à l'Arduino.

Connexions

Humidité du sol : Pour vérifier si les plantes ont besoin d'eau.

  • VCC :5 v
  • GND :GND
  • A0 :A1

Le Fan : I s'il fait trop chaud, il s'activera ou simplement pour donner de l'air frais.

  • Un fil va de la résistance à la broche 3-Le GND du ventilateur va sur la broche du milieu du transistor.
  • Le + du ventilateur va au relais (broche du milieu) La dernière broche du transistor va à GND.
  • La diode va à la broche centrale du transistor et au GND.

La pompe à eau : Il s'activera avec l'humidité du sol.

  • Le + va au milieu sur le relais et GND à GND de la source d'alimentation.

Photorésistance (facultatif) : Cette partie nous permettra de mesurer s'il y a suffisamment de lumière dans la pièce.

  • Une partie est connectée à A0 avec la résistance connectée à la terre.
  • L'autre au 5V.
  • L'anode (+) va au relais. L'autre au GND de l'alimentation.

Lumière :

  • L'anode (+) va au relais. L'autre au GND de l'alimentation.

Capteur d'humidité/température : Certains codes sont nécessaires pour cet appareil afin de fonctionner correctement avec Cayenne.

  • VCC : 3,3 V
  • GND :GND
  • DAT : broche numérique 8

Capteur de niveau d'eau :

  • VCC : 5 V
  • GND :GND
  • SIG :A2

Montage final

J'ai utilisé 2 relais dans le graphique car Fritzing n'a pas encore de relais à 4 canaux. Pour le relais, j'ai utilisé une seule alimentation 12v. J'ai séparé les fils positif et négatif, puis j'ai soudé 3 fils du positif et j'ai connecté chaque partie sur le relais. Un seul suffit car tout ne s'allume pas en même temps.

J'ai utilisé une alimentation 5V pour le RELAIS Arduino :

  • VCC : 5 V
  • GND :GND
  • IN1 :PIN2 Activer la lumière
  • IN2 :PIN5 Activer la pompe à eau
  • IN3 :aucun IN4
  • PiN4 :activez le FAN

Configuration de Cayenne

Ici, nous allons voir comment configurer Cayenne qui est très simple.

  • Créez d'abord un compte ici.
  • Ensuite, vous devriez avoir connecté votre blindage Ethernet avec un câble Rj45.
  • Voici le code pour se connecter à Cayenne et aussi pour configurer le capteur hum/temp.

Ce code fonctionne pour le bouclier w5100 le code est disponible sur cayenne pour d'autres shield Ethernet/WiFi. N'oubliez pas non plus d'ajouter votre token vous l'obtenez après avoir créé votre compte.

#include "DHT.h"//#define CAYENNE_DEBUG // Décommentez pour afficher les messages de débogage#define CAYENNE_PRINT Serial // Commentez ceci pour désactiver les impressions et économiser de l'espace#include 

# définir DHTPIN 8 // à quelle broche numérique nous sommes connectés#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1#define VIRT_HUM V2

// Jeton d'authentification Cayenne. Cela doit être obtenu à partir du jeton Cayenne Dashboard.char[] ="votre toker" ;

DHT dht(DHTPIN, DHTTYPE); non signé long prev_DHT_refresh, interval_DHT_refresh =1000 ;

void setup(){ Serial.begin(9600); Cayenne.begin(token);

dht.begin();}void loop(){ Cayenne.run();

getDhtValues();

}

void getDhtValues() { unsigned long now =millis(); if (maintenant - prev_DHT_refresh> interval_DHT_refresh) { // La lecture de la température ou de l'humidité prend environ 250 millisecondes ! // Les lectures du capteur peuvent également être "anciennes" jusqu'à 2 secondes (c'est un capteur très lent) float h =dht.readHumidity(); // Lecture de la température en Celsius (valeur par défaut) float t =dht.readTemperature(); // Vérifie si des lectures ont échoué if (!isnan(h) &&!isnan(t)) { Cayenne.virtualWrite(VIRT_HUM, h); Cayenne.celsiusWrite(VIRT_TEMP, t); } prev_DHT_refresh =maintenant; }}

Appareils à Cayenne

Nous avons presque fini avec l'Arduino. Maintenant, c'est la partie facile. Nous allons ajouter tous les appareils sur Cayenne.

Ajouter un appareil -> Widget personnalisé

Sélectionnez le type de widget que vous aimez. J'ai utilisé un graphique pour l'humidité et le niveau d'eau, sinon j'ai utilisé la valeur. Pour le capteur d'humidité et de température, nous utilisons une broche virtuelle :

  • Temp : Vpin1
  • Humidité :VPin2

Pour l'autre appareil, au lieu de choisir la broche virtuelle, prenez Analog avec le lien de la broche. Même procédure mais cette fois dans les actionneurs puis sélectionnez la broche de l'Arduino connectée au relais pour la lumière/ventilateur/pompe à eau.

Événement et déclencheur

Maintenant que nous avons le tableau de bord, nous allons configurer les déclencheurs :

  • Pompe à eau : Cela activera la pompe lorsque l'humidité du sol détectée est trop sèche. Remarquez que j'ai utilisé 2 déclencheurs :un pour démarrer la pompe à eau et un pour l'arrêter.
  • Niveau d'eau : Lorsque la valeur est élevée, cela signifie qu'il manque de l'eau. Ici, nous recevrons un e-mail pour nous alerter.
  • Événements : J'ai configuré 4 événements, un pour allumer la lumière le matin et un pour l'arrêter le soir, et 2 pour l'allumage/l'extinction du ventilateur.

Configurer le Raspberry Pi

Faisons un laps de temps de la croissance de la plante.

3 logiciels :

  • Raspbian
  • Win32diskimager pour graver l'image sur la carte SD
  • Putty pour se connecter à distance à l'imageur disque WIn32 Raspberry :

Après le téléchargement, installez-le. Ouvrez-le :

1. Vous verrez "appareil". En général, la valeur par défaut est bonne (si vous n'avez connecté que la carte SD)

2. Cliquez sur l'icône bleue du dossier et sélectionnez l'image Raspbian Jessie que vous avez téléchargée

3. Cliquez sur écrire et c'est fait. Vous pouvez maintenant insérer la carte dans le Raspberry.

Mastic : Il nous permet de nous connecter via SSH, d'ouvrir Putty (pas besoin d'installer).

  • Connectez le câble Internet au Raspberry
  • Vous devez trouver l'IP du Raspberry 2 en toute simplicité :
  • Connectez-vous à l'interface de votre box vous pourrez voir l'appareil avec l'IP
  • Connectez l'écran tactile et le clavier allez au terminal puis ifconfig. Maintenant, dans Putty, entrez l'adresse IP. Ce sera quelque chose comme 192.168.0.3 puis entrez.
  • Il vous demandera de faire confiance, cliquez sur oui (image).
  • connexion :pi , mot de passe :framboise . Laissez les fenêtres sur le côté, nous reviendrons ici plus tard.

Maintenant que le Raspberry est en marche, quelques mises à jour sont nécessaires, donc dans Putty, copiez-collez la commande :

sudo apt-get updatesudo apt-get upgrade 

VNC :

Si vous n'avez pas d'écran pour connecter votre Raspberry, installez VNC à la télécommande.

sudo apt-get install tightvncserver 

Lorsque vous avez terminé de démarrer le serveur :

vncserver :1 

Et en téléchargeant vncviewer sur votre ordinateur, pour vous connecter, entrez l'IP et le numéro de serveur. Cela ressemblera à ceci 192.168.0.3:1

Cayenne : Vous pouvez prendre le contrôle à distance de votre Raspberry avec Cayenne, il suffit de l'installer :

wget https://cayenne.mydevices.com/dl/rpi_03wl1tt4nt.shsudo bash rpi_03wl1tt4nt.sh -v 

Accéléré

Dernière étape! Nous pouvons maintenant permettre à la caméra de le faire dans Putty ou dans un terminal coller :

sudo raspi-config 

Ensuite, allez pour activer la caméra. Nous devons créer un dossier pour stocker les images :

cd /home/pi/Desktopmkdir timelapse 

Après avoir branché la webcam, nous allons créer un script pour prendre une photo toutes les heures :

cd /home/pi/Desktop nano timelapse.sh 

Collez ceci :

SAVEDIR=/home/pi/Desktop/timelapse/while [ true ] ; do filename=-$(date -u +"%d%m%Y_%H%M-%S").jpg/opt/vc/bin/raspistill -o $SAVEDIR/$filenamesleep 3600;done; 

Et pour vous assurer que le script est exécutable :

chmod +x timelapse.sh 

Conclusion

Le tutoriel était long mais très facile, il y a juste peu d'appareils pour connecter et configurer la plateforme. Sur la photo c'est un gros bordel. J'ai utilisé un fil trop long. Je posterai le résultat de mon time-lapse lorsque les plantes auront fini de pousser.

Conseil :

Le blindage Ethernet peut obtenir l'erreur DHCP fail. En essayant de me connecter j'ai trouvé la solution sur le forum Arduino :Il faut souder deux résistances de 100 ohms à des endroits aléatoires pour embêter vos lecteurs.

Code

  • Extrait de code n° 1
  • Extrait de code n°9
Extrait de code #1Arduino

#include "DHT.h"
//#define CAYENNE_DEBUG // Décommentez pour afficher les messages de débogage
#define CAYENNE_PRINT Serial // Commentez ceci pour désactiver les impressions et économiser de l'espace#include

#define DHTPIN 8 // à quelle broche numérique nous sommes connectés#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1#define VIRT_HUM V2

// Jeton d'authentification Cayenne. Cela doit être obtenu à partir du jeton Cayenne Dashboard.char[] ="votre toker" ;

DHT dht(DHTPIN, DHTTYPE); non signé long prev_DHT_refresh, interval_DHT_refresh =1000 ;

void setup(){ Serial.begin(9600); Cayenne.begin(token);

dht.begin();}

void loop(){ Cayenne.run();

getDhtValues();

}

void getDhtValues() { unsigned long now =millis(); if (maintenant - prev_DHT_refresh> interval_DHT_refresh) { // La lecture de la température ou de l'humidité prend environ 250 millisecondes ! // Les lectures du capteur peuvent également être "anciennes" jusqu'à 2 secondes (c'est un capteur très lent) float h =dht.readHumidity(); // Lecture de la température en Celsius (valeur par défaut) float t =dht.readTemperature();

// Vérifie si des lectures ont échoué if (!isnan(h) &&!isnan(t)) { Cayenne. virtualWrite(VIRT_HUM, h); Cayenne.celsiusWrite(VIRT_TEMP, t); } prev_DHT_refresh =maintenant; }}

Extrait de code n°9SH
SAVEDIR=/home/pi/Desktop/timelapse/while [ true ] ; do filename=-$(date -u +"%d%m%Y_%H%M-%S").jpg/opt/vc/bin/raspistill -o $SAVEDIR/$filenamesleep 3600;done;

Processus de fabrication

  1. Télécommande universelle Raspberry Pi
  2. Une tranche de framboise Pi
  3. Cycle Chaser
  4. Détecteur de voleur Raspberry Pi
  5. Capteur de température Raspberry Pi
  6. DOMOMATISATION RASPBERRY PI
  7. Arrosage automatisé des plantes Raspberry Pi avec site Web
  8. MrRobot – Robotique compatible avec l'application mobile Ubuntu (Raspberry Pi et arduino impliqués)
  9. Robot boîtier CD Raspberry Pi