OpenLivingLab Eibar (Librecon 2014)

32

description

OpenLivingLab proiektuaren ikuspegi orokorra Librecon konferentziarako.

Transcript of OpenLivingLab Eibar (Librecon 2014)

Page 1: OpenLivingLab Eibar (Librecon 2014)
Page 2: OpenLivingLab Eibar (Librecon 2014)

Antecedentes / contexto (Hiribili)

● Proyecto de Projekta y Ayuntamiento de Ermua

● Senderismo urbano● Derivación, orientación, acompañamiento...

gap tecnológico● Circuito urbano equipado (balizas)● Pulseras NFC● Sensores Masermic● Hiribili software solution -> Smart Gipuzkoa● www.hiribili.com

Page 3: OpenLivingLab Eibar (Librecon 2014)
Page 4: OpenLivingLab Eibar (Librecon 2014)

Antecedentes / contexto (Hiribili)

● ¿Qué tecnología sería la más adecuada?● NFC, RFID, ZigBee, Bluetooth...● ¿Cómo nos condicionaría la gestión de datos?

● Proyectos SmartCity...● ... opensensors.io (The Operating System for

the Internet of Things)

Page 5: OpenLivingLab Eibar (Librecon 2014)

Smart Lab Gipuzkoa 2014

● Dirección de Sociedad de la Información de la Diputación de Gipuzkoa

● Objeto de la ayuda: – Impulsar el desarrollo e implantación de proyectos "Living

Lab" relacionados con tecnologías "smart" en el territorio de Gipuzkoa. Se trata de realizar implantaciones piloto de dichas tecnologías y analizar sistemáticamente su uso, en un ecosistema de innovación abierto, en contextos reales y cotidianos, para su validación técnica y del modelo de negocio asociado.

Page 6: OpenLivingLab Eibar (Librecon 2014)

Open Living Lab Eibar

● Participantes:– Zermik: desarrollo de sistemas

electrónicos

– IK4 Tekniker: centro de investigación

– CodeSyntax: software de Internet

● Objetivos:– Probar distintos tipos de sensores

– Capas abiertas: opendata

– Diferenciar entre aplicaciones / recogida de datos

– Probar más de un escenario

Page 7: OpenLivingLab Eibar (Librecon 2014)
Page 8: OpenLivingLab Eibar (Librecon 2014)

Escenarios (CAPA 1)

● Escenario 1: datos generales (temperatura, contaminación, ruido, etc...)– 1.1 Exterior, arduino

– 1.2 Exterior, Libelium

– 1.3 Intenrior, Tekniker

● Escenario 2: número de personas– 2.1 Escaleras, arduino

– 2.2 Bluetooth, activo

● Escenario 3: parking– 3.1 Sensor magnético

– 3.2 Tratamiento de imágenes

Page 9: OpenLivingLab Eibar (Librecon 2014)

Escenario 1.1: MeteringArduino

• Monitorización temperatura, humedad, presión, luminosidad y ruido en un punto de Eibar

• Posibilidad de conectar varios nodos entre ellos • Envío datos vía GPRS

Page 10: OpenLivingLab Eibar (Librecon 2014)
Page 11: OpenLivingLab Eibar (Librecon 2014)

Escenario 1.1: MeteringArduino

● Pruebas de comunicación– 2 nodos arduino con zigbee 2.4 Ghz– 2 nodos arduino con 868 Mhz

● Nos decantamos por módulos de 868● Envío cada x minutos de las lecturas a un servidor

usando GPRS● Servidor python interpretando la información

– XXXXXXXX;101;LUM:500;TEMP:20;HUM:60;PRES:55;RUID:80– A la BBDD vía API

Page 12: OpenLivingLab Eibar (Librecon 2014)
Page 13: OpenLivingLab Eibar (Librecon 2014)

import SocketServerimport requestsimport jsonimport logging

class ArduinoGPRSHandler(SocketServer.BaseRequestHandler): auth_token = XX remote_url = XX com_secret = XX log = logging.getLogger(__name__) def post_data(self, data_dict): headers = {'Authorization': 'Token ' + self.auth_token, 'content-type': 'application/json'} for k,v in data_dict.items(): to_post = {} to_post['sensor'] = k to_post['value'] = v response = requests.post(self.remote_url, data=json.dumps(to_post), headers=headers) if response.status_code != 204: self.log.info('Bad request payload: ' + self.data) def create_dict(self): """ """ to_send = {} data = self.data.split(';') data_ok = True if data[0] == self.com_secret: node_id = data[1] try: for measurement in data[2:]: sensor, value = measurement.split(':') to_send[node_id + sensor.lower()] = value except: data_ok = False if data_ok: self.post_data(to_send) return self.data def handle(self): """ """ self.data = self.request.recv(1024) self.create_dict() self.request.sendall('OK') return

class ForkedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer): passif __name__ == "__main__": HOST, PORT = "82.98.162.129", 9999 server = ForkedTCPServer((HOST, PORT), ArduinoGPRSHandler) server.serve_forever()

Page 14: OpenLivingLab Eibar (Librecon 2014)

Escenario 1.2: MeteringLibelium

• Libelium: proveedor de platarforma de sensores para el IoT

• Plataforma configurable, modular... muy flexible• Plug & Sense!

