Tabla de contenido:

Edison me hace un café (código): 3 pasos
Edison me hace un café (código): 3 pasos

Video: Edison me hace un café (código): 3 pasos

Video: Edison me hace un café (código): 3 pasos
Video: Al menos se lo grité 😅 2024, Noviembre
Anonim
Edison me hace un café (código)
Edison me hace un café (código)

Este proyecto le permitirá desencadenar una acción (como servir café) una vez que se detecte un cliente WiFi en una red WiFi (como cuando usted o sus empleados lleguen a su oficina).

Paso 1: Configure su Intel Edison

Configure su Intel Edison
Configure su Intel Edison

Conecte los dos cables USB de su computadora a la placa Edison (uno para alimentación, otro para datos en serie). En OSX, abra una conexión en serie a la placa desde su terminal: screen /dev/tty.usbserial-AJ035OK6 115200 -L El inicio de sesión predeterminado de Edison es root. Una vez dentro, configure la red wifi: configure_edison --wifi Vamos a agregar la lista de fuentes para poder descargar paquetes desde Edison. Abra este archivo: root @ edison: ~ # vi /etc/opkg/base-feeds.conf Y agregue estas líneas (escriba "i" para poder insertar texto en el editor vi): src / gz all http: / /repo.opkg.net/edison/repo/allsrc/gz edison https://repo.opkg.net/edison/repo/edisonsrc/gz core2-32 https://repo.opkg.net/edison/repo/core2 -32A continuación, actualice las fuentes e instale las bibliotecas necesarias para nuestro proyecto: root @ edison: ~ # opkg updateroot @ edison: ~ # opkg install libmraa0 nanoroot @ edison: ~ # opkg install python-piproot @ edison: ~ # curl https: / /bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | pythonroot @ edison: ~ # pip install ubidots¡Done! ahora estamos listos para codificar. Detectar cuando llegue a mi oficina. Usaremos el rastreador de paquetes Scapy para poder detectar el tráfico ARP en la red wifi local. Scapy es una gran herramienta que le permite manejar paquetes de red con la facilidad de un script de Python. Sin él, tendríamos que analizar una gran cantidad de código binario al rastrear el tráfico de red. Nuestro primer script buscará las direcciones MAC almacenadas en un archivo csv llamado "dictionary.csv", y luego enviará el valor "1" a una variable de Ubidots., lo que significa que la persona llegó. Si se ve la dirección MAC por primera vez, el script creará automáticamente una variable Ubidots para almacenar los datos. Tenga en cuenta la línea: sniff (prn = arp_count, filter = "arp", store = 0) que activa la función " arp_count (pkt) "cada vez que se rastrea un paquete ARP. Esa función es donde disparamos multiprocesos para actualizar la variable Ubidots. La razón por la que utilicé el multiprocesamiento es porque necesitaba una función paralela para que, si dos usuarios llegan al mismo tiempo, ambos paquetes puedan ser olfateados y actualizados en Ubidots. La opción "store = 0" es muy importante porque de lo contrario los paquetes comenzar a llenar la memoria RAM y Swap de Edison y se congelaría después de unas horas. https://halckemy.s3.amazonaws.com/uploads/document/file/46958/dictionary.csv /uploads/document/file/46543/wifi_sniff.py

Paso 2: activar un servo cuando se detecta el paquete ARP

Activar un servo cuando se detecta el paquete ARP
Activar un servo cuando se detecta el paquete ARP

El segundo script sondeará esa variable de Ubidots todo el tiempo (a la que estamos enviando "0" o "1") y activará el servo cuando la variable sea igual a "1". Estoy usando la biblioteca MRAA (sugerida por la gente de Intel) que le permite manejar todos los pines GPIO de su Edison desde el shell de Linux o un script de Python (¡en realidad, no es necesario codificar en Arduino!). Esto me permitió manejar rápidamente un servomotor de Python. Https://halckemy.s3.amazonaws.com/uploads/document/file/46556/pour_coffee.py El servo está conectado al pin D3 en el Grove Kit. Puede configurar este Servo para activar cualquier válvula física, como una máquina de café. Hice un portavasos simple para la demostración. También puede crear un "Interruptor" en su tablero y controlar el vertedor de café manualmente:

Paso 3: Vote

¡¡¡Por favor vota!!! Para el video:

Recomendado: