SlideShare a Scribd company logo
1 of 40
Download to read offline
Web-controlled
Christmas Lights
Sakir Temel
- CTO of Visuality 3 years
- Prepared many different architectures for differents parts of the technology
- Architectured a couple of production grade IoT systems internally and
commercially
- Created many tailored internal IoT projects
- Created IoT Team & Room
IoT Team
- Magic Mirror
- Christmas Lights
- KitchenApp
- Sesame - slack door opener
- GarageDoor
Objectives
- Learn Basics of Home Automation
- Analyze an application of Internet of Lights
focusing more on backend and
architecture
Out of scope
- Details of given solution
- Architecture’s relation to computers
- Connection protocols
- Details of NFs implementation
- Alternative components
- IoT or IoL definitions
- Frontend details
- Testing
- What can go wrong & backup scenarios
- Business perspective
- Projecting and team work
- Challenges
PART I - R&Ding web-controlled lights
First school project
https://www.homofaciens.de/technics-base-circuits-relay_en.htm
https://www.homemade-circuits.com/how-a
-relay-works-in-circuits-how-to-connect-it/
From your backend:
curl
https://api.particl
e.io/v1/devices/012
3456789abcdef/bulb
-d access_token=123
-d "args=on"
Checkpoint - controlling devices via an interface
How to connect end users to see what’s going on?
- Streaming
- YouTube
- In the beginning was the most challenging part as we didn’t know much about
it and we needed to connect to our IP camera
Stream the input from camera to YouTube
ffmpeg -an -f lavfi -i anullsrc -rtsp_transport tcp 
-i rtsp://IP_CAMERA/live1.sdp -tune zerolatency -vcodec libx264 
-pix_fmt + -c:v copy -c:a aac -strict experimental 
-f flv rtmp://a.rtmp.youtube.com/live2/YOUTUBE_TOKEN
What are the other ways that Switch and Backend
can communicate?
- Sending commands directly to the device
- Device checking if there’s a new message every 1 second
- Particle’s service(calling functions via HTTP requests)
- Chat(good for animations - continuous conversation, history, queuing, online
status, no need to reconnect, errors are handled)
MQTT
MQTT(MessageQueue Telemetry Transport) is a machine-to-machine
(M2M)/"Internet of Things" connectivity protocol.
- It was designed as an extremely lightweight publish/subscribe messaging
transport.
- It is useful for connections with remote locations where a small code
footprint is required
- and/or network bandwidth is at a premium.
MQTT
require 'mqtt'
MQTT::Client.connect('mqtt://user:password@mXY.cloudmqtt.com') do |client|
# ...
if params['command'] == 'on'
client.publish('the-light-bulb', 'on')
# ..
else if params['command'] == 'off'
client.publish('the-light-bulb', 'off')
end
# ...
end
PART II - Project
Project: Christmas Lights
Live webcam stream with buttons which will let people to turn on/off the lights,
so someone from somewhere can share the Christmas Spirit online.
- Features:
- Web-controlled lights
- Send animations
- Landing page
- NFs
- No fragile solution
- Near real time feeling
- Fault tolerant
- Until Christmas time(2016) :)
Architecture
iPad to enhance real time feeling
Enough devices
When you send an animation to be played
MQTT worker
- Handles the queue of animations
and MQTT communication
- Works 2 ways, knows when
animation is started and finished
- Auto recovers the system if
something is stuck
// ... 00000101 => 1st and 3rd light on
int singleFrame(int command) {
digitalWrite(0, ((command >> 0) & 1) ? LOW : HIGH);
digitalWrite(1, ((command >> 1) & 1) ? LOW : HIGH);
digitalWrite(2, ((command>> 2) & 1) ? LOW : HIGH);
digitalWrite(3, ((command>> 3) & 1) ? LOW : HIGH);
digitalWrite(4, ((command>> 4) & 1) ? LOW : HIGH);
digitalWrite(5, ((command >> 5) & 1) ? LOW : HIGH);
digitalWrite(6, ((command>> 6) & 1) ? LOW : HIGH);
digitalWrite(7, ((command>> 7) & 1) ? LOW : HIGH);
delay(500 * (((command& (((1 << 8) - 1) << 8)) >> 8) + 1));
return 0;
}
The code in Particle
Solution implemented
Launch it
- Newsletter and social media posts
- Launched Dec 20, 2016.
- Battle tested
- Received many wishes
- Lots of joy, positive feedbacks
References
- https://www.visuality.pl/posts/crowd-operated-christmas-lights
- https://www.visuality.pl/posts/how-we-open-our-office-door-via-slack
- http://cavine-sartorium.pl/en/autonomiczna-suknia-balowa/
- http://docs.particle.io/
Thank you!
Sakir Temel

More Related Content

Similar to Web-controlled Christmas Lights

Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of ThingsPaul Fremantle
 
Smart Home Automation using Voice Assistant
Smart Home Automation using Voice AssistantSmart Home Automation using Voice Assistant
Smart Home Automation using Voice AssistantTezpur University
 
Mikrotik Network Simulator (MUM Presentation Material 2013) [COPY]
Mikrotik Network Simulator (MUM Presentation Material 2013) [COPY]Mikrotik Network Simulator (MUM Presentation Material 2013) [COPY]
Mikrotik Network Simulator (MUM Presentation Material 2013) [COPY]Mahadiputra S
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialBenjamin Cabé
 
Supercharge your IOT toolbox with MQTT and Node-RED
Supercharge your IOT toolbox with MQTT and Node-REDSupercharge your IOT toolbox with MQTT and Node-RED
Supercharge your IOT toolbox with MQTT and Node-REDSimen Sommerfeldt
 
Eng.Abd Elrhman.pdf
Eng.Abd Elrhman.pdfEng.Abd Elrhman.pdf
Eng.Abd Elrhman.pdfINOGHOST
 
More Datacenters, More Problems
More Datacenters, More ProblemsMore Datacenters, More Problems
More Datacenters, More ProblemsTodd Palino
 
Banking and ATM networking reports
Banking and ATM networking reportsBanking and ATM networking reports
Banking and ATM networking reportsShakib Ansaar
 
Internet of Things - Technological Perspective
Internet of Things - Technological PerspectiveInternet of Things - Technological Perspective
Internet of Things - Technological PerspectiveAndri Yadi
 
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3Adam Dunkels
 
IRJET- Raspberry Pi and NodeMCU based Home Automation System
IRJET- Raspberry Pi and NodeMCU based Home Automation SystemIRJET- Raspberry Pi and NodeMCU based Home Automation System
IRJET- Raspberry Pi and NodeMCU based Home Automation SystemIRJET Journal
 
LAI - AWS IoT Workshop
LAI - AWS IoT WorkshopLAI - AWS IoT Workshop
LAI - AWS IoT WorkshopAlex Casalboni
 
Go real-time with the InternetOfThings
Go real-time with the InternetOfThingsGo real-time with the InternetOfThings
Go real-time with the InternetOfThingsUffe Björklund
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Marco Parenzan
 
IoT and connected devices
IoT and connected devicesIoT and connected devices
IoT and connected devicesPascal Bodin
 
Tec118 Teched2015 IOT use case and examples
Tec118 Teched2015 IOT use case and examplesTec118 Teched2015 IOT use case and examples
Tec118 Teched2015 IOT use case and examplesMarkus Van Kempen
 
How to control remote LED at the easiest and cheapest with Azure
How to control remote LED at the easiest and cheapest with AzureHow to control remote LED at the easiest and cheapest with Azure
How to control remote LED at the easiest and cheapest with AzureImaoka Micihihiro
 

Similar to Web-controlled Christmas Lights (20)

Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of Things
 
Smart Home Automation using Voice Assistant
Smart Home Automation using Voice AssistantSmart Home Automation using Voice Assistant
Smart Home Automation using Voice Assistant
 
Ppt
Ppt Ppt
Ppt
 
Mikrotik Network Simulator (MUM Presentation Material 2013) [COPY]
Mikrotik Network Simulator (MUM Presentation Material 2013) [COPY]Mikrotik Network Simulator (MUM Presentation Material 2013) [COPY]
Mikrotik Network Simulator (MUM Presentation Material 2013) [COPY]
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
Supercharge your IOT toolbox with MQTT and Node-RED
Supercharge your IOT toolbox with MQTT and Node-REDSupercharge your IOT toolbox with MQTT and Node-RED
Supercharge your IOT toolbox with MQTT and Node-RED
 
Eng.Abd Elrhman.pdf
Eng.Abd Elrhman.pdfEng.Abd Elrhman.pdf
Eng.Abd Elrhman.pdf
 
More Datacenters, More Problems
More Datacenters, More ProblemsMore Datacenters, More Problems
More Datacenters, More Problems
 
CVMichelGallant
CVMichelGallantCVMichelGallant
CVMichelGallant
 
Banking and ATM networking reports
Banking and ATM networking reportsBanking and ATM networking reports
Banking and ATM networking reports
 
Internet of Things - Technological Perspective
Internet of Things - Technological PerspectiveInternet of Things - Technological Perspective
Internet of Things - Technological Perspective
 
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
 
IRJET- Raspberry Pi and NodeMCU based Home Automation System
IRJET- Raspberry Pi and NodeMCU based Home Automation SystemIRJET- Raspberry Pi and NodeMCU based Home Automation System
IRJET- Raspberry Pi and NodeMCU based Home Automation System
 
LAI - AWS IoT Workshop
LAI - AWS IoT WorkshopLAI - AWS IoT Workshop
LAI - AWS IoT Workshop
 
Go real-time with the InternetOfThings
Go real-time with the InternetOfThingsGo real-time with the InternetOfThings
Go real-time with the InternetOfThings
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
 
Swt 2009
Swt 2009Swt 2009
Swt 2009
 
IoT and connected devices
IoT and connected devicesIoT and connected devices
IoT and connected devices
 
Tec118 Teched2015 IOT use case and examples
Tec118 Teched2015 IOT use case and examplesTec118 Teched2015 IOT use case and examples
Tec118 Teched2015 IOT use case and examples
 
How to control remote LED at the easiest and cheapest with Azure
How to control remote LED at the easiest and cheapest with AzureHow to control remote LED at the easiest and cheapest with Azure
How to control remote LED at the easiest and cheapest with Azure
 

Recently uploaded

The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationElement34
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfkalichargn70th171
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit MilanNeo4j
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanNeo4j
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio, Inc.
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfWSO2
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024SimonedeGijt
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Andrea Goulet
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024MulesoftMunichMeetup
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...OnePlan Solutions
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAShane Coughlan
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
 

Recently uploaded (20)

The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test Automation
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 

Web-controlled Christmas Lights