Team 5 – Building of the project

Hello I my name is Zakaria,

In this video I will go through the building part of our electronic project .

First off we had the wiring part, we used electrical wires to connect the arduino to the different sensors (relay, moisture sensor and level sensor).
In this picture the brain part of our project is in a cardboard box but in the near future it should be in a wooden box.
We used a 100 liter tank to have enough water for a long period of time.

We drilled two holes in the tank. One for the level sensor, (you can see it in black) and one for the pipe hose at the bottom.
By the way on this picture the level sensor is at the top.
It has been replaced at the bottom since this picture was taken, the hole was obstructed and a new hole has been drilled to place it at the bottom of the tank.
We also put a filter inside the tank because it will be filled with rainwater only.
For the moment everything is on a table but it should evolve as we add a water collector and different hoses for each plant in the future.


ACH Team : Software

If the video do not work : Link

Welcome to all, my name is mohamed boukrach here is the video on the software used during the ACH Project (stands for Automatic Chicken House). This video aims to present you the reflection that led to the construction of the software and the presentation of the software itself.

First of all, the code had to meet specifications, the code had to be able to:
– Read and interpret the information of the brightness sensors, IR receiver and water level sensor
– Manage the opening and closing of the door by a DC motor according to the luminous information
– Manage food intake by switching an electromagnet for x seconds once a day
– Integrate the possibility to switch to manual mode to control the door and the food dispenser by simple buttons.

Let’s go over the code and see together the interesting parts:

First, we use 2 specific libraries. One to work with the monitor to see on the computer the values ​​read by the sensors and the other to allow the interaction of the arduino with the remote control with simple lines of code.

Then comes the different variables and constants used for the functioning of the code including:
– The input / output terminals of the card
– The values ​​set for the operation of the code (in relation with the sensors)

Arduino programs run in two important steps, the setup that runs once and the loop that runs continuously. It can be seen that the setup includes the serial for display on the monitor as well as the assignment of different sensors and relays for the operation of the code. The ascent and descent of the door are assigned to two of them. The loop contains the parts related to the operation of the program as:
– The updated display on the monitor of the readings
– The management of the light of the water tank
– Remote control management
– Group management of food and the door

Let’s see now 2 pieces of code:
Here is the part that deals with the management of the remote control but simplified for the video, we see the assignment of desired functionality to a key on the remote control such as the transition from automatic mode to manual mode and this, thanks to a Switch function.

Finally, the door management and food that have been combined for the following reason: The door only opens once a day so we use this information to distribute food daily.

This code compares the brightness value with the reference value for a certain period of time, then controls the relays to raise or lower the door. In the case of opening, the food dispenser relay is also switched on for 3 seconds.

That’s the end of the video, thank you for your attention. If you want more details, please go to our instructables site where you will find the entire code.

EcoTeam: Software Video

Hello everybody,

My name is David Hautecoeur and I am member of the EcoTeam.

In this videoclip, I will present you the software part of our ecological trash project. An Arduino processor has been required in order to drive the mechanical system that sorts the rubbish. Thus, it’s important to programme the processor correctly according to the informations received by the sensors.

Firstly, let me detail the contents of the program implemented in the processor. In the first part of the program, we included the servo library. The library allowed us to send orders in order to command the servomotor. The next step is declaring the several variables that are used in the program. After that, in the setup part, we defined the data transfer’s velocity of our program with the command “Serial begin 9600”. In this part of the program, we also defined the mode of all the pins that are be used.

Another main step is the declaration and the definition of the functions. In our program, three functions are used. The two first functions are named “turnright” and “turnleft”. When we use these both functions in the main loop of our program, called “void loop”, we achieved all the commands written in the concerned function. As their names suggest, these functions permit to rotate the panel a quarter rotation and this for both directions (clockwise and counter clockwise). The third function reads the value of the inductive sensor. For several reasons, it was necessary to implement a counter that detects a brief passage of the waste in front of the sensor.

