El Gizmo de Internet Arduino (20 / 22 paso)

Paso 20: El software de funcionamiento

Arduino el software gizmo el color cambiar LED se enciende, entonces entra en un bucle de lectura de etiquetas RFID, haciendo que los LEDs en la parte superior gizmo carrera en círculos cuando se lee una etiqueta y luego envía los datos a la PC.  Sigue un resumen de las secciones de los programas - hay comentarios detallados en el código que explican cada línea.  El programa se muestra en los tres primeros diagramas.

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

Artículos Relacionados

Domótica inteligente con Android + Ethernet Internet + Arduino

Domótica inteligente con Android + Ethernet Internet + Arduino

Domótica se convierte cada vez más popular y asequible y fascina a la gente. Internet ofrece tales posibilidades como nunca antes. Impresiona a tus amigos mostrando el Smartphone que puede activar/desactivar la lámpara en sus millas Apartamento lejos
Internet Arduino controlado ranura en T XY mesa

Internet Arduino controlado ranura en T XY mesa

esto es ridículamente fácil (en términos de uso de la herramienta de poder - vea abajo) manera de hacer una precisión inferior tabla XY.  Con la amplia disponibilidad de la T-ranura extrusiones en Amazon y Ebay y utilizando simples mejoras para el ho
Cliente de tiempo de Internet Arduino

Cliente de tiempo de Internet Arduino

¡ ACTUALIZACIÓN! 15/11/2015Añadido un WiFi y opción de batería recargable (paso 10).¡ ACTUALIZACIÓN!Añadido 12h / 24h interruptor y estándar interruptor de horario de verano! Consulte los pasos 7 y 8.¿Ha querido alguna vez un reloj que mantiene la ho
Simple Internet Gizmo

Simple Internet Gizmo

recientemente he publicado un instructivo llamado "Arduino Internet Gizmo" que combina un lector de tarjetas RFID, un Arduino y un montón de LEDs y otros componentes para crear un dispositivo que utiliza tarjetas de RFID para mostrar páginas web
Reloj de tiempo de Arduino IoT

Reloj de tiempo de Arduino IoT

En este Instructable construimos un reloj que también se muestra dentro y fuera de las condiciones climáticas.Solía tener un reloj poco fresco que, además de contar el tiempo, también muestra la temperatura interior de la casa, la fecha y la temperat
Registro de salida de Arduino para días con un BeagleBone

Registro de salida de Arduino para días con un BeagleBone

Aquí es un hack rápido para la depuración de proyectos de Internet de las cosasVamos a decir usted construido un bonito, conectados a Internet Arduino proyecto con una elegante interfaz Web servida por, por ejemplo, el escudo de la Ethernet. Después
Internet: Conexión de la RPi, Arduino y el mundo!

Internet: Conexión de la RPi, Arduino y el mundo!

(Si te gusta este Instructable, no olvide votar en ella (por encima de: bandera de la esquina a la derecha). está compitiendo en concursos de sensores y de INTERNET de las cosas. ¡Muchas gracias! ;-)En este proyecto, programará un RPi y un Arduino, a
Cómo: conectar tu Arduino a Internet como un servidor de Web

Cómo: conectar tu Arduino a Internet como un servidor de Web

El INTERNET de las cosas... < cola de relámpago y trueno >Es lo que todos los niños frío están haciendo estos días. ¿Por qué debe tener toda la diversión? Vamos a configurar un Arduino como un servidor Web cualquiera, en cualquier lugar puede ver. ¿
Añadir Bluetooth 4.0 para su proyecto de Arduino [Internet] - controlada por Smartphone

Añadir Bluetooth 4.0 para su proyecto de Arduino [Internet] - controlada por Smartphone

Somos Grupo de internet de entusiastas de las cosas que amo hacking juntos diferentes dispositivos. Compruebe hacia fuera nuestro actual proyecto en nuestro sitio web y echa un vistazo a esta guía en un formato diferente en nuestro blog.Paso 1: intro
Lámpara de escritorio controlado de Arduino Internet

Lámpara de escritorio controlado de Arduino Internet

este es un pequeño proyecto que hice para mi lámpara de mesa de control por internet.Paso 1: Lo que necesitaráUn linux-servidor web con PHP, un arduino, un relé y algunos otros componentes.Paso 2: Añadir el código para el arduinoSubir el siguiente có
Acceso a Arduino por internet

Acceso a Arduino por internet

Este instructable es sólo otro intento de conectar tu arduino a internet. Hay tantos instructables similares que decirle cómo hacer lo mismo, esta es la versión algo más detallada, que pensé que podría ayudar a los principiantes como yo. Así que vamo
Construir tu Robot de Streaming de Video en Internet controlado con Arduino y frambuesa Pi

Construir tu Robot de Streaming de Video en Internet controlado con Arduino y frambuesa Pi

< el instructivo y el código están listos. ¡ Disfrute! Dejo un comentario Comentarios! >Yo soy (aka LiquidCrystalDisplay / Italia), un estudiante de 14 años de aprendizaje de Israel en el Max Shein secundaria para matemáticas y ciencia avanzada. Est
Steampunk ESP8266 Internet con reloj utilizando el IDE de Arduino

Steampunk ESP8266 Internet con reloj utilizando el IDE de Arduino

¿Qué se obtiene cuando un anillo de NeoPixel, una placa Arduino Wifi barata y un láser de corte entrar a un salón de Punk de vapor?Una moda Steampunk Internet diseñado con reloj utilizando el ESP8266 y el IDE de Arduino por supuesto!Aquí es un proyec
Arduino Nano con WIZ550io = Internet fácil

Arduino Nano con WIZ550io = Internet fácil

Me encanta el Arduino Nano - es una agradable compacta pero totalmente funcional versión de Arduino Uno. Sin embargo, cuando fui a conectar a internet de esa pequeñez y prolijo desaparecidos bajo el gran escudo de ethernet de tamaño completo que tení