Índice:

Criando uma biblioteca Arduino para o YouTube Sight: 7 etapas
Criando uma biblioteca Arduino para o YouTube Sight: 7 etapas

Vídeo: Criando uma biblioteca Arduino para o YouTube Sight: 7 etapas

Vídeo: Criando uma biblioteca Arduino para o YouTube Sight: 7 etapas
Vídeo: Criando uma BIBLIOTECA ARDUINO para trabalhar com LEDS - Curso de Arduino #30 2024, Setembro
Anonim
Image
Image
O que é uma biblioteca?
O que é uma biblioteca?

Olá a todos, Recentemente, desenvolvi um serviço chamado YouTube Sight que pode extrair dados de assinantes da API do YouTube Analytics e fornecer contagens de assinantes mais precisas desde que o YouTube começou a agregar os resultados. Com ele, eu construí um esboço de exemplo, mas também queria fazer uma biblioteca Arduino para que as pessoas possam usá-la mais facilmente.

Etapa 1: O que é uma biblioteca?

O que é uma biblioteca?
O que é uma biblioteca?

Uma biblioteca é um pedaço de código que pode lidar com uma operação específica, processar um tipo de dado ou saber como interagir com um elemento de hardware específico. Eles nos permitem estender facilmente o ambiente do Arduino e muitos deles vêm pré-instalados com o IDE do Arduino.

Em casos como o meu, em que queremos adicionar novas possibilidades ao Arduino, podemos criar nossas próprias bibliotecas para que outras pessoas as usem. Todas as bibliotecas instaladas vivem em uma pasta específica em nosso computador. No meu caso, para o PC com Windows, as bibliotecas ficam na pasta Documentos / Arduino. O caminho completo será específico para você, com base no seu nome de usuário.

Etapa 2: Estrutura e arquivos da biblioteca

Estrutura e arquivos da biblioteca
Estrutura e arquivos da biblioteca

Para começar a construir nossa biblioteca, primeiro precisamos criar uma pasta aqui com o nome dela, então criei uma pasta chamada YouTube Sight. Na versão mínima da biblioteca, devemos ter pelo menos dois arquivos.

O primeiro é um arquivo denominado “cabeçalho” que contém todas as definições dos métodos e propriedades que nossa biblioteca fornece, e o segundo é o arquivo fonte que conterá todo o código fonte.

Os arquivos de cabeçalho têm uma extensão “.h” enquanto o arquivo fonte tem uma extensão “.cpp” e eles geralmente têm o nome da biblioteca como o nome do arquivo. No meu caso, os dois arquivos são chamados de “YouTubeSight.h” e “YouTubeSight.cpp”.

O processo de escrever o código da biblioteca pode ser um pouco tedioso e frustrante, especialmente quando você está escrevendo uma biblioteca pela primeira vez, mas com muita tentativa e erro, você pode alcançar os resultados desejados. Por causa disso, irei guiá-lo através do código final dos dois arquivos e explicá-lo.

O código completo e a biblioteca estão disponíveis para download no GitHub no seguinte link:

Etapa 3: o arquivo de cabeçalho

O Arquivo de Cabeçalho
O Arquivo de Cabeçalho
O Arquivo de Cabeçalho
O Arquivo de Cabeçalho
O Arquivo de Cabeçalho
O Arquivo de Cabeçalho

Dentro do arquivo de cabeçalho, no início, todo o arquivo é empacotado dentro de uma instrução “ifndef” que verifica se a variável especificada está definida ou não. Isso evitará erros para quem usa a biblioteca se incluí-la duas vezes no mesmo esboço por engano.

Em seguida, precisamos incluir a biblioteca base do Arduino e, como trabalharemos com um cliente HTTP de algum tipo para enviar a solicitação ao YouTube Sight, também incluiremos a biblioteca base do cliente.

Antes de começarmos a escrever o conteúdo da nossa classe principal, precisamos definir quaisquer variáveis estáticas e configurações que não queremos ser modificadas. No meu caso, existem duas dessas variáveis. O URL principal do serviço YouTube Sight e a variável de tempo limite que usaremos para verificar por quanto tempo lemos um valor.

Também nesta seção, podemos definir quaisquer tipos personalizados que desejamos usar, como esta estrutura channelStatistics na qual salvaremos os resultados.

A definição da estrutura da classe é dividida em duas partes. A primeira parte é a definição de todas as funções e propriedades públicas e a segunda é a definição de todas as funções e propriedades privadas. A diferença entre ambos é que os usuários finais de nossa biblioteca não poderão usar nada da seção privada diretamente, enquanto eles poderão modificar e usar diretamente qualquer uma das propriedades e funções da parte pública.

