internet of things for dummies
TRANSCRIPT
Internet Of Things
The Internet Messenger by Buky Schwartz
Di cosa parleremo?
- Cos'è Internet degli oggetti (oggi)- Prospettive- Hardware - Software- Demo
Qualche osservazione
Quanto ci hacambiati?
http://www.someecards.com/usercards/viewcard/MjAxMy05YzM4NjhkYjE2NzQ3NmFl
1990
2014
http://www.tangibleinteraction.com/projects
Qualche altroesempio...
Wearable
Illustrazione di Rob Nance
Hiris
Smart City
Smart Home Trasporti integrati
Wearable
Cosa sta accadendo?
Sembra che ogni oggetto debbaessere connesso
Iot: Oggetti connessi in Rete?
1980 - Wireless Sensor1970 - RFID
Un nuovo modo di comunicare
Comunicazione
UX
Tecnologia
http://www.gartner.com/newsroom/id/2603623
Dispositivo IoT
Quanti dispositivi?
http://www.gartner.com/newsroom/id/2636073
Gartner Says the Internet of ThingsInstalled Base Will Grow to 26Billion Units By 2020
Altre fonti:3/5 bilioni di device tradizionali1 trillione di device iot
Come interagiscono?
TCP/IP?
http://www.gartner.com/newsroom/id/2603623
Non esiste ancora una vera epropria architettura per IoT!
L'Hardware
- schede a microcontrollore- connettività- sensori & Co
Come realizzo un oggetto IoToggi?
Arduino
Arduino Ethernet
Arduino YUN
Raspberry PI
Flyport
Intel Edison
Sensori e attuatori
Network e comunicazioni
WiFi
● Semplice da gestire● Diffuso
● Costo● Potenza consumata
BlueTooth
● Semplice da gestire● Consuma poco● Diffuso
● Non consente connessionediretta a Internet
ZigBee
● Consuma molto poco● Più semplice del BT
● Non consente connessionediretta a Internet
● Meno diffuso di altretecnologie
RF module
● Consuma molto poco● Ampio raggio● Piccole dimensioni● Basso costo
● Non consente connessionediretta a Internet
● Più difficile da utilizzare● Poco diffuso/standard
Il Software
Topologie
Web: old style
EmbeddedServer:TCPUDPMQTTREST...
Client Http:HTTPWebSocketMQTT
Un esempio
demo
Raspberry PI + Button
Raspberry PI + Buttonimport urllib2import RPi.GPIO as GPIOimport time
GPIO.setmode(GPIO.BCM)GPIO.setup(7, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
while 1: if (GPIO.input(7) == 1): response = urllib2.urlopen('http://192.168.0.4/setled.php?led=1') html = response.read() else: response = urllib2.urlopen('http://192.168.0.4/setled.php?led=0') html = response.read()
time.sleep(0.2)
php<?php
$state = $_GET['led'];
$file = 'led.txt';
$value = $state."\n";
file_put_contents($file, $value, LOCK_EX);
?>
php<?php
$myfile = fopen("led.txt", "r") or die("Unable to open file!");
echo "<".trim(fread($myfile,filesize("led.txt"))).">";
fclose($myfile);
?>
Arduino Ethernet
Arduino Ethernet/* Repeating Web client*/
#include <SPI.h>#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xD4, 0xB1};
Arduino Ethernetvoid setup() { if (Ethernet.begin(mac) == 0) { Ethernet.begin(mac); } delay(1000);
pinMode(9, OUTPUT); digitalWrite(9, LOW);}
Arduino Ethernetvoid loop() { if (client.available()) { char c = client.read(); if (c == '<') { startRead = true; pos = 0; memset(& inString, 0, 32); } else if (startRead) { if (c!= '>') { inString[pos] = c; pos++; } else { startRead = false; client.stop(); client.flush(); String str = String(inString); if (str.toInt() == 1){ digitalWrite(9, HIGH); Serial.println("ON"); } else { digitalWrite(9, LOW); Serial.println("OFF"); } } } }
Arduino YUN: bridgeBridge.begin();
HttpClient client;
client.get("http://arduino.cc/asciilogo.txt");
while (client.available()) { char c = client.read(); Serial.print(c);}Serial.flush();
Grazie!
Paolo [email protected]