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 d'intérieur Arduino : entretien intelligent et automatisé des plantes

Composants et fournitures

Composant Quantité
Arduino Nano R3 1
Dongle Bluetooth vers USB mbientLab 1
PCB personnalisé JLCPCB 1

À propos de ce projet

Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes

Jardiner à l'ère moderne, c'est compliquer les choses avec des électrons, des bits et des octets. Combiner microcontrôleurs et jardinage est une idée très populaire. Je pense que c'est parce que les jardins ont des entrées et sorties très simples, faciles à comprendre. On a tendance à vouloir complexifier un hobby notoirement simple et relaxant.

Dans ce projet, je vous montre comment construire une version simplifiée de jardin d'intérieur avec une carte de développement Arduino.

Je fournis un guide complet étape par étape pour réaliser votre propre jardin, en détaillant matériel et logiciel pour rendre ce guide la voie la plus simple vers vos propres compétences en électronique. Ce projet est très pratique, surtout après obtention du PCB personnalisé commandé chez JLCPCB pour améliorer l'apparence, avec toute la documentation et les codes pour créer votre système de jardin automatique.

Nous l'avons réalisé en 7 jours seulement : 3 jours pour le matériel et l'assemblage, 4 jours pour le code et l'application Android pour contrôler le jardin. Avant de commencer, voyons :

Ce que vous apprendrez

Étape 1 : Qu'est-ce qu'un jardin d'intérieur ?

Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes

La plupart des plantes ont des besoins simples. En tant qu'invitées, elles sont peu exigeantes. Trois éléments de base à comprendre avant d'accueillir une plante : lumière, eau et air. Si vous maîtrisez ces quatre éléments (sic), vous pouvez créer un jardin d'intérieur n'importe où, n'importe quelle saison.

Je vais réaliser un système à base d'Arduino pour surveiller température et humidité de ma plante et fournir automatiquement ses besoins : intensité lumineuse, eau, air frais. Pour cela, des capteurs contrôlent des actionneurs : lumière selon capteur de luminosité, arrosage selon capteur d'humidité du sol (pompe), température/humidité pour ventilateurs 12V DC.

Étape 2 : Capteurs et actionneurs

Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes

Ce système assemble capteurs et actionneurs pour accéder aux données physiques autour de la plante et déterminer quoi lui fournir et quand.

Capteurs

Actionneurs

Étape 3 : Fabrication du PCB (par JLCPCB)

Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes

À propos de JLCPCB

JLCPCB (Shenzhen JIALICHUANG Electronic Technology Development Co., Ltd.) est la plus grande entreprise de prototypes PCB en Chine, fabricant high-tech spécialisé dans le prototype rapide et la production de petites séries.

Plus de 10 ans d'expérience, plus de 200 000 clients, plus de 8 000 commandes en ligne par jour. Capacité annuelle : 200 000 m² pour PCB 1, 2 ou multi-couches. JLCPCB : grande échelle, équipement performant, gestion stricte, qualité supérieure.

Retour au projet

Pour produire le PCB, j'ai comparé les prix de nombreux fabricants et choisi JLCPCB, meilleur rapport qualité/prix. Il suffit de télécharger le fichier Gerber, régler épaisseur, couleur, quantité, payer 2 $ et recevoir le PCB en 3 jours. Parfois livraison gratuite.

Le fichier circuit (PDF) est disponible ici.

Comme on le voit sur les photos, le PCB est très bien fabriqué : même forme de feuille conçue, tous les labels et logos guident le soudage.

Étape 4 : Ingrédients

Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes

Composants nécessaires (liens commande en ligne) :

Étape 5 : Assemblage

Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes

Afficher les 9 éléments

Prêts ? Commençons le soudage en suivant les labels pour éviter les erreurs. Commencez par le connecteur Arduino pour tester l'alimentation, et écrivez un code de test basique pour vérifier chaque capteur (ex: capteur lumière) et les LEDs (tout connecté directement à l'Arduino = accès total).

Note : Gardez votre fer à souder propre et brillant. Essuyez sur l'éponge à chaque utilisation. Si la pointe noircit (flux/oxydation), nettoyez-la même en plein milieu. Une pointe propre facilite énormément le transfert de chaleur.

Le PCB JLCPCB guide le placement de tout : pas d'erreur de soudage possible. Utilisez les deux faces du PCB pour souder vos composants.

Tous les composants soudés, j'ai préparé un design pour découpe laser CNC afin d'insérer la partie électronique et la plante sur un même support. Fichiers DXF disponibles ici.

Étape 6 : L'application Android

Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes

Cette application permet de connecter l'Arduino via Bluetooth. En mode manuel : contrôle ON/OFF des ventilateurs, lumières, pompe à eau. Bouton « get data » pour lire les capteurs : données affichées sur l'écran du smartphone.

Application Android gratuite disponible ici.

Étape 7 : Code Arduino et validation

Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes
Jardin d intérieur Arduino : entretien intelligent et automatisé des plantes

Le code est disponible en téléchargement. Simple et bien commenté pour compréhension autonome.

Chaque bouton a une fonction, mais j'apprécie particulièrement le mode automatique pour la luminosité : capteur à la base de la maison, le système contrôle la luminosité des LEDs frontales selon le signal du capteur. Lecture directe température/humidité sur l'écran du smartphone : impressionnant.

Code

Code source Arduino

/************************************************************************************************************************************************************************
 * - Author : BELKHIR Mohamed
 * - Profession : (Developer) MEGA DAS owner
 * - Main purpose : Industrial Application
 * - Copyright (c) holder : All rights reserved
 * - License : BSD 2-Clause License
 * - Date : 20/11/2017
 ***********************************************************************************************************************************************************************/
/*********************************** NOTE **************************************/
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED

#include "DHT.h"
#include <Wire.h>
#include <BH1750.h>

// Broches de contrôle
const int Pump = 4;         // Pompe
const int Fan = 5;          // Ventilateur (PWM)
const int Light = 6;        // LEDs (PWM)
const int TempHum = 7;      // DHT11
const int Moisture = 8;     // Capteur humidité sol (digital)
const int TestLED = 9;      // Test LEDs PCB
const int Brightness = 12;  // Capteur lumière (digital)
const int analogMoistue = 0; // Capteur humidité sol (analogique)

#define DHTTYPE DHT11
DHT dht(TempHum, DHTTYPE);
BH1750 lightMeter;

char Data = 'x';
String cmd = "";
int flagModeAuto = 0;
int sprayCMD = 0;
int LightCMD = 0;
int lightLevelPlus = 0;
float temperature = 0;
float humidity = 0;
uint16_t lux = 0;

void setup() {
  Wire.begin();
  dht.begin();
  lightMeter.begin();
  Serial.begin(9600);
  Serial.setTimeout(100);
  pinMode(Pump, OUTPUT);
  pinMode(Fan, OUTPUT);
  pinMode(Light, OUTPUT);
  pinMode(Moisture, INPUT);
  pinMode(TestLED, INPUT);
  delay(1000);
  digitalWrite(Pump, LOW);
  digitalWrite(Fan, LOW);
  digitalWrite(Light, LOW);
}

void loop() {
  while (Serial.available()) {
    delay(10);
    Data = Serial.read();
    cmd += Data;
  }
  if (cmd == "dt") { Serial.print(humidity); }
  if (cmd == "dh") { Serial.print(lux); }
  if (cmd == "db") { Serial.print(temperature); }
  if (cmd == "o") { flagModeAuto = 1; }
  if (cmd == "m") { flagModeAuto = 0; }

  if (flagModeAuto == 1) {
    autoPump();
    lightBrightness();
    autoFan();
  } else {
    if (cmd == "f") { analogWrite(Fan, 255); }
    if (cmd == "x") { analogWrite(Fan, 0); }
    if (cmd == "l") { analogWrite(Light, 255); }
    if (cmd == "k") { analogWrite(Light, 0); }
    if (cmd == "w") { analogWrite(Pump, 255); }
    if (cmd == "y") { analogWrite(Pump, 0); }
  }
  cmd = "";
  lux = lightMeter.readLightLevel();
  temperature = dht.readTemperature();
  humidity = dht.readHumidity();
}

void autoPump() {
  if (analogRead(analogMoistue) < sprayCMD) {
    digitalWrite(Pump, HIGH);
    delay(1000);
    digitalWrite(Pump, LOW);
    delay(1000);
  }
}

void lightBrightness() {
  while (lux < LightCMD) {
    analogWrite(Light, lightLevelPlus);
    delay(100);
    lightLevelPlus++;
    lux = lightMeter.readLightLevel();
  }
}

void autoFan() {
  if (temperature > 30) { analogWrite(Fan, 255); }
  else { analogWrite(Fan, 0); }
}

Pièces personnalisées et boîtiers

dxf_mdf_5mm_s0PEHuez4w.rar (fichiers DXF pour découpe laser)

Schéma électrique

Schéma non fourni dans la source originale.

Processus de fabrication

  1. Créer un système Ambilight spectaculaire pour moniteur avec Arduino
  2. Créer un jeu Pong classique sur Arduino UNO avec écran OLED – Tutoriel étape par étape
  3. Détecteur de fréquence audio Arduino — Mesurer le pic sonore avec module haute sensibilité
  4. Construisez votre propre Tamagotchi Arduino : Un animal de compagnie numérique DIY
  5. Interrupteur lumineux sans fil intelligent : Manipulateur d'interrupteur piloté par Arduino
  6. Morpion sur matrice LED MAX7219 avec boîtier en carton
  7. Pistolet à eau intelligent à détection de mouvement avec Arduino Nano
  8. Construire un minuteur à rebours Arduino fiable avec afficheur 7 segments SparkFun
  9. Kit de robot de navigation intérieure intelligente pour projets Arduino