Tani moduł IoT z kamerką ESP32 CAM – pierwsze uruchomienie

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 – co to jest?

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:

  • 32 bitowy procesor z taktowaniem 240MHz;
  • obsługa sieci WiFi 802.11b/g/n, Bluetooth;
  • pamięć 520Kb SRAM + 4Mb PSRAM;
  • obsługa kamerek OV2640, OV7670;
  • obsługa kart TF
  • UART TTL 115200kbps

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

Podłączenie ESP32 CAM do komputera

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.

Programowanie ESP32 CAM

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:

  1. zdefiniować kamerkę w sekcji Select camera model zakomentuj domyślny typ i odkomentuj #define CAMERA_MODEL_AI_THINKER, no chyba że masz inną kamerkę, to wybierz właściwą
  2. Poniżej w sekcji Enter your WiFi credentials w polu ssid trzeba wpisać nazwę sieci WiFi, do której ma sie połączyć ESP32
  3. Linijkę niżej wpisuje się hasło do sieci.

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.

ESP32 CAM pierwsze uruchomienie

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.

Podsumowanie

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

Możesz również polubić…

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.