Tessel Tessel Tessel Tessel Tessel

Hardware Hacking

Talking plants and more...

By John Kilpatrick / @jjkilpatrick & Des Holmes / @whodadada

We make & market

Interactive

Experiences

We use

Digital

to make the

Analog

world better

Our values:

  • Always be nice
  • Be Remarkable
  • Fail Brilliantly
  • Find a way
  • Make Things!

make.analogfolk.com

Hardware hacking and technical experiments

John Kilpatrick

How I Got Hooked?

My Gateway Drug - Lego

The Harder Stuff @ 13 - Lego Mindstorms

Full blown addict - Arduino

BrickPi

George the Talking Plant

George was a prototype to experiment how easy it is to mix Arduino, Node and HTML5 Web Speech API

George the Talking Plant

						

motion1_val = digitalRead(motion1_pin);
motion2_val = digitalRead(motion2_pin);
soil_val = map(analogRead(soil_pin), 0, 1023, 100, 0);
light_val = map(analogRead(light_pin), 0, 512, 100, 0);

calculateTemp();

					    
					

George the Talking Plant

						

  if(soil_val < 25 || celsius > 30 || celsius < 15) {
    draw(dying);
  } else if(soil_val > 75) {
    draw(over);
  } else if(light_val >= 30 && soil_val >= 64 && celsius >= 18 && celsius <= 26) {
    if(motion1_val == 1 && motion2_val == 0) {
      draw(happyL);
    } else if(motion1_val == 0 && motion2_val == 1) {
      draw(happyR);
    } else {
      draw(happy);
    } 
  } else {
    if(motion1_val == 1 && motion2_val == 0) {
      draw(sadL);
    } else if(motion1_val == 0 && motion2_val == 1) {
      draw(sadR);
    } else {
      draw(sad);
    } 
  }
					    
					

George the Talking Plant

						
  
  String jsonString = "{\"motion1\":\"";
  jsonString += motion1_val;
  jsonString +="\",\"motion2\":\"";
  jsonString += motion2_val;
  jsonString +="\",\"moisture\":\"";
  jsonString += soil_val;
  jsonString +="\",\"light\":\"";
  jsonString += light_val;
  jsonString +="\",\"temperature\":\"";
  jsonString += int(celsius);
  jsonString +="\"}";

  Serial.println(jsonString);

					    
					

George the Talking Plant

						
  
var myPort = new SerialPort(USB, { 
	parser: serialport.parsers.readline("\r\n")
});

io.sockets.on('connection', function (socket) {

	myPort.on('data', function (data) {
		var serialData = tryParseJSON(data);
		socket.emit('serialEvent', serialData);
	});

});

					    
					

George the Talking Plant

Github

Vide

Vide is an environmental sensor which monitors the room its local environment.

It checks air quality, if there is methane or carbon dioxide at dangerous levels, sound levels, humidity and temperature

The external unit which is currently being prototyped will measure wind speed and direction, rainfall, barometric pressure as well as air quality etc

Hacking is getting easier & cheaper

Free services and platforms

  • Parse
  • Temboo
  • Pusher
  • IFTTT
  • Bitbucket
  • Google

BaaS - Backend as a Service

SDKs for iOS, Android, JS, Unity, PHP, Arduino

IoT + Embedded SDKs

Leverage the power of Parse for the Internet of Things.

Github

Parse

						

void setup() {
    ParseClient client;
    client.begin("${APPLICATION_ID}", "${CLIENT_KEY}");
    // ...
}

					    
					

Parse

						

ParseCreateObject create;
create.setClassName(‘TemperatureReading’);
create.add(‘currentTemperature’, 175.0);
ParseResponse response = create.send();
if (!response.getErrorCode()) {
    // The object has been saved
} else {
    // There was a problem, check response.
    getErrorCode();
}
response.close(); // Free the resource

					    
					

Parse

						
objectId: "xWMyZ4YEGZ", 
temperature: 175.0, 
createdAt: "2011-06-10T18:33:42Z", 
updatedAt: "2011-06-10T18:33:42Z"
						
					

Code the Internet of Everything

Generate production-ready code

IFTTT empowers you with creative control over the products and apps you love.

They offer two different recipes (IF and Do)

IFTTT

If Recipes

IF Recipes run automatically in the background. Create powerful connections with one simple statement — if this then that.

IFTTT

Do Recipes

Do Recipes run with just a tap and enable you to create your own personalized Button, Camera, and Notepad. The Do apps are available for iOS and Android.

IFTTT

IoT Recipes

Whistle Nest Nest Hue

Free for 5 users + Unlimited private repositories

Send notifications to HipChat and other chat applications

Use webhooks to trigger CI servers like Jenkins and Bamboo

Track every commit and pull request to issues in JIRA

Google > Stack Overflow > Github > 'borrowing' code ;)

Hacking is getting easier & cheaper

Hardware

littlebits

Modules snap together with magnets

Hardware hacking for anyone

4 little bits + IFTTT = SMS Doorbell

Development platform running node.js

Hardware hacking for web developers

Tessel

2 Module Ports

2 USB Ports

802.11bgn Wifi

Ethernet

Tessel

Tessel

Allows your tesselation to work as a Bluetooth LE master or slave device.

Tessel

Tessel

Connect your Tessel anywhere with GPRS/SIM card support for 2G internet!

Tessel

Tessel

This RGB Color Sensor is like an eyedropper tool for the real world.

Find the red, green, blue, or clear levels of anything you point it at.

Tessel

Tessel

A gesture sensor. It can detect swiping motions in 4 directions.

Spark offers a suite of hardware and software tools to help you prototype, scale, and manage your Internet of Things products.

Littlebits Tessel Uno Yun Spark Raspberry Pi
Cost £64 - £2,140 £22 £15 £38 £12 £25
Speed to Prototype 1 4 7 8 4 8
Learning Curve* 1 4 6 8 4 8
*Based on knowing JS/Node.js

Next Level Shit

The leap into circuit design has become easier.

Recap

Have a project in mind

Buy cheap by twice

Don't be precious, microcontrollers are low cost, Iteration is key

There has never neen a better time to start

Thats all folks!

Q & A

Notes - anfo.lk/ds15

Des Holmes - @whodadada
John Kilpatrick - @jjkilpatrick
Working at - @AnalogFolk

AnalogFolk Hack day 4th July 2015!