Skocz do zawartości
pitu2514

Rejestrator czasu pracy - zliczanie czasu przepracowanego przez pracownika

Pomocna odpowiedź

1 minutę temu, Elvis napisał:

zegar nie może być przestawiany.

I dlatego użycie millis() jest niebezpieczne - zakładanie bezawaryjności całego układu (mikrokontroler, zasilanie, elektrownia, ochroniarz co mu się kawa do na urządzenie wylała, hydraulik co szukał rury i ciachnął kabelek, i tak dalej) to mrzonka.

Dlatego nie zgadzam się z twierdzeniem:

6 minut temu, Elvis napisał:

lepszym zegarem do liczenia czasu pracy było użycie millis() niż RTC

🙂

 

Udostępnij ten post


Link to post
Share on other sites

Ja już wykonywałem podobne eksperymenty - co prawda bez arduino, ale za to z większą ilością egzemplarzy. I zapewniam, że po kilku tygodniach zegary RTC oparte o tanie rezonatory kwarcowe wskazują niesamowite bzdury.

Udostępnij ten post


Link to post
Share on other sites
Anonim
8 minut temu, Elvis napisał:

Ale aby dokładnie ustalić ile czasu coś trwało (np. praca), zegar nie może być przestawiany.

Wystarczy wiedza, że został przestawiony aby odpowiednio skompensować wyniki, tak samo wystarczy inkrementowana na podstawie modułu RTC zmienna żeby sobie zrobić monotoniczność samemu, zapewniam, że będzie dokładniejsza niż millis(). Niektóre moduły mają nawet funkcję interrupt na taką okoliczność, nie służy ona jedynie do mrugania kropkami pomiędzy godzinami i minutami.

Udostępnij ten post


Link to post
Share on other sites

<paranoid mode on>Właśnie dostałem spama z propozycją kupna markowego zegarka ze zniżką... czy ONI muszą kontrolować cały Internet?<paranoid mode off>

Udostępnij ten post


Link to post
Share on other sites

To zostawmy tą dyskusję w takim stanie, że każdy ma swoje zdanie i niech sobie z nim żyje jeśli mu tak wygodnie.

Udostępnij ten post


Link to post
Share on other sites
Anonim
5 minut temu, Elvis napisał:

To zostawmy tą dyskusję w takim stanie, że każdy ma swoje zdanie i niech sobie z nim żyje jeśli mu tak wygodnie.

Myślę, że to nie zależy od czyjegoś zdania a wynika ze stanu faktycznego i zachęcam do takich eksperymentów. Moim pierwszym projektem na mikrokontrolerze był właśnie zegar napisany w bascom 8051 na procku at89c2051 kiedy jeszcze nie było arduino a z internetu mogłem skorzystać od przypadku do przypadku. Byłem nieco zdziwiony kiedy się okazało, że nie chodził dokładnie.

Udostępnij ten post


Link to post
Share on other sites

Ja też trochę eksperymentowałem, najpierw z MSP430, później LPC2138 - w sumie to ja nawet nie miałem czasu na testowanie RTC, ale na produkcji narzekali, że wskazania zegara różnią się o kilka godzin zanim urządzenie zostanie wysłane do klienta. Z tego co pamiętam kwarce używane do taktowania mikrokontrolerów mają o wiele wyższą dokładność niż używane w typowych modułach RTC, stąd było moje zaskoczenie dlaczego miałoby być inaczej. Ale niezależnie od wszystkiego, po pewnym czasie każdy, nawet drogi moduł wskazuje coś innego niż wzorzec czasu.

Udostępnij ten post


Link to post
Share on other sites
Anonim
3 minuty temu, Elvis napisał:

Ale niezależnie od wszystkiego, po pewnym czasie każdy, nawet drogi moduł wskazuje coś innego niż wzorzec czasu.

Jest to określone w dokumentacji modułu łącznie z maksymalną odchyłką w ciągu doby/roku.

Są też przedstawione metody kalibracji kwarcu.

Udostępnij ten post


Link to post
Share on other sites

Ja nie mam siły dalej dyskutować - tak jak napisałem wcześniej, zachęcam do poczytania dlaczego w Linuxie jest oddzielny zegar czasu rzeczywistego, a oddzielny monotoniczny.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Pozwolę się wtrącić bo odniosłem wrażenie, że spór idzie na różnych płaszczyznach, jakby jeden mówił o jabłkach a drugi o gruszkach, a Kolega Elvis to jakby zupełnie na innym "poziomie abstrakcji".

- RTC się nie nadaje, bo zmiany czasu itp. przeszkadzają, bo wprowadzają "błędy"? Wszystkie z tych zaburzeń jest przewidywalne i korygowalne, na potrzeby zadania zliczania czasu 

