Skocz do zawartości

Cykliczny zapis danych i przesyłanie ich do Aplikacji Android


tin

Pomocna odpowiedź

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

Link do komentarza
Share on other sites

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 przez ethanak
  • Lubię! 1
Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.