Hej.
Potrzebuję pomysł na układ/moduł do odczytu wodomierza, a dokładniej miało by to działać tak:
1. zbieranie impulsów
- wodomierz podaje impuls co 1 litr wody (kontaktron)
2. zapis danych do pamięci nieulotnej
- musi być możliwość korygowania tego zapisu
* ten zapis to będzie faktyczny stan licznika
3. odczyt modułu co minutę poprzez RS232/RS485
- odczyt zużytych litrów w ciągu minuty
- odczyt stanu licznika
Czy dobrze kombinuję?
- dowolny (prawie) uC ze sprzętowym UARTem
- zbieranie impulsów na pinie INT0/1
A teraz w sumie najważniejsze pytanie, jak, gdzie, na czym zapisać dane aby ich nie stracić?
Dane mają być dość często zapisywane więc to "coś" nie może się szybko zużyć
Z góry wielkie dzięki za pomoc.
Moduł do odczytu wodomierza
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
- Pikczu
- Posty: 390
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Moduł do odczytu wodomierza
Ja bym to zrobił tak: czujnik hala w małej obudowie np sot23(zamiast kontaktronu nie będzie drgania styków).
RS 485 tak jak piszesz a do wyświetlania może Think speak i wykresy na stronie???
Albo zapis na SD.
RS 485 tak jak piszesz a do wyświetlania może Think speak i wykresy na stronie???
Albo zapis na SD.
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Moduł do odczytu wodomierza
W samochodach jest Eeprom i liczy do milionów kilometrów
Używa się tam Wear Leveling czyli zapis do komórek Eeprom jest rozłożony na większą ilość komórek.
Przykładowo jedna komórka ma możliwość 100 tyś razy być zapisana. Biorąc dziesięć komórek możesz zapisywać już milion razy...
Nie wiem do ilu potrzebujesz liczyć, ale jak Ci wystarczy 65535 litrów to poniżej dzielę się gotowymi funkcjami by BARTek
Jak Ci to nie wystarczy to możesz to sobie analogicznie rozszerzyć do czterech bajtów i zapisywać 4294967295 litrów
Proszę. Funkcje same zapisują i same odczytują wartości a żywotnośc eepromu zwiększona o 10x
Używa się tam Wear Leveling czyli zapis do komórek Eeprom jest rozłożony na większą ilość komórek.
Przykładowo jedna komórka ma możliwość 100 tyś razy być zapisana. Biorąc dziesięć komórek możesz zapisywać już milion razy...
Nie wiem do ilu potrzebujesz liczyć, ale jak Ci wystarczy 65535 litrów to poniżej dzielę się gotowymi funkcjami by BARTek
Jak Ci to nie wystarczy to możesz to sobie analogicznie rozszerzyć do czterech bajtów i zapisywać 4294967295 litrów
Proszę. Funkcje same zapisują i same odczytują wartości a żywotnośc eepromu zwiększona o 10x
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Sub Clear_buff()
- 'sub zajmuje się pamięcią EEPROM. Zapisze bufor Wear Leveling czyli go wyzeruje
- Fn = 10.
- Do
- Numer_strony_ee(fn) = &HFFFF
- Decr Fn
- Loop Until Fn = 0
- End Sub
- Sub Write_numer(byref Mem_it As Word)
- Fn = 1
- While Fn < 10
- If Numer_strony_ee(fn) = &HFFFF Then
- Numer_strony_ee(fn) = Mem_it
- Exit Sub
- End If
- Incr Fn
- Wend
- Call Clear_buff()
- Numer_strony_ee(1) = Mem_it
- End Sub
- Function Read_numer() As Word
- Helpw = &HFFFF
- For Fn = 1 To 10
- If Numer_strony_ee(fn) <> &HFFFF Then 'po kolei sprawdzaj czy napotkasz FFFF
- Helpw = Numer_strony_ee(fn) 'zapisuj te które sa różne of FFFF
- Else 'jeśli napotkał FFFF to poprzedni to ostatni zapis
- Read_numer = Helpw
- Exit Function
- End If
- Next
- End Function
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Moduł do odczytu wodomierza
Licznik już mam. Musiałem wymienić ponieważ kończyła się legalizacja więc nowy kupiłem już kontaktronemPikczu pisze:Ja bym to zrobił tak: czujnik hala w małej obudowie np sot23(zamiast kontaktronu nie będzie drgania styków).
Tu jeszcze się zastanawiam... Dane będą odczytywane po RS485 lub poprzez ESP8266 posyłanie do serwera domowego.Pikczu pisze:RS 485 tak jak piszesz
Dane z wodomierza będą odczytywane przez NetTempPikczu pisze:do wyświetlania może Think speak i wykresy na stronie???
Zapis wszystkiego będzie na HDD serwera, ale tu mi chodzi o coś takiego abym miał "lustro" elektroniczne przy liczniku-co co na liczniku to i w module. Stan licznika będzie normalnie na liczniku, ale i w module w wersji elektronicznej. Nawet jak by coś się stało na serwerze czy coś to przy liczniku zawsze będą aktualne dane.Pikczu pisze:Albo zapis na SD.
A ja żyłem w przekonaniu, że eeprom nie nadaje się do takich rzeczy. Tak to jest jak człowiek się nie zna i naczyta się na forachniveasoft pisze:W samochodach jest Eeprom i liczy do milionów kilometrów
Używa się tam Wear Leveling czyli zapis do komórek Eeprom jest rozłożony na większą ilość komórek.
Przykładowo jedna komórka ma możliwość 100 tyś razy być zapisana. Biorąc dziesięć komórek możesz zapisywać już milion razy...
Licznik ma legalizację na 5 lat więc co bym nie robił to nie zużyję 65535 litrów wody (1000 litrów na miesiąc) w tym czasieniveasoft pisze:Nie wiem do ilu potrzebujesz liczyć, ale jak Ci wystarczy 65535 litrów to poniżej dzielę się gotowymi funkcjami by BARTek
Dzięki wielkie za kod. Ja tu na razie jestem na etapie obmyślania całości, a już mam gotowcaniveasoft pisze:Proszę. Funkcje same zapisują i same odczytują wartości a żywotnośc eepromu zwiększona o 10x