Author Archives: Hanna M K Mäenpää

Welcome to the green lab!

We arranged seven week “Exact Greenhouse” courses at the Department of Computer Science of the University of Helsinki between 2014 and 2016. This course attracted a total of 47 students with different skill sets which were interested in building a greenhouse that was maintained by microcontroller-based devices. There were no other requirements for attendance except for that students should have completed a BSc degree in any of the specialisation lines of computer sciences. This requirement was set because participants would benefit from knowledge that typically develop during their BSc thesis work.

Greenhouse technology was chosen as the topic for the abundance of creative ideas and tutorials that could be found online. As industrial systems for agricultural automation have existed for decades, a wide range of small scale consumer goods were available. Many of them integrated mobile interfaces and social aspects into gardening, providing rich inspiration for innovative product design. As for the numerous online tutorials for do-it-yourself prototyping, evaluation of possible technical architectures was easy already at a very early stage. 
A Facebook course page was established and inspiring ideas with instructions for completing first milestones were communicated through it. For those students that did not use Facebook, the same information was delivered through email. This blog post summarises learning outcomes of the courses throughout the three years.

You can find the story of the research lab facility here.

The first course in 2014 attracted 12 students.
Course page.

Problem Solution Microcontroller Members
Maintainers want to view the status of the facility to decide which maintenance tasks are required in the future. A web service that provides a graph visualization for any IoT device that is configured to push data through its general purpose API. Arduino Duemillanove 1
A maintainer needs to be alarmed if plants dry up. A product concept for a smart flowerpot container with a water reserve. Electric Imp 2
Humidity sensor unit to be placed in soil. The system alarms maintainers by creating a sound, helping to locate the plant when visiting the greenhouse. Arduino Uno 1
The greenhouse gets too hot and humid during the afternoons. If doors are left open, it will get too cold during the night. A six point temperature and humidity sensor system Intel Galileo 1
An automated fan system, using data from the previous project Intel Galileo 1
Hydroponic cultivation is failing constantly for an unknown reason. A device that measures a wide range of environmental variables from air and water. Arduino Yun 1
Greenhouse maintenance team wants to know who has visited the greenhouse recently. A NFC keychain system to track visitors. Raspberry Pi 1


23 students enrolled to the second course in 2015.
Here are their projects:

Problem Solution Microcontroller Members
Plants grow unevenly as sunlight enters the greenhouse from one direction only A light-sensitive, rotating platform. Arduino Yun 2
Greenhouse maintainers may not be available at all times. Automated growing system that adjusts flow of water from a large tank and sends pictures and state information on Twitter. Raspberry Pi 2
Plants need different kinds of light for efficient growth. Sapling container with adjustable lightning. Raspberry Pi 3
Different plants consume water at different pace. A set of independent sensor modules for one microcontroller unit. Arduino Pro Mini 2
As the amount of plants increase or decrease, several maintenance tasks are needed. Hydroponic growing platform that can be easily extended as the farm grows. Arduino Uno 3
Maintainers want to overview the status of the facility to evaluate which maintenance tasks are required. A multifaceted web service providing a graphical visualization. Arduino Yun 2
Temperature of the greenhouse gets very high in the afternoon. If the air is moist, soil and plants may develop mold. Automatically functioning pulley system that adjusts ventilation according to temperature and humidity. Arduino Yun 2
N/A Device measures air temperature, humidity, CO2 Arduino Uno 3
Device measures soil temperature, humidity and light Arduino Uno 1

The last course in 2016 attracted 12 innovators.
Course page. 

Problem Solution &  link to the project page Microcontroller Members
The greenhouse attracts pigeons Automated movement sensing water gun to deter the pigeons. Raspberry Pi 1
Plants need different kinds of light and shade periods for efficient growth. Automated system to control built-in lights and shades Intel Edison 1
Maintainers need to be notified when soil dries. Maintainers want to reconfigure the device to match needs of different plants. Automated system to control built-in lights and shades Arduino Mega 2
Maintainers need to overview the state of the facility and be alarmed if a reaction is needed. Advanced web visualisation prototype Lightblue bean 1
A system that monitors temperature and humidity of soil. Image analysis tool for identifying changes in the look of the plants. Raspberry Pi 1



This article shows specifics of the hardware required to arrange a similar course and the first year’s course syllabus.

Blending Problem-and Project-Based Learning in Internet of Things Education: Case Greenhouse Maintenance.” Proceedings of the 46th ACM Technical Symposium on Computer Science Education. ACM, 2015.

