{"id":1304,"date":"2015-12-10T02:50:47","date_gmt":"2015-12-10T02:50:47","guid":{"rendered":"http:\/\/www.richa1.com\/RichardAlbritton\/?p=1304"},"modified":"2015-12-10T02:53:25","modified_gmt":"2015-12-10T02:53:25","slug":"iot-holiday-lights","status":"publish","type":"post","link":"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/","title":{"rendered":"IOT Holiday Lights"},"content":{"rendered":"<pre class=\"lang:arduino decode:true \" title=\"IOT Holiday lights\">#include \"application.h\"\r\n#include \"neopixel\/neopixel.h\"\r\n\r\nSYSTEM_MODE(AUTOMATIC);\r\n\r\n\/\/ IMPORTANT: Set pixel COUNT, PIN and TYPE\r\n#define PIXEL_PIN A5\r\n#define PIXEL_COUNT 11\r\n#define PIXEL_TYPE WS2812B\r\n\r\nAdafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);\r\n\r\nint show = 0;\r\nint flash = 0;\r\n\r\nvoid setup() \r\n{\r\n  strip.begin();\r\n  strip.show(); \/\/ Initialize all pixels to 'off'\r\n  Spark.function(\"led\",ledToggle);\r\n}\r\nvoid loop() \r\n{\r\n      switch (show) {\r\n    case 0:    \/\/ your hand is nowhere near the sensor\r\n      off();\r\n      break;\r\n    case 1:    \/\/ your hand is on the sensor\r\n      rainbow(30);\r\n      break;\r\n    case 2:    \/\/ your hand is close to the sensor\r\n      theaterChaseRainbow(700);\r\n      break;\r\n    case 3:    \/\/ your hand is a few inches from the sensor\r\n      purple();\r\n      break;\r\n  }\r\n  delay(1);        \/\/ delay in between reads for stability\r\n\r\n}\r\n\r\nint ledToggle(String command) {\r\n    if (command==\"off\") {\r\n        show = 0;\r\n        return 0;\r\n    } else if (command==\"on\"){\r\n        show = 1;\r\n        return 1;\r\n    } else if (command==\"chase\"){\r\n          show = 2;\r\n          return 2;\r\n    } else if (command==\"purple\"){\r\n          show = 3;\r\n          return 3;\r\n    } else if (command.indexOf(\"today\") &amp; command.indexOf(\"wind\")){\r\n        int firstComma = command.indexOf(',');\r\n        int secondComma = command.indexOf(',', firstComma + 1 );\r\n        purple();\r\n    }\r\n  delay(1);        \/\/ delay in between reads for stability\r\n}\r\n\r\nvoid rainbow(uint8_t wait) {\r\n  uint16_t i, j;\r\n\r\n  for(j=0; j&lt;256; j++) {\r\n    for(i=0; i&lt;strip.numPixels(); i++) {\r\n      strip.setPixelColor(i, Wheel(((i * 256 \/ (strip.numPixels()\/3))+j) &amp; 255));\r\n    }\r\n    strip.show();\r\n    delay(wait);\r\n  }\r\n  \/\/if (flash == 1){\r\n   \/\/  flash=0;\r\n  \/\/} else {\r\n     \/\/ flash++;\r\n \/\/ }\r\n  }\r\n  \r\nvoid purple() {\r\n  uint16_t i;\r\n    for(i=0; i&lt;strip.numPixels(); i++) {\r\n      strip.setPixelColor(i, strip.Color(100,0,100));\r\n    }\r\n    strip.show();\r\n}\r\n  \r\nvoid off() {\r\n  uint16_t i;\r\n    for(i=0; i&lt;strip.numPixels(); i++) {\r\n      strip.setPixelColor(i, strip.Color(0,0,0));\r\n    }\r\n    strip.show();\r\n}\r\n\r\n\/\/Theatre-style crawling lights with rainbow effect\r\nvoid theaterChaseRainbow(uint8_t wait) {\r\n  for (int j=0; j &lt; 256; j++) {     \/\/ cycle all 256 colors in the wheel\r\n    for (int q=0; q &lt; 2; q++) {\r\n      for (int i=0; i &lt; strip.numPixels(); i=i+2) {\r\n        strip.setPixelColor(i+q, Wheel( ((i * 256 \/ (strip.numPixels()\/2))+j) % 255));    \/\/turn every third pixel on\r\n      }\r\n      strip.show();\r\n\r\n      delay(wait);\r\n\r\n      for (int i=0; i &lt; strip.numPixels(); i=i+2) {\r\n        strip.setPixelColor(i+q, 0);        \/\/turn every third pixel off\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n\/\/ Input a value 0 to 255 to get a color value.\r\n\/\/ The colours are a transition r - g - b - back to r.\r\nuint32_t Wheel(byte WheelPos) {\r\n  if(WheelPos &lt; 85) {\r\n   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\r\n  } else if(WheelPos &lt; 170) {\r\n   WheelPos -= 85;\r\n   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);\r\n  } else {\r\n   WheelPos -= 170;\r\n   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);\r\n  }\r\n}\r\n<\/pre>\n<p><a href=\"http:\/\/www.richa1.com\/RichardAlbritton\/wp-content\/uploads\/2015\/12\/Holiday-lights_bb.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1305 size-full\" src=\"http:\/\/www.richa1.com\/RichardAlbritton\/wp-content\/uploads\/2015\/12\/Holiday-lights_bb.png\" alt=\"Holiday lights_bb\" width=\"816\" height=\"636\" srcset=\"https:\/\/www.richa1.com\/RichardAlbritton\/wp-content\/uploads\/2015\/12\/Holiday-lights_bb.png 816w, https:\/\/www.richa1.com\/RichardAlbritton\/wp-content\/uploads\/2015\/12\/Holiday-lights_bb-300x234.png 300w\" sizes=\"(max-width: 816px) 100vw, 816px\" \/><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/\" target=\"_blank\" title=\"Click to print\"><span>Print<\/span><\/a><\/li><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/?share=email\" target=\"_blank\" title=\"Click to email this to a friend\"><span>Email<\/span><\/a><\/li><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-1304\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-1304\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\"><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>#include &#8220;application.h&#8221; #include &#8220;neopixel\/neopixel.h&#8221; SYSTEM_MODE(AUTOMATIC); \/\/ IMPORTANT: Set pixel COUNT, PIN and TYPE #define PIXEL_PIN A5 #define PIXEL_COUNT 11 #define PIXEL_TYPE WS2812B Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); int show = 0; int flash = 0; void setup() { strip.begin(); strip.show(); \/\/ Initialize all pixels to &#8216;off&#8217; Spark.function(&#8220;led&#8221;,ledToggle); } void loop() { switch (show) { &hellip; <a href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">IOT Holiday Lights<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/\" target=\"_blank\" title=\"Click to print\"><span>Print<\/span><\/a><\/li><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/?share=email\" target=\"_blank\" title=\"Click to email this to a friend\"><span>Email<\/span><\/a><\/li><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-1304\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-1304\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.richa1.com\/RichardAlbritton\/iot-holiday-lights\/?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\"><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[62,56,79],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5AhH6-l2","_links":{"self":[{"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/posts\/1304"}],"collection":[{"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/comments?post=1304"}],"version-history":[{"count":2,"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/posts\/1304\/revisions"}],"predecessor-version":[{"id":1307,"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/posts\/1304\/revisions\/1307"}],"wp:attachment":[{"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/media?parent=1304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/categories?post=1304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.richa1.com\/RichardAlbritton\/wp-json\/wp\/v2\/tags?post=1304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}