Základní popis RFID terminálu a popis hardware
Právě se nacházíte: Home / vyvoj /
Podrobný popis změn a vylepšení mezi verzemi
podrobný popis hlavních změn a novinek, které odlišují verzi 1.37
od předchozích verzí (kolem verze 1.30).
Přehled Změn: 1.30 vs. 1.37
Verze 1.37 představuje zásadní skok vpřed oproti starším verzím.
Hlavní důraz byl kladen na stabilitu, robustnost, rozšíření hardwarových možností a zásadní optimalizaci využití paměti.
Zatímco starší verze byly primárně funkční, nová verze je navržena pro dlouhodobý a spolehlivý provoz.
1. Klíčové Novinky a Funkce
a) Vzdálená Aktualizace Firmwaru (OTA) přes SD Kartu
Toto je jedna z nejvýznamnějších novinek. Systém nyní podporuje nahrání nového firmwaru (.bin
souboru) přes webové rozhraní.
- Princip: Firmware se nejprve bezpečně uloží na SD kartu. Tím se předejde problémům s nedostatkem paměti RAM během nahrávání. Teprve po kompletním uložení souboru na SD kartu se spustí samotný proces aktualizace, který přepíše starou verzi firmwaru v paměti ESP32.
- Výhoda: Tato metoda je velmi spolehlivá a umožňuje snadnou údržbu zařízení na dálku, aniž by byl nutný fyzický přístup a připojení přes USB.
- Požadavek: Vyžaduje specifické rozdělení paměti (Partition Table), které musí být do zařízení nahráno při první instalaci této verze.
b) Podpora Nového Hardwaru
Funkčnost zařízení byla rozšířena o podporu nových periferií.
- NFC Čtečka (PN532): Kromě původní 125kHz RFID čtečky nyní systém podporuje i NFC čtečku PN532. Automaticky detekuje, zda je modul připojen, a pokud ano, aktivuje čtení NFC tagů a mobilních telefonů. Logika pro zpracování (včetně zamezení opakovaného čtení) je implementována pro oba typy čteček.
- Fyzická Tlačítka: Byla přidána podpora pro osm fyzických tlačítek připojených k různým GPIO pinům. Systém obsahuje mechanismus pro potlačení zákmitů (debouncing), který zajišťuje spolehlivou detekci stisku. To otevírá možnosti pro manuální ovládání zařízení.
c) Automatická Kontrola Stavu a "Sebeuzdravení"
Pro zajištění maximální stability byl implementován mechanismus, který periodicky kontroluje "zdraví" systému.
- Kontrola Sítě: Pravidelně ověřuje, zda je zařízení stále připojeno k WiFi. Pokud spojení spadne, pokusí se ho několikrát automaticky obnovit. Pokud se to nepodaří, zařízení se bezpečně restartuje, aby se předešlo jeho zablokování v nefunkčním stavu.
- Kontrola Paměti: Neustále monitoruje volnou paměť (Heap). Pokud paměť klesne pod kritickou mez (což je předzvěst pádu systému kvůli fragmentaci), systém provede preventivní restart. Tím se paměť vyčistí a obnoví se plná funkčnost.
2. Architektonická Vylepšení a Optimalizace
a) Zásadní Optimalizace Práce s Pamětí
Toto je klíčová změna pro dlouhodobou stabilitu. Starší verze intenzivně využívaly objekty String
, které způsobovaly fragmentaci paměti a mohly vést k pádu zařízení po delší době běhu.
- Nahrazení
String
: Téměř veškerá práce s textovými řetězci byla přepsána. Místo dynamických String
objektů se nyní používají pole znaků (char array
) s pevnou velikostí. To je výrazně rychlejší a nezpůsobuje fragmentaci paměti.
- Bezpečné Formátování: Pro sestavování textů (např. pro odeslání na server) se používají bezpečné funkce jako
snprintf
, které zabraňují přetečení bufferu.
b) Asynchronní (Neblokující) Operace
Mnoho operací, které dříve mohly "zamrznout" zařízení, nyní běží na pozadí na druhém jádře procesoru.
- Asynchronní Zápis Logu: Když je přiložena karta, záznam se okamžitě přidá do fronty a hlavní program pokračuje dál. Samotný zápis do souboru na SPIFFS provádí samostatná úloha na pozadí, takže zařízení zůstává plně responzivní.
- Asynchronní Dotazy na Server: Dotaz na server pro získání jména uživatele nebo odeslání logu již neblokuje hlavní smyčku. Je spuštěn jako samostatná úloha, takže zařízení může mezitím normálně číst další karty a aktualizovat displej.
c) Bezpečný Přístup k Displeji (Mutex)
Při použití více úloh (např. hlavní smyčka a úloha pro dotaz na server) hrozilo, že se pokusí zapisovat na displej ve stejný okamžik, což by vedlo k poškozenému zobrazení.
- Zámek Displeje: Byl implementován mechanismus "zámku" (Mutex), který zajišťuje, že na displej může v jeden okamžik zapisovat pouze jedna úloha. Ostatní musí počkat, až se displej uvolní. Tím je zaručeno, že zobrazená data jsou vždy konzistentní.
3. Vylepšení Uživatelského Rozhraní a Logiky
- Správa Času: Logika pro synchronizaci času byla vylepšena. Zařízení se primárně snaží získat přesný čas z internetu (NTP). Pokud se to podaří, nastaví tento čas i do hardwarových hodin (RTC). Pokud internet není dostupný, použije čas z RTC jako zálohu.
- Webové Rozhraní:
- Přibyla sekce pro nahrání firmwaru (OTA).
- Do nastavení byla přidána možnost konfigurovat délku RFID ID a interval odesílání dat.
- Zobrazuje se podrobný stav systému, včetně doby běhu a využití paměti.
- Logika Čteček: Byla vylepšena logika pro detekci opakovaně přiložené karty/tagu, aby se zamezilo nechtěnému vícenásobnému zpracování v krátkém čase.
Celkově lze říci, že verze 1.37 transformovala projekt z funkčního prototypu na robustní a spolehlivé zařízení připravené na reálné nasazení, s pokročilými funkcemi pro údržbu a monitorování.
ESP32-RFID27
(verze 1.27) a ESP32-RFID32
(verze 1.30).
Verze 1.30 představuje zásadní posun od jednoduchého online terminálu k robustní a autonomní jednotce pro sběr dat.
Hlavní důraz byl kladen na spolehlivost, stabilitu a schopnost fungovat offline.
Přehled klíčových rozdílů
Funkce / Oblast |
Verze 1.27 (ESP32-RFID27 ) |
Verze 1.30 (ESP32-RFID32 ) |
Význam změny |
Zpracování dat |
Okamžité odeslání (data se mohou ztratit) |
Ulož a pošli (Store-and-Forward) |
Žádná ztráta dat i při výpadku sítě. |
Stabilita systému |
Pasivní (vyžaduje ruční restart při problému) |
Aktivní samoobnova a monitoring |
Vysoká spolehlivost pro dlouhodobý provoz. |
Webové rozhraní |
Pouze základní nastavení |
Nastavení + správa a prohlížení logu |
Plná kontrola a přehled nad zařízením. |
Konfigurace |
Pevně dané parametry |
Možnost nastavit délku RFID a interval odesílání |
Větší flexibilita a přizpůsobení. |
Optimalizace |
Standardní kód |
Výrazná optimalizace paměti a výkonu |
Vyšší rychlost a stabilita, prevence pádů. |
Detailní popis změn
1. Zpracování a ukládání dat (Největší změna)
- Verze 1.27:
- Fungovala v režimu "všechno, nebo nic".
- Po načtení karty se pokusila data okamžitě odeslat na vzdálený server.
- Pokud server nebo síť nebyly v daný moment dostupné, informace o přiložení karty byla nenávratně ztracena.
- Verze 1.30: Implementuje robustní mechanismus "Ulož a pošli" (Store-and-Forward).
- Každé úspěšné načtení karty (RFID i NFC) se okamžitě uloží do souboru v interní paměti zařízení (
/rfid_log.ea
). Tím je zajištěno, že záznam je bezpečně uchován.
- Na pozadí běží nová, samostatná úloha, která se v pravidelných, nastavitelných intervalech pokouší odeslat uložená data na server.
- Záznam je z interního logu smazán až poté, co server potvrdí jeho úspěšné přijetí.
- Význam: Zařízení nyní může fungovat zcela autonomně i několik dní bez připojení k síti. Jakmile se spojení obnoví, automaticky odešle všechny nasbírané záznamy. Je tak zaručena 100% doručitelnost dat.
2. Stabilita a samoobnova systému
- Verze 1.27:
- Neměla žádnou aktivní kontrolu svého stavu.
- Pokud v průběhu času došlo k problému (např. dočasný výpadek WiFi, postupné zaplnění paměti kvůli fragmentaci), zařízení se mohlo "zaseknout" a přestat fungovat, což vyžadovalo manuální restart.
- Verze 1.30: Zavádí automatickou kontrolu stavu systému, která běží periodicky na pozadí.
- Kontrola sítě: Aktivně sleduje, zda je zařízení připojeno k WiFi. Pokud spojení spadne, automaticky se ho pokusí obnovit. Pokud se to nepodaří ani po několika pokusech, provede bezpečný restart, aby se obnovila konektivita.
- Kontrola paměti (Heap): Toto je klíčová funkce pro dlouhodobou stabilitu. Systém monitoruje množství volné operační paměti. Pokud paměť klesne pod kritickou mez (což je častá příčina pádů u zařízení v nepřetržitém provozu), systém provede preventivní restart. Tím se paměť kompletně vyčistí a předejde se pádu systému.
- Význam: Zařízení je schopno se samo zotavit z běžných provozních problémů, což dramaticky zvyšuje jeho spolehlivost a snižuje potřebu údržby.
3. Rozšířené webové rozhraní a správa
- Verze 1.27:
- Webové rozhraní sloužilo pouze pro prvotní nastavení (přihlašovací údaje k WiFi, IP adresa serveru atd.).
- Verze 1.30: Webové rozhraní je výrazně rozšířeno o novou stránku
/log
, která slouží jako administrační panel. Umožňuje:
- Prohlížet kompletní obsah interního logu – tedy všechny záznamy, které čekají na odeslání.
- Ručně spustit odeslání všech dat na server tlačítkem "Odeslat data nyní".
- Mazat jednotlivé záznamy nebo vyčistit celý log.
- Význam: Administrátor má nyní plnou kontrolu a přehled o tom, jaká data jsou v zařízení uložena a může spravovat jejich odesílání.
4. Nové možnosti konfigurace
- Verze 1.27:
- Klíčové parametry, jako délka RFID kódu, byly pevně nastaveny v kódu.
- Verze 1.30: Do webového rozhraní byly přidány nové konfigurační volby:
- Délka RFID ID: Možnost vybrat, zda má čtečka zpracovávat 10 nebo 11 znaků dlouhé ID, což zvyšuje kompatibilitu s různými typy karet.
- Interval odesílání dat: Lze nastavit, jak často (v sekundách) se má zařízení pokoušet odesílat data ze svého interního logu.
- Význam: Zařízení je flexibilnější a lépe přizpůsobitelné konkrétním potřebám nasazení.
5. Optimalizace kódu a správy paměti
- Verze 1.27:
- Na mnoha místech v kódu byly použity standardní, ale pro vestavěná zařízení méně vhodné programovací techniky (např. časté používání objektů
String
), které mohou při dlouhodobém běhu vést k fragmentaci paměti a následné nestabilitě.
- Verze 1.30: Kód prošel významnou optimalizací. Klíčové části, jako je generování webových stránek, ukládání do souborů a zpracování dat, byly přepsány s důrazem na efektivní správu paměti.
- Význam: Výsledkem je nižší spotřeba paměti, vyšší rychlost a celkově robustnější a spolehlivější chod aplikace.
Závěr
Zatímco verze 1.27 byla funkčním prototypem, verze 1.30 je produkčně nasaditelný produkt.
Přechod na offline-first architekturu s automatickou synchronizací a přidání mechanismů pro samoobnovu systému jsou klíčové změny, které z tohoto zařízení dělají spolehlivý nástroj pro sběr dat v reálném světě.
Základní Popis aplikace
Tento program je firmware pro mikrokontrolér ESP32, který z něj vytváří pokročilý síťový RFID terminál.
Zařízení je navrženo pro systémy jako je docházka, kontrola přístupu nebo sběr dat, kde je potřeba identifikovat uživatele pomocí RFID čipu a zaznamenat tuto událost na vzdáleném serveru.
Systém je vysoce flexibilní díky podpoře duální síťové konektivity (drátový Ethernet i bezdrátová WiFi), automatické detekci připojených displejů (LCD a OLED) a robustnímu asynchronnímu zpracování dat, které zajišťuje plynulý a spolehlivý chod.
Klíčové Vlastnosti
- Čtení RFID: Využívá 125kHz RFID čtečku pro identifikaci bezkontaktních čipů a karet.
- Duální Konektivita: Preferuje stabilní připojení přes Ethernet (LAN). Pokud není k dispozici, automaticky se připojí k nakonfigurované WiFi síti.
- Webová Konfigurace: Pokud zařízení nemá uloženy přístupové údaje k síti, spustí se v režimu "Access Point". Uživatel se k němu může připojit telefonem nebo počítačem a přes jednoduchou webovou stránku nastavit všechny potřebné parametry (název zařízení, WiFi, IP adresa serveru, heslo atd.).
- Komunikace se Serverem: Po načtení karty odešle její unikátní ID na předem definovaný vzdálený server. Následně si ze stejného serveru vyžádá data spojená s touto kartou (např. jméno osoby, stav přístupu) a zobrazí je na displeji.
- Podpora Displejů: Program při startu automaticky zkontroluje, zda je připojen I2C LCD (20x4 znaků) nebo I2C OLED displej. Veškeré výstupy pak přizpůsobí detekovanému displeji.
- Správa Času: Synchronizuje přesný čas z internetu pomocí NTP protokolu. Pro případ výpadku internetu je vybaven hardwarovým modulem reálného času (RTC), který udržuje čas i po odpojení napájení. Časová zóna je nastavitelná přes webové rozhraní.
- Asynchronní Provoz: Síťové operace (odesílání dat, komunikace se serverem) běží v samostatném vlákně (úkolu). Díky tomu hlavní smyčka programu, která se stará o čtení RFID karet, není nikdy blokována pomalou sítí a zařízení zůstává neustále responzivní.
- Ukládání Nastavení: Všechna uživatelská nastavení jsou bezpečně uložena v interní flash paměti (SPIFFS), takže si je zařízení pamatuje i po restartu.
Popis Hlavních Funkcí a Chování
-
Spuštění a Inicializace:
- Po zapnutí se program pokusí načíst uloženou konfiguraci.
- Pokud konfigurace neexistuje, spustí vlastní WiFi síť (Access Point) a čeká na nastavení přes webový prohlížeč.
- Pokud konfigurace existuje, pokusí se připojit k síti (nejprve LAN, pak WiFi).
- Zdetekuje připojené displeje, inicializuje RFID čtečku a modul reálného času (RTC).
- Synchronizuje systémový čas (nejprve z NTP, pokud selže, tak z RTC).
- Spustí samostatný úkol pro síťovou komunikaci.
-
Běžný Provoz (Hlavní Smyčka):
- V základním stavu zobrazuje na displeji název zařízení, aktuální datum a čas. Čas na displeji se automaticky aktualizuje každou minutu.
- Nepřetržitě monitoruje RFID čtečku.
- Periodicky v pozadí kontroluje dostupnost vzdáleného serveru, aby mohl rychle reagovat v případě jeho výpadku.
-
Zpracování RFID Karty:
- Když je přiložena karta, funkce pro čtení RFID ověří platnost dat.
- Implementuje ochranu proti opakovanému načtení stejné karty v krátkém časovém intervalu, aby se zamezilo duplicitním záznamům.
- Místo přímého odeslání dat na server vloží ID karty do speciální fronty. Tím se okamžitě uvolní pro čtení další karty.
-
Síťový Úkol (Běží na pozadí):
- Tento úkol neustále sleduje frontu. Jakmile se v ní objeví nové ID karty, vezme si ho ke zpracování.
- Sestaví a odešle data (ID karty, název zařízení) na server pomocí HTTP POST požadavku. Pokud odeslání selže, zkusí to ještě několikrát.
- Po úspěšném odeslání provede další dotaz (HTTP GET) na server, aby získal textovou informaci, která se má zobrazit uživateli (např. "Vítejte, pane Nováku" nebo "Přístup zamítnut").
- Tuto informaci zobrazí na displeji na několik sekund. Poté se displej vrátí do výchozího stavu zobrazení času a data.
- Pokud je server nedostupný, zobrazí chybovou hlášku a data neodesílá.
Tato architektura zajišťuje, že terminál je schopen rychle načítat karty jednu po druhé, i když je síťové připojení pomalé nebo dočasně nedostupné, což je klíčové pro jeho spolehlivost v reálném provozu.
Podrobný popis použitého hardwaru, jeho zapojení a důvodů, proč byly jednotlivé komponenty a způsoby připojení zvoleny.
Přehled Hardwaru
Projekt je postaven na mikrokontroléru ESP32, který slouží jako centrální mozek celého zařízení.
K němu jsou připojeny specializované moduly pro zajištění síťové konektivity, čtení RFID karet, udržování času a zobrazování informací.
Důraz je kladen na modularitu a spolehlivost.
1. Řídicí Jednotka: ESP32
- Komponenta: Vývojová deska s čipem ESP32.
- Důvod: Byla zvolena pro svůj vysoký výkon, dva procesorová jádra (což umožňuje plynulý běh síťových operací na pozadí), integrovanou WiFi a dostatečný počet vstupně/výstupních (GPIO) pinů pro připojení všech potřebných periferií
2. Síťové Připojení: Ethernet Modul W5500
- Komponenta: Modul s čipem W5500 pro drátové připojení k síti LAN.
- Zapojení (SPI sběrnice):
GPIO 5
-> SCS
(Chip Select) - Tento pin aktivuje komunikaci s modulem.
GPIO 18
-> SCLK
(Serial Clock) - Hodinový signál pro synchronizaci dat.
GPIO 19
-> MISO
(Master In, Slave Out) - Data z modulu do ESP32.
GPIO 23
-> MOSI
(Master Out, Slave In) - Data z ESP32 do modulu.
- Důvod: Drátové připojení je obecně stabilnější a spolehlivější než WiFi, což je pro přístupové a docházkové systémy klíčové. Komunikace přes rychlou SPI sběrnici zajišťuje plynulý přenos dat. Firmware preferuje toto připojení a na WiFi se přepne jen v případě, že LAN není k dispozici.
3. Identifikace: RFID Čtečka (125kHz)
- Komponenta: Modul pro čtení bezkontaktních karet a čipů, např. RDM6300 nebo kompatibilní.
- Zapojení (Sériová linka - UART):
GPIO 17
(ESP32 RX) -> TX pin modulu
- ESP32 přijímá data (ID karty) ze čtečky.
GPIO 16
(ESP32 TX) -> RX pin modulu
- ESP32 může posílat příkazy do čtečky (v tomto kódu se nevyužívá).
- Důvod: UART je standardní a velmi spolehlivý způsob komunikace pro tyto moduly. ESP32 má více hardwarových UART portů, což umožňuje dedikovanou komunikaci se čtečkou bez nutnosti softwarové emulace a nezatěžuje tak procesor.
4. Zobrazovací Jednotky: LCD a OLED Displej
- Komponenty:
- Znakový LCD displej 20x4 s I2C převodníkem (adresa
0x27
).
- Grafický OLED displej 128x64 s I2C rozhraním (adresa
0x3C
).
- Zapojení (I2C sběrnice): Oba displeje se připojují na stejné piny.
GPIO 21
-> SDA
(Serial Data) - Datový vodič.
GPIO 22
-> SCL
(Serial Clock) - Hodinový vodič.
- Důvod: I2C sběrnice je ideální, protože umožňuje připojit více zařízení pouze pomocí dvou vodičů. Program je navržen tak, aby při startu automaticky proskenoval obě I2C adresy a sám zjistil, který z displejů je fyzicky připojen. Tím je zajištěna vysoká flexibilita bez nutnosti měnit kód.
5. Udržování Času: Modul Reálného Času (RTC) DS1302
- Komponenta: Modul s čipem DS1302 a záložní baterií.
- Zapojení (3-vodičová sběrnice):
GPIO 33
-> SCLK
(Clock)
GPIO 25
-> IO
(Data)
GPIO 26
-> CE
(Chip Enable / Reset)
- Důvod: Zajišťuje, že zařízení má vždy k dispozici přesný čas, i když dojde k výpadku napájení nebo není dostupné připojení k internetu pro synchronizaci přes NTP. To je kritické pro správnost časových razítek u docházkových záznamů.
6. Zvuková Signalizace: Pípák (Buzzer)
- Komponenta: Jednoduchý aktivní pípák.
- Zapojení:
GPIO 27
-> Signální pin pípáku.
- Důvod: Poskytuje okamžitou a intuitivní zvukovou zpětnou vazbu uživateli – například krátké pípnutí při úspěšném načtení karty nebo delší/přerušované pípnutí při chybě.
7. Napájení: POE Modul (Power over Ethernet)
- Komponenta: Modul standardu IEEE 802.3af, který dodává 5V.
- Zapojení: Modul se vkládá mezi Ethernetový konektor a W5500 modul. Jeho výstup (5V a GND) napájí celou sestavu (ESP32 a všechny periferie).
- Důvod: Výrazně zjednodušuje instalaci terminálu na místě určení. K zařízení stačí přivést jediný ethernetový kabel, který zajišťuje jak datovou konektivitu, tak napájení. Odpadá tak nutnost mít v blízkosti elektrickou zásuvku.
Využití RFID terminálu a využití pro sledování docházky zaměstnanců
představuje kompletní uživatelské a administrátorské rozhraní pro správu pracovních pozic v systému.
Umožňuje provádět všechny základní databázové operace (vytvořit, číst, aktualizovat, smazat - CRUD).
Plánování a definice potřeb
Tato skupina skriptů slouží manažerům k definování, kolik lidí a na jaké směny potřebují, a k následnému plánování.
-
(Vytváření požadavků na obsazení)
- Účel: Nástroj pro manažery, kterým definují své personální potřeby.
- Funkce: Formulář, kde manažer zadá např.: "Potřebuji 5 lidí na pozici Skladník na ranní směnu každý pracovní den v prosinci." Skript následně hromadně vytvoří záznamy v tabulce
users_staffing_requirements
.
-
(Plánování jednotlivých směn)
- Účel: Detailní plánování a úpravy.
- Funkce: Formulář pro vytvoření směny pro konkrétního uživatele na konkrétní den nebo pro úpravu již existující směny. Umožňuje také manuální opravu časů příchodu a odchodu, pokud došlo k chybě v docházce.
-
(Hromadné plánování směn)
- Účel: Nástroj pro maximální efektivitu při plánování.
- Funkce: Umožňuje manažerovi vybrat jeden nebo více útvarů, šablonu směny a období, a systém automaticky naplánuje směny všem zaměstnancům v daných útvarech. Šetří obrovské množství času oproti individuálnímu plánování.
Zobrazení, přehledy a reporting
Tyto skripty poskytují různé pohledy na data, od vizuálních kalendářů po detailní tabulkové reporty.
-
(Hlavní kalendář směn)
- Účel: Vizuální přehled o tom, kdo, kdy a kde pracuje.
- Funkce: Zobrazuje klasický měsíční kalendář. Každý den je dynamicky naplněn seznamem zaměstnanců a jejich směn (pomocí vkládaného skriptu
working_calendar_users.asp
). Obsahuje rozsáhlé filtry (podle uživatele, pozice, stavu směny), což z něj dělá silný analytický nástroj.
-
(Seznam požadavků na obsazení)
- Účel: Manažerský přehled o neobsazených pozicích.
- Funkce: Zobrazuje tabulkový seznam všech vytvořených požadavků a u každého ukazuje stav (např. "Potřeba: 5, Obsazeno: 3"). Umožňuje rychlou úpravu nebo smazání požadavků.
-
(Měsíční přehled požadavků pro zaměstnance)
- Účel: "Tržiště směn" pro zaměstnance.
- Funkce: Zobrazuje požadavky v měsíční mřížce. Zaměstnanec vidí, kde chybí lidé, a kliknutím na buňku si může směnu "vzít" (tím se spustí skript
create_shift_from_requirement.asp
).
-
(Centrální seznam naplánovaných směn)
- Účel: Hlavní operativní nástroj pro manažery.
- Funkce: Zobrazuje všechny naplánované směny v detailní tabulce s pokročilými filtry. Jeho klíčovou funkcí je hromadná úprava: manažer může označit více směn a najednou je schválit, zamítnout nebo změnit jejich šablonu.
-
(Detailní měsíční report)
- Účel: Komplexní souhrnný report pro manažery a mzdové oddělení.
- Funkce: Zobrazuje mřížku, kde řádky jsou zaměstnanci a sloupce dny v měsíci. Buňky obsahují odpracované hodiny (pro dokončené směny) nebo symboly pro různé stavy. Integruje i události jako dovolená nebo nemoc. Obsahuje tiskovou verzi.
-
(Souhrn skutečně odpracované doby)
- Účel: Finanční a analytický reporting.
- Funkce: Agreguje data ze skutečně odpracovaných směn (
users_actual_work_logs
) a zobrazuje celkové součty (hrubý čas, přestávky, čistý čas) pro jednotlivé zaměstnance nebo celé útvary za zvolené období.
-
Roční přehledy
- Účel: Strategický roční přehled.
- Funkce: Poskytují pohled na data z ptačí perspektivy. Zobrazují trendy v plánování, počty směn v různých stavech po měsících a útvarech. Slouží pro dlouhodobé plánování a analýzu vytíženosti.
Interakce a automatizace
Tyto skripty zajišťují interakci se zaměstnanci, hardwarem a provádějí automatické úkony na pozadí.
-
(Endpoint pro RFID terminály)
- Účel: Komunikační brána mezi fyzickými docházkovými terminály a databází.
- Funkce: Přijímá HTTP požadavek s ID karty. Identifikuje uživatele, zjistí, zda se jedná o příchod či odchod, a zapíše přesný čas do databáze. Zvládá i situaci, kdy zaměstnanec přijde bez naplánované směny – v takovém případě mu ji automaticky vytvoří. Vrací terminálu odpověď pro zobrazení na displeji (např. "Vítejte, Petře Nováku").
-
(Vytvoření směny z požadavku)
- Účel: Akční skript pro zaměstnance, kteří si berou volnou směnu.
- Funkce: Po kliknutí na volnou směnu v reportu tento skript ověří, zda zaměstnanci nevznikne časová kolize s jinou jeho směnou. Pokud ne, vytvoří mu novou směnu v plánu.
-
(Detail docházky a korekce)
- Účel: Nástroj pro audit a opravu docházkových dat.
- Funkce: Zobrazí všechny příchody a odchody zaznamenané RFID terminálem pro jednu konkrétní směnu. Umožňuje manažerovi manuálně opravit záznamy, pokud například zaměstnanec zapomněl "pípnout".
-
(Zpracování dokončených směn)
- Účel: Automatická údržba a příprava dat pro reporting.
- Funkce: Tento skript se spouští na pozadí. Projde všechny dokončené směny, vypočítá z nich skutečně odpracovaný čas (s prioritou RFID dat) a uloží čistá data do tabulky
users_actual_work_logs
, která slouží jako podklad pro reporty a mzdy.
Pomocné a vkládané skripty
banner
: Zobrazuje konzistentní navigační menu na všech stránkách.
chyba
: Uživatelsky přívětivá stránka pro zobrazení chybových hlášení.
tisk-planovani
: Generuje zjednodušenou verzi plánu pro tisk.
working_calendar_users
: Pomocný skript, který generuje HTML kód se seznamem zaměstnanců pro jeden den v kalendáři.
- Ostatní (
StavSmenyAktualizace
, update_users_shift_schedules
, atd.): Malé, specializované skripty, které jsou vkládány do hlavních stránek a provádějí dílčí úkoly, jako je přepočet stavů nebo synchronizace dat s jinými moduly.
Komentáře
-
Martin:
09/07/2025 14:20:46
Jak se odesíláná data dají zpracovat nebo úkládat do databáze?
Napíšete mi formát
děkuji