<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9221797521554917034</id><updated>2012-01-12T13:32:52.136-06:00</updated><category term='arduino'/><category term='pir sensor'/><category term='halloween'/><category term='cheerlights'/><category term='twitpic'/><category term='snow meter'/><category term='Jackolantern'/><category term='iobridge'/><category term='x10'/><category term='twilio'/><category term='twitter'/><category term='fog machine'/><category term='webcam'/><category term='christmas'/><category term='iobrdige'/><category term='xbee'/><category term='PIR'/><category term='automatic halloween candy dispenser'/><category term='relays'/><category term='servo'/><category term='candy'/><category term='snowbird'/><category term='dropping spider'/><title type='text'>My Web of Things</title><subtitle type='html'>This a place for me to document my electronics projects. Most of them will include the use of ioBridge, which allows me to connect devices to the internet.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://noelportugal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://noelportugal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Noel Portugal</name><uri>http://www.blogger.com/profile/03892621778640963476</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_FuhTy6GGV7g/Sxf3KqpD-NI/AAAAAAAAOBI/QXIrg_ub-wA/S220/me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9221797521554917034.post-7973533376536025769</id><published>2012-01-04T12:20:00.000-06:00</published><updated>2012-01-04T12:20:50.000-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='iobrdige'/><category scheme='http://www.blogger.com/atom/ns#' term='cheerlights'/><category scheme='http://www.blogger.com/atom/ns#' term='x10'/><category scheme='http://www.blogger.com/atom/ns#' term='christmas'/><category scheme='http://www.blogger.com/atom/ns#' term='xbee'/><title type='text'>Christmas Cheerlights</title><content type='html'>This year I joined a few other guys in the &lt;a href="http://www.cheerlights.com/"&gt;Cheerlights&lt;/a&gt; project.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;i&gt;&lt;span style="background-color: #e6ebea; color: #616566; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 12px; line-height: 19px;"&gt;CheerLights is an&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.iobridge.com/labs" style="background-color: #e6ebea; color: #f55b2c; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 12px; line-height: 19px; text-decoration: none;" title="Projects from ioBridge Labs"&gt;ioBridge Labs&lt;/a&gt;&amp;nbsp;&lt;span style="background-color: #e6ebea; color: #616566; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 12px; line-height: 19px;"&gt;project that allows people's lights all across the world to synchronize, stay linked based on social networking trends. It's a way to connect physical things with social networking experiences and spread cheer at the same time. We are all connected.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Whenever anyone tweeted @cheerlights or #cheerlights and a color, my house lights (just the deck&amp;nbsp;icicles) changed to that color.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-kEN67ljaxSE/TwPQhmfDUQI/AAAAAAAAZBM/qiMzta6dLDA/s1600/house_green.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="424" src="http://3.bp.blogspot.com/-kEN67ljaxSE/TwPQhmfDUQI/AAAAAAAAZBM/qiMzta6dLDA/s640/house_green.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Ht1rt52WDE4/TwPQZeU2oTI/AAAAAAAAZAo/XZuBpuQTDVs/s1600/deck_red.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://4.bp.blogspot.com/-Ht1rt52WDE4/TwPQZeU2oTI/AAAAAAAAZAo/XZuBpuQTDVs/s640/deck_red.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div&gt;I was a bit of a rebel and decided to change to the tweeted color just for 1 minute instead of just leaving the lights constantly to the selected color.&amp;nbsp;After 1 minute the stockplus program for GE G-35 Color Effects Lights&amp;nbsp;written&amp;nbsp;by sowbug (&lt;a href="https://github.com/sowbug/G35Arduino"&gt;https://github.com/sowbug/G35Arduino&lt;/a&gt;) took over. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/--X1yS64FWzA/TwPQOcWw7TI/AAAAAAAAY_4/YXSdI_S_Qmw/s1600/deck_color2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://1.bp.blogspot.com/--X1yS64FWzA/TwPQOcWw7TI/AAAAAAAAY_4/YXSdI_S_Qmw/s640/deck_color2.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I couldn't resist not using the random mode: these lights are just amazing, and the effects are REALLY cool.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;My setup was wireless. I used an ioBrigde module, xbee radios and an arduino to accomplish this.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-T4TBx_P7PHU/TMmof2bsZCI/AAAAAAAAOUI/V0LPtLP5Wq8/s1600/iobridge-xbee.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://2.bp.blogspot.com/-T4TBx_P7PHU/TMmof2bsZCI/AAAAAAAAOUI/V0LPtLP5Wq8/s640/iobridge-xbee.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-2St8xmq51Bw/TwSOlaLZJWI/AAAAAAAAZCQ/I-MUsUB1Nr4/s1600/DSC_0042.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://3.bp.blogspot.com/-2St8xmq51Bw/TwSOlaLZJWI/AAAAAAAAZCQ/I-MUsUB1Nr4/s640/DSC_0042.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-HMbizXqKPRc/TwSOnK1A4_I/AAAAAAAAZCY/bjCVxqoBMQk/s1600/DSC_0043.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://4.bp.blogspot.com/-HMbizXqKPRc/TwSOnK1A4_I/AAAAAAAAZCY/bjCVxqoBMQk/s640/DSC_0043.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The other cool part about this year's Christmas lights is that they were programmed to start/stop via a cronjob. I used the ioBridge x10 board and a bunch of x10 devices to accomplish this.&lt;br /&gt;&lt;br /&gt;Cronjob entry:&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;-bash-3.2$ crontab -l&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;30 15 * * * /oracle/start_cheerlights &amp;gt; /dev/null&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;00 21 * * * /oracle/stop_cheerlights &amp;gt; /dev/null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bash script:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;#Upastairs&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;curl "http://www.iobridge.com/widgets/static/id=XXXXXXX&amp;amp;value=1"&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;#Downstairs&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;curl "http://www.iobridge.com/widgets/static/id=&amp;nbsp;XXXXXXX&amp;amp;value=1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*change value 1 for On and 0 for Off.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I also setup an IP webcam to keep an eye on my cheerlights remotely.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-orW_O5CDAcE/TwPQaFTqFhI/AAAAAAAAZAw/5EyGei38Xd4/s1600/green.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="578" src="http://4.bp.blogspot.com/-orW_O5CDAcE/TwPQaFTqFhI/AAAAAAAAZAw/5EyGei38Xd4/s640/green.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div&gt;For more info on how you can build you own check&amp;nbsp;&lt;a href="http://www.cheerlights.com/"&gt;http://www.cheerlights.com/&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9221797521554917034-7973533376536025769?l=noelportugal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noelportugal.blogspot.com/feeds/7973533376536025769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://noelportugal.blogspot.com/2012/01/christmas-cheerlights.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/7973533376536025769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/7973533376536025769'/><link rel='alternate' type='text/html' href='http://noelportugal.blogspot.com/2012/01/christmas-cheerlights.html' title='Christmas Cheerlights'/><author><name>Noel Portugal</name><uri>http://www.blogger.com/profile/03892621778640963476</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_FuhTy6GGV7g/Sxf3KqpD-NI/AAAAAAAAOBI/QXIrg_ub-wA/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-kEN67ljaxSE/TwPQhmfDUQI/AAAAAAAAZBM/qiMzta6dLDA/s72-c/house_green.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9221797521554917034.post-2888956920518988436</id><published>2011-02-01T15:45:00.000-06:00</published><updated>2011-02-01T15:45:03.233-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snow meter'/><category scheme='http://www.blogger.com/atom/ns#' term='iobrdige'/><category scheme='http://www.blogger.com/atom/ns#' term='snowbird'/><category scheme='http://www.blogger.com/atom/ns#' term='twilio'/><title type='text'>Ski Resort Desk Snow Meter (Snowbird)</title><content type='html'>As my snowboarding trip approaches, I find myself checking Utah Snowbird's snowcam (&lt;a href="http://www.snowbird.com/snowcam.html"&gt;http://www.snowbird.com/snowcam.html&lt;/a&gt;) a few times a day, wishing&amp;nbsp;for more snow to&amp;nbsp;accumulate&amp;nbsp;on my&amp;nbsp;favorite&amp;nbsp;ski resort.&lt;br /&gt;&lt;br /&gt;So as a fun mini-project I decided to create my own Snowbird Desk Snow Meter! The Meter displays the snow accumulated in the past 24 hours and it gets updated hourly.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Y5Ld70ZKyyU?fs=1&amp;amp;hl=en_US&amp;amp;hd=1&amp;amp;rel=0" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/Y5Ld70ZKyyU?fs=1&amp;amp;hl=en_US&amp;amp;hd=1&amp;amp;rel=0" type="application/x-shockwave-flash" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;As a bonus feature I setup a Twilio phone line to call and get my personalized Snowbird snow report. Click Play below to hear what I get when I call my twilio number.&lt;br /&gt;&lt;center&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;object height="100" width="100"&gt;&lt;param name="movie" value="http://www.youtube.com/v/s9lhkpdTjaY?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="100" src="http://www.youtube.com/v/s9lhkpdTjaY?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" width="100"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.instructables.com/files/deriv/FQO/1XJ8/GJHVL7NE/FQO1XJ8GJHVL7NE.LARGE.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://www.instructables.com/files/deriv/FQO/1XJ8/GJHVL7NE/FQO1XJ8GJHVL7NE.LARGE.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For more information check my Instructable&amp;nbsp;&lt;a href="http://www.instructables.com/id/Ski-Resort-Desk-Snow-Meter-Snowbird/"&gt;http://www.instructables.com/id/Ski-Resort-Desk-Snow-Meter-Snowbird/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9221797521554917034-2888956920518988436?l=noelportugal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noelportugal.blogspot.com/feeds/2888956920518988436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://noelportugal.blogspot.com/2011/02/ski-resort-desk-snow-meter-snowbird.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/2888956920518988436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/2888956920518988436'/><link rel='alternate' type='text/html' href='http://noelportugal.blogspot.com/2011/02/ski-resort-desk-snow-meter-snowbird.html' title='Ski Resort Desk Snow Meter (Snowbird)'/><author><name>Noel Portugal</name><uri>http://www.blogger.com/profile/03892621778640963476</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_FuhTy6GGV7g/Sxf3KqpD-NI/AAAAAAAAOBI/QXIrg_ub-wA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9221797521554917034.post-3799497935700727542</id><published>2010-10-26T09:58:00.005-05:00</published><updated>2010-11-01T14:03:35.407-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='halloween'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='iobridge'/><category scheme='http://www.blogger.com/atom/ns#' term='twilio'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='candy'/><category scheme='http://www.blogger.com/atom/ns#' term='automatic halloween candy dispenser'/><title type='text'>Automatic Halloween Candy Dispenser</title><content type='html'>This year my Halloween project is the &lt;strong&gt;Automatic Halloween Candy Dispenser®&amp;nbsp;&lt;/strong&gt;triggered by &lt;strong&gt;TextforTreat®&lt;/strong&gt;, &lt;strong&gt;CallforTreat®&amp;nbsp;&lt;/strong&gt;(powered by &lt;a href="http://www.twilio.com/"&gt;Twilio&lt;/a&gt;)and&amp;nbsp;&lt;strong&gt;@TweetforTreat®&amp;nbsp;&lt;/strong&gt;technologies. Of course it can also be triggered from a &lt;strong&gt;Big Red&amp;nbsp;&lt;/strong&gt;push button, but where is the fun in that?&lt;br /&gt;&lt;br /&gt;When trick-or-treaters show up at my house they can text, call, or tweet a code displayed on an LCD screen to get their&amp;nbsp;Halloween&amp;nbsp;candy. They can also push the Big Red button.&lt;br /&gt;&lt;br /&gt;Once the candy request is made a few "special" effects are triggered by X10 modules. A low laying fog machine is activated and lights turn on while the candy shoots down from my front deck on the second floor.&lt;br /&gt;&lt;br /&gt;* Check my &lt;a href="http://www.instructables.com/id/Automatic-Halloween-Candy-Dispenser/"&gt;Instructable &lt;/a&gt;write up for more detailed information.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_dIgq55GeBI?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/_dIgq55GeBI?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AjC1UhfDdEU?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/AjC1UhfDdEU?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01" type="application/x-shockwave-flash" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_FuhTy6GGV7g/TMbo__ZBiQI/AAAAAAAAOT0/Am7vmEkiOB4/s1600/HCD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://4.bp.blogspot.com/_FuhTy6GGV7g/TMbo__ZBiQI/AAAAAAAAOT0/Am7vmEkiOB4/s640/HCD.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;Candy Dispenser&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.homedepot.com/h_d1/N-5yc1vZ1xgl/R-100087613/h_d2/ProductDisplay?langId=-1&amp;amp;storeId=10051&amp;amp;catalogId=10053"&gt;Plastic Bucket&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.homedepot.com/webapp/wcs/stores/servlet/ProductDisplay?storeId=10051&amp;amp;productId=100171138&amp;amp;langId=-1&amp;amp;catalogId=10053&amp;amp;keyword=050206920800"&gt;3 in. x 60 in. Round Pipe&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.iobridge.com/store/"&gt;2 Futaba S3003 Servos&lt;/a&gt;&lt;/li&gt;&lt;li&gt;1 Old CD&lt;/li&gt;&lt;li&gt;Nuts and bolts&lt;/li&gt;&lt;/ul&gt;Control Box&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.radioshack.com/product/index.jsp?productId=2062285&amp;amp;numProdsPerPage=60"&gt;Plastic Project Enclosure&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9181"&gt;Big Dome Push Button&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.iobridge.com/store/"&gt;16x2 Serial LCD Display&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.radioshack.com/product/index.jsp?productId=2102539"&gt;Snap-In Category 5e RJ-45 Jack&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.radioshack.com/product/index.jsp?productId=2102486"&gt;Size M Panel-mount Coaxial DC Power Jack&lt;/a&gt;&lt;/li&gt;&lt;li&gt;12 V DC transformer&lt;/li&gt;&lt;li&gt;Cat 5 Cable&lt;/li&gt;&lt;/ul&gt;Main Box&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.radioshack.com/product/index.jsp?productId=2062217&amp;amp;CAWELAID=107592162"&gt;Aluminum Project Enclosure&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://arduino.cc/en/Main/ArduinoBoardDuemilanove"&gt;Arduino Duemilanove&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;products_id=51"&gt;Adafruit Protoshield&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=29&amp;amp;products_id=126"&gt;XBee adapter kit&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=29&amp;amp;products_id=128"&gt;XBee Module&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://kbase.x10.com/wiki/Firecracker"&gt;x10 Firecracker CM17A&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.x10.com/automation/x10_tm751.htm"&gt;x10 Transeiver&lt;/a&gt;&lt;/li&gt;&lt;li&gt;1 100k resistor&lt;/li&gt;&lt;/ul&gt;Communication Bridge&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://iobridge.com/"&gt;ioBridge IO-204&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://iobridge.com/store/"&gt;ioBridge Serial Smart Board&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=29&amp;amp;products_id=126"&gt;XBee adapter kit&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=29&amp;amp;products_id=128"&gt;XBee Module&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;Fog Machine&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.x10.com/products/x10_lm465.htm"&gt;X10 Appliance module&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.radioshack.com/product/index.jsp?productId=2049721"&gt;125VAC/10A DPDT Plug-In Relay&lt;/a&gt;&amp;nbsp;(as a switch combined with x10)&lt;/li&gt;&lt;li&gt;Styrofoam cooler and dryer hose and Ice to create low laying fog.&lt;br /&gt;&amp;nbsp;(Check my last year Halloween project&amp;nbsp;&lt;a href="http://www.instructables.com/id/Halloween-Dropping-Spider/"&gt;http://www.instructables.com/id/Halloween-Dropping-Spider/ &lt;/a&gt;for more info).&lt;/li&gt;&lt;/ul&gt;Lights and accesories&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.x10.com/products/x10_lm465.htm"&gt;X10 Appliance module&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Incandescent black light, strobe light, black light bulbs.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Candy Dispenser&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_FuhTy6GGV7g/TMbrZZ-1LQI/AAAAAAAAOT8/dyCJ80aCUP8/s1600/DSC_0040.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_FuhTy6GGV7g/TMbrZZ-1LQI/AAAAAAAAOT8/dyCJ80aCUP8/s400/DSC_0040.jpg" width="267" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The first thing was to figure out a good way to hold the candy and dispense it. I used a plastic bucket, a metal ventilation pipe and a CD attached to a servo motor.&amp;nbsp;I figured that by having the candy dispense from the side as opposed to the bottom would allow the candy to move more freely and avoid candy jams.&lt;br /&gt;&lt;br /&gt;The ventilation pipe comes in a "U" shape, so I&amp;nbsp;made a "U" shaped cut in the bottom center of the bucket. Notice I did't cut the whole "U", instead I left a piece of plastic in the middle to hold the servo motor that rotates the CD.&lt;br /&gt;&lt;br /&gt;After I inserted the ventilation pipe I did a few cuts to allow me to expand the pipe into a sheet form. I used a couple screws and bolts to keep the sheet attached to the bucket. &amp;nbsp;The rest of the space was covered by the mighty duck tape.&lt;br /&gt;&lt;br /&gt;I cut the CD to allow the candy flow when rotated. Also I duck&amp;nbsp;taped a continuous&amp;nbsp;servo inside to function as a "shaker."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Control Box&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_FuhTy6GGV7g/TMbpPrrwSvI/AAAAAAAAOT4/9a7nhV2nFHU/s1600/DSC_0027.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_FuhTy6GGV7g/TMbpPrrwSvI/AAAAAAAAOT4/9a7nhV2nFHU/s400/DSC_0027.jpg" width="267" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The control box is pretty simple. I drilled/dremelled a few holes to attach the big red button, ioBridge LCD screen, &amp;nbsp;power jack and the RJ45 jack.&lt;br /&gt;&lt;br /&gt;I really like the use of CAT 5 cable to make things more modular. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Main Box&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_FuhTy6GGV7g/TMbsWOXECvI/AAAAAAAAOUE/JvyWX6yq3Pk/s1600/DSC_0008.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://2.bp.blogspot.com/_FuhTy6GGV7g/TMbsWOXECvI/AAAAAAAAOUE/JvyWX6yq3Pk/s400/DSC_0008.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The main program runs in the&amp;nbsp;Arduino Duemilanove. &amp;nbsp;When the board is initialized it&amp;nbsp;immediately makes a Web call to check for the current code and displays it on the LCD screen.&lt;br /&gt;&lt;br /&gt;The main loop is waiting for either a physical push of the big red button or to receive a remote serial message. The attached XBee module communicates with another XBee module connected to the ioBridge&amp;nbsp;IO-204 module serial board.&lt;br /&gt;&lt;br /&gt;These are the digital I/O pins configuration:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;XBee Module (with adafruit XBee kit)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pin 13 - TX&amp;nbsp;&lt;/li&gt;&lt;li&gt;Pin 12 - RX&lt;/li&gt;&lt;li&gt;Gnd and 5v&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Big Dome Push Button&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pin &amp;nbsp;8 - Button NO(normally open) + &amp;nbsp;GND + 100K.&amp;nbsp;&lt;/li&gt;&lt;li&gt;5v - COM&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Servo 1 (&lt;a href="http://www.kronosrobotics.com/an116/GAN116.shtml"&gt;continuous&amp;nbsp;rotating servo&lt;/a&gt; used for shaking)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pin &amp;nbsp;7 -&amp;nbsp;Data&lt;/li&gt;&lt;li&gt;Gnd and 5v&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Servo 2 (used to rotate the CD)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pin 6 - Data&lt;/li&gt;&lt;li&gt;Gnd and 5v&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;X10 C17A (x10 devices controller)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pin &amp;nbsp;3 - DTR line for C17A - DB9 pin 4&lt;/li&gt;&lt;li&gt;Pin &amp;nbsp;2 - RTS line for C17A - DB9 pin 7&lt;/li&gt;&lt;li&gt;Gnd &amp;nbsp;- DB9 pin 5&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;ioBridge 16x2 serial LCD display&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pin 1 - LCD Data pin&lt;/li&gt;&lt;li&gt;Gnd and 5v&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;Attached is the Arduino Sketch, it also includes a library to control the ioBridge LCD screen.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code Generator&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_FuhTy6GGV7g/TMmo2ZjDsLI/AAAAAAAAOUU/oH4L-T_T9bU/s1600/the-matrix.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://2.bp.blogspot.com/_FuhTy6GGV7g/TMmo2ZjDsLI/AAAAAAAAOUU/oH4L-T_T9bU/s320/the-matrix.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I realized that someone with&amp;nbsp;mischievous&amp;nbsp;intentions could just tweet-spam the @Tweetfortreat account (or less likely someone could text or call my Twilio number numerous times) and I would end up with tons of candy on the floor.&lt;br /&gt;&lt;br /&gt;Instead, I created a REST web service using of course my favorite web development tool, Oracle Application Express&amp;nbsp;&lt;a href="http://apex.oracle.com/"&gt;http://apex.oracle.com/&lt;/a&gt;&amp;nbsp;, to make sure a unique and random code was generated each time candy drop request was made from text, call or Twitter.&lt;br /&gt;&lt;br /&gt;The REST application is really simple and I recognize it can also be created using any other technologies such as LAMP or even a GCI, or Perl application.&lt;br /&gt;&lt;br /&gt;Application Objects:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1 Table (ID,CODE,SELECTED)&lt;/li&gt;&lt;li&gt;1 Numerical Sequence to generate primary key (ID)&lt;/li&gt;&lt;li&gt;1 Trigger before insert record that will get the ID value and append a random number to the CODE column&lt;/li&gt;&lt;li&gt;1 public procedure to retrieve the code (where selected = 1)&lt;/li&gt;&lt;li&gt;1 public&amp;nbsp;procedure&amp;nbsp;to update the code once is used and generate a new one.&lt;/li&gt;&lt;/ul&gt;So I ended up with these two URL&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;http:/my.apexserver.com/pls/apex/getcode&lt;br /&gt;http:/my.apexserver.com/pls/apex/updatecode?code=XXXX&lt;/div&gt;*If you would like to implement something with a static file instead, I would&amp;nbsp;recommend&amp;nbsp;using&amp;nbsp;&lt;a href="http://www.random.org/clients/http/"&gt;http://www.random.org/clients/http/ &lt;/a&gt;to get a random number and store it in file, memory, or even the arduino itself.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ioBridge Setup&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_FuhTy6GGV7g/TMmof2bsZCI/AAAAAAAAOUI/2O5Y_1ktrF8/s1600/iobridge-xbee.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://2.bp.blogspot.com/_FuhTy6GGV7g/TMmof2bsZCI/AAAAAAAAOUI/2O5Y_1ktrF8/s400/iobridge-xbee.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The ioBridge IO-204&amp;nbsp;is used as bridge (duh!) between the arduino and the internet. I am using the ioBridge serial board to connect an XBee module.&lt;br /&gt;&lt;br /&gt;There are two main functions that the ioBridge was used for:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Request current code&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;I do a GET call from the arduino to retrieve the current code from my Code Generator service using &lt;a href="http://www.iobridge.net/wiki/api/serial-web-services-api"&gt;ioBridge&amp;nbsp;Serial Web Services API&lt;/a&gt;.&lt;br /&gt;&amp;nbsp;Arduino code:&lt;br /&gt;&amp;nbsp;mySerial.println("[[[get|http:/my.apexserver.com/pls/apex/getcode]]]");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Start candy dropping sequence by text, call or tweet.&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;An ioBridge widget will send a start character via serial message and the candy dropping sequence will start. This widget can be called using the &lt;a href="http://www.iobridge.net/wiki/api/static-widget-api"&gt;ioBridge Static Widget API&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-left: 40px;"&gt;This URL &amp;nbsp;is called by Twilio and by my custom Twitter alert script.&lt;br /&gt;&lt;br /&gt;http://www.iobridge.com/widgets/static/id=[widgetID]&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;These are the digital I/O pins configuration:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ioBridge Serial Board&lt;/li&gt;&lt;li&gt;TX - RX XBee&lt;/li&gt;&lt;li&gt;RX - TX XBee&lt;/li&gt;&lt;li&gt;GND and 5v&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Twilio Setup&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_FuhTy6GGV7g/TMmopwXeHQI/AAAAAAAAOUM/ZOLGt4Mjxtw/s1600/115770480_300.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_FuhTy6GGV7g/TMmopwXeHQI/AAAAAAAAOUM/ZOLGt4Mjxtw/s1600/115770480_300.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.twilio.com/"&gt;Twilio&lt;/a&gt; is a web-service API for communication apps. Twilio is as simple as it gets. It only &amp;nbsp;took me a short time to get my &amp;nbsp;SMS and Voice applications up and running! I had tried in the past to create similar applications with other technologies (VoiceXML and even Google Voice) and let me tell you is not that easy.&lt;br /&gt;&lt;br /&gt;The voice application answers the phone, plays an intro sound file and asks for the code followed by the # sign. If a code is detected Twilio will do a "GET" action to a PHP file that will lookup the current code from my Code Generator Web Service. If it matches it will call the ioBridge static widget URL and candy will be dispensed.&lt;br /&gt;&lt;br /&gt;The SMS application has almost the same PHP code except this time instead of looking for the digits dialed &amp;nbsp;it will look for body of the SMS message.&lt;br /&gt;&lt;br /&gt;Check the attached XML and PHP files that generate the TwiML XML.&lt;br /&gt;&lt;br /&gt;All in all Twilio is a winner and I have plenty of other ideas for the future.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Twitter Setup&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_FuhTy6GGV7g/TMmovdFpwnI/AAAAAAAAOUQ/7oghpalgqx0/s1600/Twitter-Logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_FuhTy6GGV7g/TMmovdFpwnI/AAAAAAAAOUQ/7oghpalgqx0/s1600/Twitter-Logo.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;No modern internet enabled project is complete without Twitter integration, right? :) Here is mine: This time i used a bash script, &lt;a href="http://github.com/marcel/twurl"&gt;twurl &lt;/a&gt;and a crontab job to check for replies to @tweetfortreat. This bash script is running on my &lt;a href="http://en.wikipedia.org/wiki/SheevaPlug"&gt;Sheevaplug&lt;/a&gt;, but it can be run in any linux/mac machine or it could be adapted to run as .bat in windows (using scheduled tasks).&lt;br /&gt;&lt;br /&gt;Twurl is almost like curl but for Twitter. I did some ugly parsing of the twitter RSS feed to retrieve the tweet sender, but it works!&lt;br /&gt;&lt;br /&gt;Here is my bash script&lt;br /&gt;#!/bin/bash&lt;br /&gt;mycode=`curl --silent http:/my.apexserver.com/pls/apex/getcode`&lt;br /&gt;twitter=`twurl /1/statuses/mentions.rss | grep "@tweetfortreat $mycode" | cut -d ':' -f1 | tail -n 1 | cut -d '&amp;gt;' -f2`&lt;br /&gt;echo $mycode $twitter&lt;br /&gt;if [ -n "$twitter" ]; then&lt;br /&gt;iobridge=`curl --silent http://www.iobridge.com/widgets/static/id=[widgetID]`&lt;br /&gt;newkey=`curl --silent -d "code=$mycode" http:/my.apexserver.com/pls/apex/updatecode`&lt;br /&gt;update=`twurl -d "status=@$twitter The code $mycode is correct. Happy Halloween!" /1/statuses/update.xml`&lt;br /&gt;echo $newkey $iobridge&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;Crontab will only allow you to execute a script every minute and I think is fine for now. Alternatively a while loop could be used instead.&lt;br /&gt;Here is my crontab entry&lt;br /&gt;&lt;br /&gt;*/1 * * * * /script_location/HalloweenCandy.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Conclussion and Alternatives&lt;/b&gt;&lt;br /&gt;If my&amp;nbsp;Google&amp;nbsp;skills (&lt;a href="http://lmgtfy.com/?q=automatic+halloween+candy+dispenser"&gt;http://lmgtfy.com/?q=automatic+halloween+candy+dispense&lt;/a&gt;&lt;a href="http://lmgtfy.com/?q=automatic+halloween+candy+dispenser"&gt;r&lt;/a&gt;)serve me well there are just not many documented&lt;strong&gt; Automatic Halloween Candy Dispensers&lt;/strong&gt; out there. I did run into &lt;a href="http://www.youtube.com/watch?v=IBk7ynSt26o"&gt;this one&lt;/a&gt; which I really like but is limited to M&amp;amp;Ms sized candy.I found some inspiration from the dog/cat feeders built using the internet enabled ioBridge&amp;nbsp;&lt;a href="http://support.iobridge.com/projects/tag/dog-feeder/"&gt;http://support.iobridge.com/projects/tag/dog-feeder/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I hope to see more iterations of the &lt;strong&gt;Automatic Halloween Candy Dispenser &lt;/strong&gt;next year. Please make sure you share all your ideas/improvements in the comments section.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy Halloween!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9221797521554917034-3799497935700727542?l=noelportugal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noelportugal.blogspot.com/feeds/3799497935700727542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://noelportugal.blogspot.com/2010/10/automatic-halloween-candy-dispenser.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/3799497935700727542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/3799497935700727542'/><link rel='alternate' type='text/html' href='http://noelportugal.blogspot.com/2010/10/automatic-halloween-candy-dispenser.html' title='Automatic Halloween Candy Dispenser'/><author><name>Noel Portugal</name><uri>http://www.blogger.com/profile/03892621778640963476</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_FuhTy6GGV7g/Sxf3KqpD-NI/AAAAAAAAOBI/QXIrg_ub-wA/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_FuhTy6GGV7g/TMbo__ZBiQI/AAAAAAAAOT0/Am7vmEkiOB4/s72-c/HCD.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9221797521554917034.post-6416186962722536004</id><published>2009-11-30T12:10:00.004-06:00</published><updated>2010-05-26T14:57:08.366-05:00</updated><title type='text'>xmas-box: Arduino/ioBridge internet controlled Christmas lights and music show</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.instructables.com/files/deriv/FMK/4DRU/G2HDZMYJ/FMK4DRUG2HDZMYJ.MEDIUM.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://www.instructables.com/files/deriv/FMK/4DRU/G2HDZMYJ/FMK4DRUG2HDZMYJ.MEDIUM.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Update - Please check my &lt;a href="http://www.instructables.com/id/xmas-box-ArduinoioBridge-internet-controlled-Chr/"&gt;Instructable&lt;/a&gt; for more detailed pictures!&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Update 2 - I was featured in &lt;a href="http://www.engadget.com/2009/12/03/diy-arduino-christmas-lights-spectacular-turns-bad-taste-into/"&gt;engadget.com&lt;/a&gt; and &lt;a href="http://hackaday.com/2009/12/02/x-mas-hack-8-channel-musical-show/"&gt;hackaday.com&lt;/a&gt; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My xmas-box project consists of an internet&amp;nbsp;controlled Christmas lights and music show. A Christmas&amp;nbsp;song can be requested on-line which is then put in a queue and played in the order it was requested. The music is transmitted on an FM station within a 300 ft radius from my house.&lt;br /&gt;&lt;br /&gt;The xmas-box has&amp;nbsp;&lt;b&gt;8 Channels&lt;/b&gt;  &amp;nbsp;(power outlets) where different light modes can be played: vu meter style, ascending, descending, split, merge, sequence and random. During each song one of these modes is used randomly every 10 seconds (to make the show less monotonous).&lt;br /&gt;&lt;br /&gt;I started my research right after Halloween and I came across a couple different options, but I&amp;nbsp;settled with the following combination of hardware : arduino + adafruit wave shield + ioBridge + wifi bridge + solid state relays (SSRs).&lt;br /&gt;&lt;br /&gt;The xmas-box is enclosed in a small plastic tool box. I have place it on my deck under a roof ( it is not completely weather proof). The tool box has "3 levels." The bottom is where all the SSRs and AC wiring are located. The middle (the inside tray) contains the wall warts for the arduino (9v), ioBridge (5v) and Wifi Bridge with power. The top level contains the Arduino board, the ioBridge module and the FM transmitter.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.instructables.com/files/deriv/F2D/URZW/G2HDZQHK/F2DURZWG2HDZQHK.MEDIUM.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://www.instructables.com/files/deriv/F2D/URZW/G2HDZQHK/F2DURZWG2HDZQHK.MEDIUM.jpg" width="320" /&gt;&lt;/a&gt;This is the first time I lit my house so I was just able to put 3,300 mini lights, 3 spotlights,1 LED Rope, 4 LED (40 led each) branch trees and 1 reindeer. I hope the lights last so I can keep adding each year.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;BoM - Bill of Materials&lt;/b&gt;&lt;br /&gt;Here is the list of materials I used for the xmas-box:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;a href="http://www.instructables.com/files/deriv/FS6/LX93/G2L3BM8V/FS6LX93G2L3BM8V.MEDIUM.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="214" src="http://www.instructables.com/files/deriv/FS6/LX93/G2L3BM8V/FS6LX93G2L3BM8V.MEDIUM.jpg" width="320" /&gt;&lt;/a&gt;&lt;li&gt;&lt;a _fcksavedurl="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=17&amp;amp;products_id=50" href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=17&amp;amp;products_id=50"&gt;Arduino Duemilanove&lt;/a&gt;    &lt;br /&gt;&lt;a _fcksavedurl="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=17_21&amp;amp;products_id=94" href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=17_21&amp;amp;products_id=94"&gt;Adafruit Wave Shield for Arduino Kit - v1.1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a _fcksavedurl="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=17_21&amp;amp;products_id=94" href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;cPath=17_21&amp;amp;products_id=94"&gt;&lt;/a&gt;&lt;a _fcksavedurl="http://www.iobridge.com/store/" href="http://www.iobridge.com/store/"&gt;ioBridge IO-204 Monitor &amp;amp; Control Module&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a _fcksavedurl="http://www.iobridge.com/store/" href="http://www.iobridge.com/store/"&gt;&lt;/a&gt;&amp;nbsp;&lt;a _fcksavedurl="http://www.iobridge.com/store/" href="http://www.iobridge.com/store/"&gt;ioBridge Smart Serial Board&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;  &lt;br /&gt;&lt;/li&gt;&lt;li&gt;SD card (up to 1 GB)&lt;/li&gt;&lt;li&gt;&lt;a _fcksavedurl="http://www.frys.com/product/4855680" href="http://www.frys.com/product/4855680"&gt;PPA Digital FM Transmitter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;10 K resistor&lt;/li&gt;&lt;li&gt;2N2222 transistor&lt;/li&gt;&lt;li&gt;&lt;a _fcksavedurl="http://www.linksysbycisco.com/US/en/support/WET11" href="http://www.linksysbycisco.com/US/en/support/WET11"&gt;Linksys WET11 Wireless Bridge&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;8&amp;nbsp;&lt;a _fcksavedurl="http://www.google.com/products?hl=en&amp;amp;resnum=0&amp;amp;q=solid+state+relays" href="http://www.google.com/products?hl=en&amp;amp;resnum=0&amp;amp;q=solid+state+relays"&gt;Solid State Relays&lt;/a&gt;&amp;nbsp;(I got mine from ebay for $5 each!)&lt;/li&gt;&lt;li&gt;2&amp;nbsp;&lt;a _fcksavedurl="http://www.radioshack.com/product/index.jsp?productId=2210226" href="http://www.radioshack.com/product/index.jsp?productId=2210226"&gt;PowerSquid Power Multiplier&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Plastic Tool Box&lt;/li&gt;&lt;li&gt;Electric Cable&lt;/li&gt;&lt;li&gt;&lt;a _fcksavedurl="http://www.homedepot.com/h_d1/N-5yc1vZ1xr5/R-100021820/h_d2/ProductDisplay" href="http://www.homedepot.com/h_d1/N-5yc1vZ1xr5/R-100021820/h_d2/ProductDisplay"&gt;Wire Connectors&lt;/a&gt;&lt;/li&gt;&lt;li&gt;At least 8 sets of Christmas lights (mini lights, C7, C9, or LED sets)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.instructables.com/files/deriv/FY5/WVIA/G2HDZZ34/FY5WVIAG2HDZZ34.MEDIUM.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://www.instructables.com/files/deriv/FY5/WVIA/G2HDZZ34/FY5WVIAG2HDZZ34.MEDIUM.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Relay Setup&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;b&gt;WARNING&lt;br /&gt;&lt;/b&gt; &lt;b&gt;You will be dealing with AC power.  If you don't feel   comfortable or you are not sure how to handle AC, please consult a   licensed electrician before starting to wire the relays.&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt; A great advantage of using SSRs instead of mechanical relays is that I did not have to add any diodes, transistors, or resistors. Also since there there is no mechanical dependency the switching will be smoother. I would advise to use a breadboard with 1k resistors and different color LEDs during your prototyping. Then when you are ready you can use the SSRs and real Christmas lights.&lt;br /&gt;&lt;br /&gt;The connections are pretty&amp;nbsp;straight&amp;nbsp;forward. I daisy chained the ground coming from the Arduino to each of the 8 SSRs. Then 8 digital outputs from the Arduino were connected to each positive of the 8 SSRs.&lt;br /&gt;&lt;br /&gt;I gutted the &lt;/span&gt;  &lt;a href="http://www.radioshack.com/product/index.jsp?productId=2210226" rel="nofollow"&gt;&lt;span style="font-weight: normal;"&gt;PowerSquid Power Multiplier&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal;"&gt;  and removed the 10 outgoing outlets (5 per PowerSquid) as well as the AC plugs. The 5 outgoing outlets came nicely attached together so I cut one from each that used to power the arduino, ioBridge and Wifi bridge.&lt;br /&gt;&lt;br /&gt;I connected all the Neutrals (white) together, all the Grounds (green) and then I took the Live (black) and daisy chained to each of the 8 SSRs. Then I individually wired each SSR Live wires to one of the 8 outlets.&lt;br /&gt;&lt;br /&gt;I decided to have two power plugs to make the wiring a bit nicer and less bulky. So basically the SSRs on the left are connected to one wall outlet and the SSRs on the right to the other.&lt;/span&gt;  &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.instructables.com/files/deriv/FUZ/LSDJ/G2HDZNTT/FUZLSDJG2HDZNTT.MEDIUM.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://www.instructables.com/files/deriv/FUZ/LSDJ/G2HDZNTT/FUZLSDJG2HDZNTT.MEDIUM.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Arduino Sketch&lt;/b&gt;&lt;/div&gt;&lt;div&gt;You can download the Arduino Sketch from the bottom of this page (xmas_box.pde).&lt;br /&gt;&amp;nbsp;You will need the following Arduino Libraries:&lt;br /&gt;&lt;br /&gt;- &lt;a _fcksavedurl="http://www.ladyada.net/make/waveshield/download.html" href="http://www.ladyada.net/make/waveshield/download.html"&gt;AF_Wave and Wave&lt;/a&gt;&lt;br /&gt;- &lt;a _fcksavedurl="http://www.arduino.cc/en/Tutorial/TextString" href="http://www.arduino.cc/en/Tutorial/TextString"&gt;String&lt;/a&gt; (formerly TextString)&lt;br /&gt;&lt;br /&gt;Here is a run down for the pin connections on the Arduino with WAVE shield on top. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Communication&lt;/b&gt;&lt;br /&gt;D0(RX) -&amp;gt; ioBridge Serial Board TX&lt;br /&gt;D1(TX )-&amp;gt; ioBridge Serial Board RX&lt;br /&gt;&lt;br /&gt;&lt;b&gt;D2-D5 are used by the &lt;a _fcksavedurl="http://www.ladyada.net/make/waveshield/solder.html" href="http://www.ladyada.net/make/waveshield/solder.html"&gt;WAVE shield&lt;/a&gt; (they could be changed)&lt;/b&gt;&lt;br /&gt;D2 -&amp;gt; LCS&lt;br /&gt;D3 -&amp;gt; CLK&lt;br /&gt;D4 -&amp;gt; DI&lt;br /&gt;D5 -&amp;gt; LAT&lt;br /&gt;&lt;br /&gt;&lt;b&gt;xmas-box first 3 channels&lt;/b&gt;&lt;br /&gt;D6 -&amp;gt; Channel 1&lt;br /&gt;D7 -&amp;gt; Channel 2&lt;br /&gt;D8 -&amp;gt;  Channel 3&lt;br /&gt;&lt;br /&gt;&lt;b&gt;FM transmitter ON/OFF&lt;/b&gt;&lt;br /&gt;D9 -&amp;gt; 10k resistor -&amp;gt; 2N2222 Base -- Collector and Emitter to FM transmitter switch&lt;br /&gt;&lt;b&gt;&lt;br /&gt;WAVE shield&lt;/b&gt;&lt;br /&gt;D10 &lt;span style="font-family: Times,serif; font-size: 14px;"&gt;-&amp;gt; LCS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SD card WAVE shield communication (cannot be changed)&lt;/b&gt;&lt;br /&gt;D11&lt;br /&gt;D12&lt;br /&gt;D13&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Power&lt;/b&gt;&lt;br /&gt;Gnd[0] -&amp;gt; Relay daisy chain.&lt;br /&gt;5v pin -&amp;gt; FM transmitter positive&lt;br /&gt;Gnd[1] -&amp;gt; FM transmitter ground&lt;br /&gt;Gnd[2] -&amp;gt; ioBridge Smart Serial Board&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Vu Meter&lt;/b&gt;&lt;br /&gt;A0 -&amp;gt; R7 1.5K on the WAVE shield to measure output from amplifier. See&lt;a _fcksavedurl="http://www.ladyada.net/images/pumpkin/analogwire.jpg" href="http://www.ladyada.net/images/pumpkin/analogwire.jpg"&gt; image&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Analog pins 1-5 are used as digital out for xmas-box channels&lt;/b&gt;&lt;br /&gt;A1 = D15 -&amp;gt; Channel 4&lt;br /&gt;A2 = D16 -&amp;gt; Channel 5&lt;br /&gt;A3 = D17 -&amp;gt; Channel 6&lt;br /&gt;A4 = D18 -&amp;gt; Channel 7&lt;br /&gt;A5 = D19 -&amp;gt; Channel 8&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Wave shield speaker (mono) to FM transmitter input&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.instructables.com/files/deriv/FJS/CYEU/G2L3BMFR/FJSCYEUG2L3BMFR.MEDIUM.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://www.instructables.com/files/deriv/FJS/CYEU/G2L3BMFR/FJSCYEUG2L3BMFR.MEDIUM.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;ioBridge Configuration&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-weight: normal;"&gt;The ioBridge configuration is a breeze! All you have to do is Serial.print the current track number being played to the ioBridge Serial Board. The serial board will hold the track number and have it available to be retrieved by the Data Feed API in JSON format (LastSerialOutput).&lt;br /&gt;I also created a series of widgets with predefined xmas-box commands for a one-click input. &lt;br /&gt;&lt;br /&gt;Here is the syntax to communicate with the xmas-box through serial communication.&amp;nbsp; The semi-colon indicates the end of the command.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Next track&lt;/b&gt; &lt;br /&gt;n;&lt;br /&gt;&lt;b&gt;Put on queue&lt;/b&gt; &lt;br /&gt;q(1-99);&lt;br /&gt;&lt;b&gt;Put on queue&lt;/b&gt; &lt;b&gt;with specific light mode&lt;/b&gt; &lt;br /&gt;q(1-99)m(1-8)&lt;b&gt;;&lt;br /&gt;Change light mode&lt;br /&gt;&lt;/b&gt; xxxm(1-7);&lt;br /&gt;&lt;b&gt;Turn all lights on/off&lt;/b&gt; &lt;br /&gt;xxxm8{1/0);&lt;br /&gt;&lt;b&gt;Turn individual channel on/off&lt;/b&gt; &lt;br /&gt;xxxm9(1-8)(1/0);&lt;/span&gt; &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.instructables.com/files/deriv/FIA/BW31/G2L3BMCY/FIABW31G2L3BMCY.MEDIUM.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://www.instructables.com/files/deriv/FIA/BW31/G2L3BMCY/FIABW31G2L3BMCY.MEDIUM.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;FM Transmitter&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I was hoping to find a Belkin TuneCast II since I have found a lot of information online (including &lt;a href="http://www.instructables.com/id/Belkin-Tunecast-II-FM-Transmitter-Mod/" rel="nofollow"&gt;this instructable&lt;/a&gt; ) but I had to settle with the &lt;a href="http://www.frys.com/product/4855680" rel="nofollow"&gt;PPA Digital   FM Transmitter&lt;/a&gt;  and it worked out pretty well! The only modifications I had to do were to desolder the stereo mini plug and connect 2 wires coming from the WAVE shield speaker output and desolder the mini barrel plug to connect power directly from the Arduino.&lt;br /&gt;&lt;br /&gt;I'm powering the FM transmitter with the 5v coming out from the Arduino. This would probably not be a good idea if I was powering the Arduino with a 9v battery but since I'm using a wall wart I'm not too concerned.&lt;br /&gt;&lt;br /&gt;I am bypassing the ON/OFF switch by connecting a 2N2222 transistor connected to a 10k resistor coming from a digital output from the Arduino. To turn on I just send a fast HIGH/delay/LOW and that's all I need to start the FM transmitter.&lt;br /&gt;&lt;br /&gt;I also soldered a wire as an antenna to the ground of the battery power pin.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.instructables.com/files/deriv/FD1/U90K/G2HDZQ5H/FD1U90KG2HDZQ5H.MEDIUM.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://www.instructables.com/files/deriv/FD1/U90K/G2HDZQ5H/FD1U90KG2HDZQ5H.MEDIUM.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Web Interface&lt;/b&gt;&lt;br /&gt;I decided to leave the job of song queuing to a web application. I am using &lt;a href="http://apex.oracle.com/" rel="nofollow"&gt;Oracle Application Express&lt;/a&gt;  (APEX) for http://xmas-box.com since this is my favorite rapid web application development tool. But this can also be managed by any database oriented web solution (ie&amp;nbsp; Linux/Apache/MySQL/PHP -&amp;nbsp; LAMP). &lt;br /&gt;&lt;br /&gt;I have 2 main tables:&lt;br /&gt;SONGS - It stores the name and artist of the song&lt;br /&gt;QUEUE - it stores the song requests&lt;br /&gt;&lt;br /&gt;The web app uses jQuery to retrieve the ioBridge JSON Data Feeed API to determine the current song being played. Using Javascript I retrieve LastSerialOutput node that holds the number of the current track. &lt;br /&gt;&lt;br /&gt;Then another jQuery calls my web application REST service and sends the track number. The REST service returns the song name,artists and name of the person that requested the song.&lt;br /&gt;&lt;br /&gt;If the song was not on the queue it means that its just looping through the play list. So in this case the requester will be &lt;b&gt;Santa Claus&lt;/b&gt;  itself! And it will show Santa's current location by retrieving it from   &lt;a href="http://www.noradsanta.org/" rel="nofollow"&gt;http://www.noradsanta.org/&lt;/a&gt;  feed.&lt;br /&gt;&lt;br /&gt;The page might have a live view and live sound, but I'm still working on that...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.instructables.com/files/deriv/F0R/9JQV/G2HDZO6G/F0R9JQVG2HDZO6G.MEDIUM.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.instructables.com/files/deriv/F0R/9JQV/G2HDZO6G/F0R9JQVG2HDZO6G.MEDIUM.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Alternatives&lt;/b&gt;&lt;/div&gt;&lt;div&gt;During my research I stumbled upon a few mentionable resources. My requirements became more tight since I wanted a computer-free solution, a stand-alone application and that is why I went with the WAVE shield . Another possible way is to get a cheap mp3 player and build an op amp low filter to detect beats on the music, but then again the WAVE shield is actually pretty inexpensive so it worked out better.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Beat detection&lt;/b&gt; &lt;br /&gt;One of the easiest ways to do an Arduino based light/sound show is by using a combination of Proccessing + Minim+ Firmata. All you need is to have serial communication from your pc to your arduino.&amp;nbsp; These instructables rely on Minim's beat detection and could be adapted for Christmas lights:&lt;br /&gt;&lt;a href="http://www.instructables.com/id/LED-Dance-Room/" rel="nofollow"&gt;LED Dance Room&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.instructables.com/id/Music-Synchronized-LED-Pumpkin/" rel="nofollow"&gt;Music Synchronized LED Pumpkin &lt;/a&gt; &lt;br /&gt;&lt;b&gt;   &lt;br /&gt;Relay board fabrication&lt;/b&gt; &lt;br /&gt;You can follow the &lt;a href="http://www.instructables.com/id/Arduino-Christmas-Light-Controller/" rel="nofollow"&gt;Arduino Christmas Light Controller&lt;/a&gt;  Instructable if you prefer to build your own relay board. Note that this will be using mechanical relays instead of SSRs.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Internet communication&lt;/b&gt; &lt;br /&gt;Another alternative for the web control part is to have a secondary Arduino with a Ethernet shield or a wi-fi shield (it will be absolutely necessary to have a second Arduino board). But as a side note I really like using the ioBridge module. Their servers manage all incoming/outgoing connections and the Data Feeds and APIs offers great flexibility.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Commercial/Hobby products&lt;/b&gt; &lt;br /&gt;&lt;a href="http://diylightanimation.com/" rel="nofollow"&gt;diylightanimation.com (Linx)&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.animatedlighting.com/" rel="nofollow"&gt;animatedlighting.com&lt;/a&gt;  (they got a Christmas In A Box 4 channel for $500!!)&lt;br /&gt;&lt;a href="http://www.lightorama.com/products.html" rel="nofollow"&gt;Ligh-O-Rama&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9221797521554917034-6416186962722536004?l=noelportugal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noelportugal.blogspot.com/feeds/6416186962722536004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://noelportugal.blogspot.com/2009/11/xmas-box-arduinoiobridge-internet.html#comment-form' title='52 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/6416186962722536004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/6416186962722536004'/><link rel='alternate' type='text/html' href='http://noelportugal.blogspot.com/2009/11/xmas-box-arduinoiobridge-internet.html' title='xmas-box: Arduino/ioBridge internet controlled Christmas lights and music show'/><author><name>Noel Portugal</name><uri>http://www.blogger.com/profile/03892621778640963476</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_FuhTy6GGV7g/Sxf3KqpD-NI/AAAAAAAAOBI/QXIrg_ub-wA/S220/me.jpg'/></author><thr:total>52</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9221797521554917034.post-6345538205599781174</id><published>2009-11-01T09:09:00.016-06:00</published><updated>2009-11-01T11:04:13.887-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='halloween'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='dropping spider'/><category scheme='http://www.blogger.com/atom/ns#' term='twitpic'/><category scheme='http://www.blogger.com/atom/ns#' term='iobridge'/><category scheme='http://www.blogger.com/atom/ns#' term='relays'/><category scheme='http://www.blogger.com/atom/ns#' term='x10'/><category scheme='http://www.blogger.com/atom/ns#' term='servo'/><category scheme='http://www.blogger.com/atom/ns#' term='Jackolantern'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='fog machine'/><title type='text'>Halloween Dropping Spider</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_FuhTy6GGV7g/SuxsqALGh4I/AAAAAAAAN9k/xddZgEh6NVc/s1600-h/DSC_0164.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_FuhTy6GGV7g/SuxsqALGh4I/AAAAAAAAN9k/xddZgEh6NVc/s400/DSC_0164.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;My Halloween project consisted of a dropping spider triggered by a PIR&amp;nbsp;motion&amp;nbsp;sensor mounted on a Jackolantern. The motion sensor triggered a dropping spider, lights, sounds, low laying fog and finally a tweet with a picture attached (&lt;a href="http://twitter.com/ioalerts"&gt;http://twitter.com/ioalerts&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;These are the parts that I used for this project:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://arduino.cc/en/Main/ArduinoBoardDuemilanove"&gt;&lt;span style="font-size: x-small;"&gt;Arduino&amp;nbsp;Duemilanove&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.adafruit.com/index.php?main_page=product_info&amp;amp;products_id=51"&gt;&lt;span style="font-size: x-small;"&gt;Adafruit Protoshield&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://iobridge.com/"&gt;&lt;span style="font-size: x-small;"&gt;ioBridge IO-204&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://iobridge.com/store/"&gt;&lt;span style="font-size: x-small;"&gt;ioBridge Serial Smart Board&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;x10 Firecracker&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: sans-serif; line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://kbase.x10.com/wiki/Firecracker"&gt;CM17A&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;x10 Transeiver, Appliance and lamp modules&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;VHS tape&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;a href="http://iobridge.com/store/"&gt;&lt;span style="font-size: x-small;"&gt;2 Futaba S3003 servos&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;Nylon rope&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;Plastic Jackolantern&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;a href="http://www.radioshack.com/product/index.jsp?productId=2906724"&gt;&lt;span style="font-size: x-small;"&gt;Parallax PIR sensor&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;2 red LEDs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;2 1K resistors&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-family: arial, helvetica, clean, sans-serif; line-height: normal; white-space: pre;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.target.com/Big-Time-Toys-Checklane-Yada/dp/B001F3EPQQ"&gt;Checklane Yada Yada Yada&lt;/a&gt; (thanks Erick for the tip &lt;a href="http://www.instructables.com/id/Arduino-controlled-Silly-String-shooter/"&gt;http://www.instructables.com/id/Arduino-controlled-Silly-String-shooter/&lt;/a&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial, helvetica, clean, sans-serif;"&gt;&lt;span style="white-space: pre;"&gt;&lt;span style="font-family: sans-serif; line-height: 19px; white-space: normal;"&gt;&lt;span style="font-size: x-small;"&gt;1 2N2222 tranisistor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;1 10k resistor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif; line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;Fog Machine&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;a href="http://www.radioshack.com/product/index.jsp?productId=2049721"&gt;&lt;span style="font-size: x-small;"&gt;125VAC/10A DPDT Plug-In Relay&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;(as a switch combined with x10)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;Styrofoam cooler&amp;nbsp;and dryer hose and Ice to create low laying fog.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;Wireless webcam&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;Lights&amp;nbsp;and accesories&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: sans-serif;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;span style="font-size: x-small;"&gt;Incandescent&amp;nbsp;black light, strobe light, black light bulbs.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_FuhTy6GGV7g/SuxtLIvUR4I/AAAAAAAAN90/jp6cAT1rBls/s1600-h/DSC_0187.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_FuhTy6GGV7g/Suxs8bQLyxI/AAAAAAAAN9s/eO9ZpaNA-v8/s1600-h/DSC_0171.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_FuhTy6GGV7g/Suxs8bQLyxI/AAAAAAAAN9s/eO9ZpaNA-v8/s1600/DSC_0171.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_FuhTy6GGV7g/Suxs8bQLyxI/AAAAAAAAN9s/eO9ZpaNA-v8/s320/DSC_0171.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;b&gt;Setup&lt;/b&gt;&lt;br /&gt;It's all pretty basic. The arduino controlled the PIR motion sensor, the servos for dropping spider reel, Jackolantern LED lights, toy with scary sound, and the X10 CM17A. Then the arduino sent a serial message to the ioBridge serial API telling to GET the URL of my site. Then on my site I had a bash script with a while loop looking for request&amp;nbsp;coming&amp;nbsp;from the ioBridge server, then the script played a sound, grab the picture from a wireless webcam and post it to twitter via twitpic's API using cURL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_FuhTy6GGV7g/SuxtLIvUR4I/AAAAAAAAN90/jp6cAT1rBls/s1600/DSC_0187.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_FuhTy6GGV7g/SuxtLIvUR4I/AAAAAAAAN90/jp6cAT1rBls/s320/DSC_0187.JPG" /&gt;&lt;/a&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;b&gt;Arduino Sketch&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;a href="http://noelportugal.googlepages.com/DroppingSpider.pde"&gt;Here is the arduino sketch&lt;/a&gt;. I used the&amp;nbsp;X10Firecracker and the Servo libraries as well as the PIR sensor example from the &lt;a href="http://www.arduino.cc/playground/Code/PIRsense"&gt;arduino playground&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_FuhTy6GGV7g/Suxu01cfrII/AAAAAAAAN-E/jx1wX57jy9A/s1600-h/DSC_0193.JPG" imageanchor="1" style="clear: left; display: inline !important; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_FuhTy6GGV7g/Suxu01cfrII/AAAAAAAAN-E/jx1wX57jy9A/s320/DSC_0193.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: sans-serif; font-size: 13px; font-weight: bold; line-height: 19px;"&gt;Spider Reel&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;I end up using an VHS tape as a reel. I had to modify one servo to have&amp;nbsp;continuous&amp;nbsp;rotation. I used &lt;a href="http://www.kronosrobotics.com/an116/GAN116.shtml"&gt;this guide&lt;/a&gt; to do so. The second servo just did the lift part.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_FuhTy6GGV7g/Suxuqv0McAI/AAAAAAAAN98/r1yI97sVct8/s1600-h/DSC_0185.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_FuhTy6GGV7g/Suxuqv0McAI/AAAAAAAAN98/r1yI97sVct8/s320/DSC_0185.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: sans-serif; font-size: 13px; font-weight: bold; line-height: 19px;"&gt;ioBridge Monitor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-weight: normal; line-height: normal;"&gt;To establish the arduino-ioBridge serial communication I was planning to use an RF solution, but due to time constraints I had to use a long&amp;nbsp;speaker&amp;nbsp;cable to connect the arduino TX to ioBridge's Serial Board RX with one wire and the second for GND.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;This is the bash script I used to trigger a sound as well as send a twitpic.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I used my mac os x Apache 2 server. I had to give write permisions to the access_log so I could append a bogus line as a "break".&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;&lt;span style="font-family: monospace; line-height: normal; white-space: pre;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;#!/bin/bash &lt;br /&gt;booCounter=$1&lt;br /&gt;while true;do&lt;br /&gt;status=`tail -n 1 /private/var/log/apache2/access_log | cut -f 1 -d "-"`&lt;br /&gt;if [ "$status" = "00.00.000.000 " ]&lt;br /&gt;then&lt;br /&gt;echo "Boo" &amp;gt;&amp;gt; /private/var/log/apache2/access_log&lt;br /&gt;afplay /full/path/Halloween/werewolf.mp3&lt;br /&gt;msg="Boo, victim $booCounter just got really scared"&lt;br /&gt;sleep 5&lt;br /&gt;curl -O http://www.mywebcam.com/IMAGE.JPG&lt;br /&gt;curl -F media=@/full/path/Halloween/IMAGE.JPG -F "username=username" -F "password=password" -F "message=$msg" http://twitpic.com/api/uploadAndPost&lt;br /&gt;let booCounter=booCounter+1&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_FuhTy6GGV7g/Su2hPz-35QI/AAAAAAAAN-U/uCg3g2knwso/s1600-h/DSC_0048.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_FuhTy6GGV7g/Su2hPz-35QI/AAAAAAAAN-U/uCg3g2knwso/s200/DSC_0048.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_FuhTy6GGV7g/Su2hB9MBSYI/AAAAAAAAN-M/4F4eviQBGXs/s1600-h/DSC_0047.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_FuhTy6GGV7g/Su2hB9MBSYI/AAAAAAAAN-M/4F4eviQBGXs/s200/DSC_0047.JPG" /&gt;&lt;/a&gt;&lt;b&gt;Fog Machine&amp;nbsp;&lt;/b&gt;&lt;br /&gt;I got&lt;a href="http://www.spirithalloween.com/product/fog-machine/"&gt; this fog machine&lt;/a&gt;&amp;nbsp;that comes with manual fog release switch.&lt;br /&gt;&amp;nbsp;I just soldered the 125VAC/10A DPDT Plug-In Relay to the switch and connected to an X10 appliance module.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fog Chiller&lt;/b&gt;&lt;br /&gt;I made this low laying fog cooler following this&amp;nbsp;&lt;a href="http://www.instructables.com/id/Super-Cheap-and-Easy-Fog-Chiller/"&gt;instructable&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;div class="" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;b&gt;&amp;nbsp;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ahfG8N8Z2YI&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ahfG8N8Z2YI&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;b&gt;Commnents/Notes&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;I originally used a PING sensor but got better results using the PIR sensor instead. I had to decrease the sensing radius by creating a cone (pumpkin nose) around the sensor.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;The twitpic implementation could have been better. Camera placement and lighting were poor :(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9221797521554917034-6345538205599781174?l=noelportugal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noelportugal.blogspot.com/feeds/6345538205599781174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://noelportugal.blogspot.com/2009/11/halloween-dropping-spider-jackolantern.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/6345538205599781174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/6345538205599781174'/><link rel='alternate' type='text/html' href='http://noelportugal.blogspot.com/2009/11/halloween-dropping-spider-jackolantern.html' title='Halloween Dropping Spider'/><author><name>Noel Portugal</name><uri>http://www.blogger.com/profile/03892621778640963476</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_FuhTy6GGV7g/Sxf3KqpD-NI/AAAAAAAAOBI/QXIrg_ub-wA/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_FuhTy6GGV7g/SuxsqALGh4I/AAAAAAAAN9k/xddZgEh6NVc/s72-c/DSC_0164.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9221797521554917034.post-4038112115198372177</id><published>2009-09-27T23:57:00.002-05:00</published><updated>2009-09-28T00:02:05.604-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webcam'/><category scheme='http://www.blogger.com/atom/ns#' term='pir sensor'/><category scheme='http://www.blogger.com/atom/ns#' term='iobridge'/><category scheme='http://www.blogger.com/atom/ns#' term='servo'/><title type='text'>Webcam + PIR sensor + servos +ioBridge + txt message alerts = awesome security system</title><content type='html'>So I extended my webcam project to become a security system while I was away for the last couple weeks.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_FuhTy6GGV7g/SsBAJHfGt9I/AAAAAAAAN3g/gqZC0E-5Ge0/s1600-h/DSC_0715.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_FuhTy6GGV7g/SsBAJHfGt9I/AAAAAAAAN3g/gqZC0E-5Ge0/s320/DSC_0715.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I mounted a webcam with two Futaba S3003 servos (pan + tilt) with the help of a &lt;a href="http://www.meccano.com/products/multimodels/product.php?ref=833501"&gt;Meccano 5-model set&lt;/a&gt; . I also installed 2 PIR sensors to detect movement. Then I mounted all to a tripod.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_FuhTy6GGV7g/SsBBl_dUr0I/AAAAAAAAN3o/ZvrN-Rv7JUk/s1600-h/DSC_0704.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_FuhTy6GGV7g/SsBBl_dUr0I/AAAAAAAAN3o/ZvrN-Rv7JUk/s320/DSC_0704.JPG" /&gt;&lt;/a&gt; I created 2 ioBridge messaging actions to send me a TXT message if any of the PIR sensor went to the ON position (note that I only activated this action while away to avoid receiving a huge amount of TXTs) and also a Digital input to servo position action to move the camera to the direction of movement.&lt;br /&gt;&lt;br /&gt;I placed the camera on the side of my main hall, so I was able to get at 180 degree view of my house while away. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_FuhTy6GGV7g/SsBB3TH9brI/AAAAAAAAN3w/CP5hIYUY1v0/s1600-h/DSC_0710.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_FuhTy6GGV7g/SsBB3TH9brI/AAAAAAAAN3w/CP5hIYUY1v0/s320/DSC_0710.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Luckily it only went off once when I asked my sister to come to my house to grab something for me :) , other than that It worked great! I also used my x10 controllers to turn on/off a few lights inside my house as well as a lamp candle (&lt;a href="http://www.scentsy.net/"&gt;scentsy&lt;/a&gt;) that I was able to to turn on the day I flew back home.&lt;br /&gt;&lt;br /&gt;Now I only wonder what will it take to tap&amp;nbsp; into my actual security system with my ioBridge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9221797521554917034-4038112115198372177?l=noelportugal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noelportugal.blogspot.com/feeds/4038112115198372177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://noelportugal.blogspot.com/2009/09/webcam-pir-sensor-servos-iobridge-txt.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/4038112115198372177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/4038112115198372177'/><link rel='alternate' type='text/html' href='http://noelportugal.blogspot.com/2009/09/webcam-pir-sensor-servos-iobridge-txt.html' title='Webcam + PIR sensor + servos +ioBridge + txt message alerts = awesome security system'/><author><name>Noel Portugal</name><uri>http://www.blogger.com/profile/03892621778640963476</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_FuhTy6GGV7g/Sxf3KqpD-NI/AAAAAAAAOBI/QXIrg_ub-wA/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_FuhTy6GGV7g/SsBAJHfGt9I/AAAAAAAAN3g/gqZC0E-5Ge0/s72-c/DSC_0715.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9221797521554917034.post-3716959898861986421</id><published>2009-08-24T20:59:00.000-05:00</published><updated>2009-08-24T23:44:11.298-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webcam'/><category scheme='http://www.blogger.com/atom/ns#' term='PIR'/><category scheme='http://www.blogger.com/atom/ns#' term='iobridge'/><title type='text'>ioBridge First Project: Webcam with PIR sensor.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FuhTy6GGV7g/SpNd3pDT_TI/AAAAAAAANzs/VE8JsC0IEes/s1600-h/P1080885.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 180px;" src="http://3.bp.blogspot.com/_FuhTy6GGV7g/SpNd3pDT_TI/AAAAAAAANzs/VE8JsC0IEes/s320/P1080885.JPG" alt="" id="BLOGGER_PHOTO_ID_5373741990877068594" border="0" /&gt;&lt;/a&gt;&lt;div&gt;Since I can recollect using the internet (91/92?) I have been doing the following search: &lt;a href="http://dir.yahoo.com/computers_and_internet/internet/devices_connected_to_the_internet/"&gt;"Devices Connected to the Internet"&lt;/a&gt; (remember yahoo directory!), and have always been wondering when was my turn to connect "something" to the tubes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was finally able to create my own webcam with a Passive Infrared (PIR) sensor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://1.bp.blogspot.com/_FuhTy6GGV7g/SpNoTjalXbI/AAAAAAAAN0U/eef0aHe-sp0/s320/P1080889.JPG" style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 180px;" alt="" id="BLOGGER_PHOTO_ID_5373753465516678578" border="0" /&gt;&lt;div&gt;A couple weeks ago I stumbled in to &lt;a href="http://www.iobridge.com/"&gt;ioBridge&lt;/a&gt;. The minute I saw it I knew I needed it :) . I have&lt;/div&gt;&lt;div&gt;been interested in home automation for while (and even invested on some x10 devices) but I have been always looking for the missing link; internet connectivity.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;So this is pretty basic. I have a webcam mounted on a Futaba S3003 servo. I ordered the servo controller smart board as well from ioBridge so all necessary servo communication is done.&lt;/div&gt;&lt;div&gt;I'm using an Airlink 101 wireless webcam (got it at Frys) , and it is really nice that it has a bottom and top standard tripod compatible screw. So all I had to do is get an extra tripod base adaptor that I mounted directly to my servo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_FuhTy6GGV7g/SpNfiA9WaRI/AAAAAAAAN0M/clTnz6lMroU/s320/pRS1C-4169793w345.jpg" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 218px;" alt="" id="BLOGGER_PHOTO_ID_5373743818360645906" border="0" /&gt;&lt;div&gt;As soon as I got my ioBridge, I ran to radio shack to see what I could find. Sadly Radio Shack does not have the biggest stock of electronic components (at least the one close to my house). But I did manage to find this: a &lt;a href="http://www.radioshack.com/product/index.jsp?productId=2906724"&gt;Pir Sensor Module&lt;/a&gt;. The voltage required is 3.3-5v, and it has a digital signal output.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then on friday hackaday.com published this&lt;a href="http://hackaday.com/2009/08/21/passive-infrared-pir-sensor-tutorial/"&gt; passive infrared (PIR) tutorial&lt;/a&gt; and there I found a link to the &lt;a href="http://luckylarry.co.uk/2009/07/arduino-very-basic-motion-tracking-with-2-pir-sensors/"&gt;following project&lt;/a&gt; which inspired me to do the same minus the arduino board (which btw I will be getting one soon). And here is where I found out how much ioBridge rocks! I am able to do basically the same using&lt;a href="http://www.iobridge.net/wiki/actions" style="text-decoration: none;"&gt; ioBridge actions&lt;/a&gt;. This is truly amazing!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also implemented an iPhone version using the ioBridge &lt;a href="http://www.iobridge.net/wiki/projects/iturn"&gt;iTurn&lt;/a&gt; as an example where I can pan the camara depending on my iPhone orientation. Pretty neat!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_FuhTy6GGV7g/SpNeU5QVIYI/AAAAAAAANz8/f7gdwio3hbo/s320/Servo_Control.jpg" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 301px;" alt="" id="BLOGGER_PHOTO_ID_5373742493442843010" border="0" /&gt;&lt;/div&gt;&lt;div&gt;Using the ioBridge JavaScipt API I was also able to create buttons to move the camera.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can also see that I have a light control. That implementation is using&lt;a href="http://www.x10.com/automation/firecracker.htm"&gt; x10 Firecracker&lt;/a&gt; PC serial interface connected to a linux machine and some x10 linux controlling software (&lt;a href="http://www.sgtwilko.f9.co.uk/bluelava/"&gt;BlueLava&lt;/a&gt; + &lt;a href="http://heyu.tanj.com/"&gt;Heyu&lt;/a&gt;) which I expect to replace soon with an ioBridge x10 smart board.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Video after the break....&lt;/div&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler_69445db"&gt;&lt;param name="movie" value="http://www.viddler.com/player/69445db/" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed src="http://www.viddler.com/player/69445db/" width="437" height="370" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_69445db"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9221797521554917034-3716959898861986421?l=noelportugal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noelportugal.blogspot.com/feeds/3716959898861986421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://noelportugal.blogspot.com/2009/08/iobridge-first-project-webcam-with-pir.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/3716959898861986421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9221797521554917034/posts/default/3716959898861986421'/><link rel='alternate' type='text/html' href='http://noelportugal.blogspot.com/2009/08/iobridge-first-project-webcam-with-pir.html' title='ioBridge First Project: Webcam with PIR sensor.'/><author><name>Noel Portugal</name><uri>http://www.blogger.com/profile/03892621778640963476</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_FuhTy6GGV7g/Sxf3KqpD-NI/AAAAAAAAOBI/QXIrg_ub-wA/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FuhTy6GGV7g/SpNd3pDT_TI/AAAAAAAANzs/VE8JsC0IEes/s72-c/P1080885.JPG' height='72' width='72'/><thr:total>3</thr:total></entry></feed>