During the execution of the program, the function loop is continuously executed. At the beginning of this loop, the first control is the control of the occupancy. The second is the control of the inductive sensor and the value is saved in the counter. If the presence is confirmed, the conditions are accepted and the cycle is launched. The call of the “turnright” or the “turnleft” function is chosen by the result of the function “detectmetal”.

Finally, we set some delays in different parts of the program. These delays are necessary to take the time necessary during the physical operations into account.

Thank you for listening

Bye! David

EcoTeam: Building of the model

Hello everyone, my name’s Nicolas and I am part of the EcoTeam. In this video, I am going to talk about the building of the model.

The first stage consists in building different tanks to collect waste, metals on one hand and other types of waste such as plastic on the other hand.In order to do this, we have cut and pre-drilled the wood to make assembly easier with screws.A piece of Plexiglas covers the front of the tank to check the sorting process.After that, a handle is fixed on the drawer. A second draw is made the same way.

The second step involves the global structure of the bin. As for the tanks, we put together the outside panels; the bottom, the sides and a tank partition. We drill a hole in the back panel in order to let the cables come through.

Then comes the piece of equipment that will allow to sort the waste. It is a thinner wooden panel with a hole to fit the inductive sensor. The plank has been reinforced with small wooden boards. Adding a bit of thickness this way has allowed to curve the panel slightly so that the piece of waste stays in the middle of the panel when thrown in the bin.

On one side the panel is held with a hollow aluminium bar inserted into the side part of the model that was beforehand bored. Thanks to a notch, the other side of the panel is connected to a servo-motor that will tilt it to a specific angle so that the waste is directed in the matching tank.

Next we have fitted the object sensors that detect whether a piece of waste is placed in the sorting zone. At the same time the inductive sensor will send a signal depending on the nature of the waste. This information is relayed and determines the direction of rotation of the motor.

After this step we have fitted and connected the different electronic components: Arduino, breadboard and the batteries.

The final stage involves covering the top part with a wooden panel fitted with a duct that guides the waste towards the middle of the sorting board so that it can be processed by our different sensors.

I hope this video has helped you understand better the way our model has been built.


Carassus : Final Video

Link to the instructable :

Hello everyone, thanks for watching our last video.

As a reminder, the project we developed uses a raspberry that communicates with an Arduino. The rest left was left our creativity, so we decided to create an automated pond : the Carassus project.

Carassus feeds automatically your fish two times per day and activates your pump when it is needed. Users don’t need to set nor control it manually anymore, the pond is automatically and remotely controlled. Carassus is saving time and energy for the pond’s owner.

Carassus delivers a specific amount of food when the temperature is above 5°C.

The pond feeds the fish two times per day : in the morning at 7.30 am and in the evening 18.30pm.

Carassus does not filter the water neither overnight nor the daytime temperature is below 5°C. So the filter pump is activated if both of the temperature and brightness conditions are met. In fact ,our system Carassus take care of the water filtration system during winter by switching off the pond’s pump. This system is going to save energy and time for the pond’s owner.

1.      Mechanical part

First of all, we built the protoype of carassus with reclaimed materials. At first, we built the framework of Carassus with reclaimed wood. An empty cut 5 liters plastic bottle is used as a fish food container. At first we wanted to use a 3D printed worm screw controlled by a stepper motor to drop the fish food in the pond. This system had to be changed because the stepper motor hadn’t enough power to move the worm screw with the fish food on the top. In the new system, the end of the tube is blocked with a valve controlled with a servomotor. A PVC tube is assembled to the empty bottle.

2.      Electrical box

The electrical box is assembled to the wooden frame. It is a recycled electrical box and that’s why it is way too big for what it contains. Let’s take a look inside. Every cable from the pump circuit are connected to the electric circuit breaker to protect it and to the electrical terminal. The electrical contactor 5V is connected to the raspberry and is used to control the pump. Raspberry is powered via a socket and is connected to the arduino. The arduino is connected is connected to the bread board and all the different sensors. The breadboard is powered in 5V by the arduino and it contains the photocell, the temperature compensator and the RTC.

