Telegram per il Physical computing

Download Report

Transcript Telegram per il Physical computing

Telegram per il Physical computing
23 gennaio 2016
Relatore: @SergioTanzilli
Argomenti trattati nel corso
Telegram vs WhatsApp
Cosa sono i Bot e come si usano le Bot API
Uso della Raspberry Pi per fornire servizi Bot
Esempio pratico di Bot in Python su Rapberry Pi
Interfacciamento verso il mondo fisico delle chat
Telegram per realizzare dei telecontrolli
Perché usare Telegram ?
!Completamente gratuito
!Basato su protocolli aperti e software open source
!Elevata sicurezza 300.000 euro in palio da due anni per chi riesce a forzare il
sistema
!Trasferimento di qualsiasi tipo di file fino a 1GB
!Alias del numero di cellulare @nickname
!Multipiattaforma sia per smartphone che per PC
!Multidevice con sincronizzazione dei messaggi via cloud
!Dichiaratamente no profit
!Espandibilità delle funzioni da parte di terzi
!Ampliamento della libreria di stickers da parte di terzi
!API ufficiali e Bot per applicazioni custom
"“Solo” 62 milioni di utenti attivi al mese
Cosa non va in WhatsApp ?
"Solo parzialmente gratuito
"Protocolli e sorgenti chiusi
"Minore sicurezza
"Limiti sulle dimensioni dei file inviabili
"Limiti sulla tipologia dei file inviabili
"Nessun supporto ufficiale agli sviluppatori
"Nessuna espandibilità esterna
"Disponibile solo su smartphone
Introduzione ai Bot
I Bot sono programmi che chiunque può sviluppare per fornire a tutti gli
utenti di Telegram servizi aggiuntivi integrati nelle chat
Vi si può accedere conoscendone il nome nella forma @NomeBot o
@nome_bot o tramite link web diretto nella telegram.me/NomeBot
il nome di un Bot una volta assegnato è univoco in tutto il mondo
Esiste un Bot store ufficiale su https://storebot.me
Si possono registrare più Bot usando un unico numeri di SIM
I Bot possono essere inseriti anche in gruppi di discussione per
condividerne l’uso con altri nella stessa chat.
Come si registra un nome Bot
Si possono creare nuovi bot usando il padre di tutti i bot: BotFather, il tool
ufficiale fornito da Telegram per registrare i nostri bot. Anche BotFather è un
servizio accessibile via chat. Non sono richieste procedure di identificazioni
particolari. Bisogna avere solo una SIM in grado di ricevere un SMS.
@BotFather
https:/telegram.me/BotFather
Come si registra un nome Bot
Iniziamo una chat Telegram con @BotFather
Selezioniamo il comando /newboot
Inseriamo il nome del bot
Inseriamo lo username con cui vogliamo che il bot sia
richiamabile in chat da ovunque
Riceveremo all’instante una coppia di valori denominata Token
Questa stringa andrà copiata nel sorgente della nostra
applicazione Python per registrarsi all’avvio
Ecco un esempio di Token:
162073819:AAFUj0QtqRLhs5Vj9t0ZJaoMZuWkC-pC3SA
Realizziamo un bot che ci metta
in contatto con il mondo fisico
Cloud Telegram
LUCE
@TanzoBot
Raspberry Pi
Cloud Telegram
LUCE
@TanzoBot
Raspberry Pi
…e scusate
se è poco !
Vediamo ora
“come” lo fa…
tanzobot.py
GPIO
Cloud Telegram
@TanzoBot
3.3 v
ADSL
Telegram
220 volt
Relé
Utenza
Smartphone
Telegram
Sistema Operativo
Raspberry Pi
Cloud Telegram
@TanzoBot
tanzobot.py
Python
Linux
TCP/IP
GPIO
CPU/RAM
Raspberry Pi
POWER IN
HDMI
AUDIO
GPIO
ETHERNET
USB
Raspberry Pi - Model B+
Broadcom BCM2835 SoC
700 MHz ARM1176JZF-S core CPU
Broadcom VideoCore IV GPU
512 MB RAM
4 x USB2.0 Ports with up to 1.2A output
Expanded 40-pin GPIO Header
Video Out on HDMI
Audio Out on 3.5 mm connector
microSD slot
10/100 Ethernet (RJ45)
27 x GPIO
UART
I2C bus
SPI bus with two chip selects
Power Requirements: 5V @ 600 mA via MicroUSB or GPIO Header
Ma quanto è potente la Raspberry ?
Commodore 64 (1982)
Raspberry Pi B+ (2014)
vs
Bit 8 vs 32 (4x)
Clock 1MHz vs 700Mhz (700x)
Ram 64KB vs 512MB RAM (8.000x)
Video 320x200 16 col vs 1920x1080 16M col
Memoria di massa:
170KB floppy vs 8GB microSD (47.000x)
Costo:
592 $ vs 32 $ (-18x)
Ora un pò di pratica…
In sala ci sono 4 RaspBerry connesse in WiFi su Vodafone-Guest.
Su ognuna di queste è installato Bonjour per cui sono visibili in rete
con il loro hostname tanzobot1, tanzobot2, tanzobot3, tanzobot3
seguito dal suffisso .local
L’utenza è pi su tutte e la password è identica all’hostname
Esempio di accesso da console ssh: ssh [email protected]
Come interagire con Raspberry da PC
Una console SSH
Un browser SCP
Un editor ASCII
Primo esempio di physical computing
Accendiamo un led collegato a Raspberry
Pin 7 BCM 4
Pin 9 GND
Scegliamo una linea GPIO
Pin 7 BCM 4
Pin 9 GND
GPIO disponibili
General Purpose Input Output
Pin 1
led.py
Il primo codice di esempio si trova
nella directory:
/home/pi/tanzobot/led.py
Per lanciarlo da console digitare:
python led.py
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
led_dotpin=4
GPIO.setup(led_dotpin, GPIO.OUT)
delay=0.5
while True:
GPIO.output(led_dotpin, 1)
time.sleep(delay)
GPIO.output(led_dotpin, 0)
time.sleep(delay)
Collegamenti alla Click relay
http://www.mikroe.com/click/relay/
Pin 13 BCM27
5v Power
GND Pin 9
Pin 11 BCM17
rele.py
Programma di prova per i relè
Il codice si trova nella directory:
/home/pi/tanzobot/rele.py
Per lanciarlo da console digitare:
python rele.py
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
RELE1=27
RELE2=22
GPIO.setup(RELE1, GPIO.OUT)
GPIO.setup(RELE2, GPIO.OUT)
delay=0.5
while True:
GPIO.output(RELE1, 1)
time.sleep(delay)
GPIO.output(RELE2, 1)
time.sleep(delay)
GPIO.output(RELE1, 0)
time.sleep(delay)
GPIO.output(RELE2, 0)
time.sleep(delay)
tanzobot.py
Questo è il codice di esempio per
provare a far girare un Bot.
Il codice si trova nella directory:
/home/pi/tanzobot/tanzobot.py
Inserire il Token ottenuto da @BotFather
quindi lanciarlo da console digitando:
python tanzobot.py
… e prova da Telegram a collegarti a
@NomeBot
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
RELE1=27
RELE2=22
GPIO.setup(RELE1, GPIO.OUT)
GPIO.setup(RELE2, GPIO.OUT)
delay=0.5
while True:
GPIO.output(RELE1, 1)
time.sleep(delay)
GPIO.output(RELE2, 1)
time.sleep(delay)
GPIO.output(RELE1, 0)
time.sleep(delay)
GPIO.output(RELE2, 0)
time.sleep(delay)
TanzoBot usa un wrapper Python che implementa le Telegram Bot API
Installazione:
$ sudo apt-get install python-pip
$ sudo pip install python-telegram-bot
https://pypi.python.org/pypi/python-telegram-bot/3.2.0
Grazie per l’attenzione
Grazie per l’attenzione