Innovations in technology and Salesforce now allow individuals to make almost any object "smart" or solve any business problem when placed in capable hands. The Salesforce Studio at Deloitte Digital wanted to make their traditional foosball table "smart enough" to track player statistics and data, ultimately creating a ranking and bracketing algorithm capable of pairing like-skilled players. Join us to see how we've combined Internet of Things technologies, such as Arduino and Raspberry Pi, with the Force.com Streaming API and web services to create automatic game scoring and data logging, and present it in a near real-time, bootstrap-enabled, HTML5 scoring page. The game doesn't stop with game play. Users can interact and report on player data and statistics through Wave and out-of-the-box Salesforce!
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Creating a Connected Foosball Table with Arduino, Raspberry Pi, and Salesforce
1. Creating a Connected Foosball Table with
Arduino, Raspberry Pi, & Salesforce!
Jeff Kimble Deloitte Digital Studio Salesforce Lead (Solution Architect)
Lonnie Lee Comer Deloitte Digital Studio Salesforce Senior (Technical Architect)
2. •
An Idea… and the people who brought it into reality
Jeff Kimble
Deloitte Digital Studio Salesforce Lead (Solution Architect)
Follow me on Twitter:
@Jenkatron
Jeff Kimble works with top talent and senior leadership in the Deloitte Salesforce Studio in Denver, CO to create cutting edge and innovative solutions in a best-in-
breed environment. He has helped build, design, architect, and lead projects across an array of verticals. Jeff’s work with the State of Colorado at the Dept. of
Transportation Division of Aeronautics won the state national acclaim. He has also worked on or architected myriad other systems for numerous other states
including other Colorado departments, the State of TX, and the State of MI.
Jeff has worked as a Salesforce consultant for the past four years and an architect for the previous two. Before working in the Deloitte Studio, he consulted for other
leading Salesforce-specific consultancies including Vertiba and NTT Centerstance. He holds many Salesforce certifications including Administrator, Advanced
Administrator, Developer, Sales Cloud Consultant, and Service Cloud Consultant and is a green belt in the Salesforce Wave Analytics Cloud.
Jeff grew up just outside Cleveland, OH before joining the Army and serving on the U.S. Army Honor Guard at Arlington National Cemetery. Following his service,
he attended Harvard University with a concentration in International Relations before finally landing in Denver.
3. Project Genesis
Approach
How We Chose Arduino and Raspberry Pi
System Architecture
Connecting it all to Salesforce
Translating Into Real-World Business Problems
Q&A
Welcome!
5. Never a marketing scheme
Curious people being curious
• Didn’t know HOW, but knew we could
• Continued (and continues) to evolve
“Wouldn’t It Be Cool if…”
6. Managed like a “regular” project
• Developed user stories
• JIRA: “As a foosball player, I should see the score.”
• Broke them down into sprints, enhancements, and backlog
• Used stories to start giving us direction and researching
Break it Down!
7. Still a learning experience
• Burned out some devices
• Needed stronger documentation and wiring schematics
• Spare parts are good parts!
Other Major Lessons:
• Large “immaterial” cost to physical failure
• Not like coding where one can revert
• Many parts have weeks of lead time
But Still a Little “Wild West…”
9. •
An Idea… and the people who brought it into reality
Lonnie Lee Comer
Deloitte Digital Studio Salesforce Senior (Technical Architect)
Follow me on Twitter:
@lonnieleecomer
Lonnie Lee Comer is a Sr. Technical Architect in the Deloitte Digital Denver Studio. Lonnie has been in the IT industry for 19 years as a
developer and architect. He has worked with the Salesforce.com platform for over 9 years and is dedicated to moving business into the
cloud and beyond. Lonnie is very passionate about connected devices and using them to empower businesses to automate and enhance
existing processes.
Lonnie enjoys spending time with his great dane Storm and his blue heeler Lu Bear. Rock climbing, playing music, and snowboarding are
other activities he enjoys when not wiring a foosball table to Salesforce.
10. Never Let Them See You Sweat!
Arduino
Single-task orientation
“Least capable”
Raspberry Pi
WiFi!
Linux!
Can handle many tasks
Still kinda slow…
Know your limits and play to your strengths
IR and RFID Sensors
11. Building the (Virtual) Bridge to Salesforce
C (Arduino)
• Detect IR sensor beam break via
voltage drop
• Publishes Sensor Data via General
Purpose Input Output (GPIO)
Know your limits and play to your strengths
12. Building the (Virtual) Bridge to Salesforce
Python (Raspberry Pi)
• Calls out via REST
• Simple Salesforce Library
• Consumes GPIO for Arduino
• NFC Library for RFID
Know your limits and play to your strengths
13. Boils Down to Three Lines of Code…
1: Import library
2: Create connection with SFDC
3: Call Web Service
Raspberry Pi Code Written in Python
1: Import library
## Import simple_salesforce library
from simple_salesforce import Salesforce
2: Create connection with SFDC
## Setup the SFDC Connection
sf = Salesforce(username=uname, password=pwd, security_token=tkn,Sandbox=True)
3: Call Web Service
##sf.Goal__c.create({'Name':'GoalTeam1','Foosball_Match__c':matchId,'Team__c':team1Id})
sf.Sensor_Data__c.create({'Table_Id__c':tableId,'Sensor_Id__c':’Black’,'Sensor_Value__c':'1'})
14. Strongest Skillset
• “We obviously got this.” – Victor “The Animal” Abraham
• Less obvious lesson: “an expert carpenter with a decent hammer can build a better boat than a rookie
carpenter with best hammer money can buy”
More computing power at scale
• Heavy lifting offloaded
• Adding sensors and more calls out has less impact on hardware setup
Turns out we know a few SFDC developers…
…So Make Salesforce Do It!
15. Streamline sensor data
• Sensor call is only two data points: Sensor Name, Sensor Value
• Example: Goal is Scored
Sensor Name: BlackGoal
SensorValue: 1
• Can be anything! (Name: DeliveryProdLineFault & Value: 1; Name: SpinDetector & Value: 1)
Weigh Function Against Complexity
• Streaming API = “realtime scoring”
• Single daily batch call simpler when applicable
Always “Think Big” when developing system architecture
Stay Three Steps Ahead of the Other Guy!
17. Novel Findings
Old table had statistically significant bias
Sun triggered false positives (environmental factors)
<<Insert graphs from Wave>>
Visualizing Player Data using Wave Analytics Cloud
18. Based on Glicko2
Uses levels of deviation
Scoring floor of 350
“Starting” score of 1500
Player Ranking
20. Infrastructure
• Keep sensors and connected devices as simple as possible
• Account for growth, even if you don’t think it will happen
Play to Your Strengths
• Use your skills to break down new concepts into manageable pieces
• Offload heavy lifting to SFDC
Think Bigger
• Basic understanding opens understanding for a vast array of connected devices
• Never stop questioning, you’ll be surprised what you find!
In Summary…