Paso 1: Configurar al Edison de Intel
pantalla /dev/tty.usbserial-AJ035OK6 115200 - L
El valor predeterminado de inicio de sesión de Edison es raíz. Una vez que estás en, configurar la red wifi:
configure_edison - wifi
Vamos a agregar la lista de fuentes para poder descargar los paquetes de la Edison. Abrir este archivo:
vi /etc/opkg/base-feeds.conf la raíz
Y añade estas líneas a él (tipo "i" para poder insertar texto en el editor vi):
fuente/gz http://repo.opkg.net/edison/repo/all todos
fuente/gz edison http://repo.opkg.net/edison/repo/edison
fuente/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
Luego de actualizar las fuentes e instalar las bibliotecas requeridas para nuestro proyecto:
actualización de opkg raíz
raíz opkg instalar nano libmraa0
raíz opkg instalar python-pip
raíz rizo https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | Python
pipa de raíz instalar ubidots
Hecho! Ahora estamos listos para código.
Detectar cuando llegue a mi oficina
Vamos a usar el sniffer de paquetes Scapy para ser capaces de detectar el tráfico ARP en la red local wifi. Scapy es una gran herramienta que permite gestionar los paquetes de la red de la facilidad de un script de Python. Sin él, tendríamos que analizar un montón de código binario al rastreo de tráfico de la red.
Nuestro primer script será mirar hacia fuera para MAC direcciones almacenadas en un archivo de csv llamado "dictionary.csv" y luego envía el valor "1" a una variable de Ubidots, lo que significa que la persona llegó. Si la dirección MAC es vista por primera vez, la secuencia de comandos automáticamente creará una variable de Ubidots para almacenar los datos.
Nota la línea:
oler (prn = arp_count, filtro = "arp", guardar = 0)
que activa la función "arp_count(pkt)" cada vez que un paquete de ARP se esnifa. Esa función es donde encendemos varios procesos para actualizar la variable de Ubidots.
La razón que utilicé multiprocesamiento es porque necesitaba una función paralela para que, si dos usuarios llegan al mismo tiempo, entonces ambos paquetes pueden ser chupados y actualizados de Ubidots.
La opción de "guardar = 0" es muy importante porque de lo contrario los paquetes serían empezar a llenar el Edison de RAM y memoria de Swap y lo congelaría después de unas horas.
https://halckemy.S3.amazonaws.com/uploads/Document/File/46958/Dictionary.csv
https://halckemy.S3.amazonaws.com/uploads/Document/File/46543/wifi_sniff.py