Skocz do zawartości

Aktualizacja RTC1307 via internet


Pomocna odpowiedź

Napisano

Jak w temacie, jest możliwość aktualizacji czasu i daty przez internet?

Czytałem, że RTC1307 jest niedokładny, ale 15min w tydzień pracy to chyba coś nie halo...

Mam w kodzie linijkę aktualizującą czas przy każdym wgraniu szkicu, ale żeby ustawiać czas nie będę co kilka dni wgrywał na nowo sketchu.

Czy taki błąd to norma?

Da się pobierać aktualny czas i datę z netu? Mam ethernet shield.

Oczywiście, że można aktualizować czas z wykorzystaniem sieci. Z tego korzystają dziś wszystkie komputery osobiste, serwery itd. Do tego celu stworzono protokół NTP (network time protocol). Jak z implementacją tego protokołu na Arduino nie wiem, ale wiem że nie ma problemu w naszym kraju z synchronizacją czasu na podstawie wzorca radiowego DCF-77. Sam to praktycznie przetestowałem w połączeniu z DS1307. Odbiornik DCF-77 to taniocha ok. 30 zł chociaż trudno kupić. Ja kupiłem w elty.pl Program (dla UNO) napisać musisz sobie sam - wciągające doświadczenie.

Pozdrawiam,

ethanak, niestety jeszcze pewnie długo tak pozostanie 😐 , wykorzystuję narzędzia do wykonania zadania, często nie rozumiem jak działają, za często, ale zadanie wykonane.

Jeszcze kilka miesięcy temu nie podjął bym się takiego zadania, nie miałem o tym żadnego pojęcia. Ale dzięki Forbotowi i takim użytkownikom forum jak Ty, potrafię już coś tam sklecić....

Nie musicie mnie sprowadzać na ziemię za każdym razem 😉

Belferek, ale internet jest zdecydowanie częściej niż aktualizacja szkicu...

Poza tym za ostatnie 2 lata, internetu nie było wtedy kiedy nie było prądu, światłowód rządzi 😃

Poza tym za ostatnie 2 lata, internetu nie było wtedy kiedy nie było prądu, światłowód rządz

Co nie znaczy, że to co jest na końcu tego światłowodu działa na wodę 🙂. Pisząc o DCF-77 chciałem wskazać alternatywę. Może warto mieć rozwiązanie "aktualnego czasu" niezależne od internetu. Pewnie za niedługo będziesz projektował urządzenia, które będą poza zasięgiem sieci i skąd weźmiesz czas? Poza tym coraz głośniej mówi się o zagrożeniach ukierunkowanych na szeroko rozumiane urządzenia IoT ze strony sieci. Nad tym też warto się zastanowić, czy jakiś zdolny człowiek za pomocą sieci nie ..... "odkręci" Ci wody w ogrodzie 🙂. Podłączając system do sieci musisz sobie zdawać sprawę z tego, że protokoły sieciowe TCP i UDP, które są podstawowymi protokołami warstwy transportowej to 2 x 65536 "furtek" na świat! Słyszałeś o antywirusie, firewallu dla Arduino? Urządzenia IoT bazujące na mikrokontrolerach są coraz bardziej popularne co widać po zainteresowaniu Arduino, RPi ....Na 1000% jestem przekonany, że już "pasjonaci" pracują nad psikusami na te platformy.

Jasne, że masz rację, też się zastanawiałem czy podłączanie bramy to dobry pomysł 😋 . Jako, że do Elty mam rzut kamieniem, a i właściciel spoko gościu, to pewnie kupię ww.moduł dla poćwiczenia.

Jednak, jak już tak straszysz 😅 to miej na uwadze telefon w Twojej kieszeni i jego możliwości... ja już co nieco wiem na ten temat 🙁

Dlatego ja prawie nie korzystam z internetu w telefonie, a z bankowości, poczty, jakieś gadżety mnie nie interesują. Telefon ma "dzwonić" -) i ew. zrobić zdjęcie chociaż tu korzystam z aparatu cyfrowego, a ponieważ mam w telefonie Windowsa liczę na profesjonalistów z MS i ich pracę.

Podłączając system do sieci musisz sobie zdawać sprawę z tego, że protokoły sieciowe TCP i UDP, które są podstawowymi protokołami warstwy transportowej to 2 x 65536 "furtek" na świat! Słyszałeś o antywirusie, firewallu
To co napisałeś to tekst rodem z onetu. Firewalle są żeby blokować ruch którego nie chcemy, jak urządzenie które sami zbudowaliśmy ma robić coś dodatkowego czego nie chcieliśmy? Jak sobie wyobrażasz antywirusa na Arduino?
Jak sobie wyobrażasz antywirusa na Arduino?

Oczywiście, że trudno sobie wyobrazić - to było moje pytanie do Soyera.

Firewalle są żeby blokować ruch którego nie chcemy, jak urządzenie które sami zbudowaliśmy ma robić coś dodatkowego czego nie chcieliśmy?

Tylko, którego nie chcemy? Generalnie firewall nadzoruje ruch sieciowy na portach TCP i UDP. Nikt nie wie, na jakim porcie pojawi się zagrożenie. Z tego powodu programy antywirusowe wyposażone są w metody heurystyczne i sprawdzają pliki pod kątem jeszcze nie znanych zagrożeń.

jak urządzenie które sami zbudowaliśmy ma robić coś dodatkowego czego nie chcieliśmy

