Primeiramente, tenho que te dizer que esse artigo está dividido em 3 partes que se completam, onde eu ensino você como criar suas primeiras bibliotecas para Arduino e ESP32 do absoluto zero.
Nessa série, eu ensino o passo a passo para você dar inicio e criar suas próprias bibliotecas do zero, além de garantir todas as aparências visuais e também por último, como salvar e enviar as suas próprias bibliotecas para o GitHub, dessa maneira, você nunca mais terá um problema de perder suas bibliotecas.
Se você ainda não conhece o Arduino ou a ESP32, eu tenho um artigo aqui dentro do blog, explicando tudo sobre essas duas placas, você pode conferir através dos links abaixo:
Você pode aprender a construir outros projetos como esse, através do nosso curso completo de programação arduino Arduhack. Adquirindo por aqui você recebe + de 15 projetos bônus para treinar suas habilidades.
Você pode aproveitar essa aula também, para criar bibliotecas para outros microcontroladores como esp8266, stm32 e assim por diante. O procedimento é o mesmo
Mas afinal, você sabe o que são bibliotecas?
Primeiramente, bibliotecas são coleções de códigos que facilitam o desenvolvimento. Em outras palavras, são muito conhecidas por tornar simples a integração de sensores, displays, módulos e outros periféricos.
Por exemplo: a biblioteca LiquidCrystal auxilia na integração dos Displays LCDs no Arduino.
Existem milhares de bibliotecas disponíveis na internet para downloads, mas eventualmente você pode precisar criar a sua própria, e é aqui que eu entro.
Se você quiser saber mais sobre Arduino, bibliotecas, automação e eletrônica, eu tenho um treinamento completo, que você precisa conhecer, principalmente por que eu ensino o passo a passo dessas ferramentas, e como você pode utiliza-las para tirar seus projetos da gaveta. Você pode conhecer meu treinamento completo clicando aqui.
Nessa aula você vai entender o passo a passo para transformar o seus códigos em bibliotecas, e facilitar muito o desenvolvimento dos seus projetos.
Então vamos pra aula.
Como criar bibliotecas para ARDUINO e ESP32
Se você seguiu todos os passos que te ensinei, a estrutura final do arquivo PiscaLed.h, deve ficar da seguinte maneira:
Header da biblioteca PiscaLed.h:
#ifndef _PISCALED_H
#define _PISCALED_H
#include <Arduino.h>
class PiscaLed {
private:
public:
PiscaLed(int pino, long time);
void acende_led();
void fade();
};
#endif
Lembre-se que depois do ifndef o nome da biblioteca deve estar em letra maiúscula.
Arquivo de funções PiscaLed.cpp:
Por fim, seu arquivo PiscaLed.cpp, deve ficar igual o exemplo abaixo, lembre-se de incluir as funções que você quer transformar em biblioteca, sempre colocando a atribuição da classe antes, por exemplo:
void PiscaLed:: nome_da_funcao()
#include <PiscaLed.h>
//globais
int _pino;
long _time;
PiscaLed::PiscaLed(int pino, long time){
//pino e time só podem ser acessados de dentro dessa função
pinMode(pino, OUTPUT);
_pino = pino;
_time = time;
}
void PiscaLed::acende_led(){
digitalWrite(_pino, HIGH); // turn the LED on (HIGH is the voltage level)
delay(_time); // wait for a second
digitalWrite(_pino, LOW); // turn the LED off by making the voltage LOW
delay(_time); // wait for a second
}
Propriedades da biblioteca, arquivo properties:
Você também precisa criar o arquivo properties com suas informações, use esse template como exemplo:
name=PiscaLed
version=1.0.0
author=Mateus Dias
maintainer=Mateus Dias
sentence=Pisca o Led no formato Blink
paragraph= a
category=Signal
url=
architectures=avr
Muito bem! Agora que temos todo o esqueleto da biblioteca criada, podemos acrescentar algumas coisas para melhorar a semântica da nossa biblioteca.
Agora você vai aprender a incluir os exemplos dentro da biblioteca e também as keywords, para dar uma aparência para nossa biblioteca.
Como criar os exemplos dentro da biblioteca e as KEYWORDS:
Após o esqueleto da biblioteca criado, vamos conversar sobre como dar uma aparência visual pra sua biblioteca, e também, como criar exemplos embutidos, para que quando alguém baixe a sua biblioteca, tenha os códigos de exemplos, pré programados.
Muito bem, então os 3 tipos principais de KEYWORDS utilizadas são:
KEYWORD1 – Geralmente usada para as classes que você definiu dentro da sua biblioteca
KEYWORD2 – São usadas por funções públicas da classe (métodos)
LITERAL1 – É usado por qualquer #define que seja relevante dentro da biblioteca
Essas configurações devem estar dentro de um arquivo chamado keywords.txt, na pasta raiz da sua biblioteca.
Criando o arquivo keywords.txt:
O seu arquivo keywords.txt deve ficar igual o abaixo:
PiscaLed KEYWORD1
acende_led KEYWORD2
Lembrando, que sempre que você fizer alguma alteração ou inclusão de KEYWORDS, você irá precisar reinstalar a biblioteca dentro da sua plataforma de desenvolvimento.
Enviando as bibliotecas para o GitHub:
Chegamos na ultima aula da série sobre bibliotecas, e essa aula é muito especial, pois além de aprender a salvar suas bibliotecas na nuvem, você vai aprender a nunca mais perder um código ou projeto na sua vida.
Portanto nesse aula, você vai aprender a fazer o upload das suas bibliotecas, códigos e projetos para a nuvem, usando uma plataforma chamada GitHub.
Afinal, se você já instalou alguma biblioteca externa alguma vez, provavelmente já se deparou com essa plataforma antes.
Acredito que hoje o GitHub é a maior plataforma de gerenciamento de códigos disponível na internet.
Isso por que, como o Arduino é uma plataforma de código aberto, ou seja, open source, provavelmente para tudo que você imagina existe algo pronto e disponível para você utilizar e modificar.
O GitHub também permite com que você faça o upload dos seus códigos, faça gerenciamento de versões, e controle todas as modificações feitas em seus arquivos.
Instalando o Git no seu computador:
Para Windows, você pode estar fazendo o download através desse link
Igualmente para o Linux, você também irá precisar utilizar o Git, mas geralmente ele já vem instalado dentro do command line to terminal.
Logo após fazer o download e instalação do Git, irá surgir 2 programas no seu computador, o Git Gui e o Git Bash
Você consegue utilizar ambos para esse tutorial, diferença está em que o git GUI possui uma interface gráfica, enquanto o Git Bash é por linhas de comando.
Eu sobretudo gosto bastante de utilizar o git Bash por command line, isso por que os comandos são os mesmos tanto para o Windows, quanto para o Linux, os principais comandos que utilizamos na aula foram:
git init - //Cria um repositório
git add origin // Faz o link entre o repositório local, e o repositório na número
git add . // Indica que você quer enviar todos os arquivos da pasta, pra nuvem.
git commit -m “First commit” // Faz um comentário sobre o que está sendo enviado naquele momento.
git push origin master //Envio dos arquivos pra nuvem
git pull // Atualiza os arquivos locais
git checkout branch
git checkout -b nova_branch
E por fim, agora você já sabe como salvar todos os seus projetos e códigos na nuvem, e nunca mais perder uma versão ou edição dos seus algoritmos.
Portanto veja como: Criar um detector de fumaça com o Arduino, ou ainda como automatizar o jogo Dino do Chrome, usando o Arduino.
https://arduino.github.io/arduino-cli/library-specification/
https://www.arduinolibraries.info/architecture-variants.html