Tabla de contenido:

Hacer una biblioteca Arduino para YouTube Sight: 7 pasos
Hacer una biblioteca Arduino para YouTube Sight: 7 pasos

Video: Hacer una biblioteca Arduino para YouTube Sight: 7 pasos

Video: Hacer una biblioteca Arduino para YouTube Sight: 7 pasos
Video: Crear librería para Arduino Parte1 2024, Noviembre
Anonim
Image
Image
¿Qué es una biblioteca?
¿Qué es una biblioteca?

Hola a todos, Recientemente, desarrollé un servicio llamado YouTube Sight que puede extraer datos de suscriptores de la API de YouTube Analytics y brindarte recuentos de suscriptores más precisos desde que YouTube comenzó a agregar los resultados. Con él, he creado un boceto de ejemplo, pero también quería hacer una biblioteca Arduino para que la gente pueda usarla más fácilmente.

Paso 1: ¿Qué es una biblioteca?

¿Qué es una biblioteca?
¿Qué es una biblioteca?

Una biblioteca es un fragmento de código que puede manejar una operación específica, procesar un tipo de datos o puede saber cómo interactuar con un elemento de hardware específico. Nos permiten ampliar fácilmente el entorno Arduino y hay muchos de ellos que vienen preinstalados con el IDE de Arduino.

En casos como el mío, donde queremos agregar nuevas posibilidades al Arduino, podemos crear nuestras propias bibliotecas para que otras personas las usen. Todas las bibliotecas instaladas viven en una carpeta específica en nuestra computadora. En mi caso para la PC con Windows, las bibliotecas se encuentran en la carpeta Documentos / Arduino. La ruta completa será específica para usted, según su nombre de usuario.

Paso 2: Estructura y archivos de la biblioteca

Estructura y archivos de la biblioteca
Estructura y archivos de la biblioteca

Para comenzar a construir nuestra biblioteca, primero necesitamos crear una carpeta aquí con su nombre, así que he creado una carpeta llamada YouTube Sight. En la versión mínima de la biblioteca, debemos tener al menos dos archivos.

El primero es un archivo llamado "encabezado" que contiene todas las definiciones de los métodos y propiedades que proporciona nuestra biblioteca, y el segundo es el archivo fuente que contendrá todo el código fuente.

Los archivos de encabezado tienen una extensión de ".h" mientras que el archivo de origen tiene una extensión de ".cpp" y normalmente tienen el nombre de la biblioteca como nombre de archivo. En mi caso, los dos archivos se denominan “YouTubeSight.h” y “YouTubeSight.cpp”.

El proceso de escribir el código de la biblioteca puede ser un poco tedioso y frustrante, especialmente cuando está escribiendo una biblioteca por primera vez, pero con muchas pruebas y errores, puede lograr los resultados deseados. Por eso, lo guiaré a través del código terminado de los dos archivos y lo explicaré.

El código completo y la biblioteca están disponibles para descargar desde GitHub en el siguiente enlace:

Paso 3: el archivo de encabezado

El archivo de encabezado
El archivo de encabezado
El archivo de encabezado
El archivo de encabezado
El archivo de encabezado
El archivo de encabezado

Dentro del archivo de encabezado, al principio, todo el archivo está envuelto dentro de una declaración "ifndef" que verifica si la variable especificada está definida o no. Esto evitará errores para cualquiera que use la biblioteca si la incluye dos veces en el mismo boceto por error.

A continuación, debemos incluir la biblioteca Arduino base y, dado que trabajaremos con un cliente HTTP de algún tipo para enviar la solicitud a YouTube Sight, también incluiremos la biblioteca cliente base.

Antes de comenzar a escribir el contenido de nuestra clase principal, necesitamos definir las variables estáticas y la configuración que no queremos que se modifique. En mi caso, hay dos de esas variables. La URL principal del servicio YouTube Sight y la variable de tiempo de espera que usaremos para verificar cuánto tiempo leemos un valor.

También en esta sección, podemos definir cualquier tipo personalizado que queramos usar como esta estructura channelStatistics en la que guardaremos los resultados.

La definición de la estructura de clases se divide en dos partes. La primera parte es la definición de todas las funciones y propiedades públicas y la segunda es la definición de todas las funciones y propiedades privadas. La diferencia entre ambos es que los usuarios finales de nuestra biblioteca no podrán usar nada de la sección privada directamente mientras que podrán modificar y usar directamente cualquiera de las propiedades y funciones de la parte pública.

