ÍNDICE DE CONTEÚDO
Umas das dúvidas que mais recebi nos últimos anos foi sobre opções de simuladores para ESP32. Essa demanda aumentou muito devido à pandemia e principalmente com as aulas remotas.
Nesse artigo apresentarei o Wokwi, um simulador de eletrônica online que além de placas Arduino, baseadas em AVR, e outras (incluindo a Franzininho DIY) agora traz a simulação de placas com ESP32.
O que é o Wokwi?
O Wokwi é um simulador de eletrônica online. Você pode usá-lo para simular Arduino, Raspberry Pi Pico, ESP32 e muitas outras placas, componentes e sensores populares.
Ele foi criado por Uri Shaked e hoje é mantido de forma open source por uma comunidade.
Inicialmente o Wokwi só possuía placas Arduino baseadas em AVR, como UNO, Mega e Nano e também ATtiny85. Inclusive a Franzininho DIY está na lista de placas suportadas graças a contribuição do Anderson Costa, membro das comunidades Wokwi e Franzininho.
Uri trabalhou no suporte para Raspberry Pi pico durante o ano de 2021 em e mostrou o desenvolvimento em uma série de vídeos. Hoje a Raspberry Pi Pico pode ser programada de diversas formas: Arduino, CircuitPython, MicroPython e com o SDK nativo.
O próximo passo foi a adição do ESP32 ao simulador. Uri trabalhou na implementação, porém o grande desafio foi implementar o suporte ao WIFI já que é uma parte fechada do projeto da Espressif. Ele não se deu por vencido e fez a engenharia revesar para implementação do WiFi. Ele mostrou os detalhes dessa engenharia reversa na em uma palestra na Remoticom 2021:
Agora temos um suporte beta do simulador de ESP32 inclusive com suporte ao WiFi. É possível usar o simulador ESP32 das seguintes formas:
- Arduino Core
- MicroPython
- ESP -IDF
- Ou carregando um binario compilado, por exemplo, usando ESP-IDF.
Simulador de ESP32 – Suporte ao WiFi
O Wokwi simula uma rede WiFi com acesso total à Internet. E possível simular o WiFi em diversos cenários:
- Conecte-se a servidores MQTT para enviar dados do sensor
- Consultar serviços da web por HTTP, HTTPS e web sockets
- Execute um servidor HTTP dentro do ESP32 e conecte-se a ele a partir do seu navegador (requer o Wokwi IoT Gateway*)
Para conectar ao WiFi, deve conectar a rede virtual chamada Wokwi-GUEST. É um ponto de acesso aberto(nenhuma senha é necessária).
Exemplo de código Arduino para conexão:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <WiFi.h> void setup() { Serial.print("Conectando-se ao Wi-Fi"); WiFi.begin("Wokwi-GUEST", "", 6); while (WiFi.status() != WL_CONNECTED) { delay(100); Serial.print("."); } Serial.println(" Conectado!"); } void loop() { delay(100); // TODO: Construa algo incrível! } |
Mais detalhes sobre conexão WiFi em: https://docs.wokwi.com/pt-BR/guides/esp32-wifi
O Wokwi usa um gateway especial para conectar seu ESP32 simulado à internet. Este gateway é necessário, pois o navegador da Web não permite acesso direto à Internet. Há duas maneiras de usar o Wokwi IoT Gateway: o gateway público e o gateway privado.
- Gateway publico: É um gateway fornecido pelo Wokwi na nuvem. Está disponível para todos os usuários, possuindo limitações e sendo indicado para brincar e aprender sobre WiFi e rede no ESP32.
- Gateway privado: É disponibilizado aos membros do clube. É uma aplicação executada no seu computador que dá acesso à internet mais rápido e robusto: os dados vão direto do simulador (rodando no seu navegador) para a rede do seu computador, sem precisar passar pela nuvem.
Mais detalhes sobre o funcionamento do WiFi em: https://docs.wokwi.com/pt-BR/guides/esp32-wifi
Suporte para Franzininho WiFi
A Franzininho WiFi é uma das placas suportadas no Wokwi. Já temos alguns exemplos e estamos trabalhando para integração completa:
Confira o exemplo do Anderson Costa:
Como colaborar no desenvolvimento?
O desenvolvimento e adição de novos recursos ao Wokwi é feito de VotePowers. Cada VotePower custa o valor de US$ 1 e ajuda no financiamento do desenvolvimento.
Você pode ver o Roadmap em: https://wokwi.com/features
O projeto Franzininho WiFi hoje está bem posicionado no Roadmap ajudando na sua implementação(mas ainda falta muito):
Caso você queira ajudar no financiamento do desenvolvimento da Franzininho WiFi ou de outros recursos, veja como é fácil:
- Compre VotePowers na página de recursos do Wokwi. O preço é de US $ 1 por um VotePower.
- Junte-se ao clube Wokwi para uma contribuição mensal. Você receberá dois VotePowers para cada USD que gastar todos os meses.
- Ocasionalmente, oferecemos VotePowers para usuários que contribuem com o Wokwi ou criam projetos excepcionais no Wokwi. Para manter as coisas justas para os usuários que apoiam financeiramente o Wokwi, distribuiremos no máximo 100 VotePowers em um único mês.
Seria muito bacana ter seu apoio para ajudar a construir um simulador para ajudar nas escolas, instituições e pessoas a terem seu primeiro contato com eletrônica. Participe dessa iniciativa.
Exemplos disponíveis
Há diversos exemplos disponíveis que você pode acessar através da documentação do Wokwi e na página do simulador. Deixo a seguir alguns links de exemplos com o ESP32 para você testar:
Exemplos Arduino
- Blink
- Contador de Sete Segmentos
- Blink com FastLED NeoPixel
- APA102 Color Cycles (TinyPico Board)
- WiFi Scanning
Exemplos MicroPython
Exemplos ESP-IDF
Os exemplos a seguir usam as funções ESP-IDF. Eles são compilados usando o Arduino ESP32 Core:
- Blink usando a API FreeRTOS
- Contador de LED binário usando tarefas FreeRTOS
- Entrada do botão GPIO + Interrupções
Conclusão
O Wokwi é uma excelente ferramenta para simulação de circuitos. Apesar do seu pouco tempo de vida já possui diversas placas e recursos para simulação de projetos. É mais um caso de um projeto open source que faz uma diferença para a comunidade. O seu desenvolvimento não é fácil, assim como outros projetos open source, e a ajuda da comunidade e empresas é muito importante para o projeto.
Deixo aqui o meu incentivo para você conhecer mais sobre o projeto e se possível contribuir com os VotePowers ou participar do Wokwi Club. Toda ajuda é muito bem-vinda!
Deixo aqui meu agradecimento ao Uri Shaked pelo projeto e ao Anderson Costa que mantém a tradução para o português e contribuiu muito para a integração da Franzininho DIY e WiFi ao simulador.
E aí, você já conhecia o Wokwi? O que achou da iniciativa?
Muito interessante para testar novos códigos e resolver bugs!
Edemilso