XPsys – Sistema para ESP32 com ST7920
![XPsys – Sistema para ESP32 com ST7920](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/Capa_XPsys_Soft.jpg?fit=1280%2C720&ssl=1)
Irei iniciar um projeto utilizando como base o ESP32 e também um display gráfico ST7920 de 128×64 pixels juntamente com a biblioteca u8g2, não testei outro modelo de display, caso você tenha testado e funcionou comente aqui. Anteriormente fiz uma pequena programação de menus com o ST7920, porém eu utilize o exemplo dado pela biblioteca para construir sua estrutura.
OBS: A versão 1.0.1 pode funcionar no Arduíno, basta prestar atenção nos pinos configurados.
Já este projeto se chama XPsys desenvolvido do zero, tentarei deixa a estética da interface mais bonita o possível, conforme irei lançando as versões irei adicionando mais recursos. Tambem futuramente irei tentar postar uma versão para o Arduíno. Abaixo está a galeria de imagens dos menus:
Você pode utilizar este meu projeto porém com a condição de manter os meus créditos na programação podendo adicionar o seu nome caso tenha incrementado algo, este é um projeto gratuito que demanda do meu tempo, eu ficaria muito decepcionado se eu encontrar ele em algum lugar sem ter meu nome e alterar a nome do sistema e manter a estrutura igual a minha. Este Software está sobre a licença GNU GENERAL PUBLIC LICENSE Versão 3.
Recursos implementados até o momento:
- Menu com ícones gráficos
- Teste de Botões.
- Debounce por Software
Recursos a serem implementados (se a memória permitir):
- Rede wi-fi
- Teclado
- Rede Bluetooth
- Relógio
- Servidor Web
- Acesso Remoto
- Gerador de Ondas
- PWM ajustável
- Programação ajustável de pinos
- Leitor Analógico
- Janelas Pop-Up
- Utilização do dual-core
- Gerador de logs
- Leitor de cartão SD
- Controle de RBG
- Multi telas
- Leitor para bateria
- Modo de economia de energia
- Modo de hibernar
- Desbloqueio do sistema por senha
- Temporizador de GPIO
- Analisador de frequência.
- Aplicativo para Android
- Sistema de som/bip
- Versão para Arduíno (Nano, UNO ou Mega)
Todos estes itens citados acima tentarei implementar no sistema, porém irá depende do quanto cada recurso irá consumir da memória RAM e da flash (programação). Caso não seja possível implementar irei riscar da lista e também caso encontre mais algum recurso irei adicionando.
Conforme irei lançando as versões em forma de artigos, irei listadas aqui abaixo:
Uma informação em vez de usar os próprios botões da biblioteca u8g2, utilizei uma porta analógica para os botões, economizando 5 pinos do ESP32, para dividir os botões utilizei resistores como configuração de divisor de tensão, sendo possível adicionar muitos resistores, o ruim desta técnica é que quanto mais botões a leitura fica mais sensível a variações de tensão, montei um tabela utilizando a tela de leitura de “Leitura de pino dos botões”, com a tensão máxima estável de 3,30 V:
Botão | Resistor (10k Vcc) | Leitura ADC (Max 4095) | Tensão |
Esquerdo | 1 kΩ | 160 | 0,13 V |
Acima | 4,7 kΩ | 1040 | 0,84 V |
Abaixo | 8,2 kΩ | 1598 | 1,29 V |
Direito | 15 kΩ | 2110 | 1,70 V |
Selecionar | 33 kΩ | 2743 | 2,21 V |
Voltar | 47 kΩ | 3011 | 2,43 V |
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/Botões_XPboard-1024x856.jpg?resize=640%2C535)
Todas para a compilação estou usando o Visual Studio Code v1.34 junto com o PlatformIO 3.6.7 para desenvolver o sistema, com a biblioteca u8g2 versão 2.26.11, baixado diretamente do próprio Visual Studio Code.
Irei utilizar vários tipos de fontes que estão disponíveis na biblioteca do u8g2, e que estão listadas abaixo:
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/u8g2_font_5x7_tf.png?resize=237%2C214)
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/u8g2_font_open_iconic_all_1x_t.png?resize=237%2C240)
Para os ícones do menu principal utilizei esta fonte:
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/u8g2_font_open_iconic_all_2x_t.png?resize=348%2C293)
Para desenvolver este projeto encomendei a fabricação de uma placa que eu mesmo projetei para utilizar com o Doit ESP32 DevKit v1.
XPboard placa para o XPsys
A XPboard é uma placa para o XPsys, utilizando a interface gráfica do ST7920.
![XPboard placa para o XPsys](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/05/Capa_XPboard_Hardw.jpg?w=640)
Acima estou disponibilizando os arquivos Gerber do projeto para quem quiser encomendar no site da jlcpcb ou outro site qualquer. Lembrando que deve manter os créditos do projeto.
Código
O código estou disponibilizando tanto aqui no portal quanto no GitHub, basta acessar, os detalhes sobre cada versão está na página aqui no portal de cada uma vers]ao lançada, veja abaixo:
![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/12/XPsys_Soft_V1.02.jpg?fit=300%2C169&ssl=1)
XPsys – Teclado Virtual – V1.0.2 (Alfa) – ESP32 com ST7920
Jailson Oliveira![](https://i0.wp.com/xprojetos.net/wp-content/uploads/2019/06/Capa_XPsys_Soft_V1.01.jpg?fit=300%2C169&ssl=1)