En la sección pública, definimos el constructor de la clase, la variable channelStats donde almacenaremos los resultados, la función que obtendrá los datos y una propiedad de depuración que luego podemos usar para verificar los casos en los que podríamos no obtener los resultados esperados.

Para las propiedades privadas, definiremos una para almacenar el GUID del canal, un puntero al cliente HTTP que usaremos y una función que dividirá la cadena devuelta de YouTube Sight.

Paso 4: el archivo de origen

El archivo de origen
El archivo de origen
El archivo de origen
El archivo de origen

Ahora veamos la implementación real de todo esto dentro del archivo fuente.

El primer paso para nosotros es incluir nuestro propio archivo de encabezado que acabamos de crear y luego necesitamos definir el constructor de la biblioteca. En él pasamos dos variables. El GUID se guarda en la variable privada que definimos anteriormente y el Cliente se pasa por referencia para que luego podamos llamar a la misma instancia que obtuvimos.

La función principal getData de la biblioteca se define a continuación especificando primero el tipo de retorno, seguido del nombre de la biblioteca y el nombre de la función. No entraré en detalles de lo que hace cada línea en esta función, pero en general, la función abre una conexión al servidor de YouTube Sight, envía la solicitud para obtener las estadísticas y luego analiza los datos devueltos con la ayuda de la función privada getValue.

Los resultados recuperados se establecen en la variable channelStats y se devuelve un indicador si logramos recuperar los resultados o no y con eso el núcleo de nuestra biblioteca está completo.

Paso 5: Proporcionar bocetos de ejemplo

Proporcionar bocetos de ejemplo
Proporcionar bocetos de ejemplo

Por lo general, cada biblioteca proporciona ejemplos que puede cargar y usar rápidamente para mostrar lo que la biblioteca puede hacer y cómo hacerlo. Para proporcionar tales ejemplos, necesitamos modificar la estructura de la biblioteca donde ahora el encabezado y el archivo fuente estarán en una carpeta "src" y se agregará una nueva carpeta bajo la raíz de la biblioteca llamada "ejemplos".

Cualquier boceto de Arduino que coloque dentro de esta carpeta se servirá desde el IDE de Arduino como un ejemplo para su biblioteca y la gente puede explorarlo rápidamente y aprender cómo funciona la biblioteca.

Paso 6: publicar en el Administrador de bibliotecas

Publicar en el administrador de la biblioteca
Publicar en el administrador de la biblioteca

Para usar la biblioteca, las personas simplemente necesitarán incluir el archivo de encabezado de su biblioteca en su boceto y el IDE de Arduino lo construirá junto con él. Pero para hacerlo, primero deberán instalarlo en sus máquinas.

Una forma común es descargar la biblioteca de GitHub e instalarla a través del instalador ZIP en el IDE o simplemente colocarla dentro de la carpeta de bibliotecas como hicimos cuando la creamos. Sin embargo, el IDE de Arduino también incluye una herramienta, llamada Administrador de bibliotecas, que le permite buscar una biblioteca directamente desde el IDE.

Para incluir su biblioteca en ella, primero debemos crear un archivo adicional en la carpeta raíz llamado "library.properties" y en él, debemos especificar el nombre de la biblioteca, la versión actual y alguna información adicional que ayudará al administrador de la biblioteca. para mostrar mejor información al respecto.

Con el archivo en su lugar, se debe crear un problema en la página de Arduino GitHub que simplemente solicita que su biblioteca se incluya en el índice con el enlace y una vez que sea aprobado y agregado por el personal de Arduino, el administrador de la biblioteca Empiece a ofrecer su biblioteca en los resultados. Además, el administrador buscará cualquier etiqueta de versión en el repositorio de GitHub en el futuro y ofrecerá una actualización a las personas que lo usen una vez que haya cambios.

Paso 7: Pasos siguientes

Espero que después de este Instructable, comprenda mejor cómo funcionan las bibliotecas Arduino, cómo puede crear una y, lo más importante, espero que se inspire para comenzar a trabajar en su próxima gran idea.

Para cualquier pregunta o sugerencia adicional, no dude en escribir en los comentarios, suscribirse a mi canal de YouTube y seguirme aquí en Instructables.

Recomendado: