{"id":4147,"date":"2017-05-02T18:53:02","date_gmt":"2017-05-02T17:53:02","guid":{"rendered":"https:\/\/qdraw.nl\/blog\/?p=4147"},"modified":"2025-10-23T13:51:29","modified_gmt":"2025-10-23T12:51:29","slug":"vanuit-de-cloud-je-eigen-hue-ledstrip-besturen","status":"publish","type":"post","link":"https:\/\/qdraw.nl\/blog\/design\/vanuit-de-cloud-je-eigen-hue-ledstrip-besturen\/","title":{"rendered":"Vanuit de cloud je eigen Hue-ledstrip besturen"},"content":{"rendered":"<p>Een computer is niet meer het enige device dat online is. Andere apparaten zoals een smartwatch of koelkast zijn ook online. Bij u thuis alleen al kan er een netwerk bestaan uit lampen, een thermostaat, sieraden, de auto\u2019s, en uw koelkast. Samen vormen deze het \u2018Internet of Things\u2019.<\/p>\n<p>Dankzij het netwerk van devices automatiseer je het hele huis. Natuurlijk kun je zelf ook op afstand je lampen blijven bedienen.<\/p>\n<p>Een \u2018smart home\u2019 klinkt misschien ver weg, maar in dit artikel laten we zien hoe je zelf een Ledstrip smart maakt en deze bestuurt vanuit de cloud. Met niet meer dan een goedkoop ledstripje en een Raspberry Pi kun vanuit je eigen slack-app je kleuren instellen.<\/p>\n<h2>Een chatbot waarbij je kleuren kunt aanpassen<\/h2>\n<p>Vanuit de chatbot moet het mogelijk zijn om kleuren aan te passen. Gewoon omdat het cool is! In dit project zit het hele proces van het opzetten van een Internet-of-things-device (IOT). Van het aansturen van poorten tot het koppelen aan een internet dienst. Voor dit artikel heb ik gekozen om dit via Slack te doen. Slack is een chatprogramma om snel binnen teams te communiceren. Slack biedt ook de mogelijkheid om een chatbot in deze gesprekken te integreren.\n<\/p>\n<h2>Wat ben ik hiervoor nodig?<\/h2>\n<ul>\n<li>Raspberry Pi (2 of 3)\n<ul>\n<li>Micro SD \u2013kaart<\/li>\n<li>2,5 Amp\u00e8re Micro USB-voeding<\/li>\n<\/ul>\n<\/li>\n<li>Ledstrip (12V 5050 RGB-ledstrip)<\/li>\n<li>3 Transistors (BD139)\t<\/li>\n<li>Breadboard en draadjes<\/li>\n<li>Leddimmer. (PWM-board: PCA9685)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>TL;DR<\/h3>\n<ul>\n<li><a href=\"https:\/\/github.com\/qdraw\/raspberry-pi-rgb-ledstrip\/archive\/master.zip\" rel=\"nofollow noopener\" target=\"_blank\">Github Download link<\/a><\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/qdraw\/raspberry-pi-rgb-ledstrip\/schema\/schema.pdf\" rel=\"nofollow noopener\" target=\"_blank\">Schema Download link<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Raspberry Pi configuratie<\/h2>\n<p>Wanneer je Raspbian (Lite) hebt draaien op je Raspberry Pi dan kun je starten met deze tutorial. In de volgende stappen leg ik uit hoe je dit zelf kunt uitvoeren.  <a href=\"https:\/\/www.raspberrypi.com\/documentation\/computers\/getting-started.html\" target=\"_blank\" rel=\"nofollow noopener\">Op de site van de Raspberry Pi-foundation staat een goede uitleg<\/a> om het device te installeren. Zet de image van de site op het SD-kaartje en start de Raspberry Pi op. Standaard start het apparaat op met <i>pi<\/i> als gebruiker en <em>raspberry<\/em> als wachtwoord.<\/p>\n<h3>Installeer Node.JS <\/h3>\n<p>Mijn scripts draaien op Node.js. Node.js is softwareplatform waarop men applicaties kan ontwikkelen en draaien. Die applicaties worden geschreven in JavaScript. Normaal wordt JavaScript uitgevoerd door een webbrowser maar in dit geval wordt JavaScript uitgevoerd door de Raspberry Pi. <\/p>\n<p>In de package-manager van Raspbian is Node.js sterk verouderd. Een package-manager is op dit platform de App-store. Dus daarom installeren we het programma vanaf de offici\u00eble website. In de volgende stappen leg ik uit hoe je dat doet.<\/p>\n<p>In deze tutorial maak ik gebruik van Terminal commando&#8217;s. <a href=\"https:\/\/www.raspberrypi.com\/documentation\/computers\/os.html\" target=\"_blank\" rel=\"nofollow noopener\">Wanneer je niet zo goed weet hoe dit werkt, klik dan hier<\/a> Je kunt via een commando-regel inloggen vanaf een ander apparaat (SSH). Het is ook mogelijk om via het apparaat zelf commando&#8217;s in te geven. <a href=\"https:\/\/www.raspberrypi.com\/documentation\/computers\/remote-access.html\" target=\"_blank\" rel=\"nofollow noopener\">Op de Raspberry Pi-site wordt een uitleg gegeven van hoe SSH werkt.<\/a>  In dit artikel gebruik ik het dollar teken om aan te geven dat het een terminal commando is dat als normale gebruiker wordt uitgevoerd. Je hoeft het dollar-teken niet mee te kopieren.<\/p>\n<p>Wanneer je bent ingelogd op het device. Vanaf deze site downloaden we een bestand.<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> wget https:\/\/nodejs.org\/dist\/v7.8.0\/node-v7.8.0-linux-armv7l.tar.gz<\/span><\/p>\n<p>Vervolgens pak ik dit bestand uit<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> tar -xvf node-v*-linux-armv7l.tar.gz<\/span><\/p>\n<p>Wissel ik van map en ga naar de net uitgepakte map <\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> cd node-v*-linux-armv7l<\/span><\/p>\n<p>Nu ga ik kopieren met speciale rechten (sudo). Het kan zijn dat er gevraagd wordt om een wachtwoord, als je deze niet veranderd hebt is dit: <em>raspberry<\/em><\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> sudo cp -R * \/usr\/local\/<\/span><\/p>\n<p>In de volgende stap controleer je of de installatie goed is gegaan. Als het goed is antwoord het onderstaande commando: v7.8.0<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> node -v<\/span><\/p>\n<h3>Zet i<sup>2<\/sup>c aan <\/h3>\n<p>Om te communiceren met het bordje waarmee de leds gedimd worden maken we gebruik van I<sup>2<\/sup>C. &nbsp;I<sup>2<\/sup>C is bedacht om op een snelle en goedkope manier te tussen chips te communiceren. Voor de data-overdracht wordt er gebruik gemaakt van twee draden. SCL wordt gebruikt om een klok-signaal door te geven en SDA zorgt voor de data. <\/p>\n<p>Standaard staat I<sup>2<\/sup>C op een Raspberry Pi uit en in  de onderstaande stappen leg ik uit hoe je dit kunt activeren.<\/p>\n<p>In het volgende bestand verwijderen we het hekje voor de tekst. Om het bestand op te slaan en af te sluiten gebruik je de toetsen combinatie Ctrl-X en toets vervolgens Y voor Yes<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> sudo nano \/boot\/config.txt<\/span><\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>#<\/b>device_tree_param=i2c_arm=on<\/span><\/p>\n<p>Even herstarten en de veranderingen zijn doorgevoerd<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> sudo reboot<\/span><\/p>\n<p>Om te controleren of I<sup>2<\/sup>C werkt installeer ik i2cdetect<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> sudo apt-get install -y i2c-tools<\/span><\/p>\n<p>Met dit commando controleer ik of I<sup>2<\/sup>C werkt<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'><b>$<\/b> sudo i2cdetect -y 1<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/embed\/0000_i2cdetect.svg\" alt=\"i2cdetect -y 1\"\/><\/p>\n<p>Mocht de uitkomst van het commando anders zijn dan hierboven.<br \/>\n<a href=\"https:\/\/learn.adafruit.com\/adafruits-raspberry-pi-lesson-4-gpio-setup\/configuring-i2c\" target=\"_blank\" rel=\"nofollow noopener\">De website Adafruit heeft een uitgebreide uitleg over het aanzetten van i2c onder Raspbian.<\/a><\/p>\n<h2>Clone de webapp<\/h2>\n<p>De code van de webapp heb ik gehost op github. Door het volgende commando uit te voeren haal je de code binnen <\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'>$ git clone &quot;<\/span><a href=\"https:\/\/github.com\/qdraw\/raspberry-pi-rgb-ledstrip\" target=\"_blank\" rel=\"nofollow noopener\"><span style='font-size:10.0pt;font-family:\"Courier New\"'>https:\/\/github.com\/qdraw\/raspberry-pi-rgb-ledstrip<\/span><\/a><span style='font-size:10.0pt;font-family:\"Courier New\"'>&quot;<\/span><\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'>$ cd raspberry-pi-rgb-ledstrip<\/span><\/p>\n<p>Installeer de benodigde packages<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'>$ npm install<\/span><\/p>\n<p>Start de webapp<\/p>\n<p><span style='font-size:10.0pt;font-family:\"Courier New\"'>$ npm start<\/span><\/p>\n<p><i><span style='font-size:10.0pt;font-family:\"Courier New\"'>No key file found. One was generated. Here is the public key: mhvr00pcowwqobneq2<\/span><\/i><\/p>\n<p><i><span style='font-size:10.0pt;font-family:\"Courier New\"'>App is gestart op http:\/\/localhost:5037<\/span><\/i><\/p>\n<p><i><span style='font-size:10.0pt;font-family:\"Courier New\"'>https:\/\/mhv*q2.localtunnel.me\/webhook<\/span><\/i><\/p>\n<h2>De hardware setup<\/h2>\n<p>Wanneer de vorige code wordt uitgevoerd gebeurt er nog niks, er is nog geen hardware aangesloten. In deze stap sluiten we de hardware aan. Bij een Raspberry Pi-project is de moeilijkheid dat de combinatie tussen de hardware en software goed moet werken.<\/p>\n<p><a href=\"https:\/\/github.com\/qdraw\/raspberry-pi-rgb-ledstrip\/blob\/schema\/schema.pdf\" target=\"_blank\" rel=\"nofollow noopener\">Voor setup heb ik een schema gemaakt waarin beschreven staat hoe de aansluitingen gedaan moeten worden. <\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/1000\/0001_20170502-schema-raspi_v3_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 1\" data-gps=\"0,0\"><br \/>\n<img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/500\/0001_20170502-schema-raspi_v3_kl.jpg\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 1\" alt=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 1\" \/><br \/>\n<\/a><\/p>\n<p><i>Het aansluitschema (<a href=\"https:\/\/learn.adafruit.com\/adafruit-16-channel-servo-driver-with-raspberry-pi\/hooking-it-up\" rel=\"nofollow noopener\" target=\"_blank\">gebaseerd op: Adafruit-documentatie<\/a>)<\/i><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/1000\/0002_20170428_174155__dsc06739_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 2\" data-gps=\"0,0\"><br \/>\n<img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/500\/0002_20170428_174155__dsc06739_kl.jpg\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 2\" alt=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 2\" \/><br \/>\n<\/a><\/p>\n<p><i>Dit is de setup zoals het bij mij thuis eruitziet<\/i><\/p>\n<h2>De keuze om gebruik te maken van een PWM-board<\/h2>\n<p>Een Raspberry Pi heeft out-of-the-box 2 PWM-kanalen. Deze 2 PWM-kanalen zijn verdeeld over 4 GPIO-poorten.&nbsp; Daarnaast heeft de Raspberry Pi ook nog de beperking dat het PWM gebruiken is of een normale schakeling. <\/p>\n<h3>Slack API<\/h3>\n<p>Slack biedt ook de mogelijkheid om een chatbot in deze gesprekken te integreren. Dit heet <i>Slash Commands.<\/i> Wanneer je een slack-app aanmaakt op <a target=\"_blank\" href=\"https:\/\/api.slack.com\/apps?new_app=1\" rel=\"nofollow noopener\">https:\/\/api.slack.com\/apps?new_app=1<\/a><\/p>\n<p>In de volgende stappen lopen door de setup van Slack heen.<\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/1000\/0003_2017-04-28-194648_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 3\" data-gps=\"0,0\"><br \/>\n<img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/500\/0003_2017-04-28-194648_kl.jpg\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 3\" alt=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 3\" \/><br \/>\n<\/a><\/p>\n<p><em>Zo ziet het eerste proces van &#8216;Create an App eruit&#8217;<\/em><\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/1000\/0004_2017-04-28-200304_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 4\" data-gps=\"0,0\"><br \/>\n<img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/500\/0004_2017-04-28-200304_kl.jpg\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 4\" alt=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 4\" \/><br \/>\n<\/a><\/p>\n<p><em>We maken een Slash Command aan. Aan de linkerkant is het menu zichtbaar waar &#8216;Slash Commands&#8217; zichtbaar zijn. Klik hier op om een nieuw Slash Command aan te maken. Vervolgens klik je op &#8216;Create New Command&#8217; om verder te gaan. <\/em><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/1000\/0005_2017-04-28-195027_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 5\" data-gps=\"0,0\"><br \/>\n<img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/500\/0005_2017-04-28-195027_kl.jpg\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 5\" alt=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 5\" \/><br \/>\n<\/a><\/p>\n<p>Voer hier de waardes in die de webapp weergeeft geeft. Op<br \/>\ndeze manier weet Slack wat er moet gebeuren als er <em>\/mycommand<\/em> wordt ingevoerd.<br \/>\nTevens is het mogelijk om een omschrijving weer te geven.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/embed\/0006_slack_activeren-rood_kl.gif\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 6\" alt=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 6\" \/>\n<\/p>\n<p>Het is gelukt, vanaf nu kun je vanuit Slack een ledstrip besturen. In het voorbeeld gebruik ik <i>\/kleur rood<\/i> om de Raspberry Pi te activeren.<\/p>\n<p><a href=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/1000\/0007_20170428_221002__dsc06753_kl1k.jpg\" class=\"lightbox[blog]\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 7\" data-gps=\"0,0\"><br \/>\n<img decoding=\"async\" src=\"https:\/\/media.qdraw.nl\/Bezienswaardigheden\/vanuit_de_cloud_je_eigen_hue-ledstrip_besturen\/500\/0007_20170428_221002__dsc06753_kl.jpg\" title=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 7\" alt=\"Vanuit de cloud je eigen Hue-ledstrip besturen ;  | foto 7\" \/><br \/>\n<\/a><\/p>\n<p><em>Mocht je vragen hebben over deze tutorial of over de wereld van \u2018Internet of Things\u2019 je interesse hebben gewekt.  Maar weet je nog niet hoe je dit kunt toepassen en heb je de nodige vragen? <a href=\"https:\/\/qdraw.nl\/contact.html\">Stuur mij dan een mailtje<\/a> dan kunnen we een kopje koffie drinken. <\/em><\/p>\n<p><em>Deze blogpost verscheen op <a href=\"https:\/\/qdraw.nl\/blog\/design\/vanuit-de-cloud-je-eigen-hue-ledstrip-besturen\/\">Qdraw.nl<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"Een computer is niet meer het enige device dat online is. Andere apparaten zoals een smartwatch of koelkast zijn ook online. Bij u thuis alleen al kan er een netwerk bestaan uit lampen, een thermostaat, sieraden, de auto\u2019s, en uw koelkast. Samen vormen deze het \u2018Internet of Things\u2019. Dankzij het netwerk van devices automatiseer je&#8230; <a class=\"view-article\" href=\"https:\/\/qdraw.nl\/blog\/design\/vanuit-de-cloud-je-eigen-hue-ledstrip-besturen\/\">Bekijk artikel<\/a>","protected":false},"author":2,"featured_media":4509,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2136],"tags":[2707,2722],"class_list":["post-4147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-design","tag-chatbot","tag-raspberry-pi"],"_links":{"self":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts\/4147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/comments?post=4147"}],"version-history":[{"count":3,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts\/4147\/revisions"}],"predecessor-version":[{"id":9798,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/posts\/4147\/revisions\/9798"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/media\/4509"}],"wp:attachment":[{"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/media?parent=4147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/categories?post=4147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qdraw.nl\/blog\/wp-json\/wp\/v2\/tags?post=4147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}