SlideShare a Scribd company logo
1 of 45
(Everything But The Kitchen Sink)
Digital Jukebox
DEVOXXUK 2019
…so what are we talking about…
 Introductions
 My Life In Audio
 RadioNonsense.com
 Digital Jukebox
 Demo
 Q&A
 Reference Links
Who Am I?
• Architect @ Dell Technologies since 2011
• From St. Paul, MN
• Longtime Software Engineer/Architect
• Business and Software Shops
• Individual Contributor and Leadership Roles
• All phases from project conception to implementation
• Sideline projects at home
• Music Lover
• 10+ years online radio station of personal music
• Contact Info
• Email: scott [dot] sosna [@] buddhadata [dot] com
• LinkedIn: https://www.linkedin.com/in/scott-sosna
My Audio History
My Audio History: Analog
My Audio History: Analog
My Audio History: Analog
My Music Technology: Analog
My Audio History: Analog
My Audio History: Digital
My Audio History: Digital
My Audio History: Digital
My Audio History: Digital
Radio Disc Jockey
RadioNonsense
RadioNonsense.com
 Tired of selecting CDs to bring into work
 Large personal music collection
 Some CDs not good for software development
 Worked for NetRadio.com
 One of first online music sites
 Figured it was pretty easy, let’s do it myself
 Ran for over 10 years
 Allowed anyone to listen
 Got listeners all over the world
RadioNonsense Technology
Digital Jukebox
Jukebox Components
 Infrastructure
 Subsonic
 Docker
 Kafka
 Software-Defined Radio
 IoT Devices
Infrastructure Requirements
 Raspberry Pi Model 3
 CPU: 1.2 GHZ quad-core ARM
 Memory: 1GB SDRAM
 Network: wired, wi-fi, Bluetooth
 GPU: Broadcom VideoCoreIV @ 400Mhz
 Operating System
 Raspian Stretch
 Recommend Lite (no desktop)
Infrastructure Requirements
 Router
 Wi-Fi for Rpi’s to connect to
 DHCP address reservation
 Separate from home network
Infrastructure Requirements
 Anker PowerPort 6
 A Raspberry Pi 3 requires 2.5A
 Sufficient Power Important
 Many adapters don’t provide enough
 RPi will run slow or crash
 Definitely see console logging
Digital Jukebox Technical Layout
Digital Jukebox
Components
Subsonic
Subsonic
 Web-based Media Management
 Manage music collection
 Stories of multiple TBs of songs
 Play or stream music collection
 mp3, ogg, flac, wav, wma, more
 also internet radio, podcast, video
 Integrates with Android/IOS apps
 Requires premium version
 Airsonic: license-free alternative
 RPi install instructions in project
 subsonic-client/src/main/resources/notes.txt
 RESTful API for app development
 Retrofit Interfaces for each services
 16 services
 All parameters are query parameters
 Generated response objects from XSD
Using Subsonic API
Creating Service
Making Call
Docker
 Easy to install on Raspberry Pi
 Five Containers
 Scheduler: queue random songs to playlist
when under threshhold
 Now Playing: publish song changes
 Subsonic doesn’t have callbacks
 Twitter: publish event info to Twitter
 Code Card: calls for IoT device
 Particle: calls and event handling
 2-way interaction with IoT device
 Problems
 FROM image must be ARM-compatible
 hypriot/rpi-java
 Commands during image build
 Jukebox images built on i686 Fedora
 not building on Raspberry Pi
 No Image Repository
 Export, Copy, Import
 SSL Certificates
 Image comes with none
 Manually copied keystore
 Map volume in Docker container
Docker
…and the rest...
Kafka
 Publish/Subscribe messaging
 Runs on bare metal
 Difficult to find ARM instance
 Docker-compose not available
 Really slow in Docker
 Single-instance cluster
 No robustness, more dev-like
 Publish jukebox events to Kafka
 Multiple services consume
Random Number Generator
 RTL2832U SDR dongle for randomness
 rtl_fm turns radio broadcast into bytes
 data pipe to *nix fifo file
 service reads data into circular buffer
 generator uses buffer for raw data
 More random than standard Java
 Data based on current broadcast
 Easy to change stations as needed
 Runs on bare metal
 Fifo files not available within Docker
Digital Jukebox
IoT Devices
Oracle CodeCard
Oracle CodeCard
 ESP8266 Microcontroller
 80/160Mhz
 32 KiB instructions/ 80KiB user data
 TCP/IP Stack
 Wi/Fi
 Display
 Buttons
 USB Port
 16 GPIO Pins
 General –purpose input/output
 Left Button
 Short Press: Start/Stop Jukebox
 Long Press: Mute/Unmute
 Right Button
 Short Press: Next Song
 Long Press: Restart Song
Particle Photon IoT Platform
Particle Photon IoT Platform
 Cloud-based Management
 Registration and Setup
 Device monitoring
 Over-the-air firmware upgrades
 Web-based IDE
 Event logs and diagnostics
 Webhook Integrations
 Hardware
 Arduino-based microcontroller
 1MB Flash/128K RAM
 Wi-Fi and Cellular Communications
 Programmable RGB LED
 USB-powered
 GPIO, digital/analog, other functions
Particle Photon IoT Platform
 Software
 FreeRTOS (real-time operating system)
 Web and Desktop IDE
 C/C++ based coding
 Web IDE loads program over-the-air
 API for on-board hardware
 Particle-specific extensions
 API for communicating via cloud
 Cloud Communications
 Register functions for RESTful calls
 Subscribe Particle Cloud events
 Publish events to Particle Cloud
 Trigger webhooks to call external resources
 No local communications
 Everything goes through cloud
Digital Jukebox Technical Layout
Demo
Future Enhancements
 Java11 or 12
 Private Blockchain
 Subsonic API Calls to Control Streaming
 Better Logging
Q&A
Personal Links
 Email: scott [dot] sosna [@] buddhadata [dot] com
 LinkedIn: https://www.linkedin.com/in/scott-sosna
 GitHub: https://github.com/scsosna99/
 Slideshare: https://www.slideshare.net/ScottSosna
 Twitter: https://twitter.com/scott_sosna
Links and References
 Raspberry Pi
 Raspberry Pi Organization
 Raspbian Download Image
 Anker PowerPort 6
 The Pi Hut or Adafruit
 Subsonic
 Subsonic Home Page
 Subsonic API
 Airsonic Home Page
 Docker
 Install Docker on Rpi
 hypriot/rpi-java
 Spring Boot
 Kafka
 Kafka Home
 Kafka/Zookeeper on Rpi
 Kafka/Zookeeper on Docker/ARM
 Software-Defined Radio
 RTL2832U Software-Defined Radio
 Rtl-sdr Software
 Oracle Code Card
 CodeCard Home Page
 CodeCard Source
 CodeCard: Making an IoT Badge
 ESP8266 Microcontroller
Links and References
 Particle IoT Platform
 Particle Home
 Web IDE
 Console
 Device API
 Store and Amazon
 Arduino
 Home
 Reference
 RadioNonsense.com
 Shoutcast
 Icecast
 Real Audio
 Stream Guys
Thanks!

More Related Content

What's hot

Odst's technique
Odst's techniqueOdst's technique
Odst's technique
kkittylin
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisk
tutorialsruby
 

What's hot (16)

Making Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry PiMaking Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry Pi
 
Pi Is For Python
Pi Is For PythonPi Is For Python
Pi Is For Python
 
Local-Link Networking
Local-Link NetworkingLocal-Link Networking
Local-Link Networking
 
Desktop video arcade project
Desktop video arcade projectDesktop video arcade project
Desktop video arcade project
 
Asterisk: the future is at REST
Asterisk: the future is at RESTAsterisk: the future is at REST
Asterisk: the future is at REST
 
Podcasting in VET
Podcasting in VETPodcasting in VET
Podcasting in VET
 
Bonjour for Java
Bonjour for JavaBonjour for Java
Bonjour for Java
 
