Introduction: Intel Edison Garage Monitor and Alert System

About: I like to tinker with just about anything, sometimes it works out in the end. Have fun looking at the projects, try tearing something open and let me know how it goes. cheers, -Joe

The Intel Edison is the more popular of the IoT boards from Intel right now. It is a interesting device with a tiny foot print, tons of power, built in WiFi and a full Linux OS.

I happen to have an Edison and a Galileo and I wanted to make a similar project with both to see the strengths and weaknesses of both.

I already made a garage monitor with an Intel Galileo : https://www.instructables.com/id/Intel-Galileo-Gara... . So I decided to build a similar project with the Intel Edison and see how it went.

Step 1: Parts

To build this you will need:

1 Intel Edison https://www.sparkfun.com/products/13024

1 Sparkfun GPIO Block https://www.sparkfun.com/products/13038

1 Sparkfun Base Block https://www.sparkfun.com/products/13045

1 Sparkfun Solderable Breadboard https://www.sparkfun.com/products/12070

3x 1K Resistors https://www.sparkfun.com/products/8980

3x Screw Terminals https://www.sparkfun.com/products/10571

3x Magnetic Doors Switches https://www.sparkfun.com/products/13247

1x Big Red Enclosure https://www.sparkfun.com/products/11366

1x Terminal Block https://www.sparkfun.com/products/13061

Misc nuts and bolts

Tools:

Screw driver

Wire Stripper

Soldering Iron

Drill

Step 2: Circuit

Using the Sparkfun GPIO block, you'll run a wire from a resistor to the GPIO pins and then to your switch to monitor open/close of the circuit.

Step 3: Solder

We want this device to run in production. To do that I used an amazing little product from Sparkfun, the solderable breadboard. It lets you move your project over from the proto board to final project with out any modification. Selfishly, it also makes wiring very easy.

Step 4: Enclosure

I used a Sparkfun Big Red Box as the enclosure. This fits the breadboard and edison with a bit of room to spare.

Drill holes for your standoffs.

Then drill a hole in the side to plug a USB cable in for power and console access. I used a dremel drill press for the standoff holes, and a stepped drill bit for the USB hole.

Step 5: External Wiring

To make the enclosure a little more secure we'll use a screw terminal on the outside and send short wires from the board up through the enclosure. Now you can add and remove monitoring switches easily.

Step 6: PreReqs

This app uses python to monitor the switch status and present a web ui using python.

Install Python ez_setup:

curl https://bootstrap.pypa.io/ez_setup.py -o ez_seetup.py
python ez_setup.py --insecure

Install Pip:

curl https://pypi.python.org/packages/source/p/pip/pip... -o pip-8.0.2.tar.gz

tar -zxvf pip-8.0.2.tar.gz

cd pip-8.0.2

python setup.py build install

Install Python SQL:

opkg install http://repo.opkg.net/edison/repo/core2-32/python-...

Install Flask:

pip install Flask

Install gunicorn:

pip install gunicorn

Step 7: Disable Default Web Server

We are going to run our own web server. But to do that we need to disable the default web server.

Edit /usr/lib/edison_config_tools/edison-config-server.js

Comment out the last line.

Step 8: Boot Process

You will want all of this to start on boot. What good is a garage monitoring and alerting system if it stops working after you lose power?

In this IoT OS we will use the systemd unit files to get this working. Unit files are here: https://github.com/joemcmanus/edisonGarageMonitor

Copy the garage*.service files /lib/systemd/system/

Then add them to the startup process using systemctl enable .

systemctl enable garagemon.service

systemctl enable garagealert.service

Start it up!

systemctl start garagemon

systemctl start garagealert

Step 9: Code

I used the GPIO pins on the lower right of the Sparkfun GPIO block. To get the python to actually read them you need to check https://learn.sparkfun.com/tutorials/sparkfun-blo... to determine the mapping between the block and MRAA. Since I used the bottom three on the right they are 36,48 and 47.

The code you need is here: https://github.com/joemcmanus/edisonGarageMonitor

Step 10: Web UI

The web interface shows the status of the doors.

Step 11: Email

Sample email shown. It will email if a door is open more than 5 minutes.

Step 12: Conclusion

Both the Intel Edison and Galileo have plusses and minuses.

The Edison has a tiny footprint, built in wifi, tons of power but not built in ADC.

The Galileo has a standard Arduino compatible header, SD Card, and no extra boards required to communicate or power it. But it does not come with WiFi and is not as popular as the Edison so googling info is harder.

The cost of the Edison for this project may have been slightly less than with Galileo.

Either choice is fine for most projects.