Un approccio allo sviluppo di applicazioni IoT (anche per veicoli) basato su alcune delle principali tecnologie emergenti e sul loro utilizzo integrato Si parla di Ing. Marco Colonna Challenge Engineering s.r.l.
Cos è l IoT Argomenti della presentazione Architettura generale di un applicazione IoT possibili alternative La soluzione adottata Demo 1: reti di sensori wireless Demo 2: rete CAN gestita da scheda collegata attraverso USB
Ma che cosa è in definitiva l IoT? Le «cose» generano «dati». Una applicazione IoT si pone l obiettivo di Raccogliere Inviare Memorizzare Distribuire Analizzare 10101 01010 00100 tutti questi dati
Raccogliere Inviare Memorizzare Distribuire Analizzare Ciascuna di queste operazioni può essere effettuate mediante molteplici Tecnologie Architetture Protocolli
Raccogliere ed inviare dati: architettura con gateway Gateway Data collectors Field
Pre-elaborazione dati Calcoli complessi che il sensore non può effettuare direttamente Invio di dati già aggregati Vantaggi di questa architettura Gateway Data collectors Field Storage locale Persistenza dati anche in caso di caduta della linea (storicizzazione) Log di informazioni dettagliate (debug, tracing, profiling) Interfaccia univoca verso il cloud Integrazione di protocolli multipli Indipendenza dall hardware (oggetti «virtuali») Un solo canale di comunicazione Un solo punto di accesso alla rete, cablato o wireless Un solo abbonamento GSM
Diretta Wireless Connessione gateway - oggetti USB, Ingressi Board, Fieldbus (CANopen, ModBus, EtherCAT) Bluetooth, WI- Fi, ZigBee, etc Proprietaria Special purpose (sicurezza, crittografia hw, ecc.)
Connessione gateway - cloud RESTful Web Services (REST API - REpresentational State Transfer) Semplice Applicazione server realizzata e gestita in proprio WCF (Windows Communication Foundation) Dati e procedure strutturati Trasferimento anche di grandi quantità di dati (immagini, blob, ecc.) MQTT (Message Queuing Telemetry Transport) Standard «leggero» e adatto anche a connessioni poco affidabili Tecnologia «PUSH» - comunicazione bidirezionale Richiede un server specifico («Broker»)
Tutte le potenzialità di un vero PC Linux/Windows Programmazione del gateway Linguaggi/ambienti - C#,.Net (Mono) - Javascript (Node.js, Node-RED) - C, C++ - Python, Perl - librerie, componenti, documentazione Driver HW - Rete - WiFi, Bluetooth, - IO analog/digital - Media (camera, speech) - Industrial bus Standard input/output - Video HDMI/VGA - USB (memory, disks, etc.) - SD card - Nessuna connessione speciale Server applicativi - Server HTTP (Apache, ecc.) - Servizi avanzati (MQTT Broker, ecc.) - Accesso browser-based - DBMS (MySQL, PostgresSQL, ecc.)
Demo 1: lettura dati da sensore Bluetooth Javascript Node.js Node-RED REST API MQTT
Demo 1: il programma
Demo 1: il programma
MQTT lettura dati da smartphone Scaricare un client MQTT Subscribe Broker address: m2m.eclipse.org Broker port: 1883 Topic: CE_IOT_Demo/SensorTag/Lux Visualizzare
Demo 2: lettura e scrittura dati su bus CAN Javascript Node.js Node-RED Driver CAN (gnu C++) Account Twitter
Canale 0 Twitter Demo 2: struttura generale gateway Canale 1
Demo 2: il programma
Demo 2: comando da Twitter
Parole chiave dello sviluppo di una soluzione IoT Convergenza Integrazione Condivisione Web (cloud, social) Protocolli comunica zione Software di base protoc ollo device Modulo integra tore applica zione messag gio dato IoT app elabora zione Conclusioni Hw servizio servizio
Riferimenti Challenge-Engineering s.r.l. (www.challenge-engineering.it) marco.colonna@challenge-engineering.it Next4Things