Pular para o conteúdo principal

Laboratório 00

Documentação de Apoio para Atividade de Laboratório

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.

TarefaTemplateInícioFimConteúdo
LAB00TPL0016-Mar-202630-Mar-2026Apresentaçã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.

Pré-requisitos
  • Ter uma conta no GitHub.
  • Saber o slug do seu grupo (de grupo-a até 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 — 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"

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​

CampoO que informar
Grupo (slug do time)Escolha o slug do seu grupo, de grupo-a a grupo-p.
Seu username do GitHubSeu nome de usuário, sem o @. Ex.: octocat.
ConfirmaçãoMarque a caixa confirmando que o username está correto.
Confira o username

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​

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

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:

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"
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

Repositório do Grupo A para Laboratório 00:

  1. Copie o link do repositório acima.
  2. Abra a página de envio da atividade no Moodle (botão abaixo).
  3. Clique em Adicionar envio.
  4. Cole o link no campo Texto online.
  5. Clique em Salvar mudanças.
  6. Confira se o status mudou para Enviado para avaliação.
Abrir envio no Moodle
Avaliação por commits

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

# 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​

ActionAllowed?
Clone / pull / push to your group repoYes (if team has push)
Create branches / commitsYes
Open issues / PRs in your repoYes
Edit other groups’ repos (lab00-grupo-b, …)No
Delete the repositoryNo (usually)
Change team / org settingsNo
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​

LabRepository
LAB00ELT73A-S22-2026-2/lab00-grupo-a
LAB05ELT73A-S22-2026-2/lab05-grupo-a
ProjetoELT73A-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 (push on 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​

  1. gh auth status (logged in)
  2. gh repo clone ELT73A-S22-2026-2/labXX-grupo-y
  3. cd labXX-grupo-y
  4. code .
  5. Work → git add → git commit → git push
  6. 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​

CamadaFerramentaVocê pratica
Editor / projetoVS Code + PlatformIOAbrir, build, monitor
Hardware (simulado)WokwiSimular ESP32 sem placa
Hardware (opcional)ESP32 realUpload + serial
VersionamentoGit + GitHubcommit / push
Nota automáticaActions (grade.yml)CI verde na main

1. Instalação (uma vez)​

1.1 Obrigatório​

  1. VS Code
  2. Extensão PlatformIO IDE (no VS Code: Extensions → “PlatformIO IDE”)
  3. Git + GitHub CLI
  4. 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 serialPlug · pio device monitor
Cleanpio run -t clean
Testpio 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​

  1. Instale Wokwi Simulator
  2. No projeto, use/crie:
    • diagram.json — circuito (ESP32, LED, fios)
    • wokwi.toml — liga o firmware do PlatformIO ao simulador (conforme docs do template)
  3. Comando típico da extensão: Start Simulator
  4. Abra o monitor serial do Wokwi e veja o mesmo Serial.println

Opção B — Wokwi no navegador​

  1. Acesse wokwi.com
  2. Novo projeto → ESP32
  3. Cole o conteúdo de src/main.cpp
  4. Monte LED no GPIO do LED_BUILTIN (ou no GPIO que o template usar)
  5. 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)​

  1. Conecte o USB
  2. Selecione a porta no PlatformIO (ou pio device list)
  3. Upload + monitor:
pio device list
pio run -t upload
pio device monitor
ProblemaO que tentar
Porta não apareceCabo, driver, outro USB
Upload failSegurar BOOT na gravação (algumas placas)
Serial sem textomonitor_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
ResultadoSignificado neste lab
successFirmware compila no mesmo tipo de ambiente do curso
failureErro 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)​

TempoAtividade
10 minClone, abrir no VS Code, inspecionar platformio.ini e main.cpp
15 minpio run — primeiro build
20 minWokwi — serial + LED
10 min(Opcional) upload na ESP32 real
15 minREADME, commit, push
10 minConferir Actions verde

9. Critérios de entrega (LAB00)​

CritérioEvidência
Ambiente PlatformIOpio run local ok
Código identificadoSerial.printf / println com grupo
DocumentaçãoREADME com integrantes e como rodar
SimulaçãoDescrição ou print: Wokwi funcionando (pedido pelo professor)
GitHubCommits 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_BUILTIN pode 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ão lab00-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 cursoComo o LAB00 valida
Template PlatformIO ESP32Clone já vem com ini + main.cpp + workflow
WokwiAtividade de simulação na aula
CIpio run no Actions
TimesPush 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.