Paso 20: El software de funcionamiento
- Línea 8 permite al programa utilizar la librería SoftwareSerial que el programa utiliza para comunicarse con el lector de RFID
- Líneas 10-16 definen los pines de Arduino utilizados por el programa
- Líneas 18-23 definen las variables utilizadas por el programa
- Líneas 28-36 se ejecutan cuando el Arduino es primero encendido o reset. Este código se convierte en el color que cambia el LED del circuito inicializa la conexión a la PC y el lector de tarjetas RFID e inicializa los LEDs en la parte superior el gizmo.
- Líneas 41-71 son el bucle principal del programa. Este bucle se ejecutará hasta que el Arduino es apagado o reinicio. Lo primero que se realiza en el circuito es comprobar si el lector ha leído los datos y si los datos leídos indican el inicio de una etiqueta. Si es así:
- Líneas 44-53 leen datos desde el lector de RFID hasta que la etiqueta se ha leído completamente.
- Líneas 55-63 envían los datos a la PC. Se envían tres referencia: el recuento de etiquetas lee hasta ahora, el momento en que se lea la etiqueta y la etiqueta de identificación que se leyó. La cuenta y el tiempo no son utilizados por el programa en el PC pero existen para propósitos de depuración y son útiles si desea utilizar este código para otros proyectos de Arduino RFID.
- Líneas 64-68 temporalmente apaga el lector de tarjetas RFID, hace que los LEDs en la parte superior la carrera de gizmo alrededor y luego duerme un rato. El lector de RFID se enciende nuevamente y el programa lazos hacia la parte superior.
- Líneas 74-88 están una subrutina que hace el LED encima de gizmo se ilumina en secuencia y parece correr alrededor en círculos. La entrada a la subrutina es el número de veces a correr alrededor y el número de milisegundos para mantener cada LED iluminado.
- Líneas 90-98 son una subrutina que inicializa los pines de los LEDs y establece que son pines de salida.
El programa de gizmo de Python funciona en el PC y lazos a la espera de datos ser enviados por el Arduino. Cuando se reciben datos, el programa busca el ID de la etiqueta en una tabla para encontrar el sitio web asociado. Si el ID de la etiqueta está en la tabla, el programa utiliza una biblioteca de Python llamada "web browser" para abrir una nueva pestaña en el navegador por defecto en el PC y cargar la página web. Si el navegador no ejecuta, "web browser" la iniciará. Si el ID de etiqueta no está en la tabla, los programas crea un archivo HTML con un mensaje de error con el ID de la etiqueta y muestra en una nueva pestaña en el navegador. En la última imagen se muestra un ejemplo. El programa se muestra en cuarto, quinto, sexto y séptimo diagramas. A continuación un resumen del programa:
- Líneas 12-15 importación las bibliotecas para crear y escribir en archivos, comunicarse con Arduino, analizar los datos enviados desde el Arduino y controlar el navegador web.
- Líneas 20-34 son la tabla (Diccionario de términos de Python) que utiliza para asociar la etiqueta de identificación de sitios web. Cada línea tiene el ID de etiqueta RFID de diez caracteres y un enlace HTTP a la página web. Tenga en cuenta que la primera etiqueta se "quit" de la dirección web. Si esta etiqueta se lee, el programa va a terminar. Pueden agregar nuevas etiquetas duplicando la última línea y cambiar la etiqueta de identificación con la nueva etiqueta y poniendo en el sitio web que desee para la etiqueta.
- Línea 37 define qué puerto COM el programa utilizará para comunicarse con Arduino. Esta es la misma parte de COM que utiliza el software de desarrollo de Arduino para cargar el programa compilado en el Arduino. Se debe cambiar esto para que coincida con su sistema.
- Línea 42 es el nombre del archivo que el sistema crea cuando se lee una etiqueta desconocida. Este archivo se crea en el directorio donde instalaste Python. En mi caso, fue "c:\Python27".
- Líneas de 45-54 utilizan la biblioteca pySerial conectarse a Arduino. Los mensajes se mostrarán en la ventana de Python que indica si la conexión fue hecha o no.
- Línea 56 comprueba para ver si la conexión fue exitosa. Si la conexión fue hecha, proceso continuará de lo contrario que el programa terminará.
- Línea 58 establece una variable que se utiliza para determinar si se ha leído una etiqueta duplicada. La idea es evitar que el mismo sitio web se abra en el navegador si el lector de RFID pasa a leer la etiqueta más de una vez cuando se coloca sobre el lector.
- Líneas 62-63 utilizan la biblioteca "pySerial" para leer los datos desde Arduino.
- Línea 66 comprueba para ver si se ha leído los datos.
- Líneas 68-74 uso de la biblioteca "shlex" para romper los datos de Arduino en tres partes: la cuenta, el tiempo y el identificador de etiqueta.
- Líneas 76-78 llaman a una función para buscar el sitio de web basado en el identificador de etiqueta. El sitio de web en Python y etiqueta identificación se muestran en la ventana de la consola de Python para propósitos de depuración.
- Las líneas 81-82 Verifique si se trata de la etiqueta especial utilizada para detener el programa y por lo tanto, el programa sale del bucle y el programa termina.
- Línea 86 comprueba para ver si la acabo de leer es el mismo que el anterior. Si es así, coloca a la parte superior.
- Línea 87 utiliza la biblioteca "web browser" para iniciar el navegador si no funciona y luego abrir una nueva pestaña del sitio web.
- Línea 88 guarda la etiqueta de sólo lectura para impedir que sitios duplicados se muestra. El programa lazos luego volver a esperar otra etiqueta.
- Líneas 90-104 están la función que se utiliza para buscar los sitios web asociados con el ID de la etiqueta:
- Línea 93, comprueba si el identificador de la etiqueta está en el Diccionario
- Línea 94 devuelve la página web si el ID de la etiqueta estaba en el diccionario.
- Líneas de 98-100 construyen el HTML para el mensaje de error para la etiqueta desconocida.
- Líneas 101-103 utilizan la biblioteca "sys" para crear un archivo HTML, escriba el código HTML para el archivo y cierre el archivo. Caso el archivo que ya existe, el código HTML en el archivo se sobrescribe con el nuevo código HTML.
- Línea 104 devuelve el nombre del archivo. En el programa principal, el navegador abrirá este archivo en lugar de un sitio web y mostrar el mensaje de error.
- Líneas 107-111 permiten ejecutar este programa desde la línea de comandos y pasar el puerto COM en el nombre como un parámetro en lugar de modificar el programa. Vea el paso siguiente para obtener más información sobre cómo usar este.
He probado el software con una gran variedad de navegadores web: la biblioteca "web browser" funciona bien con Firefox, Safari e Internet Explorer. No funciona correctamente con Opera.