Odst's technique
Odst's techniqueOdst's technique
Odst's technique
 
Java Device I/O at Raspberry PI to Build a Candy Vending Machine
Java Device I/O at Raspberry PI to Build a Candy Vending MachineJava Device I/O at Raspberry PI to Build a Candy Vending Machine
Java Device I/O at Raspberry PI to Build a Candy Vending Machine
 
Raspberry pi course syllabus
Raspberry pi course syllabusRaspberry pi course syllabus
Raspberry pi course syllabus
 
Making Open Source Hardware IoT with Raspberry Pi
Making Open Source Hardware IoT with Raspberry PiMaking Open Source Hardware IoT with Raspberry Pi
Making Open Source Hardware IoT with Raspberry Pi
 
Getting Started with Raspberry Pi
Getting Started with Raspberry PiGetting Started with Raspberry Pi
Getting Started with Raspberry Pi
 
Introduction to raspberry pi
Introduction to raspberry piIntroduction to raspberry pi
Introduction to raspberry pi
 
03 Make Things Talk
03 Make Things Talk03 Make Things Talk
03 Make Things Talk
 
Jonny_Martin-Asterisk
Jonny_Martin-AsteriskJonny_Martin-Asterisk
Jonny_Martin-Asterisk
 
Making Lync VDI work best in your virtualization environment
Making Lync VDI work best in your virtualization environmentMaking Lync VDI work best in your virtualization environment
Making Lync VDI work best in your virtualization environment
 

Similar to Devoxx uk 2019 digital jukebox

Rapid IoT Prototyping with Tizen on Raspberry Pi
Rapid IoT Prototyping with Tizen on Raspberry PiRapid IoT Prototyping with Tizen on Raspberry Pi
Rapid IoT Prototyping with Tizen on Raspberry Pi
Leon Anavi
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
Gnu Alsonative
 
Sinnreich Henry Johnston Alan Pt 2
Sinnreich Henry Johnston Alan   Pt 2Sinnreich Henry Johnston Alan   Pt 2
Sinnreich Henry Johnston Alan Pt 2
Carl Ford
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
rmitc
 
PoC Introduction
PoC IntroductionPoC Introduction
PoC Introduction
guest3530f
 

Similar to Devoxx uk 2019 digital jukebox (20)

Web rtc 入門
Web rtc 入門Web rtc 入門
Web rtc 入門
 
Raspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedRaspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extended
 
WebRTC Videobroadcasting
WebRTC VideobroadcastingWebRTC Videobroadcasting
WebRTC Videobroadcasting
 
Rapid IoT Prototyping with Tizen on Raspberry Pi
Rapid IoT Prototyping with Tizen on Raspberry PiRapid IoT Prototyping with Tizen on Raspberry Pi
Rapid IoT Prototyping with Tizen on Raspberry Pi
 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
 
Sinnreich Henry Johnston Alan Pt 2
Sinnreich Henry Johnston Alan   Pt 2Sinnreich Henry Johnston Alan   Pt 2
Sinnreich Henry Johnston Alan Pt 2
 
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
 
Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
 Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e... Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
Cloud-Native .Net des applications containerisées .Net sur Linux, Windows e...
 
BonAHA framework - Lab presentation
BonAHA framework - Lab presentationBonAHA framework - Lab presentation
BonAHA framework - Lab presentation
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
 
Splunk Stream - Einblicke in Netzwerk Traffic
Splunk Stream - Einblicke in Netzwerk TrafficSplunk Stream - Einblicke in Netzwerk Traffic
Splunk Stream - Einblicke in Netzwerk Traffic
 
PoC Introduction
PoC IntroductionPoC Introduction
PoC Introduction
 
Raspberry Pi introduction
Raspberry Pi introductionRaspberry Pi introduction
Raspberry Pi introduction
 
Docker for the Internet of Things (IoT): An Introduction
Docker for the Internet of Things (IoT): An IntroductionDocker for the Internet of Things (IoT): An Introduction
Docker for the Internet of Things (IoT): An Introduction
 
