ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Educational IoT platform for Weeks camps (Arduino, 21 tasks, star/reward system). Pre-production.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Výuková IoT platforma pro děti z Weeks táborů. 21 úkolů s Arduinem ve třech obtížnostech (začátečník, pokročilý, expert), sbírání hvězdiček, témata, avatary a odměnový systém.
strict), Tailwind CSS v4, Framer Motion, Lucide React./api/notify-account je serverless funkce (odesílá potvrzovací e-maily přes Resend).localStorage pod klíčem iot-camp-screen-state-v6. Žádné migrace — když bumpujeme verzi storage, stará data se prostě smažou.Z původní vanilla JS aplikace (v legacy-vanilla/) jsme přešli na Next.js kvůli typovému systému, komponentám a serverovému endpointu pro e-maily — vanilla verze byla dál neudržitelná.
Uděláš jednou.
npm install -g @openai/codex (potřebuje Node 20+). Přihlas se: codex login.git clone https://github.com/lxkask/weeks-iot.git
cd weeks-iot
npm install
cp .env.local.example .env.local
Pro lokální dev můžeš nechat RESEND_API_KEY prázdný — jen e-maily se neodešlou. Reálný klíč mám já (Lukáš), nikdy ho nedávej do repa.npm run dev
Otevře se na http://localhost:3000.dev, nikdy ne na main.
git checkout dev
Hotovo.
Tohle je hlavní část. Codex CLI je nástroj, který upraví kód podle prompty. Trik je dát mu přesné cesty k souborům, jinak hádá a dělá nepořádek.
git pullcodexdev. Vercel postaví preview během ~30 s.Úkoly jsou rozdělené do sekcí podle obtížnosti. Sekce udržují konzistentní reward: 5. Pokud chceš úkol s validací kódu, musíš dotknout taky strict-rules.ts nebo task-solutions.ts.
Přidej nový úkol "Blikání dvěma LED" do sekce "Pokročilý" v src/lib/tasks.ts.
- ID úkolu: blink-two-leds
- Obtížnost: pokročilý
- Reward: 5 hvězdiček (jako ostatní v té sekci)
- Popis: česky, vysvětluje že má student rozblikat dvě LED střídavě
- Image: public/task-images/blink-two-leds.png (obrázek dodám sám)
- Validace: přidej granulární pravidla do src/lib/strict-rules.ts
(musí obsahovat pinMode pro 2 piny, 2x digitalWrite, delay)
- Pokud potřeba, přidej referenční řešení do src/lib/task-solutions.ts
Po úpravě zkontroluj, že všechny TypeScript typy sedí (src/types/index.ts).
Cesty k souborům, které Codex (skoro vždy) musí dotknout:
src/lib/tasks.ts — přidat objekt do pole SECTIONS.src/lib/strict-rules.ts — granulární pravidla (volitelně).src/lib/task-solutions.ts — bulk validátor / referenční řešení (volitelně).public/task-images/<id>.png — obrázek schématu, ručně tam dej PNG ≤ ~200 KB.V src/lib/tasks.ts najdi úkol s ID "led-basic" a v poli description
oprav překlep: "rozsvit" → "rozsviť" (s diakritikou).
Nech vše ostatní beze změny.
Tip: pokud nevíš ID, otevři src/lib/tasks.ts a vygrep si tam část původního textu.
Téma jsou barevné varianty (světlé/tmavé/akcentové). Themes jsou propojené přes 3 soubory + CSS:
Přidej nové téma "ocean" (modrá akcentová) do projektu.
1. src/lib/themes.ts — přidej ThemeOption se všemi metadaty.
2. src/types/index.ts — rozšiř type ThemeId o "ocean".
Pokud chceš nový accent (např. "azure"), rozšiř i ThemeAccent.
3. src/app/globals.css — přidej blok [data-theme="ocean"] { ... }
se VŠEMI 20 CSS proměnnými. Vzor zkopíruj z existujícího tématu.
Dodrž stávající strukturu, neměň nic jiného.
Poznámka: Tailwind v4 v tomhle projektu NEPOUŽÍVÁ tailwind.config.ts. Konfig je inline v src/app/globals.css přes @theme inline. Codex si to občas plete — pokud začne navrhovat tailwind.config.ts, zastav ho.
Topic = velká kategorie (IoT, Python, Web…). Aktuálně má reálný obsah jen iot.
V src/lib/topics.ts přepni "enabled: false" na "enabled: true"
u topicu s ID "python".
POZOR: nezapomeň, že topic musí mít vlastní úkoly / themes / avatars,
jinak bude jen prázdná dlaždice. Pokud obsah nemáme, nedělej nic.
Tohle pusť vždycky, než commitneš. V tomhle pořadí:
npx tsc --noEmit
Musí vrátit 0 chyb. Pokud chyba, hoď výstup zpět Codexu: "Oprav tyhle TS errory: …"npm run build
Catches problémy, které tsc nezachytí (Next.js, React Server Components, importy obrázků).npm run dev
Otevři http://localhost:3000 a ručně projdi to, co jsi měnil. Nový úkol → klikni na něj. Nové téma → přepni v Style Shopu.git add -A
git commit -m "feat(tasks): add blink-two-leds task"
Prefixy: feat(...) nová funkce, fix(...) oprava, docs: dokumentace, chore(...) údržba.git push
Vercel – Preview → Details.dev): https://weeks-iot-git-dev-<team>.vercel.app — link najdeš v GitHubu u commitu (viz krok 6 výše). URL je stabilní, můžeš si ji uložit.https://ucebna.weeks.cz (od 29. 9. 2026; iot.weeks.cz na ni přesměrovává 308). Aktualizuje se jen při mergi do main — to dělám já (Lukáš).Workflow do produkce: dev → otevřu PR → review → merge do main → ~30 s a je to nahoře.
npm run dev → http://localhost:3000.npm run build.npm run lint.npx tsc --noEmit.Env proměnné (.env.local, viz .env.local.example):
RESEND_API_KEY — pro /api/notify-account. Lokálně může být prázdný.ACCOUNT_EMAIL_FROM — odesílatel potvrzovacích e-mailů.NEXT_PUBLIC_TEST_MODE — když 1, nové účty dostanou testovací zůstatek hvězdiček. V produkci nech prázdné.Časté gotchas:
.env.local vyžaduje restart npm run dev (Ctrl+C a znovu).git pull zkus npm install (mohly přibýt deps).iot-camp-screen-state-v6 klíče v kódu smaž localStorage v DevTools.rm -rf .next.Klid. Na dev produkci nerozbiješ. Postup od nejméně po nejvíc destruktivní:
# Co jsem vlastně změnil?
git status
git diff
# Vrátit změny v jednom souboru (ještě před commitem):
git checkout -- src/lib/tasks.ts
# Odložit rozdělanou práci stranou (vrátíš se k ní později):
git stash
# ... později:
git stash pop
# DESTRUKTIVNÍ: zahodit všechny lokální změny a srovnat se s remote dev.
# Použij JEN když víš, že o nic nepřijdeš.
git reset --hard origin/dev
Pokud jsi pushnul rozbitý kód na dev: nepanikař a nedělej force-push. Buď udělej revert commit (git revert <sha> a push), nebo otevři fix branch a pushni opravu normálně. Když nevíš, napiš mi.
Tyhle věci .gitignore už řeší, ale ať víš:
.env.local — obsahuje reálný RESEND_API_KEY. Nikdy to nesmí do gitu.node_modules/, .next/, out/ — generované soubory, váží stovky MB..vscode/settings.json, .idea/ — IDE configy jsou osobní.git status # co se změnilo
git diff # ukaž změny řádek po řádku
git pull # stáhni nejnovější verzi
git checkout dev # přepni na dev branch
git checkout -- <soubor> # zahoď změny v jednom souboru
git add <soubor> # připrav soubor ke commitu
git add -A # připrav vše
git commit -m "feat(x): popis" # commit
git push # pošli na GitHub
git stash # odlož rozdělanou práci
git stash pop # vrať odloženou práci
git log --oneline -10 # posledních 10 commitů
git reset --hard origin/dev # DESTRUKTIVNÍ: zahodit vše lokální
npm install # nainstaluj dependencies
npm run dev # dev server na :3000
npm run build # produkční build (ověření)
npm run lint # ESLint
npx tsc --noEmit # rychlá TypeScript kontrola
codex # spusť interaktivně v rootu projektu
codex login # přihlášení (jen jednou)
Když si nejsi jistý, zeptej se (Lukáš) než zkusíš naslepo. Lepší 5 min konverzace než hodina hledání, co se stalo.