A presentation at Coding Serbia in in Novi Sad, Serbia by Holly Cummins
Arduinos, Application Servers, and me Holly Cummins @holly_cummins © 2015 IBM Corporation
#arduinoappserver @holly_cummins
? #arduinoappserver @holly_cummins
#arduinoappserver @holly_cummins
#arduinoappserver @holly_cummins
#arduinoappserver @holly_cummins
#arduinoappserver @holly_cummins
#arduinoappserver @holly_cummins
“I think there is a world market for maybe five computers.” Thomas Watson chairman of IBM 1943 #arduinoadventures @holly_cummins
Then: HARDware #arduinoadventures @holly_cummins
Now: Everyware #arduinoadventures @holly_cummins
Next: Connected-ware #arduinoadventures @holly_cummins
Why care about the Internet of Things? #arduinoadventures @holly_cummins
Why care about the Internet of Things? This could really benefit my business #arduinoadventures @holly_cummins
Why care about the Internet of Things? This could really benefit my business #arduinoadventures This is so FUN and COOL and OOH I made it LIGHT UP!” @holly_cummins
Poll-time. #arduinoadventures @holly_cummins
Hmm. Can we be more precise? #arduinoadventures @holly_cummins
A bit of textile engineering. #arduinoadventures @holly_cummins
A bit more textile engineering. #arduinoadventures @holly_cummins
Ta-daa! #arduinoadventures @holly_cummins
Ta-daa! Presenting: The WebSphere Sphere #arduinoadventures @holly_cummins
Ta-daa! Presenting: The WebSphere Sphere (“the cuddly application server”) #arduinoadventures @holly_cummins
Remind you of anything? #arduinoadventures @holly_cummins
Not really. It’s very lumpy, isn’t it? #arduinoadventures @holly_cummins
Software faults can be corrected without re-typing the whole program. #arduinoadventures @holly_cummins
It’s a computer case #arduinoadventures @holly_cummins
Interfacing the ball to the computer LED sequins #arduinoadventures @holly_cummins
Soft circuits #arduinoadventures @holly_cummins
Soft circuits Conductive thread #arduinoadventures @holly_cummins
Soft circuits Conductive thread £6.78 #arduinoadventures @holly_cummins
Soft circuits Stainless steel Conductive thread £6.78 #arduinoadventures @holly_cummins
Soft circuits Stainless steel Conductive thread £6.78 #arduinoadventures Solderable @holly_cummins
Soft circuits Stainless steel Conductive thread £6.78 Solderable Sewable #arduinoadventures @holly_cummins
Architecture Sensors embedded application server #arduinoadventures @holly_cummins
Let’s have a play SSID: sphere password: websphere #arduinoadventures @holly_cummins
Let’s have a play http://192.168.8.1/sphere SSID: sphere password: websphere #arduinoadventures @holly_cummins
The physical world useful stuff #arduinoadventures @holly_cummins
The physical world useful stuff #arduinoadventures @holly_cummins
The physical world useful stuff Short #arduinoadventures @holly_cummins
The physical world useful stuff Short pcDuino #arduinoadventures @holly_cummins
The physical world useful stuff Short pcDuino #arduinoadventures @holly_cummins
The physical world useful stuff #arduinoadventures @holly_cummins
The physical world useful stuff #arduinoadventures @holly_cummins
The physical world useful stuff Loose connection #arduinoadventures @holly_cummins
The physical world sealed unit useful stuff Loose connection #arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
“Loose” connection #arduinoadventures @holly_cummins
What’s running it? #arduinoadventures @holly_cummins
Ubiquitous computing++ #arduinoadventures @holly_cummins
Ubiquitous computing++ #arduinoadventures @holly_cummins
Cloud-Embeddable convergence #arduinoadventures @holly_cummins
Cloud-Embeddable convergence Density #arduinoadventures @holly_cummins
Cloud-Embeddable convergence Density Small download Small memory footprint #arduinoadventures @holly_cummins
Cloud-Embeddable convergence Density Elasticity Small download Small memory footprint #arduinoadventures @holly_cummins
Cloud-Embeddable convergence Density Elasticity Enable and disable function …dynamically Small download Small memory footprint #arduinoadventures Easy install Easy uninstall @holly_cummins
But is it really IoT? #arduinoadventures @holly_cummins
But is it really IoT? #arduinoadventures @holly_cummins
But is it really IoT? Thing #arduinoadventures @holly_cummins
But is it really IoT? Embedded thing #arduinoadventures @holly_cummins
But is it really IoT? Very very embedded thing #arduinoadventures @holly_cummins
But is it really IoT? Network, but not internet Very very embedded thing #arduinoadventures @holly_cummins
But is it really IoT? #arduinoadventures @holly_cummins
But is it really IoT? No machine-tomachine #arduinoadventures @holly_cummins
M2M #arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
Revised architecture #arduinoadventures @holly_cummins
Revised architecture IBM IoT Foundation #arduinoadventures @holly_cummins
Revised architecture IBM IoT Foundation #arduinoadventures Same source code @holly_cummins
http://sphere.mybluemix.net/sphere #arduinoadventures @holly_cummins
Bluemix and IoT foundation // parse VCAP_SERVICES String VCAP_SERVICES = System.getenv(“VCAP_SERVICES”); JSONObject vcap = new JSONObject(VCAP_SERVICES); JSONArray json = vcap.getJSONArray(“iotf-service”); JSONObject credentials = json.getJSONObject(0).getJSONObject(“credentials”); String host = (String) credentials.get(“mqtt_host”); Integer port = (Integer) credentials.get(“mqtt_u_port”); … MqttClient client = new MqttClient(uri, id); MqttConnectOptions opts = new MqttConnectOptions(); opts.setUserName(username); opts.setPassword(password.toCharArray()); client.connect(opts); client.setCallback(this); client.subscribe(“iot-2/type/+/id/+/evt/+/fmt/+”); #arduinoadventures @holly_cummins
Working with IoT #arduinoadventures @holly_cummins
Working with IoT: step 1 #arduinoadventures @holly_cummins
Working with IoT: step 1 “No, I did NOT mean jot. I meant iot. Gah!” #arduinoadventures @holly_cummins
Working with IoT: step 1 “No, I did NOT mean jot. I meant iot. Gah!” #arduinoadventures @holly_cummins
Working with IoT: step 2 #arduinoadventures @holly_cummins
Working with IoT: step 2 Get some kit #arduinoadventures @holly_cummins
Taxonomy of embedded devices #arduinoadventures @holly_cummins
Taxonomy of embedded devices Microcontroller #arduinoadventures @holly_cummins
Taxonomy of embedded devices Microcontroller Microprocessor #arduinoadventures @holly_cummins
Taxonomy of embedded devices Microcontroller Microprocessor Sort-of-a-computer #arduinoadventures @holly_cummins
Taxonomy of embedded devices Microcontroller Microprocessor Sort-of-a-computer Really-a-computer #arduinoadventures @holly_cummins
The microcontroller zoo #arduinoadventures @holly_cummins
The microcontroller zoo #arduinoadventures @holly_cummins
The microcontroller zoo PIC £2 #arduinoadventures @holly_cummins
The microcontroller zoo PIC £2 NetDuino £48 #arduinoadventures @holly_cummins
The microcontroller zoo Arduino £23 PIC £2 NetDuino £48 #arduinoadventures @holly_cummins
The microcontroller zoo Arduino £23 Arduino-compatible £9 #arduinoadventures PIC £2 NetDuino £48 @holly_cummins
Arduino #arduinoadventures @holly_cummins
Arduino £23 #arduinoadventures @holly_cummins
Arduino Ethernet £23 #arduinoadventures @holly_cummins
Arduino £23 #arduinoadventures @holly_cummins
Arduino NO Ethernet £23 #arduinoadventures @holly_cummins
Arduino NO Ethernet NO Wi-fi £23 #arduinoadventures @holly_cummins
Arduino NO Ethernet NO Wi-fi £23 #arduinoadventures Internet of Things @holly_cummins
Arduino NO Ethernet NO Wi-fi £23 #arduinoadventures Things @holly_cummins
Connecting an Arduino to the Internet #arduinoadventures @holly_cummins
Connecting an Arduino to the Internet #arduinoadventures @holly_cummins
Connecting an Arduino to the Internet Ethernet shield #arduinoadventures @holly_cummins
Connecting an Arduino to the Internet Ethernet shield £10 #arduinoadventures @holly_cummins
Connecting an Arduino to the Internet Ethernet shield £10 #arduinoadventures @holly_cummins
Connecting an Arduino to the Internet Ethernet shield £10 #arduinoadventures Wi-fi shield @holly_cummins
Connecting an Arduino to the Internet Ethernet shield £10 Wi-fi shield £36 #arduinoadventures @holly_cummins
Connecting an Arduino to the Internet Ethernet shield £10 Wi-fi shield £36 #arduinoadventures @holly_cummins
Connecting an Arduino to the Internet Ethernet shield £10 Wi-fi shield £36 #arduinoadventures Raspberry pi @holly_cummins
Connecting an Arduino to the Internet Ethernet shield £25 £10 Wi-fi shield £36 #arduinoadventures Raspberry pi @holly_cummins
Connecting an Arduino to the Internet Ethernet shield free £10 Wi-fi shield £36 #arduinoadventures Raspberry pi @holly_cummins
#arduinoadventures @holly_cummins
Managing headless devices #arduinoadventures @holly_cummins
Managing headless devices #arduinoadventures @holly_cummins
Managing headless devices HDMI display #arduinoadventures @holly_cummins
Managing headless devices HDMI display USB keyboard #arduinoadventures @holly_cummins
Managing headless devices #arduinoadventures @holly_cummins
Managing headless devices #arduinoadventures @holly_cummins
Managing headless devices #arduinoadventures @holly_cummins
Managing headless devices #arduinoadventures @holly_cummins
Workflow for “pi and seek” #arduinoadventures @holly_cummins
Workflow for “pi and seek” Ethernet cable #arduinoadventures @holly_cummins
Workflow for “pi and seek” Ethernet cable DHCP #arduinoadventures @holly_cummins
Workflow for “pi and seek” Ethernet cable Network sharing DHCP #arduinoadventures @holly_cummins
Getting a connection #arduinoadventures @holly_cummins
Finding the IP address my-mac:~ holly$ ifconfig | grep -A3 bridge100 bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=3<RXCSUM,TXCSUM> ether 3e:07:54:e0:26:64 inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255 my-mac:~ holly$ nmap -sn 192.168.2.0/24 Starting Nmap 6.47 ( http://nmap.org ) at 2015-02-28 16:26 GMT Strange error from connect (65):No route to host Nmap scan report for 192.168.2.3 Host is up (0.00056s latency). Nmap done: 256 IP addresses (1 host up) scanned in 4.16 seconds #arduinoadventures @holly_cummins
The single board computer zoo #arduinoadventures @holly_cummins
Raspberry Pi #arduinoadventures @holly_cummins
Raspberry Pi £25 #arduinoadventures @holly_cummins
Raspberry Pi GPIO pins SD storage Oldish CPU £25 RAM (some) USB #arduinoadventures @holly_cummins
Raspberry Pi GPIO pins SD storage Oldish CPU £25 RAM (some) USB (not my friend) #arduinoadventures @holly_cummins
Raspberry Pi SD storage GPIO pins (no analog pins) Oldish CPU £25 RAM (some) USB (not my friend) #arduinoadventures @holly_cummins
Raspberry Pi 2 #arduinoadventures @holly_cummins
Raspberry Pi 2 £30 #arduinoadventures @holly_cummins
Raspberry Pi 2 GPIO pins SD storage New CPU £30 RAM (more) USB #arduinoadventures @holly_cummins
Raspberry Pi 2 GPIO pins SD storage New CPU £30 RAM (more) USB (more) #arduinoadventures @holly_cummins
Raspberry Pi 2 SD storage GPIO pins (no analog pins) New CPU £30 RAM (more) USB (more) #arduinoadventures @holly_cummins
BeagleBone black #arduinoadventures @holly_cummins
BeagleBone black £42 #arduinoadventures @holly_cummins
BeagleBone black Ethernet 1 GHz CPU 2 Microcontrollers £42 #arduinoadventures 4 GB flash storage 512 MB RAM @holly_cummins
Arduino Yún #arduinoadventures @holly_cummins
Arduino Yún £57 #arduinoadventures @holly_cummins
Arduino Yún Atheros microprocessor Ethernet Arduino microcontroller Wi-fi £57 #arduinoadventures @holly_cummins
pcDuino #arduinoadventures @holly_cummins
pcDuino #arduinoadventures @holly_cummins
pcDuino £60 #arduinoadventures @holly_cummins
pcDuino Battery connector Wi-fi Dual-core CPU 4 GB flash storage £60 #arduinoadventures “Arduino-ish” pins 1 GB RAM @holly_cummins
#arduinoadventures @holly_cummins
PcDuino battery interface #arduinoadventures @holly_cummins
Popular embeddable battery PcDuino battery interface #arduinoadventures @holly_cummins
Popular embeddable battery PcDuino battery interface #arduinoadventures @holly_cummins
Popular embeddable battery JST-PH PcDuino battery interface #arduinoadventures @holly_cummins
Popular embeddable battery JST-PH PcDuino battery interface #arduinoadventures @holly_cummins
Popular embeddable battery JST-PH JST-SH PcDuino battery interface #arduinoadventures @holly_cummins
“The board features a difficult-to-get JST-SH connector. You won’t find a battery with a ready-made fivepin JST-SH connector. ” http://wt.tuxomania.net #arduinoadventures @holly_cummins
“The board features a difficult-to-get JST-SH connector. You won’t find a battery with a ready-made fivepin JST-SH connector. ” !&!^@*! http://wt.tuxomania.net #arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
Power. #arduinoadventures @holly_cummins
You can do more. #arduinoadventures @holly_cummins
You can know less. #arduinoadventures @holly_cummins
You can know different things. #arduinoadventures @holly_cummins
You can know different things. #arduinoadventures @holly_cummins
But … #arduinoadventures @holly_cummins
£30 #arduinoadventures @holly_cummins
£2 #arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
Size #arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
A power brick #arduinoadventures @holly_cummins
A power brick (sorry) #arduinoadventures @holly_cummins
Then again … #arduinoadventures @holly_cummins
You can have an application server! #arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
#arduinoadventures @holly_cummins
Any questions? www.wasdev.net www.wasdev.net @holly_cummins #arduinoadventures @holly_cummins
Computers are getting smaller and smaller and cheaper and cheaper. It’s possible to sock computers away almost anywhere, and to connect almost anything to the internet. This talk will explore the limits of embeddable hardware and present a getting-started-guide to the internet of things, using a pcDuino, WebSphere Liberty, and Bluemix as a case study. What’s needed? How much does it cost? What’s the best way of making an embeddable device talk to the internet, and turning data into an application?
As well as hints and tips, there will be a show-and-tell session (or “demo” if you’re discussing with your boss).
The following resources were mentioned during the presentation or are useful additional information.
Here’s what was said about this presentation on social media.
Having a ball (literally) with @holly_cummins' throwable application server #codingserbia #IoT pic.twitter.com/IYzOQ1Fio4
— Diana Kupfer (@dianakupfer) October 8, 2015
The fact that @holly_cummins #IoT device not working makes presentation more interesting. It's a RL "duct tape" situation. #codingserbia
— Slavko Ilic (@SlavkoIlic) October 8, 2015