Introduction: Intel Edison Garage Monitor and Alert System
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
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
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
python setup.py build install
Install Python SQL:
opkg install http://repo.opkg.net/edison/repo/core2-32/python-...
pip install Flask
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.
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.