Physical Web Con Intel Edison
by sabas1080 in Circuits > Arduino
7105 Views, 54 Favorites, 0 Comments
Physical Web Con Intel Edison
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
El material que requerimos para realizar este proyecto es:
- Intel Edison
- Smartphone con Bluetooth 4.0 BLE
- Grove Starter Kit Plus de SeedStudio
- App para Android de Physical Web pueden descargarla desde la PlayStore, yo tengo android 4.4 y no funciona bien por eso utilizo una versión anterior
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
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
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
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
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