Introduction: Display LED Matriz 8x32 Com NodeMCU
O projeto foi criado com o intuito de ser utilizado na porta da sala do PET da engenharia de computação da UFES, sendo um simples display de LED 8x32 que utiliza um NodeMCU para ser controlado remotamente, por um celular ou computador.
Step 1: Componentes
Para o projeto os seguintes itens serão utilizados:
- 1 Display Modulo Matriz de LED 8 X 32 Max7219
1 Módulo WiFi ESP8266 NodeMcu ESP-12
1 Chave 2 Posições (3 Pinos)
Todos esses materiais podem ser encontrados facilmente na internet. Se a ideia for fazer esse projeto o mais rápido possível, recomenda-se comprar os itens no mercado livre (se você estiver no Brasil), já que é seguro, rápido (cerca de 1 semana ou 2 os itens já chegam no destino) e mais barato que em lojas convencionais. No entanto, se o projeto não tiver pressa, é mais barato comprar os itens no exterior como Ebay, Aliexpress, entre outros. Mas não há garantia de quando e se o produto chegará no destino.
Média do custo total comprando no mercado livre: +/- 170 reais (frete não incluso).
Step 2: Hardware - Montagem Do Circuito
O esquemático do circuito pode ser encontrado no arquivo displayPET.fzz abaixo, usamos o programa Fritzing para criá-lo, e assim entender as ligações na protoboard. Monte-o em uma protoboard para testar e se tudo funcionar corretamente, faça uma plaquinha PCB para seu circuito.
Attachments
Step 3: Software - Download Do Código
Os códigos e as bibliotecas usadas nesse projeto podem ser baixados no arquivo abaixo ou no seguinte link: https://github.com/joanavloureiro/Display_LED_matriz
Baixe o IDE do Arduino no seu computador e adicione as bibliotecas, para subir o código para o NodeMCU.
Attachments
Step 4: Software - Explicação Do Código
Primeiro, vamos explicar a biblioteca FC16.h , que foi utilizada para controlar o display LED. Usamos algumas funções básicas na void setup(), como o display.begin() para iniciarmos o display, a display.setIntensity() para definirmos a intensidade do brilho dos LED's e a display.setText() para escolher a frase que seria mostrada no display. E para finalizar esta biblioteca, na função void loop(), usamos a função display.update() que chama a rotina para fazer o scroll da frase pelo display.
Para que conseguíssemos ter uma comunicação remota, utilizamos o NodeMCU. Ao iniciá-lo, ele nos gera um IP local utilizando a função Serial.println(WiFi.localIP()), que podemos acessar por qualquer dispositivo conectado a mesma rede que o ESP8266-01 presente no NodeMCU. Como podemos acessar via web, também podemos criar uma pagina em html para tal, que é definida pelo const char index_html[] PROGMEM = R"rawliteral().
Por segurança, decidimos colocar um bloqueio com senha para a pagina html. Essa segurança foi feita utilizando a biblioteca ESPAsyncWebServer.h
Por fim, a comunicação entre a pagina html e o display se da pelos botões presentes na pagina que, ao serem clicados, mudarão a URL da mesma. Essa mudança de URL pode ser lida pelo ESP8266-01 utilizando a função server.on("url", HTTP_GET, [](AsyncWebServerRequest *request){}. E assim definimos que, para cada URL trocada, seria trocado também o texto do display, referente ao botão que fosse clicado na página.
Step 5: Plaquinha PCB
Se tudo ocorreu bem até agora, faça uma plaquinha PCB (geralmente usamos o software EAGLE CAD para fazer) e solde os componentes.
Você pode baixar os arquivos do DisplayPET_Eagle_Kicad_3D.zip para visualizar o modelo 3D e fazer as modificações que queira.
Step 6: Funcionamento Do Projeto
Veja como foi o teste do projeto final.
Step 7: Licença Do Projeto
Esta obra está licenciado com uma Licença Creative Commons Atribuição 4.0 Internacional.