what hath god wrought? developing for the internet of things

55
"When wireless* is perfectly applied the whole earth will be converted into a huge brain, which in fact it is, all things being particles of a real and rhythmic whole.........and the instruments through which we shall be able to do this will be amazingly simple compared with our present telephone. A man will be 1926 - Nikola Tesla

Upload: mark-robert-henderson

Post on 12-Aug-2015

106 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: What hath God wrought? Developing for the Internet of Things

"When wireless* is perfectly applied the whole earth will be converted into a huge brain, which in fact it is, all things being particles of a real and rhythmic whole.........and the instruments through which we shall be able to do this will be amazingly simple compared with our present telephone. A man will be able to carry one in his vest pocket."1926 - Nikola Tesla

Page 2: What hath God wrought? Developing for the Internet of Things

"...It can also be maintained that it is best to provide the machine with the best sense organs that money can buy, and then teach it to understand and speak English. This process could follow the normal teaching of a child."

1950 - Alan Turing

Page 3: What hath God wrought? Developing for the Internet of Things

"....by means of electric media, we set up a dynamic by which all previous technologies -- including cities -- will be translated into information systems"

1964 - Marshall McLuhan

Page 4: What hath God wrought? Developing for the Internet of Things

“The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it”.

1991 - Mark Weiser

Page 5: What hath God wrought? Developing for the Internet of Things

1844 - Samuel Morse sends the first public telegraph message. It said...

Page 6: What hath God wrought? Developing for the Internet of Things

What hath God wrought?Developing for the Internet of Things

Page 7: What hath God wrought? Developing for the Internet of Things

Mark Robert HendersonLead Engineer, No Pilots No Demos

@aphelionz@npnd

Slides available at http://npnd.us/iot-dev

Page 8: What hath God wrought? Developing for the Internet of Things

HistoryThe “Internet of Things”

predates the web, the internet, and even the computer.

Page 9: What hath God wrought? Developing for the Internet of Things

1946 - Dick Tracy’s two-way wristwatch radio

Page 10: What hath God wrought? Developing for the Internet of Things

1950 - Edward Thorp makes a wearable analog computer to cheat at roulette

Page 11: What hath God wrought? Developing for the Internet of Things

1960 - Morton Hellig patents the first head-mounted display

Page 12: What hath God wrought? Developing for the Internet of Things

1969 - Honeywell Kitchen Computer

Page 13: What hath God wrought? Developing for the Internet of Things

1969 - ARPANET is invented

Page 14: What hath God wrought? Developing for the Internet of Things

1971 - ALOHAnet

Page 15: What hath God wrought? Developing for the Internet of Things

1973 - RFID is patented

Page 16: What hath God wrought? Developing for the Internet of Things

1974 - TCP/IP

Page 17: What hath God wrought? Developing for the Internet of Things

1981 - Steve Mann, the first wearable computer (eventually becomes WearCam)

Page 18: What hath God wrought? Developing for the Internet of Things

1989 - Tim Berners-Lee proposes the World Wide Web

Page 19: What hath God wrought? Developing for the Internet of Things

1990 - John Romkey’s Toaster

Page 20: What hath God wrought? Developing for the Internet of Things

1991 - Precursor to 802.11

Page 21: What hath God wrought? Developing for the Internet of Things

1991 - Knowledge-based Augmented Reality for Maintenance Assistance

Page 22: What hath God wrought? Developing for the Internet of Things

1994 - Forget Me Not

Page 23: What hath God wrought? Developing for the Internet of Things

1998 - MIT’s InTouch

Page 24: What hath God wrought? Developing for the Internet of Things

1998 - Mark Weiser’s Stock Fountain

Page 25: What hath God wrought? Developing for the Internet of Things

1999 - “Internet of Things” is coined by Kevin Ashton

Page 26: What hath God wrought? Developing for the Internet of Things

2000 - LG’s Internet Refrigerator

Page 27: What hath God wrought? Developing for the Internet of Things

2002 - Ambient Orb

Page 28: What hath God wrought? Developing for the Internet of Things

2005 - Nabaztag

Page 29: What hath God wrought? Developing for the Internet of Things

2010 - Google’s Self Driving Cars

Page 30: What hath God wrought? Developing for the Internet of Things

2011 - Arduino launched, “maker” revolution begins

Page 31: What hath God wrought? Developing for the Internet of Things

2014 - Gartner hype cycle

Page 32: What hath God wrought? Developing for the Internet of Things

What was recently a joke about getting your toaster on the internet, and has

now evolved into an industry buzzword, is in

fact the continuation of a very simple human

endeavor to transcend our physical limitations and

create a worldwide extension of our very

nervous systems.

Page 33: What hath God wrought? Developing for the Internet of Things

End-to-EndSo, here’s what you’re going to

