Skocz do zawartości

Aktywny System Monitorujący


Pomocna odpowiedź

1 godzinę temu, ethanak napisał:

A co mają partycje na flashu wspólnego z RAM? Totalnie mylisz pojęcia.

A przez ps_malloc o ile pamiętam możesz zaallokować tyle ile tej pamięci masz (nie wiem ile, sprawdź) ale nie więcej niż w sumie 4 MB (tylko tyle może być mapowane).

Ja to rozumiem tak - może całkowicie błędnie: mam 0,5MB pamięci DRAM i 4MB pamięci flash. Co do DRAM nie mam raczej wątpliwości. Natomiast flash nazywano PSRAM. Flash ten można różnie traktować z punktu widzenia użytkownika (systemu). Mam mechanizm, aby ten flash podzielić na partycje o różnych funkcjach (OTA, SPIFFS, pamięć zewnętrzna dostępna do aplikacji itp.). W związku z tym dla użytkownika (programu) dostępna jest wolna pamięć DRAM i część pamięci flash. Nie wiem jednak czy dla programu kompilowanego pod kontrolą ArduinoIDE te dwa rodzaje pamięci można potraktować "jednolicie". Wydaje mi się logiczne, że przez ps_malloc można zaalokować jedynie wolną flash pamięć dostępną w ramach jednej partycji (jako pamięć zewnętrzną dostępną dla aplikacji). Znowu: popraw mnie, jeśli się mylę.  

Link do komentarza
Share on other sites

2 godziny temu, Szern napisał:

Natomiast flash nazywano PSRAM

Bzdura - gdzie to wyczytałeś i kto to tak nazywał?

Flash to flash (taki jakby eprom) a PSRAM to RAM. Owszem, podpięty do tego samego interfejsu SPI co flash, ale to zupełnie coś innego.

Z reguły moduły z kamerami są wyposażone w jakiś PSRAM. Oprócz nich moduły WROVER, mam też płytkę S3 z 8 MB PSRAM (na razie leży i czeka).

Link do komentarza
Share on other sites

18 minut temu, ethanak napisał:

Flash to flash (taki jakby eprom) a PSRAM to RAM.

Bardzoś to Waść misternie wykalkulował.

Link do komentarza
Share on other sites

 

Dobra powalczmy z tą pamięcią w ESP32-CAM.

1. Na pewno mamy 520 KB SRAM. Jest to pamięć operacyjna, ulotna, a więc najprawdopodobniej używana jedynie jako pamięć robocza dla programu. Można w niej umieścić bufor ramki ze zdjęciem, ale jedynie w przypadku niskiej rozdzielczości zdjęcia QVGA. O ile dobrze sprawdzam, to program po uruchomieniu (ale bez rezerwacji bufora ramki) raportuje ok. 120 004 bajtów wolnych.

esp32_datasheet_en.pdf

2. Pamięć PSRAM, jak specyfikacja głosi jest jej 4MB. Można w niej umieścić bufor ramki. O ile dobrze sprawdzam, program  po uruchomieniu (ale bez rezerwacji bufora ramki) raportuje ok. 2 087 883 bajtów wolnych.

esp32-cam-board-specs.pdf

3. 448 KB ROM. Jak podejrzewam (ale nie wiem), jest to firmware sztywno zaszyty w mikrokontrolerku.

4. Specyfikacja wspomina enigmatycznie że "QSPI supports multiple flash/SRAM chips". To tyle. Doczytałem, że jeśli chodzi o flash, to można wykorzystać go w liczbie 512 bajtów. Jeśli to prawda, to z punktu widzenia bufora ramki, w kontekście którego pisałem o pamięci, jest całkowicie pomijalny.

ESP32 Flash Memory

