Introduction: Physical Web Con Intel Edison

About: Fundador de The Inventor's House Hackerspace, Movimiento Maker y Hardware Libre, DIY, Workaholic

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!

Step 1: Material

El material que requerimos para realizar este proyecto es:

Step 2: 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

Step 3: Instalar Paquetes De NodeJS

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

Step 4: Configurar PayPal

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

Step 5: Codigo

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...

Step 6: Probando Nuestro Beacon Web

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

Homemade Gifts Contest

Participated in the
Homemade Gifts Contest

Explore Science Contest

Participated in the
Explore Science Contest