Page 15: OpenLivingLab Eibar (Librecon 2014)

Escenario 1.2: MeteringLibelium

• 2x Modulo Smart Cities Plug & Sense SC 868 4.5 dBi con los siguientes sensores:

• Sensor Temperatura• Sensor Humedad• Sensor Luminosidad• Sensor Ruido (Micrófono) • Sensor Suciedad• 2x 6600mAh rechargeable battery + external solar panel 7V -

500mA• 1x MESHLIUM 868-3G-AP

Page 16: OpenLivingLab Eibar (Librecon 2014)

Escenario 1.2: MeteringLibelium

• Meshlium• Router Linux, MySQL, ...• Se puede conectar con varios nodos de

sensores

Page 17: OpenLivingLab Eibar (Librecon 2014)

1 errenkada 2 errenkada 3 errenkada 4 errenkada0

2

4

6

8

10

12

1 zutabea

2 zutabea

3 zutabea

Page 18: OpenLivingLab Eibar (Librecon 2014)

Escenario 1.3: datos generales, interior

• Monitorización temperatura, humedad y luminosidad en el Ayuntamiento de Eibar

• Red de sensores inalámbrica• Envío de datos a través de internet

Page 19: OpenLivingLab Eibar (Librecon 2014)

Escenario 1.3: plano general con enlaces

Page 20: OpenLivingLab Eibar (Librecon 2014)

Nodo sensor•Comunicación inalámbrica 802.15.2•Alimentado con panel solar•Sensorización:

● Temperatura● Humedad relativa● Luminosidad

Gateway•Comunicación inalámbrica 802.15.2•Envío de datos a través de Internet (Toma Ethernet)•Capacidades GPRS, GSM y Wifi

Escenario 1.3: nodo sensor, gateway

Page 21: OpenLivingLab Eibar (Librecon 2014)

Escenario 2.1: Escaleras mecánicas: núm personas

• Contar número de personas que pasan por un punto concreto...

• De forma pasiva para el usuario

• No track / anónimo

Page 22: OpenLivingLab Eibar (Librecon 2014)

Escenario 2.1: Escaleras mecánicas: núm personas

• Existen distintas posibilidades:• Contar

smartphones activos (wifi, bluetooth...) y extrapolar

• Tratamiento de video/fotos

Page 23: OpenLivingLab Eibar (Librecon 2014)

Escenario 2.1: Escaleras mecánicas: núm personas

• Nos decantamos por barrera óptica

• Arduino• El script del

servidor -> clustering -> bbdd vía api

Page 24: OpenLivingLab Eibar (Librecon 2014)

Escenario 2.2: Contar personas... track

• Hiribili.com:• Windows -> iLogs• Script intermedio de

interpretación y cálculo de tracks válidos

• En este caso:• Arduino• Bluetooth• Script intermedio de

validación

Page 25: OpenLivingLab Eibar (Librecon 2014)

Escenario 3: Parking

• ¿Dónde podemos aparcar?• ¿Cómo se usan los parking exteriores?• Poder monitorizar cualquier plaza de parking

exterior...

Page 26: OpenLivingLab Eibar (Librecon 2014)

Escenario 3: Parking

• Alternativas• Sensores magnéticos• Barreras ópticas

entrada/salida

Page 27: OpenLivingLab Eibar (Librecon 2014)

Escenario 3: Parking

● Sensor cámara digital + arduino --> subir imágenes al servidor vía GPRS / ethernet / wifi

● Tratamiento de imágenes... detección de plazas libres● Información a la BBDD vía API

Page 28: OpenLivingLab Eibar (Librecon 2014)

BBDD (CAPA 2)

● Una única BBDD para todos los datos

● Estructura 'simple':– Nodo

– Sensor / SensorType

– ValorLectura

● Estructura válida para cualquier dato de los escenarios presentados

Page 29: OpenLivingLab Eibar (Librecon 2014)

BBDD (CAPA 2)

● Vía API– Token para escritura

– Público para consultas

● Salida vía HTTP / web:– openlivinglab.com

– Información grnal

– Nodos / sensores

– Gráfica de últimas lecturas...

● Información en Tiempo Real● Información en bruto● NO hay procesameinto

Page 30: OpenLivingLab Eibar (Librecon 2014)

Aplicaciones (CAPA 3)

● Gráficas generales● Widgets HTML● Cruce de datos de distintos proyectos

– Personas en un punto / temperatura

– Parking / ruido / contaminación / temperatura

– Temperatura exterior / interior

– ...

● Para los gestores del ayuntamiento: monitorizar / medir las consecuencias de las decisiones

● ... muy pocos datos de momento

Page 31: OpenLivingLab Eibar (Librecon 2014)

Retos y líneas futuras de investigación

● Más aplicaciones... más sensores● ¿Por qué no aprovechar los sensores ya

existentes?● Muchísima variedad de sensores, cada vez

más accesibles● Sensores móviles, contraprestación ciudadana● Aplicaciones -> feedback, toma de decisiones,

actuar sobre elementos físicos

Page 32: OpenLivingLab Eibar (Librecon 2014)

Eskerrik asko!

Josu Azpillagawww.codesyntax.com

Asier Ibaigarriaga / Jon Ander Garces

www.zermik.com

Mikel Larrañaga

www.tekniker.es