{"id":751,"date":"2018-06-03T17:25:57","date_gmt":"2018-06-03T06:55:57","guid":{"rendered":"http:\/\/parablog-wordpress.dockerbox.rei.moe\/?p=751"},"modified":"2018-06-03T17:25:57","modified_gmt":"2018-06-03T06:55:57","slug":"vivid-2018-led-iot-apparel","status":"publish","type":"post","link":"https:\/\/blog.lewys.eu\/?p=751","title":{"rendered":"Vivid 2018 LED IoT Apparel !"},"content":{"rendered":"<p>Hello!&nbsp;<\/p>\n<p>Continuing with the tradition of creating something beautiful and covered in LED lights, this year we have something special!<\/p>\n<p>Previously, we had the <a href=\"http:\/\/172.16.0.6:8683\/?p=533\">LED Jacket<\/a> with <a href=\"https:\/\/www.facebook.com\/Tearschuu\/\">Tearschu<\/a>, and the <a href=\"http:\/\/172.16.0.6:8683\/?p=312\">LED Dress<\/a> with <a href=\"https:\/\/www.facebook.com\/naifelcosplay\/\">Naifel<\/a>. Taking inspiration from these, and solving a lot of the problems I faced with them, I bring the latest iteration of light up fun.<\/p>\n<p>This year, I have taken a pair of high heel boots, and an umbrella from Daiso, added plenty of pretty lights, and of course, this year marks the first year the entire project is connected to the internet.<\/p>\n<p>&nbsp;<\/p>\n<p>https:\/\/gfycat.com\/WellgroomedDeadChanticleer<\/p>\n<p>&nbsp;<\/p>\n<p>The project was built using mostly the same core components for each item.&nbsp;<\/p>\n<p>The shoes each have:<\/p>\n<ul>\n<li>Lithium Ion Battery (1000mAh)<\/li>\n<li>LiIon Charge \/ Boost circuit&nbsp;<strong>MP2636&nbsp;<\/strong><\/li>\n<li>WeMos D1 Mini<\/li>\n<li>A random switch for power<\/li>\n<li>A strip of WS2812 LEDs<\/li>\n<\/ul>\n<p>The umbrella is similar, except instead of the MP2636 boost circuit and 3.7v Lithium battery, I used a 3s LiPo battery, and a 5v step down regulator capable of high current.<\/p>\n<p>&nbsp;<\/p>\n<p>The physical build was pretty straight forward, hook up everything how you please, battery to boost\/charge, from there to the WeMos \/ LEDs, and then route the wires how you please. For LED placement on the shoes, I went with up along the front as I feel this will look the best having the light cover the most area, and for the umbrella I ran the lights down the spokes of the umbrella.<\/p>\n<p>Unfortunately with my design you cant really CLOSE the umbrella anymore but as this is just for Vivid I am not too fussed \ud83d\ude42&nbsp;<\/p>\n<p>To attach the LEDs to the umbrella I initially tried to use hot glue, but it was actually melting through the umbrella, and the parts that didn&#8217;t, did not hold very well, so I ended up using clear packing tape, as it does not seem to get in the way of anything and is barely noticeable!&nbsp;<\/p>\n<p>The LEDs here are hooked up in parallel with each other, so each spoke on the umbrella will be the same.<\/p>\n<div id='gallery-1' class='gallery galleryid-751 gallery-columns-3 gallery-size-large'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/blog.lewys.eu\/?attachment_id=756'><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"880\" src=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/cheapbrolly-768x1024.jpg\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-756\" srcset=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/cheapbrolly-768x1024.jpg 768w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/cheapbrolly-225x300.jpg 225w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/cheapbrolly.jpg 1222w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-756'>\n\t\t\t\tThe Daiso umbrella and the LED strip\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/blog.lewys.eu\/?attachment_id=761'><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"880\" src=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/tolength-768x1024.jpg\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-761\" srcset=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/tolength-768x1024.jpg 768w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/tolength-225x300.jpg 225w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/tolength.jpg 1167w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-761'>\n\t\t\t\tCut the strip to length\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/blog.lewys.eu\/?attachment_id=757'><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"495\" src=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/connectedtogether-1024x768.jpg\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-757\" srcset=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/connectedtogether-1024x768.jpg 1024w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/connectedtogether-300x225.jpg 300w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/connectedtogether-768x576.jpg 768w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-757'>\n\t\t\t\tWire up each strip to its adjacent strip\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/blog.lewys.eu\/?attachment_id=759'><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"495\" src=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testbeforeattach-1024x768.jpg\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-759\" srcset=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testbeforeattach-1024x768.jpg 1024w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testbeforeattach-300x225.jpg 300w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testbeforeattach-768x576.jpg 768w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-759'>\n\t\t\t\tTest them out before proceeding because it gets hard when attached!\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/blog.lewys.eu\/?attachment_id=758'><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"880\" src=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/lookinggood-768x1024.jpg\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-758\" srcset=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/lookinggood-768x1024.jpg 768w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/lookinggood-225x300.jpg 225w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/lookinggood.jpg 1167w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-758'>\n\t\t\t\tAll LED&#8217;s looking good!\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/blog.lewys.eu\/?attachment_id=755'><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"495\" src=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/allattached-1024x768.jpg\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-755\" srcset=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/allattached-1024x768.jpg 1024w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/allattached-300x225.jpg 300w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/allattached-768x576.jpg 768w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-755'>\n\t\t\t\tAttach them to the umbrella by whatever means works best for you.\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/blog.lewys.eu\/?attachment_id=760'><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"1024\" src=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testingagain-576x1024.jpg\" class=\"attachment-large size-large\" alt=\"\" aria-describedby=\"gallery-1-760\" srcset=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testingagain-576x1024.jpg 576w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testingagain-169x300.jpg 169w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testingagain-768x1366.jpg 768w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/testingagain.jpg 875w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-760'>\n\t\t\t\tTest again once attached to make sure nothing broke \ud83d\ude42\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p>Once it is all made up physically, we can move on to the code.<\/p>\n<p>I was looking into using the <a href=\"https:\/\/github.com\/toblum\/McLighting\">McLighting<\/a> project for control of these, as it has both an internal web interface as well as support for things like MQTT, but I could not get it to work reliably, and it didn&#8217;t support running in AP mode, only client mode, which was a big turn off for me.<\/p>\n<p>So what I ended up using was the <a href=\"https:\/\/github.com\/bruhautomation\/ESP-MQTT-JSON-Digital-LEDs\/\">JSON LED<\/a> code from <a href=\"https:\/\/www.youtube.com\/channel\/UCLecVrux63S6aYiErxdiy4w\">BRUH Automation<\/a>, because I use this for other things at home and it works pretty reliably.<\/p>\n<p>One thing to note here, for my LEDs I had to add the following two lines of code, BEFORE including the libraries, to prevent flickering of the strip. (not sure why this works?)<\/p>\n<p>#define FASTLED_INTERRUPT_RETRY_COUNT 0<br \/>\n#define FASTLED_ALLOW_INTERRUPTS 0<\/p>\n<p>&nbsp;<\/p>\n<p>(at the verryy top of the sketch)<\/p>\n<p>&nbsp;<\/p>\n<p>Now my initial plan included taking a small portable router, and a Raspberry Pi 3 out with me to vivid, running a local MQTT server on a local network, with the Pi running Home Assistant (Hass.IO) all locally so I could connect to it to control things. However I ran into many problems attempting to do this, I am not sure if its because I don&#8217;t know how to properly setup static IP&#8217;s in resin, or just because it hates me, but I kept not being able to connect or it wouldn&#8217;t respond to my commands, it just wasn&#8217;t working great.<\/p>\n<p>&nbsp;<\/p>\n<p>One day though, my good friend Mark came over and we needed a project to work on, so what we set up was a private mosquitto MQTT broker, that requires authentication, running in Docker on a Ubuntu Server 18.04 LTS install!<\/p>\n<p>What this meant,&nbsp; was I now had a secure way of connecting a remote node to my Home Assistant running back home.<\/p>\n<p>&nbsp;<\/p>\n<p>I went right ahead and adjusted the code on the three items for the new server, forwarded the ports in my router, added the config to my production Home Assistant server, and hey presto, was I glad to see, everything JUST WORKED.<\/p>\n<p>&nbsp;<\/p>\n<p>I made a view in Home Assistant and threw all the entities into it, and here&#8217;s how that looks:<\/p>\n<p><a href=\"http:\/\/172.16.0.6:8683\/wp-content\/uploads\/2018\/06\/DesLWKCVMAA1SGe.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-752\" src=\"http:\/\/172.16.0.6:8683\/wp-content\/uploads\/2018\/06\/DesLWKCVMAA1SGe.jpg\" alt=\"\" width=\"977\" height=\"561\" srcset=\"https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/DesLWKCVMAA1SGe.jpg 977w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/DesLWKCVMAA1SGe-300x172.jpg 300w, https:\/\/blog.lewys.eu\/wp-content\/uploads\/2018\/06\/DesLWKCVMAA1SGe-768x441.jpg 768w\" sizes=\"auto, (max-width: 977px) 100vw, 977px\" \/><\/a><\/p>\n<p>So as you can see, we can control both shoes together, each individually, the umbrella on its own, or everything as a group!<\/p>\n<p>We also can change the animation speed of the various effects.<\/p>\n<p>I will be heading out to vivid to shoot a small video and some photos with this, with my good friend <a href=\"https:\/\/www.facebook.com\/pontinu\/\">Tsugumi<\/a> modelling it for me, on the 9th of June 2018 from about 6PM onward, Not sure if I will be at Circular Quay or Darling Harbor yet, keep your eye on my <a href=\"https:\/\/www.instagram.com\/paradoxphotos\/\">Instagram<\/a> to find out! \ud83d\ude09&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Thanks for reading!!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello!&nbsp; Continuing with the tradition of creating something beautiful and covered in LED lights, this year we have something special! Previously, we had the LED Jacket with Tearschu, and the LED Dress with Naifel. Taking inspiration from these, and solving a lot of the problems I faced with them, I bring the latest iteration of &hellip; <a href=\"https:\/\/blog.lewys.eu\/?p=751\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Vivid 2018 LED IoT Apparel !<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,21,23,41,43,29,27,18,22,42],"tags":[],"class_list":["post-751","post","type-post","status-publish","format-standard","hentry","category-arduino-2","category-educational","category-esp8266","category-home-assistant","category-leds","category-photography","category-programming","category-projects","category-reference","category-vivid"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=\/wp\/v2\/posts\/751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=751"}],"version-history":[{"count":4,"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=\/wp\/v2\/posts\/751\/revisions"}],"predecessor-version":[{"id":763,"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=\/wp\/v2\/posts\/751\/revisions\/763"}],"wp:attachment":[{"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.lewys.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}