Tehokkuus, työhyvinvointi ja avoimet teknologiat.

Ideoimme uusia ratkaisuja tulevaisuuden toimistoon, ja Martela on luvannut kommentoida ideoitamme tässä opiskelijaprojektissa.

Olemme kolmen tradenomiopiskelijan ryhmä Haaga-Helia ammattikorkeakoulussa. Kehitämme laitteen, jonka tarkoituksena on tehostaa neuvotteluhuoneiden käyttöastetta ja helpottaa käyttäjiä vapaan neuvotteluhuoneen löytämisessä.

Projektissa käytämme avoimia teknologioita kuten Raspberry pi:tä ja Arduinoa. Julkaisemme työmme MIT-lisenssin alaisena. https://opensource.org/licenses/MIT

Projektissa on mukana meidän lisäksi Haaga-Helian lehtori Tero Karvinen.

Mitä tehdään?
Teemme hyvinvointiteemalla prototyypin luottokortin kokoluokkaa olevalla Raspberry pi -minitietokoneella ja Arduino-mikrokontrollerilla. Laitteen sydämenä toimii passiivinen infrapunasensori, joka lämpösäteilyn avulla tunnistaa onko tilassa ihmisiä.

Ilkka Jylhä
Antti Salo
Sami Nisonen


Short introduce to Office-IOT

We created gadget that detect if there is people in room by using passive infrared sensor. Arduino (microcontroller) sends sensor’s data to Raspberry pi. Raspberry pi (credit card sized computer) sends data to database. After that user can check if room is in use or not by using http.


Components used in project:

Arduino – price about 20 €

Raspberry pi 2 – price 40-50 €

Passive infrared sensor – price 5-10 €



3D Printing the Case

I was assigned the task of creating a case for the product. Having no experience with 3D printing nor Blender made the task seem quite daunting, especially considering the time limits our project had.

I referred to classmate and Blender expert Antti Eloranta for advice, and he helped me tremendously early on with coming to grips both with Blender, and later with 3D printing. With his help, we created the first prototype in Blender, fusing together two cases found from Thingiverse. Our first attempts at printing it were failures, however. The Print-Rite 3D printer (nicknamed “Donald”) we have at school wasn’t something either of us had used before, but it was the only one with a bed large enough to fit the design. For some reason, we were only able to print a mess of stringy plastic that only barely represented our design.

After a bit of frustration we had help from our teacher Heikki Hietala, who teaches both Blender and 3D printing at our school. He remarked that the Print-Rite is a bit different in what it likes as settings to print correctly, so we tweaked our printing settings according to his advice. Namely, temperature for the extruder was bumped to 245 degrees celsius, and the bed to 110 degrees. The next time we attempted printing, everything came out correctly, and we had a functional bottom part of the case.

Photo 18.11.2015 20.10.29

I then designed the top part of the case, and attempted to print that. This time, the print failed with the filament getting tangled. So lesson learned again; I cut the filament to get rid of any kinks, reinserted it, and the next attempt was successful.

When I put the case together however, it cracked in two places – it wasn’t quite strong enough. As I also realized that I didn’t like the green color of the ABS plastic I was printing with, I decided to change the filament to white, and make some test prints to try out the different settings of the printer. I ended up choosing 40% rectilinear infill, 0.2mm layer height and 0.3mm for the first layer, slowing down the speed of printing a little when printing the smallest layers (to prevent melting), and also using a 3mm wide brim (for stability). For the 3D models, I ended doing some modifications; the logo was enlargened, and some parts – especially the bottom of the Arduino part – were thickened. As the white filament was also ABS plastic, the temperature settings remained the same.

The final case came out very nicely, I only did some sanding to make it more presentable.

Photo 1.12.2015 21.12.12

After the case was done, I realized that I had made a rather big mistake. While the Raspberry Pi have similar dimensions, they have different connectors, and we had ended up deciding to use the newer Pi 2 Model B in our project. Thus, the Pi 2 did not fit the case.

Photo 2.12.2015 23.14.27

However, this time around, I was already a lot faster and more experienced in Blender, and was able to finish a design for a new case in only a few days. Again, I used two cases found from Thingiverse as the base, but modified them to suit our needs better. I also created a little case for the PIR sensor we used, and made it so that you can attach it either to the top of the case, or further away using a separate bottom part. Please ignore the support structure pillars built into the model, they are just for printing.


In the end, after a lot of sanding and some nail polish remover, this is what the end result looks like:









How it all works, in a nutshell

How does it all work between the different components in a nutshell.


PIR sensor is connected to arduino and the data goes via serial to Raspberry pi
1 for something moving, 0 for no movement.

Raspberry pi

A python script receives the data and checks for movement for a period of one minute. After that it sends the status, again 1 or 0, to the backend.


Basic html form and some php and we have way to receive information via http get. This data is then stored to mysql database where it can be read by the frontend


At the moment a crude frontend shows list of rooms and the state. 0 is available, 1 is occupied.

Make Arduino talk to Python

Arduino, a wonderful piece of hardware, but by itself is somewhat limited. Pair it with something like python and you can do practically anything. The arduino side of is really easy, set you baud rate and print to serial. Like so:

void setup() {

void loop(){
Serial.println("Hello Python");

Python side is a bit trickier. First install python serial library via your package manager, pip or easy_install for example.

easy_install pyserial

And the python code itself

ser = serial.Serial("/dev/ttyUSB0", 9600)
while True:
    ­print ser.readline()



How to debug serial port

Communication with arduino via serial is quite easy but you still want to debug it in case something doesn’t work quite like you want it to or if you just want to make sure output is correct

screen – screen manager with VT100/ANSI terminal emulation To read data from /dev/ttyUSB with 57600 baud speed use the following.

 $ screen /dev/ttyUSB0 57600 

When you are ready debugging, Ctrl + A + k closes screen. Easy and simple

Who are we?

Ilkka Jylhä

I am open source and information security enthusiast. Before I started to study information technology at Haaga-Helia I was working at private security sector as a hospital security officer. During my studies I worked at Solinor Oy as a system specialist, building and maintaining server infrastructure at PCI-DSS project.
In my spare time I study to get radio amateur license.


Antti Salo

Picture by Kristina Oinonen

Photo by Kristina Oinonen

I am a naturally creative and curious person, who has turned towards information technology as a new avenue to fulfil my tendencies. Before starting my studies at Haaga-Helia I graduated with a vocational degree in music technology, and besides studying ICT I still work as a freelancer in the field. My interest in the field of information technology is building new things that are in some way experiences – as in, not just tools -, and right now I am working on my coding. I am interested in combining electronics and programming with experimental music, and e.g. Arduino has many potential uses with regards to that.

Sami Nisonen

I can honestly say that I’m good booth worker, even better than 90 % people I have seen at booths. Along studying information technology at Haaga-Helia I do sometimes booth working for PuskaPromotion’s customers. I could say that Finnish language is hobby for me and I’m writing my first book about Finnish puns ( http://www.puujalkavitsikirja.fi/ ) what I have been invented.Sami Nisonen