Zalecana opcja do ustawienia w ArduinoIDE wygląda tak: "Huge APP (3MB No OTA/1MB SPIFFS)." Wydaje się więc, że chodzi o jakąś pamięć, która ma w sumie 4 MB więc wielkość wydaje się pasować do rozmiaru PSRAM i tylko do niego. Można ją zagospodarować w różny sposób, dziląc na coś w rodzaju partycji (na pewno miejsce dla aplikacji, OTA i Flash dostępny przez interfejs SPI). Chyba, że pominąłem jakąś czteromegabajtową pamięć, o której nie wiem. SPI Flash File System (SPIFFS) ma w tej opcji 1 MB i wydaje się, że został on wydzielony z PSRAM, ale nie wiem, tylko snuję przypuszczenia. W specyfikacji jedyna informacja na ten temat to SPI Flash Default 32Mbit.

Pogrzebię, potestuję, jak do czegoś dojdę, napiszę. Chętnie poznam jakiekolwiek konkretniejsze informacje na temat tych pamięci, z tym, że flash to flash już wiem.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

4 MB to tyle masz flasha, a 3MB to ustawiona maksymalna wielkość kodu. A że przypadkiem masz też 4 MB PSRAM... to umówmy się że to przypadek. Mój WROVER ma na przykład 8 MB PSRAM i 16 MB flasha... i jedno z drugim nie ma nic wspólnego.

SPI jest na flashu (bo jak inaczej?). Przecież zawartość PSRAM ginie po wyłączeniu zasilania więc jak sobie wybrażasz przechowywanie danych?

Aha, nie "coś w rodzaju" partycji tylko partycje. Nie rozumiem skąd te cośwtymrodzaje... na dysku w kompie też masz różne partycje, prawda?

Link do komentarza
Share on other sites

Chodzi mi pewna rzecz po głowie: powiedzmy że chciałbym mieć swój serwer mqtt ale na zmiennym IP na przykład z sieci GSM. Są też darmowe brokery ale z ograniczeniami co do transferu lub mają limit czasu połączenia. Czy miałoby sens wysyłać na ten darmowy serwer swój aktualny adres(ip mojego serwera), celem aby klienci mogli się do tego prywatnego podłączyć? 

Link do komentarza
Share on other sites

12 minut temu, _LM_ napisał:

Chodzi mi pewna rzecz po głowie: powiedzmy że chciałbym mieć swój serwer mqtt ale na zmiennym IP na przykład z sieci GSM. Są też darmowe brokery ale z ograniczeniami co do transferu lub mają limit czasu połączenia. Czy miałoby sens wysyłać na ten darmowy serwer swój aktualny adres(ip mojego serwera), celem aby klienci mogli się do tego prywatnego podłączyć? 

Nie wydaje mi się, żeby miało to głębszy sens. Brooker powinien być pewny, cały czas dostępny i (w zależności od tego co przesyłasz) bezpieczny. Jeśli przesyłasz duże komunikaty, to szybki. Wiele zależy od tego, do czego to ma służyć. Inne rozwiązanie wybrałbym do monitoringu wilgotności gleby w ogródku, a inne do komercyjnego monitoringu mienia.

Zmienny ip nie bardzo do tego pasuje. Jeśli to eksperyment, to ujdzie, jeśli produkcyjny brooker, to ja bym nie ryzykował - wkład pracy IMHO nieadekwatny do efektu. Oczywiście da się, podniesiesz QOS i jakoś to będzie działać.

Istnieją takie rozwiązania jak Oracle Cloud, gdzie pewnym wysiłkiem możesz postawić własnego brookera praktyczne za darmo. Są też takie cloudy jak Tikitalik, gdzie miesięczny koszt utrzymania będzie na poziomie 11 zł.

Link do komentarza
Share on other sites

9 minut temu, Szern napisał:

Są też takie cloudy jak Tikitalik, gdzie miesięczny koszt utrzymania będzie na poziomie 11 zł.

To właściwie zamyka moje rozważania w kwestii kombinatoryki. Przymierzam się do projektu gdzie będzie ponad setka klientów, dane publikowane to kilkadziesiąt bajtów co parę minut z każdego klienta

Link do komentarza
Share on other sites

1 minutę temu, _LM_ napisał:

To właściwie zamyka moje rozważania w kwestii kombinatoryki. Przymierzam się do projektu gdzie będzie ponad setka klientów, dane publikowane to kilkadziesiąt bajtów co parę minut z każdego klienta

Potrafisz postawć debianowy serwer LEMP?