Lightbend Fast Data Platform
Lightbend Fast Data PlatformLightbend Fast Data Platform
Lightbend Fast Data Platform
 
Lightbend Fast Data Platform
Lightbend Fast Data PlatformLightbend Fast Data Platform
Lightbend Fast Data Platform
 
Programming the Real World: Javascript for Makers
Programming the Real World: Javascript for MakersProgramming the Real World: Javascript for Makers
Programming the Real World: Javascript for Makers
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC Overview
 

More from Scott Sosna (6)

Demonolithing The Monolith? Bullocks!
Demonolithing The Monolith?  Bullocks!Demonolithing The Monolith?  Bullocks!
Demonolithing The Monolith? Bullocks!
 
Visualizing Open Data with Neo4J
Visualizing Open Data with Neo4JVisualizing Open Data with Neo4J
Visualizing Open Data with Neo4J
 
What is open data
What is open dataWhat is open data
What is open data
 
DubJug: Neo4J and Open Data
DubJug: Neo4J and Open DataDubJug: Neo4J and Open Data
DubJug: Neo4J and Open Data
 
Visualizing Open Data Using Neo4J (Full)
Visualizing Open Data Using Neo4J (Full)Visualizing Open Data Using Neo4J (Full)
Visualizing Open Data Using Neo4J (Full)
 
Visualizing Open Data Using Neo4J
Visualizing Open Data Using Neo4JVisualizing Open Data Using Neo4J
Visualizing Open Data Using Neo4J
 

Recently uploaded