A to już dla mnie jest jak najbardziej realne i do wyobrażenia. Powiedz mi, kto aktualizując np. bootloader Arduino czy firmware ESP8266+NodeMCU analizuje kod źródłowy tego oprogramowania. Moim zdaniem wystarczy je zainfekować złośliwym kodem i po zawodach. Jest to o tyle realne, że także importując do swoich programów biblioteki zewnętrzne (innych autorów) wbrew pozorom wielu użytkowników nie wnika co się znajduje w tych plikah H i CPP. Jestem przekonany, że "wystawiając na widok publiczny" za pomocą sieci swoje urządzenie należy mieć tego świadomość. Już wielu użytkowników np. telefonów komórkowych przekonało się, że w sieci także "czai się zło". No ale to jest moje (nie onetu jak Ci się wydaje) zdanie.

Belferek, tylko czym innym jest telefon gdzie użytkownik instaluje co chce, a co innego ESP, Atmega czy jakiś STM. Zdecydowana większość zła na telefonach to po prostu instalowanie apek spoza sklepu. A jeśli chodzi i IoT, to jeżeli ktoś jest w stanie wgrać spreparowany firmware, to dlaczego nie mógłby w nim wyłączyć firewalla? Ten problem rozwiązuje się podpisem cyfrowym.

Jeżeli ktoś nie umie sprawdzić kodu załączanych bibliotek to ciężko będzie mu ogarnąć firewalla, ba skąd ma wiedzieć że kod firewalla jest godny zaufania?

instalowanie apek spoza sklepu

I w sklepie znajdziesz aplikacje o wątpliwej reputacji. Czyli praktycznie instalowanie oprogramowania innego niż "własnej produkcji" powoduje, że w pewnym sensie "tracimy kontrolę" nad naszym urządzeniem. To, że jakaś apka, biblioteka lub firmware ląduje w sklepie bądź na powszechnie znanym githubie wcale nie znaczy, ze jest "godna zaufania". Prawie 100% pewności można by mieć gdyby każdy bajt w pamięci procesora był owocem pracy autora - konstruktora urządzenie, a tak pewności nie ma. Oczywiście błędy w programie także mogą wywoływać nieoczekiwane reakcje ze strony systemu, luki w tym systemie - słynie z tego MS.

Jeżeli ktoś nie umie sprawdzić kodu załączanych bibliotek to ciężko będzie mu ogarnąć firewalla, ba skąd ma wiedzieć że kod firewalla jest godny zaufania?

No i właśnie potwierdzasz, że istnieje realne niebezpieczeństwo dla elektroniki (nawet Arduino podłączone do sieci) ze strony sieci. No ale to dyskusja akademicka i mogłaby się niepotrzebnie rozciągnąć na kilkadziesiąt postów, a problem był inny aktualizacja czasu RTC przez sieć.

Trochę szkoda jeśli temat bezpieczeństwa sieci się już kończy. Może to i nie dotyczy bezpośrednio aktualizacji czasu, ale temat jest bardzo ciekawy i na czasie.

Jak chodzi o Arduino to dobrym zabezpieczeniem są same ograniczenia platformy - po prostu niewiele hacker mógłby zrobić. Ale w ogólnie pojętym IoT bezpieczeństwo to bardzo ważny temat. A im bardziej skomplikowane oprogramowanie, tym bardzie podatne na ataki.

Natomiast co do kodu bootloaderów - tym bym się nie przejmował w kontekście złośliwego kodu. Wbrew pozorom wiele osób czyta ten kod i analizuje, więc w przypadku open-source przemycenie furtki jest raczej trudne.

Problemem są za to błędy w kodzie - jak chodziażby słynne przepełnienia bufora. Kod może działać poprawnie, a jego autor napisał go najlepiej jak potrafił, ale potencjalny hacker może wykrzystać lukę w zabezpieczeniach.

Jak napisałem wcześniej - Arduino jest tak proste, że na wiele ataków odporne. Co ma swoje zalety.

Temat bezpieczeństwa w sieci będzie tylko zyskiwał na znaczeniu gdyż ta "wstrętna pajęczyna" ciągle się rozrasta i rośnie w siłę - jak choroba. Sam korzystam z sieci lecz przeraża mnie świadomość tego, że większość osób wokół mnie korzysta z jej usług w sposób bezkrytyczny. Ciarki mnie przechodzą na samą myśl, że jesteśmy wręcz otoczeni atomowymi elektrowniami pełnymi elektroniki i mikrokontrolerów, drony latają jak chcą i gdzie chcą, a VW "fałszuje" oprogramowanie komputera samochodowego w swych produktach. Wiem jak niewiele trzeba by zrobić głupi błąd w programie, który nawet autorowi trudno zlokalizować 🙂. A jakie mogą byc tego konsekwencje? Wracając na ziemię uważam, że jeśli chodzi o IoT to przyszłość jest w odpowiednio dostosowanych rozwiązaniach typu RPi. Z jednej strony OS w tym mikrokomputerze jest balastem, jednak z drugiej Raspbian bazuje na Debianie, który jest stabilnym i godnym zaufania systemem. Dzięki OS i oprogramowaniu (chociażby iptables) można zapanować nad interfejsami sieciowymi. Wracając do tematu aktualizacji czasu zegara RTC będącego częścią urządzenia z Arduino ja bym rozważył instalację "zaufanego własnego serwera", który byłby centralą dla podłączonych do niego urządzeń domowego IoT typu Arduino z RTC i LAN. Nie umieszczałbym swoich IoT w sieci publicznej jaką jest internet lecz w dobrze zabezpieczonej sieci prywatnej. Ten czas nie musi być synchronizowany przez LAN. Można do tego celu wykorzystać inne medium transmisyjne, a nawet opracować własny protokół komunikacyjny na ten cel co nie powinno być problemem tym bardziej, że przesyłana będzie tylko data i czas.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...