This article summarises our learnings from teaching the three courses and offers key take-aways.
Assessing IoT projects in University Education – A framework for problem-based learning.” Conference: International Conference on Software Engineering (ICSE), Software Engineering Education and Training (SEET), 2017
Many thanks to the awesome research and teaching team.
Hanna Mäenpää, Samu Varjonen, Arto Hellas et al.

Exact Greenhouse

Since year 2010 the rooftop of Department of Computer Science has been a busy workaround for scientific experiments at the University of Helsinki.  The location was first used for studying whether it was possible to cool computer servers with the hash Finnish winter air.

Turned out that it was.


Dr. Mikko Pervilä (DBLP) continued his experiments by building a low-cost greenhouse to accompany his icy server rack. And flocking came the academic chili farmers.

He’s the one in yellow overalls.  Yes we have snow in Finland.


After two years of hot research topics and hefty harvests Dr. Pervilä dismantled the final server from his rack and ended his work at our Department. Future of the research laboratory was left open.


Current prototype uses Grove moisture sensor.


That’s when we took over

On May 2014 we launched opportunity to study what may become the next big thing after the invention of WWW.  Our fresh and green  IOT course  was and will be held in 2015 at the urban rooftop gardening spot with enthusiastic  group of Computer Sciencentists.

This blog tells the small story of the courses arranged 2015-2016, where participants created prototypes for systems for helping the chili growers to work together.

Yours truly,
Hanna Mäenpää
Samu Varjonen
Arto Vihavainen

We’re on Twitter



Fifth Dimension  has an ongoing research at the location. They study how green roofs can help urban environments and energy efficiency. Isn’t that awesome? 


Inspired by Fatalii, I decided to cut down one of my Bolivian Rainbow chili plant which I had kept alive throughout the winter 2013-2014. A chili which has a lot of leaves dehydrates quite a lot of water and therefore placing it into an ordinary bonsai planter just does not appeal to me. I was afraid that the small container did not hold enough humidity and the plant would suffer from recurring droughts, which are exceptionally bad for chilis. Yes they are.


So, the idea of the BonsaiBox with an Arduino Uno followed. I stole an empty tea box from the Department’s coffee room and drilled some holes to it’s back and front panel. I ordered an Adafruit CC3300 Wifi breakout board and while waiting for it to arrive,  printed both a 9v battery holder and a light mount for the Uno to make the installment stable within the box.  And a cute green frog to sit on top.


I used a “Grove” soil moisture sensor from SeedStudio. Finding the right ranges for different soil states took a couple of days and tries. Resolution of the sensor was with 5v+ from 300…950, which was quite ok for this purpose.  I ended up with three levels:

“I’m OK”
“soil is just a little dry” and
“pour me water or I’ll die”

This is the soil moisture sensor:  It is fit for only 5cm long so it was ok for my purpose with a very small container. The sensor wouldn’t be feasible for bigger ones

I experimented with  RGB leds. I had a common anode lying around. It was fairly confusing to figure what should be given as an input for it. I went  to Partco and bought a cathode and  BOOM, code made simple. I also had a simple photoresistor with a LilyPad buzzer and switch left from my previous projects. I used these parts to enable interaction with a person sitting next to the Bonsaibox. The buzzer really sounds like a frog.


Getting online
Wifi shield arrived, I almost killed it with my bad soldering. But finally, got the parts assembled and started integrating my code from the output experiments with example code of the CC3300 breakout. It worked.


Measure humidity
Send sensor value to Janne’s backend

soil is is humid
    blink blue with RGB LED

soil is drying out
   blink yellow with RGB LED

soil is completely dry
blink red with RGB LED
if it has been dry for the whole day
start making a frog-like sound continuously until the plant is
watered.  Play it even louder during the night. Yes, that’s a bit
mean but that’s the way I like it.

wait for a while and measure the humidity again.

The data really nice in Janne’s EGH-chart. Thank you for the awesome work, man.



My prior knowledge on microcontrollers was limited to one successful and one failed project with Lilypad (I couldn’t figure anything meaningful to do so I trashed the whole project). I did know how to code but hadn’t done it in years.

So the outcome: inside the Bonsaibox.. Oh it’s ugly. Looks like a homemade bomb. I didn’t order a sensor shield  which was a bad mistake. I had to take apart all the nice plug&play connectors and solder a lot.  After getting the hardware together it was really hard to keep the wires attached. People. Don’t save from the wrong place. Get a shield.

Programming was fun. There were ready libraries for the WiFi and it was easy to integrate them with my code. I got a lot of confidence as a coder from this project.I learned to Google from the right places.  I CAN! And I will do it again.