Recently uploaded (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Devoxx uk 2019 digital jukebox

  • 1. (Everything But The Kitchen Sink) Digital Jukebox DEVOXXUK 2019
  • 2. …so what are we talking about…  Introductions  My Life In Audio  RadioNonsense.com  Digital Jukebox  Demo  Q&A  Reference Links
  • 3. Who Am I? • Architect @ Dell Technologies since 2011 • From St. Paul, MN • Longtime Software Engineer/Architect • Business and Software Shops • Individual Contributor and Leadership Roles • All phases from project conception to implementation • Sideline projects at home • Music Lover • 10+ years online radio station of personal music • Contact Info • Email: scott [dot] sosna [@] buddhadata [dot] com • LinkedIn: https://www.linkedin.com/in/scott-sosna
  • 10. My Audio History: Digital
  • 11. My Audio History: Digital
  • 12. My Audio History: Digital
  • 13. My Audio History: Digital
  • 16. RadioNonsense.com  Tired of selecting CDs to bring into work  Large personal music collection  Some CDs not good for software development  Worked for NetRadio.com  One of first online music sites  Figured it was pretty easy, let’s do it myself  Ran for over 10 years  Allowed anyone to listen  Got listeners all over the world
  • 19. Jukebox Components  Infrastructure  Subsonic  Docker  Kafka  Software-Defined Radio  IoT Devices
  • 20. Infrastructure Requirements  Raspberry Pi Model 3  CPU: 1.2 GHZ quad-core ARM  Memory: 1GB SDRAM  Network: wired, wi-fi, Bluetooth  GPU: Broadcom VideoCoreIV @ 400Mhz  Operating System  Raspian Stretch  Recommend Lite (no desktop)
  • 21. Infrastructure Requirements  Router  Wi-Fi for Rpi’s to connect to  DHCP address reservation  Separate from home network
  • 22. Infrastructure Requirements  Anker PowerPort 6  A Raspberry Pi 3 requires 2.5A  Sufficient Power Important  Many adapters don’t provide enough  RPi will run slow or crash  Definitely see console logging
  • 26. Subsonic  Web-based Media Management  Manage music collection  Stories of multiple TBs of songs  Play or stream music collection  mp3, ogg, flac, wav, wma, more  also internet radio, podcast, video  Integrates with Android/IOS apps  Requires premium version  Airsonic: license-free alternative  RPi install instructions in project  subsonic-client/src/main/resources/notes.txt  RESTful API for app development  Retrofit Interfaces for each services  16 services  All parameters are query parameters  Generated response objects from XSD
  • 27. Using Subsonic API Creating Service Making Call
  • 28. Docker  Easy to install on Raspberry Pi  Five Containers  Scheduler: queue random songs to playlist when under threshhold  Now Playing: publish song changes  Subsonic doesn’t have callbacks  Twitter: publish event info to Twitter  Code Card: calls for IoT device  Particle: calls and event handling  2-way interaction with IoT device  Problems  FROM image must be ARM-compatible  hypriot/rpi-java  Commands during image build  Jukebox images built on i686 Fedora  not building on Raspberry Pi  No Image Repository  Export, Copy, Import  SSL Certificates  Image comes with none  Manually copied keystore  Map volume in Docker container
  • 30. …and the rest... Kafka  Publish/Subscribe messaging  Runs on bare metal  Difficult to find ARM instance  Docker-compose not available  Really slow in Docker  Single-instance cluster  No robustness, more dev-like  Publish jukebox events to Kafka  Multiple services consume Random Number Generator  RTL2832U SDR dongle for randomness  rtl_fm turns radio broadcast into bytes  data pipe to *nix fifo file  service reads data into circular buffer  generator uses buffer for raw data  More random than standard Java  Data based on current broadcast  Easy to change stations as needed  Runs on bare metal  Fifo files not available within Docker
  • 33. Oracle CodeCard  ESP8266 Microcontroller  80/160Mhz  32 KiB instructions/ 80KiB user data  TCP/IP Stack  Wi/Fi  Display  Buttons  USB Port  16 GPIO Pins  General –purpose input/output  Left Button  Short Press: Start/Stop Jukebox  Long Press: Mute/Unmute  Right Button  Short Press: Next Song  Long Press: Restart Song
  • 35. Particle Photon IoT Platform  Cloud-based Management  Registration and Setup  Device monitoring  Over-the-air firmware upgrades  Web-based IDE  Event logs and diagnostics  Webhook Integrations  Hardware  Arduino-based microcontroller  1MB Flash/128K RAM  Wi-Fi and Cellular Communications  Programmable RGB LED  USB-powered  GPIO, digital/analog, other functions
  • 36. Particle Photon IoT Platform  Software  FreeRTOS (real-time operating system)  Web and Desktop IDE  C/C++ based coding  Web IDE loads program over-the-air  API for on-board hardware  Particle-specific extensions  API for communicating via cloud  Cloud Communications  Register functions for RESTful calls  Subscribe Particle Cloud events  Publish events to Particle Cloud  Trigger webhooks to call external resources  No local communications  Everything goes through cloud
  • 37.
  • 39. Demo
  • 40. Future Enhancements  Java11 or 12  Private Blockchain  Subsonic API Calls to Control Streaming  Better Logging
  • 41. Q&A
  • 42. Personal Links  Email: scott [dot] sosna [@] buddhadata [dot] com  LinkedIn: https://www.linkedin.com/in/scott-sosna  GitHub: https://github.com/scsosna99/  Slideshare: https://www.slideshare.net/ScottSosna  Twitter: https://twitter.com/scott_sosna
  • 43. Links and References  Raspberry Pi  Raspberry Pi Organization  Raspbian Download Image  Anker PowerPort 6  The Pi Hut or Adafruit  Subsonic  Subsonic Home Page  Subsonic API  Airsonic Home Page  Docker  Install Docker on Rpi  hypriot/rpi-java  Spring Boot  Kafka  Kafka Home  Kafka/Zookeeper on Rpi  Kafka/Zookeeper on Docker/ARM  Software-Defined Radio  RTL2832U Software-Defined Radio  Rtl-sdr Software  Oracle Code Card  CodeCard Home Page  CodeCard Source  CodeCard: Making an IoT Badge  ESP8266 Microcontroller
  • 44. Links and References  Particle IoT Platform  Particle Home  Web IDE  Console  Device API  Store and Amazon  Arduino  Home  Reference  RadioNonsense.com  Shoutcast  Icecast  Real Audio  Stream Guys