Monitor Your Car From the Cloud: DIY Telematics and the Internet of Things

Preview:

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

Recommended