- RTC  można go zrobić na milis, kwarcu zegarkowym, DS3231, stabilizowanym temperaturowo generatorze i pewnie jeszcze innym.

- rozmawiacie o projekcie zliczania czasu pracownika. Dokładność do minuty na dobę może nie jest wystarczająca? No to może do 10 s. Po co wprowadzać "aptekarstwo" w tej dziedzinie na poziomie s lub co gorsza milisekund. Może moje wyobrażenie co do zatrudnienia jest niedostateczne, ale stawiałbym, że wystarczy "co do minuty". Jeśli damy takie założenie to każdy z wybranych RTC się nada.

Co do linuksa? Hmm można to rozwinąć? Tam jest jeden zegar RTC, taki z bateryjką na płycie głównej. Reszta "zegarów"  "programowych" to chyba wynika tylko z przeliczania danych. Jeśli linuks nie ma dostępu do ntpdate to korzysta tylko z tego "co zapisane w bios" - tak przewrotnie pisząc, a mam na myśli to co podtrzymuje bateryjka.

Jeśli weźmiemy arduino czy jakąś bibliotekę time.h z STM, to w każdej chwili mogę przeliczyć na czas (a właściwie stan licznika) względem 1 stycznia 1970, sam z tego korzystam używając np RTC w STM32F103, gdzie jest najprostszy z RTC w STM, właśnie taki monotoniczny, który tylko tyka, a resztę, łącznie z cofaniem czasu należy zrobić ręcznie, a zatem można go rozmyślnie kontrolować.

Jak działa taki DS3231? Wg mnie tam w środku jest "monotoniczny zegar" zwany licznikiem, który ze sprawną bateryjką i bez ingerencji użytkownika tylko sobie "tyka" i pomyli się o jakie "sekundy" na rok. Jaki to może mieć wpływ na wyliczenia czasu roboczogodzin?

Zatem wracając do początku "spór należy" rozstrzygnąć, bo jest INTRYGUJĄCY, dla takiego czytelnika Forbota jak ja 🙂 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
2 godziny temu, ethanak napisał:

Tak przy okazji - jaką dokładność mają owe "tanie kwarce" (nie mam zielonego pojęcia, dlatego pytam) i czy na pewno nie mieszczą się w granicach tolerancji dla tego typu pomiarów? Jaka jest ich dokładność w porównaniu do zegarów mechanicznych?

Odnośnie arduino 16MHz quartz crystal +/- 100ppm czyli około  +/- 4min na 30 dni (znaczenie ma też wiek kwarcu i temeratura). Ceramic resonator +/- 1% czyli jakieś 7 godzin na 30 dni. 

2 godziny temu, ethanak napisał:

"moduł DS cośtamcośtam się do tego nie nadaje"

w moim wypadku moduł  za 8.5zł nie spóźnił się nawet minuty przez rok użytkowania. Sprawdzałem też sekundy i wychodziło chyba 5 sekund ale nie jestem do końca pewien.

I na koniec zegarek Casio MTP-1290. Przed zakupem sprawdzałem w katalogu casio jakie są rozbieżności w czasie dla różnych modeli i ten model miał jedne z najniższych nawet w porównaniu do zegarków dwa razy droższych. W nocie jak dobrze pamiętam było 20 sekund na 3 miesiące. Zegarek mam od 3 lat i z reguły przestawiam go raz na rok przy zmianie czasu ale żeby miał więcej jak 2 minuty rozbieżności to nie zauważyłem.

 

Udostępnij ten post


Link to post
Share on other sites

Pierwsza informacja pochodzi z "Arduino internals" strona 210/211 Accuracy.

Udostępnij ten post


Link to post
Share on other sites

Słuchajcie, mam kolejny problem. Muszę dane o "odbiciach" pracowników przesłać na serwer. Znalazłem darmowy serwer firebase od googla, zakupiłem moduł ESP8266-01S(ma mi służyć za kartę sieciową). Problem w tym że na necie są praktycznie same poradniki na lepsze moduły ESP8266, które używa się już bez ArduinoUNO. Zależy mi żeby ESP8266-01S był po prostu modułem do mojego arduino. Moduł podłączyłem, działa, odpowiada(sprawdziłem to wgrywając do płytki czysty projekt, komunikowałem się z ESP8266-01S za pomocą portu szeregowego komendami AT). Czy moje myślenie jest dobre? Proszę o pomoc w poprawnym skonfigurowaniu modułu ESP8266-01S z poziomu programu a nie portu szeregowego(logowanie do AP oraz do firebase) oraz wskazówki w jaki sposób przesyłać dane oraz je odbierać z serwera.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...