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 ha
cambiati?
http://www.someecards.com/usercards/viewcard/MjAxMy05YzM4NjhkYjE2NzQ3NmFl
1990
2014
http://www.tangibleinteraction.com/projects
Qualche altro
esempio...
Wearable
Illustrazione di Rob Nance
Hiris
Smart City
Smart Home Trasporti integrati
Wearable
Cosa sta accadendo?
Sembra che ogni oggetto debba
essere connesso
Iot: Oggetti connessi in Rete?
1980 - Wireless Sensor
1970 - 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 Things
Installed Base Will Grow to 26
Billion Units By 2020
Altre fonti:
3/5 bilioni di device tradizionali
1 trillione di device iot
Come interagiscono?
TCP/IP?
http://www.gartner.com/newsroom/id/2603623
Non esiste ancora una vera e
propria architettura per IoT!
L'Hardware
- schede a microcontrollore
- connettività
- sensori & Co
Come realizzo un oggetto IoT
oggi?
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 connessione
diretta a Internet
ZigBee
●
Consuma molto poco
●
Più semplice del BT
●
Non consente connessione
diretta a Internet
●
Meno diffuso di altre
tecnologie
RF module
●
Consuma molto poco
●
Ampio raggio
●
Piccole dimensioni
●
Basso costo
●
Non consente connessione
diretta a Internet
●
Più difficile da utilizzare
●
Poco diffuso/standard
Il Software
Topologie
Web: old style
Embedded
Server:
TCP
UDP
MQTT
REST
...
Client Http:
HTTP
WebSocket
MQTT
Un esempio
demo
Raspberry PI + Button
Raspberry PI + Button
import urllib2
import RPi.GPIO as GPIO
import 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 Ethernet
void setup() {
if (Ethernet.begin(mac) == 0) {
Ethernet.begin(mac);
}
delay(1000);
pinMode(9, OUTPUT);
digitalWrite(9, LOW);
}
Arduino Ethernet
void 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: bridge
Bridge.begin();
HttpClient client;
client.get("http://arduino.cc/asciilogo.txt");
while (client.available()) {
char c = client.read();
Serial.print(c);
}
Serial.flush();
Grazie!
Paolo Aliverti
@zeppelinmaker
www.zeppelinmaker.it

Internet of Things for Dummies