Intel Edison Garage Monitor and Alert System

by joe in Circuits > Microcontrollers

3194 Views, 35 Favorites, 0 Comments

Intel Edison Garage Monitor and Alert System

IMG_1965.JPG
IMG_1937.JPG

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.

Parts

IMG_1952.JPG

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

Circuit

EdisonGaragemon_bb.png

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.

Solder

IMG_1938.JPG
IMG_1940.JPG
IMG_1941.JPG

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.

Enclosure

IMG_1942.JPG
IMG_1943.JPG
IMG_1944.JPG
IMG_1946.JPG

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.

External Wiring

IMG_1949.JPG
IMG_1953.JPG

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.

PreReqs

pythonEZSetup.png
installPip.png
pipFlask.png
pipGunicorn.png

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

Disable Default Web Server

disableJS.png

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.

Boot Process

service.png

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

Code

door.py.png

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

Web UI

WebUI.png

The web interface shows the status of the doors.

Email

email1.jpg

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

Conclusion

IMG_1965.JPG
IMG_1883.JPG

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.