Physical Web Con Intel Edison

by sabas1080 in Circuits > Arduino

7105 Views, 54 Favorites, 0 Comments

Physical Web Con Intel Edison

temp_778488519.jpg
Physical Web Beacons by Blesh
temp_-2142920767.jpg
temp_1116359640.jpg

Nota: Gracias al evento Intel Internet of Things Giveaway en Instructables a llegado a mis manos una genial Intel Edison, gracias Intel

Hola amigos en este instructable les voy a mostrar como hacer un Beacon del proyecto Physical Web un proyecto en desarrollo con el apoyo de Google en el cual la intensión es que todo objeto en el mundo real tenga un URL y lo que yo voy a tratar de emular con este proyecto es una maquina de dulces o refrescos o lo que quieras en la que puedes pagar por medio de PayPal y la maquina te entrega tu producto cuando PayPal confirma el pago.

Le dejo un vídeo del potencial de esta tecnología

Aclarado un poco las cosas, comencemos!

Material

IMG_20150109_192626056.jpg
IMG_20150109_192637077_HDR.jpg
temp_-934779314.jpg
IMG_20150109_192646537_HDR.jpg
temp_-1496264685.jpg

El material que requerimos para realizar este proyecto es:

Instalar Requisitos Previos Del Sistema

Lo primero que debemos hacer es agregar los siguientes repositorios a nuestro archivo intel-iotdk.conf

vi /etc/opkg/intel-iotdk.conf 

o usar también pueden usar nano

nano /etc/opkg/intel-iotdk.conf

Agregamos las siguientes lineas para agregar repositorios a nuestra intel Edison

#Repo Oficial

src intel-iotdk http://iotdk.intel.com/repos/1.1/intelgalactic
#Repo No Oficial
src/gz all http://iotdk.intel.com/repos/1.1/intelgalactic
src/gz edison http://iotdk.intel.com/repos/1.1/intelgalactic
src/gz core2-32 http://iotdk.intel.com/repos/1.1/intelgalactic

Ahora ejecutamos:

opkg update

Ahora debemos instalar bluez

opkg install bluez5-dev

Ahora instalamos las librerias de mraa para poder usar I2C y GPIO's de una manera mas fácil en nuestra Intel Edison

opkg install libmraa0

Y tenemos todo lo necesario en nuestro sistema instalado, ahora vamos con NodeJS

Instalar Paquetes De NodeJS

nodejs-logo.png
overview.png

Estos son los paquetes que debemos en nodejs les recuerdo que nodejs y npm ya vienen instalados en la versión mas reciente de Yocto para Intel Edison

npm install -g async - requedifo por noble.js

npm install noble - try: node advertisement-discovery.js

npm install bleno - Requerido por uri-beacon, nos permite hacer ibeacons

npm install uri-beacon --save - nos permite hacer physical web beacon

npm install ngrok --save - nos permite crear tuneles local host, para saber mas visita https://ngrok.com/ (una herramienta genial)

npm install request --save

npm install colors

npm install body-parser --save

npm install mraa - nos sirve para controlar los GPIO desde nodejs

No todas son necesarias para ejecutar el beacon web, pero si para el correcto funcionamiento de mi script

Configurar PayPal

paypal.jpg
Sandbox Test Accounts   PayPal Developer.png
intel_edison_beaconpaypal.png
paypal2.png
Botones Comprar ahora   PayPal2.png
Lista completa de funciones  PayPal como opción de pago adicional   PayPal.png
Crear un botón de pago de PayPal   PayPal4.png
Crear un botón de pago de PayPal   PayPal2.png
Crear un botón de pago de PayPal   PayPal3.png

Para poder usar y hacer pruebas con paypal de una forma que no gastemos dinero debemos ir a la pagina de desarrolladores y crear dos cuentas en sandbox una de tipo Business y otra personal

  • Después entramos al la pagina de sanboxpaypal con la cuenta business entramos sección herramientas comercio, crear un boton de pago
  • Después vamos funciones avanzadas y ahora en la parte de notificación de pago entramos al link de configuración
  • Ahora debemos configurar nuestro botón con el costo y características que nosotros deseamos, algo muy importante es en la parte de "Personalizar funcionalidades avanzadas" debemos activar el la parte de "Añadir variables avanzadas" y agregar la url donde nuestra Intel Edison va a estar escuchando a paypal en en este caso en la imágenes es miurl.ngrok.com
  • Presionamos en"crear botón", copiamos el código generado y pegamos en nuestro archivo layout.html reemplazando el código que ya esta en el archivo

Listo ahora, recuerda que también para hacer pruebas podemos usar el IPN Simulador de PayPal

Codigo

sabas1080 PhysicalWebIntelEdison · GitHub.png

Todo el código necesario pueden encontrarlo en mi repositorio de github

  • index.js: Archivo que contiene el código que se ejecuta en nodejs, genera la url interna que anuncia el beacon para physical web que esta escuchando el puerto 8080 y genera la url donde la intel edison escucha la notificación de paypal cuando se realizo el pago en el puerto 200
  • layout.html: Diseño de la pagina que se muestra al entrar al beacon
  • package.json: Listado de dependencias

Repositorio: https://github.com/sabas1080/PhysicalWebIntelEdiso...

Probando Nuestro Beacon Web

intel_edison_beacon.png
intel_edison_beacon2.png
temp_-1817734728.jpg
Screenshot_2015-01-08-19-49-15.png
Screenshot_2015-01-08-20-11-37.png
Screenshot_2015-01-09-18-10-30.png
Screenshot_2015-01-09-18-11-58.png
Screenshot_2015-01-09-18-10-14.png
temp_188667109.jpg

Una vez teniendo todo en nuestra Intel Edison ejecutamos nuestro código

node index.js

Y en nuestro android debería aparecer una notificación de que hay un beacon nearby cerca pulsamos y nos aparecerá la url de nuestra intel Edison, damos click y nos diseccionara a la pagina donde esta nuestro botón de paypal presionamos el botón y realizamos el pago con la cuenta persona CREADA en nuestra cuenta de desarrollador ( verifiquen en todo momento que para pruebas estén en la url sandbox.paypal.com) , realizamos nuestro pago y el led en nuestra Intel Edison encenderá emulando la entrega del producto. Felicidades!

Listo tenemos funcionando nuestro Beacon Nearby, espero sus comentarios y las mejoras que pudieran hacer a este proyecto, estaría genial verlo dentro de una maquina expendedora real

Saludos y hasta luego