Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od najprostszych czujników temperatury, wilgotności, zalania, ciśnienia po zaawansowane układy z własną logiką, interfejsem użytkownika itd. Dużą popularność zapewniły tanie i funkcjonalne układy ESP. Dzisiaj opiszę jeden z takich modułów, posiadający na pokładzie kamerkę video.
ESP32 CAM to mały moduł IoT z procesorem ESP32-S, na płytce znalazły się także wbudowana antena, złącze do podłączenia zewnętrznej, kilka pinów I/O, gniazdo karty TF, slot kamerki, zewnętrzna pamięć, dioda LED pełniąca funkcję lampy Flash. Jest też stabilizator napięcia 3,3V.
Płytka wygląda tak:
Podstawowe parametry to:
Płytka na chińskim portalu kosztuje około 30zł, najlepiej szukać hasłem ESP32 CAM. Wśród ofert można znaleźć wersje z różnymi kamerami (kąty, długości taśmy, czułość, dodatkowa płytka z konwerterem USB-UART TTL).
Tradycyjnie baza sprzętowa to jedno, a oprogramowanie to drugie. I właśnie większość potencjału tkwi w tym ostatnim. By wgrać soft, moduł trzeba jakość podłączyć do komputera. Odbywa się to typowo dla rodziny procesorów ESP, czyli za pomocą interfejsu szeregowego. Standardowo będzie potrzebna przejściówka USB -> RS232 TTL, dodatkowo trzeba połączyć pin GPIO0 z masą, ale tylko na czas programowania. Schemat podłączenia jak na poniższym zdjęciu:
Można też dokupić (i polecam) płytkę z gniazdem USB i układem konwertera USB->RS232. Całość składa się w “kanapkę” i za jednym razem mamy załatwiony temat interfejsu komunikacyjnego i zasilania. Programowanie i zasilanie bez plątaniny kabelków, tak jak lubię:
Moduł ESP32 CAM kupowałem kilka lat temu i wtedy taka fajna płytka nie była dostępna, także musiałem się męczyć z zewnętrznym konwerterem i kabelkami.
Do programowania ESP32 CAM użyję środowiska Arduino IDE, które trzeba nieco dostosować, poprzez instalację dodatkowych modułów. Wszystkie niżej opisane operacje wykonywałem pod Linuksem, ale w Windowsach będzie identycznie.
Na pierwszy ogień – dodaje repozytorium z dodatkowymi płytkami. W Arduino IDE trzeba kliknąć kolejna File->Preferences… W nowo otwartym oknie, w polu Additional boards manager URLs: trzeba wkleić poniższy link:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Teraz w głównym oknie kliknij Tools->Board->Boards Manager… lub skrót klawiaturowy Ctrl+Shift+B. Po lewej stronie pojawi się pasek menedżera płytek, odnajdujemy tam esp32 by Espressif Systems i klikamy INSTALL. Płytek jest dużo, więc warto zawęzić wyszukiwanie wpisując na górze frazę ‘esp’. Wszystko jest na poniższym zrzucie:
Po instalacji modułu podłączamy nasz ESP32 do komputera i wybieramy płytkę AI Thinker ESP32-CAM i port przejściówki – u mnie w linuksie jest to /dev/ttyUSB0, w Windows będzie to któryś port COM, najczęściej wyższy niż COM2.
Teraz czas na soft. Mamy gotowca w przykładach, wystarczy załadować. File->Examples->ESP32-Camera->CameraWebServer:
W kodzie trzeba zmienić zasadniczo 3 rzeczy:
Tak przygotowany wsad można wgrać do płytki, pamiętając oczywiście o połączonym pinie GPIO0 do masy. Efekt końcowy:
Czas uruchomić to cudo.
W przypadku połączenia kabelkami z przejściówką, przed uruchomieniem należy koniecznie odłączyć zmostkowany pin GPIO0 z masą. Zasilanie można pobrać z konwertera, połączenie szeregowe warto zostawić – w razie problemów będzie łatwiej debugować ewentualne błędy.
Moją płytkę uruchamiałem tak – odpiąłem GPIO0 od masy, odpiąłem zasilanie. W Arduino IDE włączyłem monitor szeregowy Tools->Serial Monitor (Ctrl+Shift+M). Podłączyłem zasilanie do ESP, który zalogował, że podłączył się do sieci i wylistował adres IP pod jakim jest dostępny:
No to teraz szybko przeglądarka i odpalam wskazany adres + przycisk Start stream:
Jest obraz :). Nawet da się go powiększyć do 1600x1200px. Nie jest to oczywiście obiektyw Sony, ale obraz jest naprawdę akceptowalny. Kamerka jest zdecydowanie dalekowidzem. Przedmioty bliżej niż 30cm od obiektywu są rozmazane.
Moduł ESP32-CAM przeleżał u mnie kila lat w pudełku. Ostatnio potrzebowałem jakiejś prostej kamerki do podglądu on-line przez sieć i przeglądając swoje zapasy stwierdziłem że ta płytka z kamerką jest dokładnie tym, czego szukam. Dla mnie taki moduł w cenie około 30zł to naprawdę rewelacyjne rozwiązanie, a stosunek możliwości do ceny rewelacyjny. W sieci można znaleźć sporo kodu, który umożliwia np. podłączenie czujnika ruchu wyzwalającego nagrywanie na karcie. Polecam zakup zarówno do eksperymentów, zapoznania się z możliwościami jak i implementacji w konkretnych rozwiązaniach. Jeśli ktoś używa i ma jakiś ciekawy kod, proszę o info w komentarzu :).
Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…
Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…
W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…
Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…
Tradycyjnie w styczniu, publikuję podsumowanie minionego roku na stronie grylewicz.pl. Poniżej trochę liczb, lista najpopularniejszych…
W dzisiejszym wpisie przedstawię proces odgruzowywania radia Makita DMR116. Nie da się ukryć, że urządzenie…