{"id":37673394,"url":"https://github.com/febits/meiaclock-esp32","last_synced_at":"2026-01-16T12:08:58.929Z","repository":{"id":265089048,"uuid":"869089472","full_name":"febits/meiaclock-esp32","owner":"febits","description":"Meiaclock ESP32","archived":false,"fork":false,"pushed_at":"2025-05-17T04:59:32.000Z","size":184,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-17T05:26:50.163Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/febits.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-07T17:43:09.000Z","updated_at":"2025-05-17T04:59:35.000Z","dependencies_parsed_at":"2024-11-27T16:20:16.108Z","dependency_job_id":"99115a37-ab51-48dc-aed9-04f1db7b4e4c","html_url":"https://github.com/febits/meiaclock-esp32","commit_stats":null,"previous_names":["febits/meiaclock-esp32"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/febits/meiaclock-esp32","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/febits%2Fmeiaclock-esp32","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/febits%2Fmeiaclock-esp32/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/febits%2Fmeiaclock-esp32/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/febits%2Fmeiaclock-esp32/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/febits","download_url":"https://codeload.github.com/febits/meiaclock-esp32/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/febits%2Fmeiaclock-esp32/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T12:08:58.800Z","updated_at":"2026-01-16T12:08:58.901Z","avatar_url":"https://github.com/febits.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!IMPORTANT]\n\u003e A Subathon do Meiaum acabou em Maio de 2025. Infelizmente, este projeto não possui mais nenhum sentido, visto que não há o que acompanhar. No caso da API da Subathon (desenvolvida por [**davi**](https://github.com/daviirodrig)) ainda funcionar, você ainda pode \"utilizar\" este projeto, mas não haverá sentido, pois o timer estará zerado.\n\n# Meiaclock ESP32\n\nÉ um protótipo de projeto chamado \"meiaclock\" para acompanhar o timer da subathon do [Meiaum](https://www.twitch.tv/omeiaum) em formato de \"relógio digital\".\n\n\u003e É útil? Não, é só abrir a live. É divertido possuir um meiaclock? Sim.\n\n![**Meiaclock on protoboard**](./resources/protoboard-meiaclock.jpeg)\n\n## Hardware necessário\n\n- **ESP-WROOM-32** ([**link**](https://produto.mercadolivre.com.br/MLB-2860521829-placa-esp32-pino-soldado-wifi-bluetooth-com-esp32-wroom-32-_JM#position%3D7%26search_layout%3Dgrid%26type%3Ditem%26tracking_id%3Dbbe17ad6-7576-411a-bbe2-36c74bee9b6c))\n- **DISPLAY OLED SSD1306** ([**link**](https://produto.mercadolivre.com.br/MLB-3892633142-modulo-display-oled-tela-096-i2c-ssd1306-lcd-arduino-pic-_JM#position%3D8%26search_layout%3Dgrid%26type%3Ditem%26tracking_id%3D961fbed5-86bb-4f01-b51e-4b6e587b63c5))\n\n## Software necessário\n\n- É utilizado o projeto [esp-rs](https://github.com/esp-rs) cujo é uma série de repositórios em Rust relacionados ao ESP32. Principalmente aos bindings do [esp-idf](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/index.html), que é o framework oficial em C.\n\n- Instale todas as dependências descritas [aqui](https://github.com/esp-rs/esp-idf-template?tab=readme-ov-file#prerequisites)\n\n## Tutorial\n\n\u003e [!IMPORTANT]\n\u003e Para o projeto compilar corretamente, faz-se necessário a configuração de algumas variáveis de ambiente específicas descritas abaixo. Também recomendo que faça o processo no Linux para evitar dor de cabeça.\n\n- No linux, você pode definir assim:\n```bash\nexport VAR=VALUE\n```\n1. `API_URL` - A API oficial da subathon é pública: https://subathon-api.justdavi.dev/api/time-left (criada pelo dev davi)\n2. `SSID` - O nome da sua rede wifi\n3. `PASSWORD` - A senha da sua rede wifi\n4. `SDA_PIN` - GPIO para o pino de `SDA` na comunicação [I2C](https://www.circuitbasics.com/basics-of-the-i2c-communication-protocol/)\n5. `SCL_PIN` - GPIO para o pino de `SCL` na comunicação [I2C](https://www.circuitbasics.com/basics-of-the-i2c-communication-protocol/)\n\n\u003e No ESP-WROOM-32 informado acima:\n\u003e `GPIO 21` -\u003e `SDA` |\n\u003e `GPIO 22` -\u003e `SCL`\n\n```bash\ngit clone https://github.com/febits/meiaclock-esp32\n```\n```bash\ncd meiaclock-esp32\n```\n```bash\ncargo build --release\n```\n```bash\nespflash flash --monitor target/xtensa-esp32-espidf/release/meiaclock-esp32\n```\n- Se você instalou o `espflash` via `cargo install`, não se esqueça de adicionar à sua variável de ambiente `$PATH` o diretório `~/.cargo/bin/` para o shell conseguir achar o `espflash`.\n\n- Se as variáveis de ambiente estiverem corretas (junto com as condições ideais de temperatura e pressão) e as conexões com os pinos estiverem corretas, o timer do menininho deve aparecer na sua tela.\n\n- Lembrando que qualquer erro tratável será enviado para o monitor serial, cujo é ativado logo após o `flash` ser realizado na placa.\n\n\u003e [!NOTE]\n\u003e O timer do display atualiza em uma janela de 20 segundos para não sobrecarregar o servidor da API com muitos requests por minuto. A taxa de requests agora é 3 por minuto, ao invés de 60. Também há o fato de que o timer da própria subathon não atualiza com tanta frequência, então não há necessidade de fazer tantos requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffebits%2Fmeiaclock-esp32","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffebits%2Fmeiaclock-esp32","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffebits%2Fmeiaclock-esp32/lists"}