tin Napisano Grudzień 2, 2020 Udostępnij Napisano Grudzień 2, 2020 Hej, stanąłem przed małą ścianą. W moim projekcie korzystam z ESP32. Potrzebuję zapisywać co godzinę dane z czujnika temperatury. Te dane mają być zapisywane przez tydzień, po czym najstarsze będą nadpisywane. Dane chce podglądać w aplikacji w Androidzie. W momencie uruchamiania aplikacji dane będą pobierane z urządzenia. Oczywiście dane nie mogą zginąć po wyłączeniu zasilania. Zacząłem od kombinowania z pamięcią EEPROM. Funkcja zapisująca musiałaby działać jak bufor cykliczny. Na ESP32 mam 512b, więc spokojnie mogę zapisać tam wszystko (na uint16_t). Mam 24x7 ->168 rekordów. Boję się jednak tego zapisu do EEPROM i tego, że wykończę tym pamięć, bo po roku mam ponad 8k rekordów a jeszcze chciałem tam inne dane magazynować. Wolałbym nie korzystać z zewnętrznych serwerów/thingspark itd. Koledzy czy ktoś podpowie jakąś lepsze rozwiązanie? Pozdrawiam, Tin Cytuj Link do komentarza Share on other sites More sharing options...
rziomber Grudzień 3, 2020 Udostępnij Grudzień 3, 2020 O dziwo ESP32 obsluguje SQLite. Baze mozna zapisac na karcie SD. https://github.com/siara-cc/esp32_arduino_sqlite3_lib 1 Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Grudzień 3, 2020 Udostępnij Grudzień 3, 2020 (edytowany) 11 godzin temu, tin napisał: Na ESP32 mam 512b Nie - na ESP32 masz dokładnie 0 bajtów EEPROM. Biblioteka EEPROM w rzeczywistości operuje na pamięci flash, czyli masz dużo mniejszą ilość cykli zapisu. 11 godzin temu, tin napisał: Koledzy czy ktoś podpowie jakąś lepsze rozwiązanie? Np. podłączyć fizyczny EEPROM do ESP32 (8k rekordów rocznie to jakieś 100 lat[1] pracy EEPROMu, a jeśli dobrze pogłówkujesz[2] to i więcej), a do trzymania innych ważnych danych użyć modułu Preferences. 3 godziny temu, rziomber napisał: O dziwo ESP32 obsluguje SQLite. Do tych zastosowań widziałbym raczej jakąś bazę typu NoSQL, EEPROM tu się bardzo dobrze nadaje, a poza tym 3 godziny temu, rziomber napisał: Baze mozna zapisac na karcie SD I tak samo można zarżnąć kartę jak wewnętrzny flash? Wiem że więcej wytrzyma, ale bez przesady... poza tym 24C32 kosztuje złotówkę na Allegro. --- [1] na podstawie datasheetów 24C32 i 24LC32A [2] Jeśli dodasz dodatkowe cztery bajty do rekordu, możesz tak skonfigurować zapis, że dana komórka będzie zapisywana nie częściej niż raz na N zapisów, gdzie N to ilość rekordów mieszczących się w EEPROM-ie. /* po namyśle */ W sumie jeśli zapisujesz czas to dodatkowe bajty nie są potrzebne, Edytowano Grudzień 3, 2020 przez ethanak 1 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!