do.

Page 34: What hath God wrought? Developing for the Internet of Things

Sensors

How to get information from the ether.

The World

SensorsMicroproces

sorCloud + Storage

App Layer Result

Page 35: What hath God wrought? Developing for the Internet of Things

Ground movement, underwater sound, acoustic vibrations, air-fuel mixture, blind spots on cars, oxygen levels, alcohol content, magnetic fields, infrared, current, voltage, air pollution, bed wetting, humidity, snow, rain, soil moisture and composition, air flow, water flow, mass flow, radiation, temperature, geolocation, orientation, altitude, air speed, capacitance, fire, smoke, pressure, boost, level, force, strain

There are sensors available that read:

Page 36: What hath God wrought? Developing for the Internet of Things

The breadboarding process - fun as heck

Page 37: What hath God wrought? Developing for the Internet of Things

Taking analog signals to the digital domain

Microprocessor

The World

SensorsMicroproce

ssorCloud + Storage

App Layer Result

Page 38: What hath God wrought? Developing for the Internet of Things

✘ Arduino✘ BeagleBone✘ Raspberry Pi✘ Spark.io✘ Linino One✘ Tessel✘ TI CC3200✘ MSP430 LaunchPad

Plenty of Options here

Page 39: What hath God wrought? Developing for the Internet of Things

3 Axis Accelerometer Example (Serial Monitor)

Page 40: What hath God wrought? Developing for the Internet of Things

Cloud ServicesWhere does the device

transmit to?

The World

SensorsMicroprocess

orCloud + Storage App Layer Result

Page 41: What hath God wrought? Developing for the Internet of Things

TCPData is sent via an established and verified connection to another device. As a result, slower.

Examples: HTTP, SMTP, FTP

You have two main options to send your packets

UDPEssentially “set it and forget it.” Sent connectionless* and orderless.

Examples: DNS, VOIP, Spark.io’s Pub/Sub

*kinda

Page 42: What hath God wrought? Developing for the Internet of Things

Two main ways of organizing your packets

REST/SOAP (HTTP)Organized based on either HTTP verbs and resource nouns (REST)or HTTP calls to resource verbs (SOAP)

Pub/Sub (UDP)Organized in terms of channels that devices ‘publish’ data to, where other channels would ‘subscribe’ to those channels and respond accordingly.

Page 43: What hath God wrought? Developing for the Internet of Things

✘ Node.js✘ Scala / Akka✘ Python / Twisty✘ libuv✘ ...and more

Asynchronous + Evented I/O is your friend

Page 44: What hath God wrought? Developing for the Internet of Things

340,282,366,920,938,463,463,374,607,431,768,211,456

That’s the (theoretical) number of IPv6 Addresses available, thus...

Page 45: What hath God wrought? Developing for the Internet of Things

Storage...FAST WRITES ARE IMPORTANT

(reads too)

The World

SensorsMicroprocess

orCloud + Storage App Layer Result

Page 46: What hath God wrought? Developing for the Internet of Things

✘ Aerospike✘ Cassandra✘ Redis✘ Mongo✘ MemSQL

In-Memory Databases are key here

Of course, you can aggregate down to a traditional db...

✘ PostgreSQL✘ MySQL✘ Oracle, etc

Page 47: What hath God wrought? Developing for the Internet of Things

Application LayerWhat the End User Sees

The World

SensorsMicroprocess

orCloud + Storage App Layer Result

Page 48: What hath God wrought? Developing for the Internet of Things

High-level options for application development

NativeiOS - Objective-CAndroid - JVMDesktop - variousWeb - HTML/CSS/JS

HybridWeb technologies “wrapped” in various frames for deployment to different platforms.

Cordova / Titanium / etc.

Page 49: What hath God wrought? Developing for the Internet of Things

The End ResultServos, Automata, and

Indicators

The World

SensorsMicroprocess

orCloud + Storage App Layer Result

Page 50: What hath God wrought? Developing for the Internet of Things

What now?Go forth and create!

Page 51: What hath God wrought? Developing for the Internet of Things

Wearables / Cybernetics

Becoming one with the machine.

Page 52: What hath God wrought? Developing for the Internet of Things

IRL Reductive SearchLooking for that Orange Ball

Page 53: What hath God wrought? Developing for the Internet of Things

Extending the Neocortex

Expanding the predictive capability of the mammalian brain

Page 54: What hath God wrought? Developing for the Internet of Things

Credits

Special thanks to all the people who made and released these awesome resources for free:✘ Presentation template by

SlidesCarnival✘ Photographs by Unsplash✘ History of IoT appropriated from

Atmel and Postscapes

Page 55: What hath God wrought? Developing for the Internet of Things

THANKS!Any questions?You can find me at✘ @aphelionz✘ @npnd✘ [email protected]