Szern 23 marca Autor tematu Udostępnij 23 marca 22 minuty temu, ethanak napisał: Nie znam wersji Arduino na Pico, ale jak na mój gust to masz dwa wyjścia: Pożegnać się z Arduino IDE i zacząć pisać w picowym SDK (bardzo fajnie się pisze w C, w C++ nie próbowałem) Pożegnać się z Pico i użyć ESP32 (wersja Arduino na ESP32 pozwala na wykorzystanie 99.9% możliwości ESP, wszystko co potrafi FreeRTOS z modyfikacją dla wielu rdzeni) Do wyboru... Ponieważ uczę się pisać w C w SDK Pico i idzie mi to jak po grudzie (ale w końcu to przejdę), to chcę napisać oprogramowanie dla ESP32 w Arduino, a do Pico wrócić później, jak moje umiejętności z SDK osiągną poziom minimum. Cytuj Link do komentarza Share on other sites More sharing options...
matsobdev 23 marca Udostępnij 23 marca To tylko wolne myśli, ale pewnie dałoby się wykorzystać np. Bluetooth zamiast podczerwieni, Low Energy i rozgłaszania, a po drugiej stronie odczyt RSSI. Bardziej pewnie dla zastosowań wewnętrznych, ale jakiś pomysł jest. Sprawdzić jak to się zachowuje na dworze. Najlepiej jak będzie się na miejscu monitorować tło, a potem wejść pomiędzy nadajnik(i) a odbiornik(i). Cytuj Link do komentarza Share on other sites More sharing options...
Santiago 24 marca Udostępnij 24 marca Czy system monitoringu jednak zdał egzamin ? Czy ochronił mienie 2 Cytuj Link do komentarza Share on other sites More sharing options...
Szern 25 marca Autor tematu Udostępnij 25 marca Dnia 24.03.2024 o 06:53, Santiago napisał: Czy system monitoringu jednak zdał egzamin ? Czy ochronił mienie Powiadomił mnie SMS-em, kiedy sąsiad pojawił się, nie wiedząc, ze mnie nie ma. Pokazał sąsiada i prawdopodobnie spłoszył go syreną (nie jestem pewien czy jeszcze wtedy syreny działały, jeszcze z nim nie rozmawiałem). Więcej interwencji (poza ptakami i zwierzętami) na razie nie było. Podgląd z kamer pozwalał mi spać spokojnie (byłem niespokojny po ubiegłorocznym włamie). Więc tak, ogólna funkcjonalność się sprawdziła, muszę dopracować detale. Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Szern 26 marca Autor tematu Udostępnij 26 marca Zabawna sprawa, po kilku dniach kamery ponownie działają. 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Santiago 26 marca Udostępnij 26 marca Chyba cos z oprogramowaniem Cytuj Link do komentarza Share on other sites More sharing options...
Szern 26 marca Autor tematu Udostępnij 26 marca 1 minutę temu, Santiago napisał: Chyba cos z oprogramowaniem Raczej nie. Wszystkie błędy oprogramowania chyba już znam. Mimo wszystko stawiam na przekaźnik. Ewentualnie na połączenie na przekaźniku - mocno tam kombinowałem ze złączami i nie dałbym na nie gwarancji. Z powodu błędu oprogramowania mniej więcej co pięćdziesiąt minut zasilanie kamer jest wyłączane na chwile (watchdog, przekaźniki). Po takiej akcji czasami któraś z kamer nie wstaje, zwykle do kolejnego "resetu" zasilania. W każdym razie dużo do poprawy, ale... działa! Cytuj Link do komentarza Share on other sites More sharing options...
Szern 27 marca Autor tematu Udostępnij 27 marca Poczytałem sobie o internecie rzeczy. Przy okazji dowiedziałem się, że przesyłanie zdjęć jest tam możliwe, ale niewskazane. Spróbuję więc zaimplementować to na esp32. Cudów się nie spodziewam, traktuję to bardziej edukacyjnie. Na razie postawiłem sobie na Debianie Mosquitto MQTT Broker. Teraz dorabiam do niego skromny interfejs PHP. W następnym kroku spróbuję skomunikować się z brookerem z poziomu ESP32-CAM i sprawdzić jak to będzie działać z obrazem. Instrukcje na których oparłem się instalując brookera: jak to zrobić jak to poprawić czym to testować Nawet jeśli przesyłanie obrazu nie będzie efektywne, to użyję MQTT do przesyłania sygnałów (np. z czujek. Obecnie robię to przy pomocy protokołu ftp, ale mqtt wydaje się do tego bardziej właściwy. Cytuj Link do komentarza Share on other sites More sharing options...
Szern 30 marca Autor tematu Udostępnij 30 marca Udało się. Patrzę w kamerkę ESP32-CAM i moje zdjęcia zapisują się na moim serwerze w sieci za pośrednictwem protokołu mqtt. Brooker działa dobrze, napisałem prosty skypt w php (wywoływany w cronie co minutę), który zapisuje dane z tematu mqtt do plików jpg. #!/usr/bin/php -q <?php use Mosquitto\Client; set_time_limit(60); $start = date("H"); while ($start == date("H")) { $mid = 0; $username = "nazwa_użytkownika_mqtt"; $password = "hasło_użytkownika_mqtt"; $host = "localhost"; $port = 1883; $keepalive = 60; $interface = null; $topic = "kam3"; $qos = 0; $client = new Mosquitto\Client("PHP"); $client->setCredentials($username, $password); $client->onMessage(function($message) use ($client) { $decodedData = base64_decode($message->payload); file_put_contents('/home/www/asm/kam3/' . date("YmdHis") . ".jpg", $decodedData); }); $client->connect($host, $port, $keepalive, $interface); $client->subscribe($topic, $qos); $client->loopForever(); } ?> Użyłem tej biblioteki. Po drugiej stronie mam prosty program zainstalowany na moim ulubionym ESP32-CAM. To jeszcze siermiężny szkic, więc nie wrzucam go tu w całości, po dopracowaniu wrzucę na githuba. Oczywiście robię to w arduinoIDE. Połączenie z serwerem jest szyfrowane SSL przy pomocy <WiFiClientSecure.h>, klientem mqtt jest PubSubClient, a obrazy są pobierane z kamery i jako surowe dane (base64) przesyłane wiadomościami mqtt do brookera, z którego pobiera je powyższy skrypt i zapisuje do pliku na serwerze. W porównaniu z FTP, którego używałem do tego celu dotychczas, działa to z prędkością światła. Kolejne kroki: sprawdzenie czy certyfikaty ssl działają prawidłowo (nie rozumiem jeszcze "client.setInsecure(); // skip verification" stąd), sprawdzenie czy można to zrobić dla rozdzielczości wyższych niż QVGA, zrozumienie do końca co to jest i jak działa PSRAM w ESP32, stworzenie streama z zapisanych obrazków, albo bezpośrednio z tematu mqtt. Gdzie chcę dojść na końcu? Chcę aby obrazy z kamerki były automatycznie analizowane na serwerze i w razie pojawienia się intruzów serwer informował mnie o tym mailowo. Będę informował na bieżąco. Jak zwykle: wszelkie sugestie mile widziane. Cytuj Link do komentarza Share on other sites More sharing options...
Szern 2 kwietnia Autor tematu Udostępnij 2 kwietnia Dnia 30.03.2024 o 09:26, Szern napisał: sprawdzenie czy certyfikaty ssl działają prawidłowo (nie rozumiem jeszcze "client.setInsecure(); // skip verification" stąd), sprawdzenie czy można to zrobić dla rozdzielczości wyższych niż QVGA, zrozumienie do końca co to jest i jak działa PSRAM w ESP32, stworzenie streama z zapisanych obrazków, albo bezpośrednio z tematu mqtt. Certyfikaty SSL działają prawidłowo, połączenie z moim serwerem jest szyfrowane. Cytat [ 6955][V][ssl_client.cpp:68] start_ssl_client(): Starting socket [ 7003][V][ssl_client.cpp:146] start_ssl_client(): Seeding the random number generator [ 7004][V][ssl_client.cpp:155] start_ssl_client(): Setting up the SSL/TLS structure... [ 7009][V][ssl_client.cpp:178] start_ssl_client(): Loading CA cert [ 7019][V][ssl_client.cpp:254] start_ssl_client(): Setting hostname for TLS session... [ 7022][V][ssl_client.cpp:269] start_ssl_client(): Performing the SSL/TLS handshake... [ 7909][V][ssl_client.cpp:290] start_ssl_client(): Verifying peer X.509 certificate... [ 7909][V][ssl_client.cpp:298] start_ssl_client(): Certificate verified. [ 7912][V][ssl_client.cpp:313] start_ssl_client(): Free internal heap after TLS 162932 connected! connecting to mqtt broker...[ 7931][V][ssl_client.cpp:369] send_ssl_data(): Writing HTTP request with 44 bytes... connected! Można to zrobić dla wyższych rozdzielczości, ale tylko QVGA działa z normalną pamięcią (512KB SRAM), a wyższe rozdzielczości wymagają umieszczenia bufora w PSRAM (3M). PSRAM to zewnętrzna, wolniejsza pamięć. Można ją wykorzystywać albo nie. Na razie skupię się na najniższej rozdzielczości z buforem w wewnętrznej pamięci. Cytuj Link do komentarza Share on other sites More sharing options...
ethanak 2 kwietnia Udostępnij 2 kwietnia W Arduino IDE możesz wykorzystać PSRAM (4 MB) nie zmieniając praktycznie nic w kodzie, tyle że zamiast malloc dajesz ps_malloc. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Szern 3 kwietnia Autor tematu Udostępnij 3 kwietnia 16 godzin temu, ethanak napisał: W Arduino IDE możesz wykorzystać PSRAM (4 MB) nie zmieniając praktycznie nic w kodzie, tyle że zamiast malloc dajesz ps_malloc. W tej chwili deklaruję bezpośrednio w konfiguracji czy kamera ma używać PSRAM: camera_config.fb_location = CAMERA_FB_IN_DRAM; // CAMERA_FB_IN_DRAM || CAMERA_FB_IN_PSRAM; O ile się orientuję, realnie zostają do wykorzystania na bufor ramki 3 MB PSRAM (Partition Scheme: "Huge APP (3MB No OTA/1MB SPIFFS). Cytuj Link do komentarza Share on other sites More sharing options...
ethanak 3 kwietnia Udostępnij 3 kwietnia Partition scheme jest to układ partycji na flashu i nie ma nic wspólnego z pamięcią RAM (jakąkolwiek). Podobnie jak zmieniając partycje na dysku w pececie nie sprawisz, że ci ilość ramu w kompie się zmieni. Cytuj Link do komentarza Share on other sites More sharing options...
Szern 3 kwietnia Autor tematu Udostępnij 3 kwietnia 25 minut temu, ethanak napisał: Partition scheme jest to układ partycji na flashu i nie ma nic wspólnego z pamięcią RAM (jakąkolwiek). Podobnie jak zmieniając partycje na dysku w pececie nie sprawisz, że ci ilość ramu w kompie się zmieni. Tak, ale... (popraw mnie proszę, jeśli się mylę) SPIFFS to jedna partycja (systemowa?), a reszta pamięci flash to druga partycja. Wydaje mi się, że przez ps_malloc nie zadeklaruję bufora większego niż 3MB (a w praktyce raczej dwa). Cytuj Link do komentarza Share on other sites More sharing options...
ethanak 3 kwietnia Udostępnij 3 kwietnia 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). Uwaga do esp-idfowców: wiem że są różne metody korzystania z psram, ale arduino ma wkompilowaną właśnie tę. 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!