Upload
salesforce-developers
View
161
Download
0
Embed Size (px)
DESCRIPTION
All cars manufactured since 1996 have an OBD-II diagnostic interface. Join us to learn how to expose this data using a Heroku app and Force.com APIs, explore the data available, and be introduced to DIY products like the Arduino, Raspberry Pi, and Beagle Bone. We'll finish by creating an automatic support-request and case-handling system.
Citation preview
Monitor Your Car from the Cloud
DIY Telematics and the Internet of Things
Tom Gersic, Salesforce.com
Director, Mobile Services Delivery
@tomgersic
Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results
expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be
deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other
financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any
statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new
functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our
operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any
litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our
relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our
service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to
larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is
included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent
fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor
Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently
available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions
based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these
forward-looking statements.
Tom Gersic
Director, Mobile Services Delivery
@tomgersic
“You just can’t work on cars yourself these days
because they’re all computerized.”
“I know more about pneumatic engine control systems
than I do about computers”
The MIL (Malfunction Indicator Lamp)
a.k.a “Check Engine Light”
2 Stages in cars since 1996 Model Year
• Steady
• Flashing
CAN Bus
OBD-II
Required by law since 1996
Within 2 feet of steering wheel
16 Pin connector
P0171 and P0174 -- “System too Lean”
Bad O2 sensor?
Clogged fuel filter?
Vacuum leak?
Watery gas?
Plugged injectors?
Leak in the intake hose?
Real Time Data
So I got to thinking…
ELM327
Arduino
OBD-II TTL Adapter
Red: Vcc (+5V)
Green: Ground
Yellow: Rx
Blue: Tx
TTL UART
UART: Universal Asynchronous Receiver and Transmitter
TTL: Transistor to Transistor Logic
Commands tgersic-ltm:dev tgersic$ screen /dev/tty.OBDII-LCASPP 115200
>ATI (Print the ID)
ELM327 v2.0
>ATZ (restart the device)
ok
>ATL1 (turn linefeeds on)
ok
>ATH1 (turn headers on)
ok
>ATS1 (turn spaces on)
ok
>ATSP0 (set protocol to Auto)
ok
>03 (get stored trouble codes)
87 F1 12 43 04 44 00 00 00 00 15
43 is a response for a mode 03 query
Commands tgersic-ltm:dev tgersic$ screen /dev/tty.OBDII-LCASPP 115200
>ATI (Print the ID)
ELM327 v2.0
>010C (“01” is mode 01 for realtime data. “0C” is for RPM.
84 F1 12 41 0C 0A EC CA
41 is a response for a mode 03 query
0C is the command it’s responding to
0x0AEC is 2796 quarter RPMs, so 699 RPM (idling)
OBD-II Modes $01. Show current data
$02. Show freeze frame data
$03. Show stored Diagnostic Trouble Codes
$04. Clear Diagnostic Trouble Codes and stored values
$05. Test results, oxygen sensor monitoring (non CAN only)
$06. Test results, other component/system monitoring (Test results, oxygen sensor monitoring for CAN
only)
$07. Show pending Diagnostic Trouble Codes (detected during current or last driving cycle)
$08. Control operation of on-board component/system
$09. Request vehicle information
$0A. Permanent DTC's (Cleared DTC's)
ArduinoOBD
https://github.com/stanleyhuangyc/ArduinoOBD/
Simple MongoDB logger in Heroku
Heroku to Salesforce
Tom Gersic
Director, Mobile Services Delivery
@tomgersic
We want to hear
from YOU!
Please take a moment to complete our
session survey
Surveys can be found in the “My Agenda”
portion of the Dreamforce app
@tomgersic