Laboratório 00
A documentação desta atividade de laboratório é complementar a documentação principal da disciplina.
Utilize como base a descrição apresentada no Moodle da disciplina.
| Tarefa | Template | Início | Fim | Conteúdo |
|---|---|---|---|---|
| LAB00 | TPL00 | 16-Mar-2026 | 30-Mar-2026 | Apresentação da Disciplina; Materiais utilizados na disciplina; |
Conteúdo
Apresentação da Disicplina; Materiais utilizados na disciplina;
- Atividades de EaD e Lab;
- Ambiente de desenvolvimento;
- Crie uma conta no GitHub;
Solicitar inclusão em um time
Esta página explica como pedir para ser adicionado(a) ao seu grupo (time) na
organização ELT73A-S22-2026-2 do GitHub.
Toda solicitação é feita abrindo uma issue em um repositório dedicado, por meio de um formulário. Depois de enviada, um administrador adiciona você ao time e fecha a issue.
- Ter uma conta no GitHub.
- Saber o slug do seu grupo (de
grupo-aatégrupo-j). - Conhecer o seu username do GitHub (o nome que aparece no seu perfil, sem o
@).
Utilize as abas abaixo para consultar cada tipo de commit, sua finalidade, exemplos de uso em laboratório e os comandos correspondentes.
- feat
- fix
- docs
- style
- refactor
- perf
- test
- build
- ci
- chore
- revert
feat — Nova funcionalidade
Quando usar: Adicionar uma nova funcionalidade ao firmware.
Contexto de laboratório: Implementar leitura de sensor, controle de atuador, conexão Wi-Fi, etc.
Exemplos
git commit -m "feat(sensor): adiciona leitura do DHT22 com média móvel"
git commit -m "feat(wifi): configura conexão automática ao Wi-Fi da sala
Usa credenciais definidas em platformio.ini e tenta
reconexão a cada 10 segundos em caso de falha."
git commit -m "feat(display): implementa tela de status no OLED"
fix — Correção de bug
Quando usar: Corrigir um comportamento incorreto ou erro no código.
Contexto de laboratório: Overflow de buffer, pinagem errada no Wokwi, conversão incorreta de valores, etc.
Exemplos
git commit -m "fix(uart): corrige overflow no buffer de recepção"
git commit -m "fix(wokwi): resolve erro de pinagem do LED no diagrama
Alinha o pino GPIO2 do ESP32 com o LED no arquivo
diagram.json do simulador."
git commit -m "fix(sensor): corrige conversão de umidade relativa"
docs — Documentação
Quando usar: Alterações que afetam apenas a documentação (README, comentários, diagramas, etc.).
Contexto de laboratório: Atualizar instruções de montagem, documentar pinos ou flags de compilação.
Exemplos
git commit -m "docs: atualiza README com instruções de montagem no breadboard"
git commit -m "docs(platformio): documenta flags de compilação usadas no laboratório"
git commit -m "docs: adiciona diagrama de ligação do sensor DHT22"
style — Formatação / estilo
Quando usar: Mudanças que não afetam a lógica (indentação, espaços, formatação).
Contexto de laboratório: Aplicar clang-format, padronizar estilo de código da turma.
Exemplos
git commit -m "style: aplica formatação clang-format em todos os arquivos .cpp/.h"
git commit -m "style(main): ajusta indentação e remove espaços em branco extras"
refactor — Refatoração
Quando usar: Reorganizar o código sem alterar o comportamento externo (nem bugfix nem feature).
Contexto de laboratório: Separar lógica em arquivos, extrair funções, melhorar legibilidade.
Exemplos
git commit -m "refactor(display): extrai funções de desenho para oled.cpp"
git commit -m "refactor: move constantes de pinos para config.h"
git commit -m "refactor(wifi): separa lógica de conexão em módulo próprio"
perf — Performance
Quando usar: Melhorias de desempenho (tempo de execução, consumo de memória, etc.).
Contexto de laboratório: Otimizar leituras de ADC, reduzir tempo de amostragem, economizar RAM.
Exemplos
git commit -m "perf(adc): reduz tempo de amostragem do ADC em 30%"
git commit -m "perf(sensor): implementa média móvel para reduzir ruído sem aumentar latência"
test — Testes
Quando usar: Adicionar ou corrigir testes (unitários, de integração, etc.).
Contexto de laboratório: Criar testes de validação de sensores, debounce, faixas de valores.
Exemplos
git commit -m "test(sensor): adiciona teste de validação de faixa de temperatura"
git commit -m "test: cria teste unitário para função de debounce"
build — Sistema de build / dependências
Quando usar: Mudanças no sistema de build, platformio.ini, dependências ou bibliotecas.
Contexto de laboratório: Atualizar plataforma, adicionar bibliotecas, alterar flags de compilação.
Exemplos
git commit -m "build: atualiza plataforma espressif32 para versão 6.5.0"
git commit -m "build(deps): adiciona biblioteca ArduinoJson 7.0.0"
git commit -m "build: configura monitor_speed = 115200 no platformio.ini"
ci — Integração Contínua
Quando usar: Configurações de CI/CD (GitHub Actions, GitLab CI, etc.).
Contexto de laboratório: Automatizar build e testes do projeto ESP32.
Exemplos
git commit -m "ci: adiciona workflow de build no GitHub Actions"
git commit -m "ci: configura job de verificação de formatação com clang-format"
chore — Manutenção
Quando usar: Tarefas de manutenção que não afetam o código-fonte principal.
Contexto de laboratório: Atualizar .gitignore, limpar arquivos temporários do Wokwi/PlatformIO.
Exemplos
git commit -m "chore: atualiza .gitignore para ignorar arquivos do PlatformIO"
git commit -m "chore(wokwi): limpa arquivos temporários gerados pela simulação"
git commit -m "chore: remove arquivos .bak e temporários do projeto"
revert — Reversão
Quando usar: Desfazer um commit anterior.
Contexto de laboratório: Reverter alteração que quebrou a simulação no Wokwi ou o build.
Exemplos
git commit -m "revert: reverte feat(wifi): configura conexão automática
Este commit causava travamento no Wokwi quando o
Access Point da sala estava indisponível.
Refs: abc1234"
git commit -m "revert: desfaz alteração que quebrou o diagrama do Wokwi"
Passo a passo
1. Abra o formulário de solicitação
Acesse o repositório de solicitações e clique em New issue (Nova issue), ou use o link direto:
2. Selecione o formulário
Na tela de escolha, selecione "Solicitar inclusão em time".
3. Preencha os campos
| Campo | O que informar |
|---|---|
| Grupo (slug do time) | Escolha o slug do seu grupo, de grupo-a a grupo-p. |
| Seu username do GitHub | Seu nome de usuário, sem o @. Ex.: octocat. |
| Confirmação | Marque a caixa confirmando que o username está correto. |
Um username digitado errado impede a inclusão e atrasa o processo. Confirme no seu perfil antes de enviar.
Estrutura organizacional dos repositórios
ELT73A-S22-2026-2
├── Times
│ ├── Grupo-A
│ ├── ...
│ ├── Grupo-P # (Professor)
│ └── Grupo-N # (Notas)
└── Repositórios
├── lab00-template
├── lab00-grupo-a
├── ...
├── lab00-grupo-p # (Professor)
└── lab00-grupo-n # (Notas)
Verifique o seu ambiente de desenvolvimento
- Git SCM
- GitHub CLI
- VS Code
- Wokwi
- PlatformIO
- Drivers
- Docker
O Git é a ferramenta de gerenciamento de código-fonte mais utilizada por desenvolvedores profissionais.
- O Git é um sistema de controle de versão distribuído gratuito e de código aberto, projetado para lidar com tudo, desde projetos pequenos até muito grandes, com rapidez e eficiência.
winget install --id Git.Git -e --source winget
Configurações do git:
git config --list --show-origin
O GitHub CLI traz o GitHub para o seu terminal.
- O GitHub CLI é uma ferramenta de linha de comando que permite interagir com o GitHub diretamente pelo terminal. Está disponível para Windows, macOS e Linux.
winget install --id GitHub.cli -e --source winget
Status de login do GitHub CLI:
gh auth status
Visual Studio Code: IDE e Editor de Código para Desenvolvimento de Software.
- O VS Code é um editor de código-fonte gratuito criado pela Microsoft para Windows, Linux e macOS. Inclui suporte para depuração, controle Git integrado, realce de sintaxe, conclusão inteligente de código, snippets e refatoração de código.
winget install --id Microsoft.VisualStudioCode -e --source winget
Extensões instaladas do Visual Studio Code para o perfil ESP32IO:
code --list-extensions --profile "ESP32IO"
Inicie o projeto no PlatformIO:
pio project init -b esp32dev -O "framework=arduino" -O "monitor_speed=115200" --sample-code
Wokwi para VSCode: Simulador de sistemas embarcados e IoT com suporte para ESP32, Arduino e Raspberry Pi Pico.
- Wokwi para VSCode Seu código nunca sai do seu computador - o Wokwi executa a simulação dentro do VS Code, utilizando os binários de firmware do seu projeto.
code --install-extension wokwi.wokwi-vscode --profile "ESP32IO"
PlatformIO IDE para VSCode: Sua porta de entrada para a excelência no desenvolvimento de software embarcado.
- PlatformIO IDE para VSCode Desbloqueie o verdadeiro potencial do desenvolvimento de software embarcado com o ecossistema colaborativo do PlatformIO, adotando princípios declarativos, metodologias orientadas a testes e toolchains modernas para um sucesso incomparável.code --install-extension platformio.platformio-ide --profile "ESP32IO"
Instale a plataforma espressif32:
pio platform install espressif32Você precisa editar a variável de ambiente do sistema chamada Path e adicionar o caminho %USERPROFILE%\.platformio\penv\Scripts\ no início da lista.
Inicie o projeto no PlatformIO:
pio project init -b esp32dev -O "framework=arduino" -O "monitor_speed=115200" --sample-code
- Conecte o ESP32 ao computador via USB.
- Abra o Gerenciador de Dispositivos (clique com o botão direito no Menu Iniciar → Gerenciador de Dispositivos).
- Expanda a seção Portas (COM e LPT).
- Procure por um dispositivo similar a:
- Silicon Labs CP210x USB to UART Bridge (COMx)
- Driver Windows CH340/CH341 USB para porta serial
- FTDI ou “Dispositivo Serial USB (COMx)”
Anote o número da porta (ex: COM4, COM6, COM12). Se não aparecer nenhuma porta nova, o driver não está instalado. Baixe o driver correspondente (CP210x ou CH340) no site do fabricante da placa.
pip install esptool
esptool chip-id
Docker Desktop & WSL 2: O Docker Desktop no Windows 11 utiliza a arquitetura do WSL 2 para executar containers Linux nativamente com alta performance.
Habilitação e Atualização do WSL 2:
wsl --installwsl --update && wsl --set-default-version 2Instalação do Docker Desktop via Winget:
winget install --id Docker.DockerDesktop -eConfirme no terminal integrado do VS Code:
wsl --version && docker --version && docker compose versionTeste rápido com a imagem oficial do Nginx:
docker run --rm -d -p 8080:80 --name teste-nginx nginxAcesse no navegador:http://localhost:8080
Pare o container:
docker stop teste-nginx
Configure o nome de usuário para todos os repositórios locais ligados às suas transações de commit:
git config --global user.name "Your Name"
Configure o email de usuário para todos os repositórios locais ligados às suas transações de commit:
git config --global user.email "you@example.com"
É recomendado verificar se a instalação do seu Git não está realizando nenhuma transformação entre LFs e CRLFs.
git config --global core.autocrlf false
Configure o git para usar o Visual Studio Code como editor padrão para tarefas como escrever mensagens de commit ou rebases interativos
git config --global core.editor "code --wait"
Habilite a coloração automática da saída da linha de comando do Git:
git config --global color.ui auto
Configura o Git para usar main como o nome do branch padrão sempre que você inicializar um novo repositório localmente:
git config --global init.defaultBranch main
Liste as configurações aplicadas:
git config --list --show-origin
Versão do git e configurações:
git --version && git config --list --show-origin
Versão do GitHub CLI e status de login:
gh --version && gh auth status
Versão do Visual Studio Code e extensões instaladas:
code -v && code --list-extensions --profile "ESP32IO"
Clone o repositório inicial do LAB00
Escolha o seu grupo e entre com o comando abaixo para criar o repositório no GitHub:
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L
- M
- P
- Grupo: Grupo-A (slug:
grupo-a) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-a
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-a/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-a
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-a.git && cd lab00-grupo-a
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-B (slug:
grupo-b) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-b
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-b/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-b
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-b.git && cd lab00-grupo-b
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-C (slug:
grupo-c) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-c
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-c/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-c
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-c.git && cd lab00-grupo-c
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-D (slug:
grupo-d) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-d
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-d/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-d
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-d.git && cd lab00-grupo-d
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-E (slug:
grupo-e) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-e
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-e/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-e
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-e.git && cd lab00-grupo-e
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-F (slug:
grupo-f) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-f
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-f/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-f
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-f.git && cd lab00-grupo-f
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-G (slug:
grupo-g) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-g
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-g/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-g
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-g.git && cd lab00-grupo-g
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-H (slug:
grupo-h) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-h
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-h/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-h
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-h.git && cd lab00-grupo-h
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-I (slug:
grupo-i) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-i
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-i/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-i
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-i.git && cd lab00-grupo-i
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-J (slug:
grupo-j) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-j
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-j/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-j
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-j.git && cd lab00-grupo-j
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-K (slug:
grupo-k) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-k
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-k/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-k
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-k.git && cd lab00-grupo-k
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-L (slug:
grupo-l) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-l
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-l/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-l
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-l.git && cd lab00-grupo-l
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-M (slug:
grupo-m) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-m
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-m/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-m
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-m.git && cd lab00-grupo-m
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
- Grupo: Grupo-P (slug:
grupo-p) - Repositório: https://github.com/ELT73A-S22-2026-2/lab00-grupo-p
- Commits: https://github.com/ELT73A-S22-2026-2/lab00-grupo-p/commits/main/
- Time: https://github.com/orgs/ELT73A-S22-2026-2/teams/grupo-p
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%ELT73A" & cd /d "%USERPROFILE%ELT73A"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT73A-S22-2026-2/lab00-grupo-p.git && cd lab00-grupo-p
3. Abra o conteúdo do repositório no perfil ESP32IO do VS Code :
code . --profile "ESP32IO"
Como fazer commit da atualizações
Verifique o status do repositório:
git status
Adicione os arquivos modificados:
git add .
Realize o commit das alterações:
git commit -m "Descrição breve das alterações realizadas!"
Envie para o repositório remoto (GitHub):
git push
Vizualize o log de alterações:
git log
Vizualize no GitHub:
gh repo view --web
Envie o link do repositório do seu grupo no Moodle:
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L
- M
- P
Repositório do Grupo A para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo B para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo C para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo D para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo E para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo F para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo G para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo H para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo I para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo J para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo K para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo L para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo M para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo P para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Cada cartão Ponto de commit é uma tarefa: faça-a, copie o comando do cartão e rode. A mensagem começa com o código (T1:, T2:…) — é como a correção identifica sua entrega. Um commit por tarefa; pode refazer (vale o mais recente); e não esqueça o git push. Detalhes em Como funciona a avaliação.
Uso do git e GitHub
Como fazer o commit de atualizações:
git status
git add .
git commit -m "My message for this commit!"
git push
git log
Cheatsheet — Team members working with lab repos
Org: ELT73A-S22-2026-2
Your team: Grupo-X → slug grupo-x
Your lab repo: lab00-grupo-x (example)
1. One-time setup
Open in VS Code:
code .
# or, if you use a profile:
code . --profile "ESP32IO"
2. Daily workflow
# Update from remote
git pull
# See status
git status
# Stage changes
git add .
# or specific files:
git add src/main.cpp
# Commit
git commit -m "Implement exercise 2"
# Push to GitHub
git push
If git push asks for a remote branch the first time:
git push -u origin main
3. Useful gh commands for students
# Open the repo in the browser
gh repo view --web
# View repo info
gh repo view
# List issues
gh issue list
# Create an issue
gh issue create --title "Doubt about exercise 3" --body "..."
# List PRs
gh pr list
# Create a pull request (if you work on a branch)
gh pr create --title "Solution lab00" --body "..."
# Check Actions / CI status
gh run list
gh run view
4. Branch workflow (recommended)
# Create and switch to a branch
git checkout -b feature/ex2
# Work, commit, push
git add .
git commit -m "Exercise 2"
git push -u origin feature/ex2
# Open a PR into main
gh pr create --base main --title "Exercise 2" --body "Done"
After the PR is merged:
git checkout main
git pull
git branch -d feature/ex2
5. PlatformIO / embedded labs (if applicable)
# Build
pio run
# Upload to board
pio run -t upload
# Serial monitor
pio device monitor
# Run tests
pio test
6. What you can and cannot do
| Action | Allowed? |
|---|---|
| Clone / pull / push to your group repo | Yes (if team has push) |
| Create branches / commits | Yes |
| Open issues / PRs in your repo | Yes |
Edit other groups’ repos (lab00-grupo-b, …) | No |
| Delete the repository | No (usually) |
| Change team / org settings | No |
Access lab00-template (if private) | Only if granted |
Your access comes from the team (grupo-a, etc.), not from being repo admin.
7. Quick reference by lab
| Lab | Repository |
|---|---|
| LAB00 | ELT73A-S22-2026-2/lab00-grupo-a |
| LAB05 | ELT73A-S22-2026-2/lab05-grupo-a |
| Projeto | ELT73A-S22-2026-2/projeto-grupo-a |
Replace a with your group letter (b, c, …).
Clone pattern:
gh repo clone ELT73A-S22-2026-2/lab05-grupo-a
8. Common problems
Permission denied on push
- Confirm you are logged in:
gh auth status - Confirm you are in the right team/repo
- Ask the instructor to check team access (
pushon the repo)
Repo not found
gh repo view ELT73A-S22-2026-2/lab00-grupo-a
If 404: wrong name, or you are not a member of the org/team yet.
Merge conflicts
git pull
# fix conflicted files
git add .
git commit -m "Resolve merge conflicts"
git push
Undo local changes (destructive)
git checkout -- .
git clean -fd
9. Minimal “start of lab” checklist
gh auth status(logged in)gh repo clone ELT73A-S22-2026-2/labXX-grupo-ycd labXX-grupo-ycode .- Work →
git add→git commit→git push - Check CI:
gh run list
10. One-liner cheat card
clone → gh repo clone ORG/lab00-grupo-a
update → git pull
save → git add . && git commit -m "msg" && git push
web → gh repo view --web
ci → gh run list
LAB00 — VS Code + PlatformIO (ESP32/Arduino) + Wokwi + Git/CI
Objetivo: montar o ambiente, simular no Wokwi, gravar o fluxo de trabalho no GitHub e validar a entrega com CI (Autograde).
Repo do grupo: ELT73A-S22-2026-2/lab00-grupo-<letra>
Stack: VS Code · PlatformIO · ESP32 · framework Arduino · Wokwi · GitHub Actions
0. O que este lab exercita
| Camada | Ferramenta | Você pratica |
|---|---|---|
| Editor / projeto | VS Code + PlatformIO | Abrir, build, monitor |
| Hardware (simulado) | Wokwi | Simular ESP32 sem placa |
| Hardware (opcional) | ESP32 real | Upload + serial |
| Versionamento | Git + GitHub | commit / push |
| Nota automática | Actions (grade.yml) | CI verde na main |
1. Instalação (uma vez)
1.1 Obrigatório
- VS Code
- Extensão PlatformIO IDE (no VS Code: Extensions → “PlatformIO IDE”)
- Git + GitHub CLI
- Conta GitHub no time do seu grupo
gh auth login
git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"
1.2 Recomendado para simulação
- Extensão Wokwi Simulator no VS Code, ou
- Uso pelo site wokwi.com (com os arquivos do projeto)
1.3 Opcional (placa física)
- Cabo USB dados (não só carga)
- Driver da USB-UART (CP210x / CH340, conforme a placa)
- Placa ESP32 (ex.: DevKit)
2. Abrir o projeto do lab
gh repo clone ELT73A-S22-2026-2/lab00-grupo-a
cd lab00-grupo-a
code .
No VS Code, aceite abrir como projeto PlatformIO (ícone de formiga na barra lateral).
Estrutura esperada (template)
lab00-grupo-a/
├── platformio.ini ← ambiente ESP32 + Arduino
├── src/main.cpp ← setup() / loop()
├── include/
├── lib/
├── test/
├── wokwi/ ← (se o template tiver) diagrama + diagram.json
├── .github/workflows/ ← CI
└── README.md
platformio.ini (referência)
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
Outras boards comuns: esp32-s3-devkitc-1, az-delivery-devkit-v4 — use a do template da disciplina.
3. PlatformIO no VS Code — comandos essenciais
Na barra inferior / sidebar do PlatformIO:
| Ação | Ícone / comando CLI |
|---|---|
| Build | ✓ Build · pio run |
| Upload | → Upload · pio run -t upload |
| Monitor serial | Plug · pio device monitor |
| Clean | pio run -t clean |
| Test | pio test |
No terminal integrado
pio run # compila
pio run -t upload # grava na ESP32
pio device monitor # Serial a 115200
pio run -t upload && pio device monitor
Sair do monitor: Ctrl+C (às vezes Ctrl+])
src/main.cpp mínimo (Arduino)
#include <Arduino.h>
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("LAB00 - ESP32 ok");
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
Atividade: altere a mensagem do Serial.println para incluir o nome do grupo e faça build.
4. Simulação com Wokwi
Objetivo: validar lógica sem depender da bancada.
Opção A — Extensão Wokwi no VS Code
- Instale Wokwi Simulator
- No projeto, use/crie:
diagram.json— circuito (ESP32, LED, fios)wokwi.toml— liga o firmware do PlatformIO ao simulador (conforme docs do template)
- Comando típico da extensão: Start Simulator
- Abra o monitor serial do Wokwi e veja o mesmo
Serial.println
Opção B — Wokwi no navegador
- Acesse wokwi.com
- Novo projeto → ESP32
- Cole o conteúdo de
src/main.cpp - Monte LED no GPIO do
LED_BUILTIN(ou no GPIO que o template usar) - Start e observe LED + serial
Exemplo mínimo de ideia de diagram.json (LED no GPIO 2)
Muitos DevKit tratam LED embutido no GPIO 2 — confirme no template.
Checklist Wokwi
- Projeto simula e imprime no serial a mensagem do grupo
- LED pisca conforme o
loop() - Você não precisou da placa física para esta parte
5. Placa real (opcional, se houver ESP32)
- Conecte o USB
- Selecione a porta no PlatformIO (ou
pio device list) - Upload + monitor:
pio device list
pio run -t upload
pio device monitor
| Problema | O que tentar |
|---|---|
| Porta não aparece | Cabo, driver, outro USB |
| Upload fail | Segurar BOOT na gravação (algumas placas) |
| Serial sem texto | monitor_speed = 115200 igual ao Serial.begin |
6. Git: salvar o trabalho e entregar
Depois de build ok (e, se possível, Wokwi ok):
git status
git add src/main.cpp README.md
git commit -m "lab00: mensagem serial do grupo + LED"
git push
README — seção mínima:
## Integrantes
- Nome 1
- Nome 2
## Como rodar
- Build: `pio run`
- Simulação: Wokwi (extensão ou site)
- Placa: `pio run -t upload` && `pio device monitor`
7. CI / Autograde (nota automática)
O template traz .github/workflows/grade.yml, que no GitHub roda em geral:
pio run # compila o firmware no runner
Após o push:
gh run list
gh run view
| Resultado | Significado neste lab |
|---|---|
| success | Firmware compila no mesmo tipo de ambiente do curso |
| failure | Erro de build — corrija, commit, push de novo |
O CI não liga Wokwi nem a placa física.
Ele valida: projeto PlatformIO coerente + código que compila.
8. Roteiro da aula (ordem sugerida)
| Tempo | Atividade |
|---|---|
| 10 min | Clone, abrir no VS Code, inspecionar platformio.ini e main.cpp |
| 15 min | pio run — primeiro build |
| 20 min | Wokwi — serial + LED |
| 10 min | (Opcional) upload na ESP32 real |
| 15 min | README, commit, push |
| 10 min | Conferir Actions verde |
9. Critérios de entrega (LAB00)
| Critério | Evidência |
|---|---|
| Ambiente PlatformIO | pio run local ok |
| Código identificado | Serial.printf / println com grupo |
| Documentação | README com integrantes e como rodar |
| Simulação | Descrição ou print: Wokwi funcionando (pedido pelo professor) |
| GitHub | Commits no repo do grupo |
| CI | Último workflow na main = success |
10. Fluxo mental (além do Git)
Editar main.cpp no VS Code
↓
pio run (build local)
↓
Wokwi (simular) e/ou upload na ESP32
↓
git commit + push
↓
GitHub Actions: pio run de novo (nota/CI)
11. Erros comuns (foco PlatformIO / Wokwi / ESP32)
Build
Error: Unknown board ID '...'
→ Ajuste board no platformio.ini para o do template.
'Serial' was not declared
→ Faltou #include <Arduino.h> ou framework não é arduino.
Serial
- Baud do monitor ≠
Serial.begin(115200)→ lixo na tela LED_BUILTINpode não existir em todas as boards → use GPIO numérico (ex.2)
Wokwi
- GPIO do LED no diagrama ≠ GPIO no código → LED “não pisca”
- Simulador não usa o último build → rode build de novo / restarte a simulação
CI vermelho, local verde
- Arquivo não commitado (
git status) - Mudança só local; falta
git push
Push negado
- Repo certo?
lab00-grupo-x, nãolab00-template gh auth status+ membership no time
12. Comandos de bolso
abrir → code .
build → pio run
upload → pio run -t upload
serial → pio device monitor
simular → Wokwi (extensão ou site)
salvar → git add . && git commit -m "msg" && git push
ci → gh run list
13. Branch / release (opcional neste lab)
# branch de experimento
git checkout -b feature/blink-rapido
# ... muda delays, testa no Wokwi ...
git add . && git commit -m "lab00: blink mais rápido"
git push -u origin feature/blink-rapido
gh pr create --title "Blink rápido" --body "Testado no Wokwi"
# após merge + CI verde
git checkout main && git pull
git tag -a v0.1.0 -m "LAB00: entrega ambiente ESP32"
git push origin v0.1.0
gh release create v0.1.0 --title "LAB00 v0.1.0" --generate-notes
14. Para o professor
| Recurso do curso | Como o LAB00 valida |
|---|---|
| Template PlatformIO ESP32 | Clone já vem com ini + main.cpp + workflow |
| Wokwi | Atividade de simulação na aula |
| CI | pio run no Actions |
| Times | Push só no lab00-grupo-x |
Template mínimo: platformio.ini (esp32 + arduino), src/main.cpp (blink + Serial), grade.yml com pio run, README com instruções Wokwi.
Resumo em uma frase
O LAB00 não é só Git: é o ciclo completo — VS Code/PlatformIO → Wokwi (e/ou placa) → commit → CI — base dos labs seguintes de ESP32.