Introduction: Sensei Cell - Building an Automated Greenhouse With Intel Edison and Arduino
Sensei Cell is a prototype for an automated greenhouse.
An isolated chamber built from a cylindrical display has been transformed in a greenhouse with two separated environments.
Each shelf has four sensors (soil moisture, soil temperature, humidity, light) that monitor the environment and the plant hosted and an icons strip to notify the user about the status of the corresponding measures.
The system takes care of watering, manages the air recycle, activates the humidifier if needed and drives the lights.
The whole system can be monitored, managed and customized through an user friendly web interface hosted by the system itself.
this project is going to require linux environment knowledge and some base electrical know how.
This is not to be intended as a full guide for beginners. If you don't feel confident with any part of this, please ask for some qualified help
Step 1: The Structure
You can build your greenhouse chamber or start from something existing (for example, we started from a cylindrical commercial display, that could easily be reproduced).
This is made by two wood circles, the base and the top and three vertical metallic axes that build up the frame.
The three walls are made of synthetic glass sheets fixed to the axes.
Two wood shelves, identify three different areas:
- Top zone
- Bottom zone
- Water zone at the very bottom
Step 2: Back Panel
A wood panel has been used as a support for the electronic system.The wood has been cut and engraved with a laser cutter, providing the holes for cabling, forming the instruction schema and appearing as a “logical board” that contains and illustrates the system.
An LCD screen, and two set of icons drilled on wood and lightened by leds, builds the “physical” User Interface, on the other side of the panel.
if you have access to a laser cutter (as a service maybe) you can use our project to be directly engraved. Otherwise you can start from a blank panel and use the project schematics as a reference for drilling and assembling.
Step 3: The System
The system is composed by four specialized Arduino modules and a central intelligence hosted by an Intel Edison board.
Communication happens on the USB bus through a common USB hub connecting the Arduino peripherals to the Edison board.
An Arduino Uno with an LCD KeyPad Shield, allows to check main values directly.
This reports key pressed to the system and is able to receive text to be printed on the display.
- SensorsModule (x2)
For each compartment, an Arduino Nano with a Sensors Shield takes care of the sensors and icons leds. Sensors values are reported to the system that can also drive icons leds according to central processing.
An Arduino Uno drives a 8xRelays module to switch loads on and off. These will operate the water pump, the humidifier, fans and lights.
The Intel Edison board hosts the central intelligence driving the system and the User Interface provided by Sensei - Open Source Things Server.
This is an Open Source project by Sensei Team aiming to provide a customizable, easy to use server infrastructure to build IoT projects from simple to complex ones in a modular way.
It’s build with Open Source and cross platform technologies as: Bash, MySQL, PHP, HTML5, JS.
Sensei Server takes care of:
- communicating with Arduino modules, reading values and sending commands
- archiving data and aggregating averages per second, minute, hour
- providing interactive charts for each measure of the system
- managing scheduled tasks
- continuously monitoring sensors values and dynamical react according on thresholds
- hosting an Access Point to expose the web based user interface
- monitoring the system itself trying to recover from failures
- and much more..
You can find more info on http://senseiserver.io.
Step 4: Components
- Intel Edison Arduino Breakboard kit
- 2x Arduino Uno
- 2x Arduino Nano + sensor shield
- Shield 8 Relay
- Lcd Button Shield for Arduino Uno
- 2x DHT11
- 2x Light Photoresistor
- 2x Temperature termistore 10 k 1% 3950
- 2x Water Moisture Hygrometer HL01
- 8x BlueLed
- Hub USB (at least) 4 port
- Arduino wires
- USB cables
- 4x 10KOhm resistor
- Loads (these could vary based on your need or what you already have, in that case just modify the power lines according to your loads. The relay module can drive loads up to 220V 10A) *
- 1x Water Pump 12V
- Ultrasonic Humidifier 24V
- 3x Fan 12V (computer fans can be good)
- PSU 80 watt 220 V in 12 V
- Power DC-DC Step-Up 0.40/40 V lm2587
- Power DC-DC Step-Down lm2596 dc 4.0 ~ 40-1.3-37
Step 5: Intel Edison
The Intel Edison is going to host Sensei Server, that will unleash the power of the Intel SoC featuring a full server stack.
This will require the Edison to run Ubilinux with additional packages installed (as mysql, php, apache, nginx, etc.).
You don't need to configure network (unless you wan't to connect the system to your existing network).
this user is in sudoers with nopasswd.
Step 6: Arduino Uno - LCDInterface
Mount the LCD KeyPad Shield on the Arduino Uno.
Flash the firmware below with the Arduino IDE:
Step 7: Arduino Nano Sensors Module
We are going to prepare two sensors module.
Instructions are the same, a part from the firmware to flash, these will differ in device name id.
- Insert the Arduino Nano in the Sensor shield
- Join the leds to wires, either soldering or using female connectors
- attach the led to the corresponding pin (as reported below)
- attach the DHT module to the shield
- prepare the light sensor, soldering a 10KOhm resistor to one of its pin (as shown in figure); the resulting pin between the photoresistor and the 10K resistor will be the signal
- connect the light sensor to the shield
- prepare the NTC sensor with a 10K resistor as we did for the light sensors. You can use a male pin connector to solder the resistor on, as shown in figure
- connect the HL01 hygrometer to the sensors shield as shown in figure
LS1 (LDR light sensor) ------------- PIN A7 ----------->>>> LED PIN ---- D4;
DHT11 (humidity) -------------------- PIN D7 ------------->>>> LED PIN ---- D5
HL01 (hygrometer)------------------- PIN A1 ------------->>>>> LED PIN --- D10
NTC (temperature probe) ---------- PIN A0 -------------->>->> LED PIN-----D11
SPEAKER ------------------------------ PIN A2
Flash this two firmwares on the corresponding modules:
Step 8: Arduino Uno - Relays Module
- Connect the relay shield to the arduino following pinouts below
- Remove the jumper between VCC and JD-VCC
- Power the Relays shield through a separed 5V on JD-VCC and GND
8RELAY -------PIN IN1 --------- >>> ARD UNO PIN D9;
8RELAY -------PIN IN2 --------- >>> ARD UNO PIN D8;
8RELAY -------PIN IN3 --------- >>> ARD UNO PIN D7;
8RELAY -------PIN IN4 --------- >>> ARD UNO PIN D6;
8RELAY -------PIN IN5 --------- >>> ARD UNO PIN D5;
8RELAY -------PIN IN6 --------- >>> ARD UNO PIN D4;
8RELAY -------PIN IN7 --------- >>> ARD UNO PIN D3;
8RELAY -------PIN IN8 --------- >>> ARD UNO PIN D2;
8RELAY -------PIN VCC-------->>>>ARD UNO VCC 5V.
flash this firmware through the Arduino IDE:
Step 9: Other Components
- Choose a water tank
- apply three holes on the top for tubes, wires and fan
- mount one of the fans on the top, this will push the humidified air flow
- you can use a rigid tube for the air flow and normal flexible tube for watering
- attach the humidifier, the fan and the pump to the corresponding Relays (as per schematics)
- Chose the right amount and type of light according to your need (for example RGB light arrays)
- attach them to the corresponding Relays (as per schematics)
this will mostly depend on the loads your will use. You will probably need 5v, 12v and maybe 24v power lines. You can start from an ATX power supply (providing 3.3V, 5V and 12V) or from a 12V PSU normally sold as led drivers and then use DC-DC step-down/step-up to get what you need.
Step 10: Final Steps, Testing and Power On
- mount the boards and wire the panel
follow the panel schematic as a guide to connections and positions of elements.
- test everything
remember to properly test everything, particularly power lines, with your multi-meter to ensure current is flowing as expected in the system before powering on.
- power on
- wait for the boot to finish (a melody will notify the event)
- connect to #SENSEI WiFi network
- Insert password: SenseiMonitorWIFI
- browse http://192.168.66.1
More info on: http://senseiserver.io/things/sensei-cell/