Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspberry PI y Java

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 68 Anuncio

Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspberry PI y Java

Descargar para leer sin conexión

En la charla estaremos mostrando los puntos importantes a considerar en un proyecto de integración de componentes electrónicos para ser procesados por un sistema de alto nivel. Abordaremos la elección del micro-procesador, protocolos de comunicación, técnicas de ahorro de energía y estrategias de integración con el sistema del alto nivel utilizando Arduino, Raspberry PI y la plataforma Java. En la presentación estaremos mostrando un sistema embebido para procesar la temperatura de ambiente y su integración en una aplicación Web.

En la charla estaremos mostrando los puntos importantes a considerar en un proyecto de integración de componentes electrónicos para ser procesados por un sistema de alto nivel. Abordaremos la elección del micro-procesador, protocolos de comunicación, técnicas de ahorro de energía y estrategias de integración con el sistema del alto nivel utilizando Arduino, Raspberry PI y la plataforma Java. En la presentación estaremos mostrando un sistema embebido para procesar la temperatura de ambiente y su integración en una aplicación Web.

Anuncio
Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Similares a Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspberry PI y Java (20)

Anuncio

Más reciente (20)

Anuncio

Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspberry PI y Java

  1. 1. Integración de proyectos embebidos Utilizando Arduino, Raspberry PI y Java. Ing. Carlos Camacho & Ing. Javier Marte Santiago,República Dominicana, 28/11/2015. Barcamp.org.do
  2. 2. Los conceptos y juicios de valor emitidos en esta presentación es responsabilidad personal y no se puede entenderse como una posición oficial de alguna empresa con la que hemos tenido relación laboral. Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios. Su utilización es solamente para fines ilustrativos y no pretendemos dar a entender cualquier afiliación con esas empresas. Asuntos Legales
  3. 3. Sobre Carlos Camacho ❖ Ing. Telemático | Magister Tecnología Educativa | Profesor Departamento Sistema, PUCMM. ❖ Más de 10 años de experiencias en desarrollo de sistemas bajo Java SE y Java EE. ❖ Fundación Código Libre, Santiago - Miembro Fundador | Coordinador de Sistemas, Reefer Services, S.A.S | Presidente, AvatharTech E.I.R.L. ❖ Lado oscuro de la fuerza, Nacido en la era Nintendo, Pirata Musical Comunidades ❖ twitter: @ccamachog ❖ Github: @vacax ❖ LinkedIn: @ccamachog ❖ carlosalfredocamacho@gmail.com / ccamachog@avathatech.com
  4. 4. Sobre Carlos Camacho ❖ Ing. Electrónico | Encargado de Seguridad Electrónica, PUCMM. ❖ Más de 3 años de experiencias en desarrollo e integración de sistemas embebidos. Comunidades ❖ LinkedIn: @javiermartemichelen ❖ javier.m.m92@gmail.com / jmarte@avathatech.com ❖ facebook: @javier.martemichelen
  5. 5. ● Elección de la placa. ● Protocolo de comunicación. ● Programación en el microprocesador ● Ahorro de energía. ● Integración con el software de alto nivel. Agenda
  6. 6. ● Introducir los conceptos fundamentales de los dispositivos embebidos. ● Mostrar los criterios técnicos que deben ser evaluados para la selección de las placas y procesadores. ● Mostrar funcionamiento de los módulos de comunicación Xbee. ● Integración dispositivo electrónico con aplicación web. Objetivo
  7. 7. Un cliente que maneja carga refrigerada a terceros, necesita demostrar que los productos que el maneja nunca pierden la cadena de frío, para ello, necesita evidenciar que posee información veraz donde no intervenga la manipulación humana en los registros de temperatura a la carga que el maneja; para lograr ese objetivo, necesita incluir en sus procesos un sistema informático que se alimente de sensores electrónicos que miden temperatura y humedad, permitiendo la generación de reportes, alarmas fuera de rango y visualizar en tiempo real los valores procesados, logrando demostrar a sus clientes que mantiene en todo momento la cadena de frío. Los sensores que serán implementados, deben ser de bajo costo, no utilizar cableado de ningún tipo para la transmisión de la información y autonomía de esos equipos. El Proyecto
  8. 8. Analizando los requerimientos del cliente, el proyecto debe cumplir los siguientes puntos: ● Medir Temperatura y Humedad ● Inalámbrico. ● Bajo costo. ● Visualizar la información en una aplicación Web. ● Emisión de Alarmas. ● Colector de información ● Control de evento ● Autónomo ○ Utilizar batería Problema
  9. 9. ● Es un Sistema de computación diseñados para cubrir y dar respuesta a una necesidad específica. ● Tienen una arquitectura semejante a las PC: ○ Microprocesador ○ Memoria ○ Disco duro ○ Entradas / Salidas digitales y analogas. Sistemas Embebidos
  10. 10. Esquema del proyecto Dispositivo Maestro y Coordinador Dispositivo Final N1 Dispositivo Final N2 Dispositivo Final Nn Aplicación Web
  11. 11. Dispositivos Finales ● Sensor de temperatura. ● Sensor de humedad. ● Comunicación inalámbrica. ● Microprocesador. ● Ambiente en que va a funcionar el Hardware o End Point. ● Utiliza Batería para la alimentación.
  12. 12. Sensores ● Un sensor es un dispositivo diseñado para recibir información de una magnitud del exterior y transformarla en otra magnitud, normalmente eléctrica, que seamos capaces de cuantificar y manipular.
  13. 13. Sensores de Temperatura y Humedad Hay muchos tipos de sensores de temperatura y humedad en el mercado. Por ejemplo: DHT11 Power Supply Rango de Medición Humedad Error Máximo Temperatura Error Máximo Resolution 3 V - 5 V 20-90%HR 0-50℃ ±5%HR ±2℃ 1 Desventajas - Error de medición Alto. - Rango de medición Limitado. - I2C Ventajas - Un solo dispositivos tenemos dos unidades distintas de medición. Precio US $ 5
  14. 14. Sensor de Temperatura DS18B20 Power Supply Rango de Medición Temperatura Error Máximo Resolución 3.0V - 5.5V -55℃ hasta +125℃ -10℃ hasta 85℃ = ±0.5 -55℃ hasta 125℃ =± 2 Programable Precio US $ 3. G N D D Q VD D Desventajas - Una sola variable de medición Ventajas - Mayor rango de temperatura - Menor error. - Resolución programable. - Se puede Calibrar. - One Wire bus. - Menor Consumo
  15. 15. Sensor de temperatura y humedad Power Supply Rango de Medición Temperatura Error Máximo Resolution 3.3V - 5.5 V DC 0 hasta 100 %HR -40 〜 80 ℃ ± 2 % HR ± 0.5 ℃ 0.1% RH ± 0.2 ℃ Este dispositivo se ajusta más a nuestro proyecto. Precio US $ 6. DHT22/AM2302 Ventajas - Mayor rango de medición en la Humedad - Menor error de temperatura y humedad. - Se puede Calibrar. - One Wire bus. - Un solo dispositivo Desventajas - Menor rango de medición en la temperatura
  16. 16. Comunicación Inalámbrica Por requerimiento del proyecto, no podemos utilizar cableado para comunicar los equipos, dado el alto costo que implica contar con las facilidades técnicas ( tuberia, electricidad, redes ) previo al funcionamiento del proyecto. Por esta razón, se busca un tipo de Dispositivos que tenga las siguientes características: 1. Autonomía. 2. Bajo consumo. 3. Transmisión de dato a larga distancia. 4. Debe ser compatible la comunicación entre microcontrolador y el dispositivo inalámbrico. 5. Red Mesh o Estrella.
  17. 17. Comunicación Inalámbrica(End Point) Xbee SB2 Pro Características ● 3.3v @ 295mA. ● Rango de 1 milla (1.6 Km). ● Comandos AT o API. ● Certificación FCC. ● 250Kbps máxima tasa de datos. ● 6 Pines entrada CAD 10-bit Precio US $28
  18. 18. Comunicación Inalámbrica(End Point) Ventajas del Uso del Xbee: ● Gran alcance de transmisión ● Bajo consumo. ● Interfaz serial. ● Fácil de integrar. ● Económico,poderoso y fáciles de usar. ● Autonomía en el enrutamiento. ● Red Mesh o Estrella.
  19. 19. Comunicación Inalámbrica Xbee Coordinador (administrador de la red) • Sólo puede existir uno por red. • Inicia la formación de la red. • Es el coordinador de PAN (red de área personal). Router (enrutador) • Se asocia con el coordinador de la red o con otro router ZigBee. • Puede actuar como coordinador. • Es el encargado del enrutamiento de saltos múltiples de los mensajes. Dispositivo final (End device) • Elemento básico de la red. • No realiza tareas de enrutamiento.
  20. 20. Configuración Xbee Los Xbee deben ser configurados por el usuario antes de ser utilizados. Para esto se utiliza el software XCTU de Digi International.
  21. 21. Configuración Básica del Xbee Coordinador. PAN ID(Personal Area Network) 1234 SCAN Channels 10 Scan Duration 3 Firmware Version:
  22. 22. Configuración Básica del Xbee End Point. PAN ID(Personal Area Network) 1234 SCAN Channels 10 Scan Duration 3 Join Notification (1 Enable) Sleep Mode Cyclic Pin- Wake[5] Firmware Version:
  23. 23. Configuración Básica del Xbee Router: PAN ID(Personal Area Network) 1234 SCAN Channels 10 Scan Duration 3 Join Notification (1 Enable) Sleep Mode No Sleep
  24. 24. Elección de Microprocesador y placa Paso 1: Se debe listar las funciones que va a desempeñar el End point, ya que esto dependerá el nivel de complejidad que vas a manejar en tu microprocesador. Por ejemplo, para este proyecto tenemos lo siguiente: 1. Obtener los valores de Temperatura y Humedad. 2. Obtener el valor del voltaje de la batería. 3. Procesar la trama de comunicación hacia el coordinador. 4. Procesar la trama de comunicación del Xbee. 5. Envío de datos al coordinador cada X tiempo.
  25. 25. Elección de la placa (End Point)
  26. 26. Elección de la placa (End Point) Para elegir el End point tomamos en cuenta lo siguiente: ● Costo de los equipos. ● Características de los microprocesadores. ● Complejidad de las tareas que va a desempeñar el dispositivo. ● Factibilidad. ● Tamaño de las placas.
  27. 27. Elección de la placa (End Point) Para los End point, elegimos Arduino porque cumple con: ● Bajo Costo. ● Las tareas que van a desempeñar son sencillas. ● Factibilidad en la construcción del PCB. ● Varias opciones y tamaño de placas.
  28. 28. Elección de la placa
  29. 29. Dispositivo Final(End Point) Paso 2 : Listar cantidad de pines y tipo de comunicación que vamos a utilizar en el proyecto. Por ejemplo, para este proyecto tenemos: Dispositivo Pines a controlar Cantidad de Pines a controlar Comunicación DS18B20 DQ | VDD 2 1 One-Wire Humedad Ve | OUT 2 1 One- wire Xbee CTS 1 Serial Batería +Vcc 1 Análogico Inputs 2 Pines 2 - Elección Microprocesador y Placa Arduino Total de Pines a Utilizar: 5 Pines Digitales. 3 Pines Analogicos Total de Dispositivos a Utilizar: 5
  30. 30. Dispositivo Final(End Point) Paso 3 : Elección de la Placa Arduino, para esto debemos tener en cuenta los siguiente parámetros: ● Voltaje Operacional. ● Memorias Flash. (Donde se almacena el Sketch) ● Memoria SRAM. (Es de uso Exclusivo para el programa en ejecución). ● Memoria EEPROM.(Utilizada para almacenar información a largo plazo). ● Entrada Analogicas y Digital. ● Velocidad del Microprocesador. ● Interrupciones. Para esto, observar la siguiente tabla y buscar los parámetros de interés. Elección Microprocesador y Placa Arduino
  31. 31. Name Processor Operating/Input Voltage CPU Speed Analo g In/Ou t Digital IO/PWM EEPROM [KB] SRAM [KB] Flash [KB] USB UART ArduinoBT ATmega328P 5 V / 2.5-12 V 16 MHz 6/0 14/6 1 2 32 - 1 Due ATSAM3X8E 3.3 V / 7-12 V 84 MHz 12/2 54/12 - 96 512 2 Micro 4 Fio ATmega328P 3.3 V / 3.7-7 V 8 MHz 8/0 14/6 1 2 32 Mini 1 Gemma ATtiny85 3.3 V / 4-16 V 8 MHz 1/0 3/2 0.5 0.5 8 Micro 0 Leonardo ATmega32U4 5 V / 7-12 V 16 MHz 12/0 20/7 1 2.5 32 Micro 1 Mega 2560 ATmega2560 5 V / 7-12 V 16 MHz 16/0 54/15 4 8 256 Regular 4 Uno ATmega328P 5 V / 7-12 V 16 MHz 6/0 14/6 1 2 32 Regular 1
  32. 32. Dispositivo Final(End Point) Elección MicroProcesador y Placa Arduino Ventajas : ● Cargador de batería. ● Plot para batería incorporado. ● Xbee shield Incorporado. ● Switch On/ OFF. ● Encapsulado pequeño. ● Pines extra para medición de batería y control de xbee Arduino Fio (Atmega 328P) Precio US $23
  33. 33. Dispositivo Final(End Point) Esquema del Proyecto:
  34. 34. Dispositivo Final(End Point) Esquema del Proyecto:
  35. 35. Dispositivo Final(End Point) Selección de la Batería: Paso 1: Tabular el consumo promedio de todos los dispositivos. Dispositivo Consumo Máximo en modo Activo Consumo en Modo StandBy o Sleep DS18B20 1.5 mA 10 uA Humedad 1.5 mA 50 uA Xbee 80 mA 32 uA Arduino Fio 10 mA 112 uA Total 93 mA 140 uA
  36. 36. Dispositivo Final(End Point) Selección de la Batería: Paso 2: Ejercicio 1: ¿Cuál sería la capacidad de la batería para una carga constante de 93mA durante un mes? Duración de la Batería(Hora)= Capacidad de la Batería para 1 mes (720 horas) será de: 66,960 mAh. No es viable. Solución para ahorrar energía: Definir un Ciclo donde tendremos 2 tiempos: Tiempo activo, este tiempo corresponde al proceso y envío de datos). Tiempo muerto (sleep o modo ahorro de energía). Capacidad de la batería (mAh) Corriente de la carga (mA)
  37. 37. Dispositivo Final(End Point) Selección de la Batería: si el ciclo = 2 Minutos Tiempo Activo = 10 segundos Tiempo Muerto = 110 segundos La corriente en Tiempo activo es = 93mA. La corriente en Tiempo muerto es = 204uA + 5% de la corriente en tiempo activo = 4.854mA. La corriente total consumida en el ciclo = 93mA + 4.854mA = 97.854mA. Para tener una referencia, durante un mes vamos a calcular la corriente consumida del dispositivo tomando en cuenta cada 2 minutos durante 1 mes. 1 Mes = 24horas*30 dias= 720 horas. (720 horas* 60 minutos) /1 hora = 43,200 minutos. Cantidad de ciclos de 2 minutos durante 1 mes = = 21,600 ciclos. La corriente consumida durante un mes completo = 21,600 * 97.854mA= 2,113.6 mA 43,200 minutos 2 minutos
  38. 38. Dispositivo Final(End Point) Selección de la Batería: Finalmente, la corriente consumida por el dispositivo final(End Point) en 1 mes = 2,113.6mA Debemos elegir una batería con un voltaje nominal de 3.7 - 7 voltios y una capacidad por encima de los 2000 mAh. Por ejemplo, la batería que se muestra es de Lithium ion Polymer, con un voltaje de 3.7v y una capacidad de 2200mAh
  39. 39. Dispositivo Final(End Point) Trama de las lecturas de los variables medidas. Valores en Hexadecimal. 40 40 00 01 01 03 2D 50 1D 25 03 04 Start Delimiter : 40 40 End point ID: 00 01 Frame Type : 01 Voltaje: 3 2D Signo de temperatura: 50 si es Positiva , 4E si es Negativa Temperatura: 1D 25 Humedad: 03 04
  40. 40. Comunicación Inalámbrica Trama de Recepcion de Paquete en el Xbee Coordinador. Valores en Hexadecimal. 7E 00 18 90 00 13 A2 00 40 B5 A3 09 09 9D 41 40 40 00 01 01 03 2D 50 1D 25 03 04 E7 Start delimiter: 7E Length: 00 18 (24) Frame type: 90 (Receive Packet) 64-bit source address: 00 13 A2 00 40 B5 A3 09 16-bit source address: 09 9D Receive options: 41 RF data: 40 40 00 01 01 03 2D 50 1D 25 03 04 Checksum: E7
  41. 41. Comunicación Inalámbrica Ejemplo de envio de Paquete desde el End Point. Valores en Hexadecimal. 7E 00 1A 10 01 00 13 A2 00 40 B5 A2 F8 FF FE 00 00 40 40 00 01 01 03 2D 50 1D 25 03 04 62 Start delimiter: 7E Length: 00 1A (26) Frame type: 10 (Transmit Request) Frame ID : 01 (Habilitar el Request) 64-bit Dest. address: 00 13 A2 00 40 B5 A2 F8 16-bit source address: FF FE Broadcast radius: 00 Options : 00 RF data: 40 40 00 01 01 03 2D 50 1D 25 03 04 Checksum: 62 Checksum=0xFF-(sumatoria & 0xFF).
  42. 42. Ahorro de Energía (End Point) ¿Como se pudo ahorrar energia via Software? 1. Colocando en modo Sleep el Xbee. 2. Colocando el microprocesador en modo hibernar en sus tiempos muertos. 3. Controlando el paso de corriente a los sensores. Como colocar en Modo Sleep el Xbee. ~ Pin 9 DTR/sleep RQ Activo Bajo.
  43. 43. Ahorro de Energía (End Point) ¿Como se pudo ahorrar energia via Software? Se determinó el tiempo muerto del proceso y se colocó cada uno de los dispositivos en el siguiente modo de operación. 1. Colocando en modo Sleep el Xbee. 2. Colocando el microprocesador en modo ahorro de energía en sus tiempos muertos. 3. Controlando el paso de corriente a los sensores. Como colocar en Modo Sleep el Xbee. ~ Controlando desde el microprocesador el Pin 9 DTR/sleep RQ. Nota: Tener en cuenta que la configuración esté en Cyclic Pin-Wake
  44. 44. Ahorro de Energía (End Point) ¿Como colocar el Microprocesador en modo de ahorro de energía? Este Microprocesador tiene disponible seis modos de dormir: 1. Idle 2. ADC Noise Reduction 3. Power-save, 4. Power-down 5. Standby 6. Extended Standby Para poder salir del Modo de dormir tiene que haber una intervención en el microprocesador, para esto, generando una interrupción podemos despertar el microprocesador. Las interrupciones son eventos especiales que se generan interna o externamente en el microcontrolador que pausa momentáneamente la ejecución del programa para realizar una tarea breve, y después volver al punto donde se quedó ejecutando el programa. Atmega 328P
  45. 45. Ahorro de Energía (End Point) La interrupción de Watchdog Timer es la que se utilizó, porque el watchdog timer es un temporizador de 16 bit que puede ser configurada para generar interrupciones en un determinado tiempo. Registro de configuración del Watchdog Timer. Configuración del Watchdog Timer.
  46. 46. Ahorro de Energía (End Point) Finalmente el registro del Watchdog timer WDTCSR = B01100001; // Interrupción cada 8 segundos Tabla del Preescalador del Watchdog timer
  47. 47. Ahorro de Energía (End Point) void sleepNow() { set_sleep_mode(SLEEP_MODE_PWR_SAVE); // Sleep mode is set here sleep_enable(); // Habilitando el modo sleep en el registro mcucr. sleep_mode(); // Aquí el Microprocesador se va a modo Power save // El programa continúa aquí una vez que se despierte sleep_disable(); // Lo primero que se hace cuando despierta deshabilitar el // modo sleep } void watchdogEnable() { // Encender la interrupción del watchdog timer cada 8.0s cli(); MCUSR = 0; WDTCSR |= B00011000; //WDTCSR = B01000111; // 2 Second Timeout //WDTCSR = B01100000; // 4 Second Timeout WDTCSR = B01100001; // 8 Second Timeout sei(); } ISR (WDT_vect) { // Vector interrupción del Watchdog Timer. cli(); wdt_disable(); sei(); }
  48. 48. Arduino IDE for Visual Studio Visual Micro es un plugin gratuito de programación de Arduino que se extiende Microsoft Visual Studio 2012 hasta 2015, con un completo entorno de programación compatible con Arduino. IDE de diversos fabricantes como arduino.cc, arduino.org, intel, chipKIT, son compatibles teensy. Requerimientos: ● Visual Studio or Atmel Studio. ● Plugins Visual Micro. ● Arduino IDE. ● Solo para Windows. Ventajas: ● Puedes Debugear tus códigos paso a paso. ● Simplifica la tarea de programar. ● Interfaz más amigable.
  49. 49. Arduino IDE for Atmel Studio
  50. 50. Recomendaciones 1. Familiarizarse y probar con cada unos de los dispositivos. 2. Hacer pruebas de tramas y envío de información en los Xbee con el software XCTU. 3. No hacer mal uso en las declaraciones de las variables. 4. Tomar en cuenta todos los factores a la hora de la elección del microprocesador. 5. Leer las hoja de datos de los dispositivos para conocerlos bien. 6. Lo último que se calcula y se elige es la batería de alimentación. Costo Total US$77 (Incluyendo PCB y materiales gastables)
  51. 51. ● Plataforma: ○ Multiplataforma. ○ Utiliza máquina virtual para su ejecución. ○ Creado por James Gosling ○ Multipropósito, dividida según el uso en: ■ Java SE. ■ Java EE. ■ Java Embedded. ● Números: ○ 5 trillones de SIMS y Smart Cards ○ 3 trillones de dispositivos móviles. ○ 80 millones de TV, incluyendo blu-ray, printers, máquinas bancarias, ebook readers. Java Trillones, representa el término inglés de 10^12, http://www.oracle.com/us/technologies/java/embedded/overview/index.html
  52. 52. ● Optimizados para trabajar con sistemas embebidos los cuales tienen limitaciones en cantidad de memoria, procesadores y consumo eléctrico. Dependiendo la implementación se divide en: ○ Java Embedded → Soluciones para pequeños y grandes equipos embebidos. ○ Java SE Embedded → Implementación de Java SE optimizada para equipos embebidos. ○ Java ME Embedded → Optimizados para equipos pequeños, actualización remota. ○ Java ME Embedded Client → Optimizados con equipos pequeños con limitaciones memoria, display y alimentación eléctrica. ○ Java Card → Dispositivos de seguridad ○ Java TV → Contenido digital para TV. Java Embedded
  53. 53. ● Recibe la información enviada por los dispositivos finales (End Point). ● Puente o convertidor de protocolo de comunicación ( Xbee a TCP). ● Envía la información recibida al servidor central para su procesamiento. ● Requiere capacidad de procesamiento y memoria moderada para procesar cada una de la información enviada por los dispositivos finales. Dispositivo Maestro | Controlador
  54. 54. ● Nuestro dispositivo seleccionado es Raspberry PI Modelo B: ○ SoC: Broadcom BCM 2835 (CPU + GPU+ DSP + SDRAM + Puertos USB). ○ CPU: ARM 1176JZF a 700 MHZ. ○ SDRAM: 512MB. ○ Almacenamiento: SD ○ Conectividad: Ethernet R-J45, 10/100. ○ Periféricos bajo nivel: 8 x GPIO, SPI, I2C, UART. ○ Sistemas Operativos: Raspbian, Pidora, entre otros sabores de linux. Elección del dispositivo maestro
  55. 55. Elección del dispositivo maestro US$: 45.00
  56. 56. Raspberry PI Zero US$: 5.00
  57. 57. ● Características: ○ SoC: Broadcom BCM 2835 (CPU + GPU+ DSP + SDRAM + Puertos USB). ○ CPU: ARM11 a 1 GHz. ○ SDRAM: 512MB. ○ Almacenamiento: SD ○ 40 pines disponible. ○ Sistemas Operativos: Raspbian. Raspberry PI Zero
  58. 58. ● Raspberry PI permite la instalación de un sistema operativo basado en linux. La distribución más utilizada es RaspBian. ● Para instalar Java SE Embedded, lo descargamos desde los repositorios: ○ sudo apt-get install oracle-java8-jdk ● Instalar acceso serial Linux - Java - Raspberry Pi: ○ sudo apt-get install librxtx-java ● El poder de cómputo permite considerar el dispositivo como uno de alta prestaciones para el tipo de aplicaciones que estaremos realizando. ● Una vez en funcionamiento solo hace falta arrancar la aplicación de control. Raspberry PI & Java
  59. 59. Esquema Raspberry - End Point Controlador Raspberry PI Model B Base Datos (H2) Arduino Fio XBee Temp / Hum XBee Ethernet Aplicación Web End Point Controlador
  60. 60. Nuestra aplicación en Java realiza las siguiente funciones: ● Leemos la información recibida por el puerto serial que nos proporciona el XBee. ● La información recibida es parseada acorde al protocolo interno y enviada a la aplicación central. ○ Puede ser almacena en una base de datos interna permitiendo el envío diferido en caso de problemas de conexión. ● Recibe confirmación de lectura de servidor central. Controlador
  61. 61. El proceso de integración con aplicación construidas en plataformas de alto nivel, depende de poder enviar la información desde los dispositivos embebidos al servidor central para su procesamiento, en el cual debemos utilizar un medio de comunicación y un protocolo para tales fines. En nuestra arquitectura utilizamos las siguientes tecnologías: ● Grails (Backend) ● Vaadin (Frontend) ● Mysql (motor de persistencia) Integración Alto Nivel
  62. 62. ● Para el intercambio de información utilizamos JSON, enviando sobre el protocolo HTTP a la aplicación central. {"startByte":126,"sourceAddressByte64":[0,19,-94,0,64,-75,-94,-17],"tipoTramaXbee":144,"direccion16":" 46:4c","voltaje":3.45,"temperatura":27.81,"sourceAddressByte16":[70,76],"tipoTrama":1,"checkSum":236," rawData":[126,0,24,-112,0,19,-94,0,64,-75,-94,-17,70,76,65,64,64,0,1,1,3,45,80,27,81,3,4,-20]," direccion64":"0:13:a2:0:40:b5:a2:ef","tamanoTrama":24,"dispositivoId":1,"data": [64,64,0,1,1,3,45,80,27,81,3,4],"humedad":3.04,"receiveOption":65} Intercambio de información
  63. 63. App Central
  64. 64. App Central
  65. 65. Demo Demostración del producto final Sobre
  66. 66. Demo ¿Preguntas?
  67. 67. Demo Gracias :-D
  68. 68. Refencia http://xbee.cl/xbee-pro-63mw-wire-antenna/ http://1.bp.blogspot.com/-5b5WBm45iFM/VI741_YkpTI/AAAAAAAABcw/eONpHusj6bw/s1600/modelos_Arduino_2014.png https://www.arduino.cc https://www.maximintegrated.com/en/products/analog/sensors-and-sensor-interface/DS18B20.html http://plataformaszigbee.blogspot.com/2012/05/practica-1-configuracion-y-conceptos.html http://www.atmel.com

×