Na seção pública, definimos o construtor da classe, a variável channelStats onde armazenaremos os resultados, a função que obterá os dados e uma propriedade de depuração que podemos usar posteriormente para verificar os casos em que podemos não obter os resultados esperados.

Para as propriedades privadas, definiremos um para armazenar o GUID do canal, um ponteiro para o cliente HTTP que usaremos e uma função que dividirá a string retornada do YouTube Sight.

Etapa 4: O arquivo de origem

O arquivo fonte
O arquivo fonte
O arquivo fonte
O arquivo fonte

Agora vamos dar uma olhada na implementação real de tudo isso dentro do arquivo de origem.

A primeira etapa para nós é incluir nosso próprio arquivo de cabeçalho que acabamos de criar e, em seguida, precisamos definir o construtor da biblioteca. Nele, passamos duas variáveis. O GUID é salvo na variável privada que definimos anteriormente e o Cliente é passado por referência para que possamos chamar a mesma instância que obtivemos.

A função getData principal da biblioteca é definida a seguir, especificando primeiro o tipo de retorno, seguido pelo nome da biblioteca e o nome da função. Não vou entrar em detalhes sobre o que cada linha faz nesta função, mas, em geral, a função abre uma conexão com o servidor YouTube Sight, envia a solicitação para obter as estatísticas e, em seguida, analisa os dados retornados com a ajuda de a função getValue privada.

Os resultados recuperados são então configurados para a variável channelStats e um indicador é retornado se obtivemos sucesso em recuperar os resultados ou não e com isso o núcleo de nossa biblioteca está completo.

Etapa 5: Fornecimento de esboços de exemplo

Fornecimento de esboços de exemplo
Fornecimento de esboços de exemplo

Normalmente, cada biblioteca fornece exemplos que você pode carregar rapidamente e usar para mostrar o que a biblioteca pode fazer e como fazê-lo. Para fornecer tais exemplos, precisamos modificar a estrutura da biblioteca onde agora o cabeçalho e o arquivo fonte estarão em uma pasta “src” e uma nova pasta será adicionada na raiz da biblioteca chamada “exemplos”.

Qualquer esboço do Arduino que você colocar dentro desta pasta será servido a partir do IDE do Arduino como um exemplo para sua biblioteca e as pessoas podem explorá-lo rapidamente e aprender como a biblioteca funciona.

Etapa 6: Publicação no Gerenciador de Biblioteca

Publicação para o gerente da biblioteca
Publicação para o gerente da biblioteca

Para usar a biblioteca, as pessoas precisarão simplesmente incluir o arquivo de cabeçalho de sua biblioteca em seu esboço e o IDE do Arduino irá construí-lo junto com ele. Mas, para fazer isso, eles primeiro precisarão instalá-lo em suas máquinas.

Uma maneira comum é baixar a biblioteca do GitHub e instalá-la por meio do instalador ZIP no IDE ou simplesmente colocá-la dentro da pasta de bibliotecas como fizemos quando a estávamos criando. No entanto, o Arduino IDE também inclui uma ferramenta, chamada Library Manager, que permite pesquisar uma biblioteca diretamente no IDE.

Para incluir sua biblioteca nela, primeiro precisamos criar um arquivo adicional na pasta raiz chamado “library.properties” e nele, precisamos especificar o nome da biblioteca, a versão atual e algumas informações adicionais que ajudarão o gerente da biblioteca para exibir melhores informações sobre ele.

Com o arquivo no lugar, um problema precisa ser criado na página do Arduino GitHub que simplesmente pede que sua biblioteca seja incluída no índice com o link para ele e, uma vez que seja aprovado e adicionado pela equipe do Arduino, o gerente da biblioteca irá comece a oferecer sua biblioteca nos resultados. Além disso, o gerenciador procurará quaisquer tags de versão no repositório GitHub no futuro e oferecerá uma atualização para as pessoas que o usarem assim que houver alterações.

Etapa 7: Próximas etapas

Espero que, após este Instructable, você tenha um melhor entendimento de como funcionam as bibliotecas do Arduino, como você pode criar uma e, o mais importante, espero que você se inspire para começar a trabalhar em sua próxima grande ideia.

Para qualquer dúvida ou sugestão adicional, fique à vontade para escrever nos comentários, inscreva-se no meu canal no YouTube e siga-me aqui no Instructables.

Recomendado: