Honore MVUYEKURENicolas DAILLY
Created June 3, 2022

Pot-e

Discover a new generation of connected and automated plant

Pot-e

Things used in this project

Hardware components

DHT11 Temperature & Humidity Sensor (4 pins)
DHT11 Temperature & Humidity Sensor (4 pins)
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
Resistor 10k ohm
Resistor 10k ohm
×3
LED (generic)
LED (generic)
×3
Gravity: Analog Soil Moisture Sensor For Arduino
DFRobot Gravity: Analog Soil Moisture Sensor For Arduino
×1
Grove - Light Sensor
Seeed Studio Grove - Light Sensor
Flying fish
×1
The Things Uno
The Things Industries The Things Uno
×1
Arduino Leonardo
Arduino Leonardo
×1
Mini Pompe submersible Arduino
×1
Relay Module (Generic)
×1

Software apps and online services

Arduino IDE
Arduino IDE
KiCad
KiCad
onshape
The Things Stack
The Things Industries The Things Stack

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)
Due to the big size of our connected pot we were not able to print it. thought we designed the pot and printed it partially

Story

Read more

Custom parts and enclosures

3D pot design

Schematics

Potee_PCB

PCB

Code

Connected pot

Arduino
#include <TheThingsNetwork.h>
#include <DFRobot_DHT11.h>
#include <HCSR04.h>

//capteur ultra son distance en centimètre
//UltraSonicDistanceSensor distanceSensor(7, 6);  // Initialize sensor that uses digital pins 13 and 12.

//capteur humidité et temmpérature :
#define DHT11_PIN 4
DFRobot_DHT11 dht;

// Set your AppEUI and AppKey
//
const char *appEui = "**";

const char *appKey = "**";

#define loraSerial Serial1
#define debugSerial Serial

// Replace REPLACE_ME with TTN_FP_EU868 or TTN_FP_US915
#define freqPlan TTN_FP_EU868

TheThingsNetwork ttn(loraSerial, debugSerial, freqPlan);
UltraSonicDistanceSensor distanceSensor(7, 6);

void setup()
{
  delay(3000);
  
  loraSerial.begin(57600);
  debugSerial.begin(9600);
  pinMode(11,OUTPUT); // la led bleu
  pinMode(13,OUTPUT);// led rouge
   pinMode(12,OUTPUT);// led vert
   pinMode(10, OUTPUT);// pompes
    digitalWrite(10,HIGH);//pompes
  // Wait a maximum of 10s for Serial Monitor
  while (!debugSerial && millis() < 10000)
    ;

  debugSerial.println("-- STATUS");
  ttn.showStatus();

  debugSerial.println("-- JOIN");
  ttn.join(appEui, appKey);
    
  
}

void loop()
{
  
  debugSerial.println("-- LOOP");
  dht.read(DHT11_PIN);
  // Prepare payload of 1 byte to indicate LED status
  static uint8_t payload[]={0,0,0,0,0};
  
  //payload[0] = (digitalRead(LED_BUILTIN) == HIGH) ? 1 : 0;

  // capteur de lumiere
  //digitalWrite(9,HIGH);//pompes
  
      //test fling fish
    int sensorValue= analogRead(A0);
    
    //convertion de l'analogique (0-1023) à (0V-5V)
    float volt = sensorValue * (5.0/1024.0);
    if((volt >=0)&&(volt <= 0.4)){
      
        Serial.print("il y a de la trop lumière");
        Serial.println(volt);
      }else if ((volt >0.4)&&(volt<=2)){
           Serial.print("il y a de la lumière");
           Serial.println(volt);
      }else {
          Serial.print("il y a de l'obscurité");
          Serial.println(volt); 
        }

        
        // capteur distance
        // Every 500 miliseconds, do a measurement using the sensor and print the distance in centimeters.
    //lecture temperature et humidité
    //dht.read(DHT11_PIN);
    //Mesure disatance et affichage
    Serial.print("Distance :");
    Serial.print(distanceSensor.measureDistanceCm());
    Serial.println(" Cm");

    //sonde avec condition avec les leds(si la distance est inferieure a 10 )

    delay(1000);
    //si distance superieure 14 alors reservoir vide
    if(distanceSensor.measureDistanceCm()>14){
      Serial.println("Reservoir vide");
      digitalWrite(11,LOW);
      digitalWrite(13,HIGH);
      digitalWrite(12,LOW);
      digitalWrite(10,LOW);//pompes

       //Si distance compris entre 8 & 14 reservoir à moitie rempli
    }else if(distanceSensor.measureDistanceCm()<14&&distanceSensor.measureDistanceCm()>5){
      Serial.println("Moitie rempli");
        digitalWrite(11,HIGH);//bleu
        digitalWrite(13,LOW);//rouge
        digitalWrite(12,LOW);//VERT
        digitalWrite(10,HIGH);//pompes
              //test yl-38
        int sonde = analogRead(A5); 
        if (sonde >= 310){
          Serial.print("Trop sec!!!!!    ");
        }
          else if ((sonde <= 180) && (sonde >=310)){
            (Serial.print("Parfait!!!!!    "));
            } else if (sonde <= 180){
             Serial.print("Trop mouillé !!!!!    ");
             Serial.println(sonde);
             }
        //si la  distance < 8 reservoir plein
    }else{
       Serial.println("FULL");
       digitalWrite(11,LOW);//bleu
        digitalWrite(13,LOW);//rouge
        digitalWrite(12,HIGH);//VERT
       digitalWrite(10,LOW);
    }
   
  // Send it off
 
uint32_t humidity=dht.humidity;
uint32_t temperature=dht.temperature;
uint32_t distance=distanceSensor.measureDistanceCm();
uint32_t luminosite=volt*10;
debugSerial.print("Humidity:");
Serial.println(humidity);
debugSerial.print("temperature:");
debugSerial.println(temperature);


payload[1]=humidity;
payload[2]=temperature;
payload[3]=distance;
payload[4]=luminosite;
ttn.sendBytes(payload, sizeof(payload));
  delay(3000);
}

Credits

Honore MVUYEKURE
1 project • 0 followers
Contact
Nicolas DAILLY
33 projects • 21 followers
Associated Professor at UniLaSalle - Amiens / Head of the Computer Network Department / Teach Computer and Telecommunication Networks
Contact

Comments

Please log in or sign up to comment.