Link do komentarza
Share on other sites

Nie, lub jeszcze nie. Technologie webowe to nie jest coś co znam. Póki co robię rozpoznanie, urządzenie o którym piszę mam podpięte do sieci lokalnej z brokerem na rpi

Link do komentarza
Share on other sites

Przed chwilą, _LM_ napisał:

Nie, lub jeszcze nie. Technologie webowe to nie jest coś co znam. Póki co robię rozpoznanie, urządzenie o którym piszę mam podpięte do sieci lokalnej z brokerem na rpi

To w razie potrzeby skontaktuj się ze mną, pomogę i postawię Ci taki serwer bezkosztowo. To nie jest bardzo dużo roboty.

  • Lubię! 1
Link do komentarza
Share on other sites

Zebrałem się w końcu, aby zrobić dokumentację dla połączenia ESP32-CAM przesyłającego obraz protokołem MQTT połączeniem szyfrowanym do zdalnego serwera: ESP32-streaming-by-MQTT-to-webserver

Poza tym, mam trochę przemyśleń do kolejnej wersji systemu monitorującego.

Prawdopodobnie zrezygnuję z powiadamiania SMS-ami. Odbywa się na kontrolerze w miejscu monitorowania i po pierwsze mocno spowalnia działanie całego systemu, po drugie w razie błędu w oprogramowaniu jest trudno naprawialne zdalnie i spamuje telefony, po trzecie, w większości wypadków generuje dodatkowe koszty. Zastąpię to powiadamianiem e-mail, które działa z powodzeniem, opiera się na rozwiązaniu znajdującym się na serwerze, więc jest łatwo "regulowalne", a niemal każdy telefon ma możliwość odbioru emaili.

PiR-y nie zdały egzaminu. Przetestuję czujnik magnetooptyczny, ale do zastosowania w mniejszym stopniu. Na PiR-ach, między innymi ze względu na niską cenę robiłem redundancję, pokrywając strefy dwoma zakresami czujek (to co zaoszczędziłem na czujkach włożyłem w kable zasilające...). Tutaj wykorzystałbym dwa, maksymalnie trzy czujniki w newralgicznych strefach, jako alternatywne zabezpieczenie dublujące analizę obrazu, która jednak będzie jeszcze testowana.

Chyba zrezygnuję z centrali obsługiwanej oddzielnym mikrokontrolerem. Włączanie syreny (jednej) spróbuję zrobić z jednego z ESP32 obsługujących kamery.

W ogóle chyba najbardziej sprawdziły się właśnie ESP32-CAM, a teraz potrafię obsłużyć je i wykorzystać lepiej niż w zeszłym roku. Prawdopodobnie dostaną obiektywy szerokokątne.

Pozostaje problem resetowania poszczególnych ESP32-CAM w razie zawieszenia. Do tej pory robiłem to za pomocą przekaźnika sterowanego przez centralę. Nie mam zupełnie pomysłu jak to rozwiązać inaczej, a bez takiej możliwości znacznie wzrasta zawodność całego systemu.

Zupełnie z innej beczki - spróbuję przetestować czujnik Halla w ESP32. Nie dla potrzeb alarmu, ale jeśli postawię obok kamery wiatraczek z magnesami, to może, po kalibracji, uzyskam prymitywny czujnik siły wiatru. A może wymyślam bzdury. 🙂

Link do komentarza
Share on other sites

3 minuty temu, Szern napisał:

Prawdopodobnie zrezygnuję z powiadamiania SMS-ami

 

3 minuty temu, Szern napisał:

w większości wypadków generuje dodatkowe koszty

Może zamiast tego powiadomienia pusch w aplikacji nadzorującej lub powiadomienia do discorda/telegram? 

Link do komentarza
Share on other sites

15 minut temu, _LM_ napisał:

Może zamiast tego powiadomienia pusch w aplikacji nadzorującej lub powiadomienia do discorda/telegram? 

Tylko ja kompletnie nie używam żadnych komunikatorów, natomiast alert dla konkretnego adresu email w Blackberry mogę skonfigurować dowolnie.

Link do komentarza
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...

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.