3.      Videos

Here is the pump working in a beautiful pond during the day with a temperature around 24°C.  As a demonstration : the pump is working because the light and temperature conditions are met. Let’s cancel one of the two conditions. We put the temperature probe in a bowl full of ice. The temperature measured by the probe is decreasing and when the temperature is below 5°C the pump stops. At first, the pump is working. When the pump stops, we take the temperature probe in our hands to heat it. When the temperature is above 5°C, the pump restart. Now, we want to cancel the light conditions. We put our finger in front of the sensor and the pump stops again. When we remove our finger, the system restart again.

As we can see, when it’s time and the light and temperature conditions are met, the valve is opened via the servomotor.

4.      Chart

When we write the raspberry’s ip address in a internet browser, we can see a chart displaying the temperature and light data. The raspberry collects the data in the arduino and create the chart.

5.      Improvements

Let’s now make a list  of the potential improvements that we can make. As we said, we changed the 3D printed worm screw controlled by a stepper motor for a valve controlled by a servomotor. Unfortunately the system is blocked when there is too much food above it. As a first improvement we could put the initial system back with a more powerful stepper motor that is not blocked by the quantity of fish food above it. After that we could replace the recycled materials by a good looking new framework made of metal, a proper fish food container, a electrical box adapted to our needs and a bigger breadboard.

Thank you for watching our videos and following us through this project.


Thanh Bednarz
Bryan Molinaro
Loïck Myster



Carassus : Software


1.      Arduino

Arduino is controlled by a code that contains functions allowing different events depending on the temperature, the light and the time. Their purposes is to automate the feeding of the fish and the activation of the pump.

1.1.           Libraries

The first part of the code imports three libraries :

  • Servo H is used to control the servomotor
  • h import the different functions for the temperature sensor
  • MAX6675 to control the compensator

1.2.           Variables declaration

Three objects are created :

  • Servo
  • RTC
  • MAX6675 is a electronic temperature compensantor. It is created with three different pin.

Several variables are defined as arduino’s pin for : the motor, the servo and the photocell.
Two booleans are used to keep the state of the pump and the feed system (start/stop).

1.3.           setpup()

Setup() is where the usb communication starts. The time is set, the pin used by the motor is defined and the motor is set to its closed position (20°). The motor pin is set as an output and set at low. The two booleans pump and feed system are set at false.

1.4.           Loop()

The time value is retrieved and the loop is working every 1000ms. It reads the temperature from the sensor and linearizes the analog value into 0-100 lux. The pump function is then called.

1.4.1.     Pump function

We want the  pump working during the day if the weather is not too cold (under five °C).

So if the temperature is above 5°C, the light intensity above 10 lux and the pump is not working, the pin motor is set at high and the memory pump at true. The pump is then working.

1.4.3.     Feed fish

Then if the time is 7h30 and 1 second and the temperature above 5°C or 18h30 min and 1 sec and the temperature above 5°C then :

  • After 1000 ms the code opens the servomotor (90°) for 3000ms then closes it (20°).

1.4.4.     Serial

In the end, the temperature and light value are written in the serial.

2.              Raspberry

The raspberry read the informations contained by the Arduino via a USB connexion.

It reads a code that gets data inside the Arduino and put it in a text file and then it opens the text file and uses its content to display charts.

2.1. Reader

Reader part read the serial and parses the data to extract useful informations and write it on the text file with a timestamp. We imported six libraries to use their functions, we use threading to run the program because facilitate the code management and improve its performance.

2.2. Plotter

The plotter code read each line in the text file and parse it to have to match a timestamp with temperature and light value. Then we used a library that create a chart with all of that.

The chart is set.

2.3. PHP

We created a button to recharge the data in the chart. The chart is imported in the php and then the date are updated each time the button is pressed or when the page is reloaded.

Thanks for watching! See you for the next video.

Loïck Myster