![Page 1: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/1.jpg)
abusing phones
DAHO.AM 12 June 2015
to make the internet of things
@janjongboom
![Page 2: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/2.jpg)
abusing phones
DAHO.AM 12 June 2015
to make the internet of things
@janjongboom
![Page 3: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/3.jpg)
@janjongboom
Telenor R&D
Mozilla things
![Page 4: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/4.jpg)
![Page 5: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/5.jpg)
![Page 6: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/6.jpg)
I hate JavaScript!
![Page 7: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/7.jpg)
![Page 8: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/8.jpg)
VBScript <3 <3 <3
![Page 9: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/9.jpg)
![Page 10: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/10.jpg)
![Page 11: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/11.jpg)
Before mobile revolution…Limited input methods
![Page 12: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/12.jpg)
Vibration sensor?
![Page 13: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/13.jpg)
Accelerometer?
![Page 14: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/14.jpg)
Accelerometer?
![Page 15: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/15.jpg)
Proximity Accelerometer Ambient Light Magnetometer Gyroscope Humidity Ambient Temperature Pressure Battery Cameras
![Page 16: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/16.jpg)
Bend sensor
![Page 17: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/17.jpg)
Internet of Things
![Page 18: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/18.jpg)
Moves IHR SleepCycle
![Page 19: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/19.jpg)
BORING!
![Page 20: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/20.jpg)
![Page 21: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/21.jpg)
![Page 22: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/22.jpg)
![Page 23: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/23.jpg)
Device LightReal purpose: adjust brightness
![Page 24: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/24.jpg)
MusicTheremin is instrument
Use device light as tone frequency
Wave your hands and magic!
![Page 25: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/25.jpg)
MusicTheremin is instrument
Use device light as tone frequency
Wave your hands and magic!
![Page 26: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/26.jpg)
1 var context = new AudioContext(); 2 var oscillator = context.createOscillator(); 3 oscillator.connect(context.destination); 4 oscillator.start(0); 5 6 window.addEventListener('devicelight', function(e) { 7 oscillator.frequency.value = e.value * 10; 8 });
Music
![Page 27: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/27.jpg)
GyroscopeReal purpose: rotate screen
![Page 28: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/28.jpg)
GyroscopeReal purpose: rotate screen
![Page 29: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/29.jpg)
Track real life movementDraw 3D model of phones
Measure gyroscope data
Show real life state on screen
![Page 30: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/30.jpg)
![Page 31: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/31.jpg)
Track real life movement 1 var front = new THREE.MeshBasicMaterial({ map: loadTexture('front.jpg') }); 2 var back = new THREE.MeshBasicMaterial({ map: loadTexture('back.jpg') }); 3 var border = new THREE.MeshBasicMaterial({ color: 0xffe04526 }); 4 5 var materials = [ border, border, border, 6 border, front, back ]; 7 8 var geometry = new THREE.BoxGeometry(2, 4, 0.3); 9 var cube = new THREE.Mesh(geometry, 10 new THREE.MeshFaceMaterial(materials)); 11 scene.add(cube);
![Page 32: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/32.jpg)
Track real life movement
1 window.addEventListener('deviceorientation', function(e) { 2 cube.rotation.x = e.beta / 60; 3 cube.rotation.y = e.gamma / 60; 4 cube.rotation.z = e.alpha / 60; 5 });
![Page 33: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/33.jpg)
AccelerometerReal purpose: Turn to mute
![Page 34: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/34.jpg)
Juggling visualizerMeasure z-forces on device
Plot it in graph over time
Juggle with multiple devices
![Page 35: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/35.jpg)
Juggling visualizer
1 window.addEventListener('devicemotion', function(e) { 2 var serie = getGraphSerieForDevice(e.data.deviceId); 3 serie.addPoint([ e.data.timestamp, Math.abs(e.data.z) ]); 4 });
![Page 36: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/36.jpg)
Weight scale
![Page 37: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/37.jpg)
Computer generated
music
![Page 38: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/38.jpg)
![Page 39: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/39.jpg)
http://gibber.mat.ucsb.edu/
![Page 40: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/40.jpg)
1 a = Drums('x*o*x*o-')
Gibber
![Page 41: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/41.jpg)
1 a = Drums('x*o*x*o-')
Gibber
![Page 42: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/42.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 a.pitch = 0.5
![Page 43: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/43.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 a.pitch = 0.5
![Page 44: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/44.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 3 speak = Speak({ pitch: 70, wordgap:5 }) 4 .say.seq( 5 ['Mu', 'nich', 'Mu', 'Mu', 'nich'], 6 [1/2, 1/2, 1/4, 1/4, 1/2] 7 ) 8 9 speak.pitch.seq( [1,.8,1.2].rnd() ) 10 Clock.bpm = 120;
![Page 45: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/45.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 3 speak = Speak({ pitch: 70, wordgap:5 }) 4 .say.seq( 5 ['Mu', 'nich', 'Mu', 'Mu', 'nich'], 6 [1/2, 1/2, 1/4, 1/4, 1/2] 7 ) 8 9 speak.pitch.seq( [1,.8,1.2].rnd() ) 10 Clock.bpm = 120;
![Page 46: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/46.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 3 speak = Speak({ pitch: 70, wordgap:5 }) 4 .say.seq( 5 ['Mu', 'nich'], 6 [1/4, 1/4, 1/4, 1/2].rnd() 7 ) 8 9 speak.pitch.seq( [1,.8,1.2].rnd() ) 10 Clock.bpm = 120;
![Page 47: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/47.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 3 speak = Speak({ pitch: 70, wordgap:5 }) 4 .say.seq( 5 ['Mu', 'nich'], 6 [1/4, 1/4, 1/4, 1/2].rnd() 7 ) 8 9 speak.pitch.seq( [1,.8,1.2].rnd() ) 10 Clock.bpm = 120;
![Page 48: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/48.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 3 speak = Speak({ pitch: 70, wordgap:5 }) 4 .say.seq( 5 ['Mu', 'nich'], 6 [1/4, 1/4, 1/4, 1/2].rnd() 7 ) 8 9 speak.pitch.seq( [1,.8,1.2].rnd() ) 10 Clock.bpm = 120;
![Page 49: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/49.jpg)
So much phones!
![Page 50: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/50.jpg)
![Page 51: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/51.jpg)
Gibber
![Page 52: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/52.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 a.pitch = Phone.X
https://github.com/janjongboom/jsconf-us/blob/master/gibber/gibber-phone.js
![Page 53: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/53.jpg)
Gibber 1 a = Drums('x*o*x*o-') 2 a.pitch = Phone.X
https://github.com/janjongboom/jsconf-us/blob/master/gibber/gibber-phone.js
![Page 54: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/54.jpg)
Getting data out of thereal world
![Page 55: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/55.jpg)
Bluetooth beaconsBroadcasting their existence
![Page 56: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/56.jpg)
Bluetooth beaconsLong battery life
Cheap URLs, sensor values, etc.
![Page 57: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/57.jpg)
Coming to a web browser near youhttps://bugzilla.mozilla.org/show_bug.cgi?id=1063444
![Page 58: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/58.jpg)
Coming to a web browser near youhttps://bugzilla.mozilla.org/show_bug.cgi?id=1063444
![Page 59: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/59.jpg)
Scanning beacons 1 var adapter = navigator.mozBluetooth.defaultAdapter 2 adapter.startLeScan([]).then(handle => { 3 handle.ondevicefound = e => { 4 // handle e.scanRecord 5 } 6 7 setTimeout(() => { 8 adapter.stopLeScan(handle) 9 }, 5000) 10 }, err => console.error(err))
![Page 60: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/60.jpg)
Scanning beacons 1 var adapter = navigator.mozBluetooth.defaultAdapter 2 adapter.startLeScan([]).then(handle => { 3 handle.ondevicefound = e => { 4 // handle e.scanRecord 5 } 6 7 setTimeout(() => { 8 adapter.stopLeScan(handle) 9 }, 5000) 10 }, err => console.error(err))
![Page 61: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/61.jpg)
Scanning beacons 1 var adapter = navigator.mozBluetooth.defaultAdapter 2 adapter.startLeScan([]).then(handle => { 3 handle.ondevicefound = e => { 4 // handle e.scanRecord 5 } 6 7 setTimeout(() => { 8 adapter.stopLeScan(handle) 9 }, 5000) 10 }, err => console.error(err))
![Page 62: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/62.jpg)
Scanning beacons 1 var adapter = navigator.mozBluetooth.defaultAdapter 2 adapter.startLeScan([]).then(handle => { 3 handle.ondevicefound = e => { 4 // handle e.scanRecord 5 } 6 7 setTimeout(() => { 8 adapter.stopLeScan(handle) 9 }, 5000) 10 }, err => console.error(err))
![Page 63: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/63.jpg)
Scanning beacons 1 var adapter = navigator.mozBluetooth.defaultAdapter 2 adapter.startLeScan([]).then(handle => { 3 handle.ondevicefound = e => { 4 // handle e.scanRecord 5 } 6 7 setTimeout(() => { 8 adapter.stopLeScan(handle) 9 }, 5000) 10 }, err => console.error(err))
![Page 64: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/64.jpg)
JavaScript baby monitorTag your baby with a phone
Get three beacons Some math
![Page 65: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/65.jpg)
JavaScript baby monitorTag your baby with a phone
Get three beacons Some math
![Page 66: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/66.jpg)
![Page 67: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/67.jpg)
![Page 68: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/68.jpg)
![Page 69: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/69.jpg)
![Page 70: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/70.jpg)
![Page 71: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/71.jpg)
![Page 72: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/72.jpg)
![Page 73: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/73.jpg)
![Page 74: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/74.jpg)
![Page 75: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/75.jpg)
![Page 76: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/76.jpg)
![Page 77: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/77.jpg)
![Page 78: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/78.jpg)
Linux Kernel
![Page 79: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/79.jpg)
Linux Kernel
Gecko
![Page 80: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/80.jpg)
Linux Kernel
Gecko HTML5UI
![Page 81: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/81.jpg)
Linux Kernel
Gecko HTML5UI
Has all phone APIs in JS
![Page 82: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/82.jpg)
Linux Kernel
Gecko
Has all phone APIs in JS
![Page 83: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/83.jpg)
![Page 84: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/84.jpg)
First screwdriver ever!
![Page 85: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/85.jpg)
![Page 86: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/86.jpg)
![Page 87: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/87.jpg)
![Page 88: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/88.jpg)
![Page 89: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/89.jpg)
![Page 90: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/90.jpg)
![Page 91: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/91.jpg)
![Page 92: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/92.jpg)
![Page 93: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/93.jpg)
![Page 94: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/94.jpg)
![Page 95: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/95.jpg)
![Page 96: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/96.jpg)
![Page 97: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/97.jpg)
![Page 98: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/98.jpg)
![Page 99: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/99.jpg)
![Page 100: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/100.jpg)
![Page 101: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/101.jpg)
![Page 102: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/102.jpg)
![Page 103: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/103.jpg)
![Page 104: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/104.jpg)
![Page 105: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/105.jpg)
![Page 106: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/106.jpg)
Booting / flashing
![Page 107: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/107.jpg)
![Page 108: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/108.jpg)
![Page 109: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/109.jpg)
Linux Kernel
Gecko
Has all phone APIs in JS
![Page 110: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/110.jpg)
Linux Kernel
Gecko JanOS
Has all phone APIs in JS
![Page 111: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/111.jpg)
Linux Kernel
Gecko JanOS
Has all phone APIs in JS
![Page 112: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/112.jpg)
![Page 113: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/113.jpg)
JanOSFork of Firefox OS For phones & Rpi
Runs without display
![Page 114: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/114.jpg)
1 var conn = navigator.mozMobileConnections[0]; 2 conn.addEventListener('voicechange', function vc() { 3 if (conn.voice.connected) { 4 conn.removeEventListener('voicechange', vc); 5 6 var req = navigator.mozMobileMessage 7 .send('+31612345678', 'Hello from JanOS!'); 8 req.onsuccess = function() { 9 console.log('Message sent successfully'); 10 }; 11 req.onerror = function() { 12 console.error('Could not send SMS', req.error); 13 }; 14 } 15 });
![Page 115: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/115.jpg)
1 var conn = navigator.mozMobileConnections[0]; 2 conn.addEventListener('voicechange', function vc() { 3 if (conn.voice.connected) { 4 conn.removeEventListener('voicechange', vc); 5 6 var req = navigator.mozMobileMessage 7 .send('+31612345678', 'Hello from JanOS!'); 8 req.onsuccess = function() { 9 console.log('Message sent successfully'); 10 }; 11 req.onerror = function() { 12 console.error('Could not send SMS', req.error); 13 }; 14 } 15 });
![Page 116: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/116.jpg)
1 var conn = navigator.mozMobileConnections[0]; 2 conn.addEventListener('voicechange', function vc() { 3 if (conn.voice.connected) { 4 conn.removeEventListener('voicechange', vc); 5 6 var req = navigator.mozMobileMessage 7 .send('+31612345678', 'Hello from JanOS!'); 8 req.onsuccess = function() { 9 console.log('Message sent successfully'); 10 }; 11 req.onerror = function() { 12 console.error('Could not send SMS', req.error); 13 }; 14 } 15 });
![Page 117: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/117.jpg)
1 var conn = navigator.mozMobileConnections[0]; 2 conn.addEventListener('voicechange', function vc() { 3 if (conn.voice.connected) { 4 conn.removeEventListener('voicechange', vc); 5 6 var req = navigator.mozMobileMessage 7 .send('+31612345678', 'Hello from JanOS!'); 8 req.onsuccess = function() { 9 console.log('Message sent successfully'); 10 }; 11 req.onerror = function() { 12 console.error('Could not send SMS', req.error); 13 }; 14 } 15 });
![Page 118: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/118.jpg)
1 var conn = navigator.mozMobileConnections[0]; 2 conn.addEventListener('voicechange', function vc() { 3 if (conn.voice.connected) { 4 conn.removeEventListener('voicechange', vc); 5 6 var req = navigator.mozMobileMessage 7 .send('+31612345678', 'Hello from JanOS!'); 8 req.onsuccess = function() { 9 console.log('Message sent successfully'); 10 }; 11 req.onerror = function() { 12 console.error('Could not send SMS', req.error); 13 }; 14 } 15 });
![Page 119: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/119.jpg)
-
![Page 120: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/120.jpg)
-
![Page 121: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/121.jpg)
Get hacking!Grab a phone that has latest Chrome / Firefox
Use that sensor data
Think outside the box
Or buy a ZTE Open C for 60 euro's and break it!
![Page 122: DAHO.AM 2015 - Abusing phones to make the internet of things](https://reader038.vdocuments.site/reader038/viewer/2022110312/55bebee9bb61eb197b8b45d3/html5/thumbnails/122.jpg)
Thank you!http://janjongboom.com
janos.io github.com/janjongboom/(jsconf-asia|jsconf-us)