Plošná ryba Jádro (PR-CORE)
Stránka výrobku · Nahrát firmware z prohlížeče
Základní deska všech produktů Plošné ryby, prodává se i samostatně pro vlastní projekty. ESP32-C6 s WiFi 6, Bluetooth LE a Thread/Zigbee rádiem, nabíječka Li-ion, dva konektory Qwiic a jeden konektor pro hlavici. Firmware je ESPHome, takže většinu věcí napíšete v YAML bez programování.
Co je na desce
- ESP32-C6-WROOM-1-N8, 8 MB flash
- USB-C s nativním USB (nahrání firmwaru, logy, napájení, žádný ovladač)
- LDO 3,3 V
- Nabíječka Li-ion MCP73831, konektor baterie JST-PH 2 pin (článek 18650 v držáku s kabelem), ochrana proti přepólování
- Měření napětí baterie (dělič 100k/100k)
- 2x Qwiic / Stemma QT (I2C)
- Konektor hlavice JST-PH 6 pin
- Tlačítka BOOT a RESET
- Stavová LED, obyčejná jednobarevná
- Pull-up 4,7k pro 1-Wire (propojka JP1)
- Volitelná šroubovací svorka 5 V
Návrh desky v KiCadu 9 se připravuje. Zadání pinoutu je v hardware/core/README.md.
Pinout
| Signál | GPIO | Poznámka |
|---|---|---|
| VBAT_SENSE | GPIO0 | ADC1_CH0, dělič 100k/100k z baterie |
| HEAD_C / 1-Wire | GPIO1 | pull-up 4,7k na 3V3 přes JP1 (z výroby spojená) |
| HEAD_A | GPIO2 | LP GPIO (umí budit z hlubokého spánku), UART RX, HX711 DOUT, data WS2812 |
| HEAD_B | GPIO3 | LP GPIO, UART TX, HX711 SCK |
| I2C SDA (Qwiic) | GPIO6 | |
| I2C SCL (Qwiic) | GPIO7 | |
| STATUS_LED | GPIO8 | obyčejná LED proti 3V3, svítí při low; strapping pin, stejně jako na ESP32-C6-DevKitC-1 |
| BOOT | GPIO9 | strapping, stisk = low |
| USB D-/D+ | GPIO12/13 | nativní USB |
| UART0 TX/RX | GPIO16/17 | testovací body |
| HEAD_EN | GPIO18 | high = napájení hlavice zapnuté |
| CHRG_STAT | GPIO19 | low = nabíjí, potřebuje pull-up |
Konektory
Hlavice, JST-PH 6 pin
| Pin | Signál |
|---|---|
| 1 | GND |
| 2 | 3V3 (spínané přes HEAD_EN) |
| 3 | 5V (VBUS z USB nebo svorky, spínané přes HEAD_EN, na baterii není) |
| 4 | HEAD_A, GPIO2 |
| 5 | HEAD_B, GPIO3 |
| 6 | HEAD_C, GPIO1 |
Konektor hlavice je otevřená specifikace, podobně jako rozšiřující karty notebooků Framework. Rozměry, piny, napájení a pravidla pro vlastní hlavice popisuje hardware/heads/SPEC.md, takže si vlastní hlavu může postavit kdokoli. Hlavice i náhradní díly (víka, těsnění, vývodky, kabely) budeme prodávat i samostatně.
Qwiic, JST-SH 4 pin (2x): 1 GND, 2 3V3 (nespínané), 3 SDA GPIO6, 4 SCL GPIO7.
Baterie, JST-PH 2 pin: 1 BAT+, 2 GND. Deska má na této straně ochranu proti přepólování, obrácený článek ji nepoškodí, zařízení jen nenaběhne. Kabely článků z různých obchodů ale bývají zapojené opačně, takže před zapojením vlastního článku zkontrolujte + a - podle značek na desce.
Napájení a hluboký spánek
- Z USB nebo svorky 5 V je k dispozici 5 V i 3V3. Baterie se přitom nabíjí.
- Na baterii je jen 3V3. Hlavice, která potřebuje 5 V (třeba pásek WS2812), na baterii nepoběží.
- HEAD_EN spíná 3V3 i 5V hlavice. Firmware ho zapíná při startu a vypíná před spánkem, takže hlavice ve spánku nebere nic.
- Qwiic napájení spínané není. Pro bateriový provoz vybírejte moduly s malým klidovým odběrem (SHT40 má ve spánku asi 1 µA).
- Z hlubokého spánku umí budit časovač a piny HEAD_A, HEAD_B (LP GPIO).
Firmware pro vlastní projekt
Co potřebujete
- ESPHome 2026.10.0 nebo novější (
pip install esphome, nebo doplněk ESPHome v Home Assistant) - Složku
firmware/z repozitáře
Začněte s jadro.yaml
firmware/jadro.yaml obsahuje vše ze společného core.yaml: WiFi, API pro HA, OTA, Improv přes USB i Bluetooth, webový server, stavovou LED, měření baterie, stav nabíjení, tlačítko BOOT, spínač hlavice a výpis I2C adres v logu.
cd firmware
cp secrets.example.yaml secrets.yaml # vyplňte WiFi, API klíč a OTA heslo
esphome run jadro.yaml # první nahrání přes USB, další už přes WiFi
esphome logs jadro.yaml
WiFi a záložní síť. Veřejné obrazy z https://plosnaryba.cz/firmware nemají žádnou záložní WiFi síť ani výchozí heslo (EN 18031). WiFi se v nich nastavuje jen přes Improv: kabelem USB-C z prohlížeče, nebo přes Bluetooth z Home Assistant s potvrzením stiskem BOOT. Ve vlastním buildu (esphome run nebo build.sh --vlastni se secrets.yaml) je navíc zapnutá záložní síť Plosna ryba <produkt> s portálem pro zadání WiFi. Její heslo je substitution ap_heslo, výchozí zmente-me nahraďte vlastním.
Vlastní senzor
Zkopírujte jadro.yaml pod novým jménem, nechte packages: a pod ně přidejte své komponenty. Příklad: teploměr na 1-Wire a tlačítko na HEAD_A.
substitutions:
name: moje-cidlo
friendly_name: "Moje čidlo"
produkt: jadro
packages:
lang: !include lang/cs.yaml
core: !include core.yaml
one_wire:
- platform: gpio
pin: GPIO1
sensor:
- platform: dallas_temp
name: "Teplota"
update_interval: 60s
binary_sensor:
- platform: gpio
name: "Tlačítko"
pin:
number: GPIO2
mode:
input: true
pullup: true
inverted: true
Seznamy jako sensor: nebo binary_sensor: se s těmi z core.yaml spojí, nic nepřepíšete. Pokud chcete upravit entitu z jádra, použijte !extend s jejím id:
sensor:
- id: !extend napeti_baterie
update_interval: 10min
Entitu z jádra odstraníte přes !remove:
light:
- id: !remove stavova_led
Užitečná id z core.yaml: napajeni_hlavice (switch), stavova_led (light), napeti_baterie, baterie_procenta (sensor), nabijeni, tlacitko_boot (binary_sensor), bus_qwiic (I2C), cas_ha, cas_sntp (time).
Provoz na baterii
Přidejte balíček se spánkem a po dokončení měření nastavte mereni_hotovo:
packages:
lang: !include lang/cs.yaml
core: !include core.yaml
spanek: !include spanek.yaml
substitutions:
interval_vychozi: "30" # minuty, jde změnit z HA
sensor:
- platform: dallas_temp
name: "Teplota"
on_value:
then:
- lambda: id(mereni_hotovo) = true;
Balíček přidá entitu Interval měření, přepínač Režim údržby a logiku: po probuzení časovačem počká na spojení s HA a na měření, odešle data a usne. Bdění trvá jen pár sekund (substitution doba_bdeni_ms, výchozí 4000), protože právě bdění rozhoduje o výdrži baterie. Po zapnutí, resetu nebo nahrání firmwaru zůstane vzhůru 5 minut kvůli zadání WiFi (doba_bdeni_studeny_start_ms). Když se nepřipojí k HA nebo měření nepřijde, každé čekání vzdá po 10 s a usne i tak.
Režim údržby (nespí, OTA, změny nastavení hned) zapne pomocník input_boolean v Home Assistant, který si zařízení přečte po každém připojení (substitution udrzba_entita, výchozí input_boolean.plosna_ryba_udrzba), dále stisk BOOT během bdění nebo přepínač Režim údržby, dokud je zařízení vzhůru. Zapnutý pomocník režim zapne, vypnutý ho vypne jen při změně během bdění, ne podle prvního stavu po probuzení, takže BOOT funguje i s vypnutým pomocníkem. Spícímu zařízení HA nastavení poslat nemůže, nastavení se tedy mění v režimu údržby. Stavová LED v režimu údržby každé 2 s krátce blikne.
Texty a jazyk
Produkty mají všechny texty v lang/cs.yaml a lang/en.yaml jako substitutions. Ve vlastním projektu to dodržovat nemusíte, ale lang balíček nechte vložený, core.yaml z něj bere názvy svých entit.
Na co si dát pozor
- GPIO8 a GPIO9 jsou strapping piny. Nepřipojujte na ně nic, co by je při startu táhlo jinam (LED a tlačítko z desky jsou v pořádku).
- RMT (WS2812) má na C6 jen 96 symbolů. Stavová LED je obyčejná LED na GPIO a RMT nepoužívá, takže se vejdou dva pásky, každý s
rmt_symbols: 48. - Logger běží přes nativní USB. UART0 na testovacích bodech GPIO16/17 je volný pro vaše zařízení.
- ADC je jen na GPIO0 až GPIO6. GPIO0 je obsazený měřením baterie.
- Bluetooth Improv bere dost RAM. Když budete potřebovat paměť (HTTPS, velké displeje), odeberte ho:
improv_ble: !remove.
Nahrání bez ESPHome
Hotové obrazy všech produktů nahrajete z prohlížeče na https://plosnaryba.cz/firmware. Když deska nereaguje, podržte BOOT, stiskněte a pusťte RESET, pusťte BOOT. Deska je pak v režimu nahrávání.
Bezpečnost
- Li-ion články: nepoužívejte poškozené nebo nafouklé, nenabíjejte pod 0 °C ani nad 45 °C, nezkratujte. Nabíječka na desce je určená pro jeden článek 3,7 V.
- Deska pracuje jen s bezpečným malým napětím. Nic z elektrické sítě 230 V na ni nepřipojujte, ani přes relé modul na stejné desce plošných spojů bez izolace.
- Deska sama není vodotěsná. Venku ji dávejte do krabičky s vývodkami.