Jak zrobić aparat fotograficzny na ESP32-CAM? Projekt DIY

Jak zrobić aparat fotograficzny na ESP32-CAM? Projekt DIY
ESP32-CAM to niewielki moduł, który łączy w sobie mikrokontroler ESP32, kamerę, obsługę Wi-Fi oraz czytnik kart microSD. Dzięki temu świetnie nadaje się do budowy prostych urządzeń fotograficznych i monitorujących. W tym projekcie wykorzystamy go trochę inaczej niż w typowych przykładach z podglądem obrazu na żywo, zbudujemy z niego mały, samodzielny aparat fotograficzny.
Po naciśnięciu fizycznego przycisku aparat wykona zdjęcie, zapisze je w formacie JPEG na karcie microSD, a następnie udostępni wykonane fotografie w galerii działającej w lokalnej sieci Wi-Fi. Do doświetlenia zdjęcia wykorzystamy wbudowaną w moduł ESP32-CAM diodę LED, dzięki czemu nie potrzebujemy dodatkowej lampy błyskowej.
Cały projekt przygotowaliśmy również w formie zestawu do samodzielnego montażu. W jego skład wchodzi moduł ESP32-CAM z dedykowanym programatorem, przycisk oraz obudowa wykonana w technologii druku 3D. Karta microSD nie jest częścią zestawu, ponieważ wiele osób ma już odpowiednią kartę w domu i może wykorzystać ją w tym projekcie. Jeśli jej nie posiadasz, w dalszej części wpisu podamy również link do sprawdzonej karty, którą można dokupić osobno.
Do uruchomienia urządzenia potrzebne będzie jedynie niewielkie lutowanie, złożenie elementów w obudowie, przygotowanie karty microSD oraz wgranie oprogramowania. W dalszej części wpisu pokażemy krok po kroku, jak przygotować i przylutować przycisk do odpowiednich pinów ESP32-CAM, jak zamontować moduł w obudowie, jak przygotować kartę pamięci oraz jak wgrać program i uruchomić galerię zdjęć przez Wi-Fi.
Nagraliśmy film o naszym aparacie 🎬
Na naszym kanale znajdziesz materiał wideo o tym projekcie!
Przygotowanie elementów
Zanim przejdziemy do lutowania i składania aparatu, warto przygotować wszystkie elementy potrzebne do jego budowy. Całość jest dość prosta i składa się tylko z kilku części, które po połączeniu utworzą kompletny, samodzielny aparat oparty na ESP32-CAM.
Na zdjęciu znajdują się wszystkie elementy wykorzystane w projekcie. Potrzebujemy modułu ESP32-CAM wraz z dedykowanym programatorem, niewielkiego przycisku typu tact switch oraz przygotowanej specjalnie do tego projektu obudowy wykonanej metodą druku 3D. Wszystkie te elementy można również kupić u nas jako gotowy zestaw do samodzielnego montażu.
Do zapisywania zdjęć potrzebna będzie również karta pamięci microSD. Karta nie znajduje się w zestawie, ponieważ wiele osób może mieć już odpowiednią kartę w domu i wykorzystać ją w tym projekcie. Jeśli nie masz własnej karty, możesz dokupić ją osobno link do odpowiedniego modelu znajdziesz poniżej.
Adapter dołączony do niektórych kart microSD nie jest potrzebny podczas pracy aparatu, ponieważ kartę wkładamy bezpośrednio do gniazda znajdującego się na module ESP32-CAM. Może się jednak przydać do podłączenia karty do komputera, na przykład w celu jej sformatowania lub sprawdzenia zapisanych zdjęć.
W kolejnych krokach przygotujemy przycisk, przylutujemy go do ESP32-CAM, umieścimy całość w obudowie, a następnie przygotujemy kartę microSD i przejdziemy do wgrywania oprogramowania.

Przygotowanie przycisku
Przycisk typu tact switch, którego używamy w tym projekcie, jest elementem przeznaczonym do montażu przewlekanego THT, dlatego fabrycznie jego wyprowadzenia są skierowane w dół. W naszym przypadku przycisk będzie montowany bezpośrednio przy module ESP32-CAM, dlatego przed lutowaniem musimy go odpowiednio przygotować.
W pierwszej kolejności delikatnie rozchylamy wszystkie nóżki przycisku na boki, tak aby znajdowały się możliwie płasko względem jego obudowy. Następnie odcinamy dwie niepotrzebne nóżki, pozostawiając tylko dwa wyprowadzenia, które wykorzystamy później do przylutowania przycisku do modułu ESP32-CAM.
Po wykonaniu tych czynności przycisk powinien wyglądać tak jak na zdjęciu. W takiej formie będzie można go wygodnie zamontować w przygotowanej obudowie i przylutować do odpowiednich pinów modułu.

Lutowanie przycisku do ESP32-CAM
Po przygotowaniu przycisku możemy przylutować go bezpośrednio do modułu ESP32-CAM. Przycisk podłączamy pomiędzy piny GND oraz GPIO13 jedno jego wyprowadzenie lutujemy do GND, a drugie do GPIO13.
Przycisk nie ma polaryzacji, dlatego nie ma znaczenia, które z jego dwóch pozostawionych wyprowadzeń zostanie podłączone do GND, a które do GPIO13. Ważne jest jedynie, aby połączenia były wykonane zgodnie ze zdjęciem poniżej i aby podczas lutowania nie zrobić zwarcia z sąsiednimi pinami.
Po prawidłowym przylutowaniu naciśnięcie przycisku będzie zwierało GPIO13 do masy GND, co w naszym programie zostanie wykorzystane jako sygnał do wykonania zdjęcia.

Montaż w obudowie 3D
Po przylutowaniu przycisku możemy przejść do montażu całego modułu w obudowie wykonanej w technologii druku 3D. Obudowa została przygotowana specjalnie pod płytkę ESP32-CAM z programatorem, dlatego wszystkie najważniejsze elementy mają swoje miejsce.
Moduł wsuwamy do obudowy w taki sposób, aby obiektyw kamery, dioda LED oraz przycisk znalazły się dokładnie w przygotowanych dla nich otworach. Warto robić to delikatnie i zwrócić uwagę, aby nie naprężać przewodów kamery ani nie wyginać przylutowanego wcześniej przycisku.
Po prawidłowym ułożeniu płytki całość powinna wyglądać tak jak na zdjęciu. Obudowa utrzymuje moduł we właściwej pozycji i jednocześnie zapewnia dostęp do najważniejszych elementów potrzebnych podczas korzystania z aparatu.

Przygotowanie karty microSD
Do zapisywania wykonanych zdjęć aparat potrzebuje karty pamięci microSD. Karta nie znajduje się w zestawie, dlatego można wykorzystać własną lub dokupić ją osobno. W tym projekcie dobrym wyborem będzie karta microSD 16 GB, która zapewni wystarczająco dużo miejsca na dużą liczbę zdjęć zapisanych w formacie JPEG.
Przed pierwszym uruchomieniem aparatu kartę należy sformatować w systemie plików FAT32. Program korzysta z funkcji SD_MMC.begin("/sdcard", true) i nie formatuje karty automatycznie, dlatego musi być ona wcześniej prawidłowo przygotowana. Biblioteka wykorzystuje system FatFs obsługujący między innymi FAT32, natomiast obsługa exFAT jest opcjonalna, dlatego w tym projekcie nie należy wybierać formatu exFAT ani NTFS.
Aby przygotować kartę w systemie Windows, umieszczamy ją w adapterze lub czytniku kart, a następnie otwieramy okno Ten komputer. Klikamy prawym przyciskiem myszy na dysku odpowiadającym karcie i wybieramy opcję Formatuj. Jako system plików ustawiamy FAT32, pozostawiamy domyślny rozmiar jednostki alokacji i możemy zaznaczyć opcję Szybkie formatowanie. Uruchomienie formatowania usunie wszystkie dane znajdujące się na karcie, dlatego wcześniej należy skopiować z niej potrzebne pliki.
Po zakończeniu formatowania nie trzeba tworzyć żadnych katalogów ani kopiować na kartę dodatkowych plików. Program sam zapisuje zdjęcia w głównym katalogu karty, nadając im kolejno nazwy photo_1.jpg, photo_2.jpg, photo_3.jpg i tak dalej. Jeżeli na karcie znajdują się już zdjęcia utworzone przez aparat, po ponownym uruchomieniu program odczyta najwyższy numer i będzie kontynuował numerowanie, dzięki czemu wcześniejsze fotografie nie zostaną nadpisane.

Włożenie karty microSD do ESP32-CAM
Po przygotowaniu karty możemy umieścić ją w gnieździe microSD znajdującym się na module ESP32-CAM. Kartę należy włożyć przed włączeniem zasilania aparatu, aby moduł mógł prawidłowo wykryć ją podczas uruchamiania.
Po wsunięciu karty do gniazda możemy przejść do kolejnych etapów uruchamiania urządzenia. Prawidłowo zamontowana i sformatowana karta microSD jest niezbędna do działania aparatu, ponieważ to właśnie na niej zapisywane są wszystkie wykonane zdjęcia.
Kartę należy wyjmować dopiero po wyłączeniu zasilania urządzenia. Zapobiega to przerwaniu trwającego zapisu oraz zmniejsza ryzyko uszkodzenia systemu plików lub zapisanych fotografii.

Instalacja oprogramowania
Do skompilowania i wgrania programu na moduł ESP32-CAM wykorzystamy środowisko PlatformIO działające jako rozszerzenie edytora Visual Studio Code. PlatformIO automatycznie pobiera narzędzia potrzebne do obsługi ESP32, korzysta z ustawień zapisanych w projekcie i pozwala wgrać program bez konieczności ręcznego instalowania pakietu płytek w Arduino IDE.
Po uruchomieniu Visual Studio Code otwieramy panel rozszerzeń, klikając ikonę Extensions znajdującą się po lewej stronie okna. W polu wyszukiwania wpisujemy `PlatformIO IDE`, wybieramy rozszerzenie opublikowane przez PlatformIO i klikamy przycisk Install.
Instalacja może potrwać kilka minut. PlatformIO IDE zawiera własny PlatformIO Core, dlatego nie trzeba pobierać ani konfigurować go oddzielnie. Po zakończeniu instalacji ponownie uruchamiamy Visual Studio Code. Na lewym pasku programu powinna pojawić się ikona PlatformIO, a na dolnym pasku przyciski służące między innymi do kompilowania i wgrywania programu.

Przygotowanie projektu aparatu
Gotowy projekt aparatu został udostępniony do pobrania jako archiwum ZIP. Zawiera ono wszystkie pliki potrzebne do skompilowania programu, między innymi konfigurację PlatformIO, kod źródłowy oraz grafikę wykorzystywaną przez galerię internetową. Nie trzeba tworzyć własnego projektu ani ręcznie kopiować jego poszczególnych elementów.
Archiwum można pobrać za pomocą przycisku znajdującego się poniżej.
Po kliknięciu przycisku przeglądarka zapisze plik ZIP. Projekt należy rozpakować przed otwarciem, nie uruchamiamy go bezpośrednio z wnętrza archiwum ZIP.
Uruchamiamy Visual Studio Code, wybieramy z górnego menu File, a następnie Open Folder. Wskazujemy rozpakowany folder projektu i zatwierdzamy wybór przyciskiem Select Folder. Właściwy folder to ten, w którym bezpośrednio znajduje się plik `platformio.ini`. Jeżeli Visual Studio Code zapyta, czy ufamy autorowi plików znajdujących się w tym katalogu, potwierdzamy otwarcie projektu. Po chwili rozszerzenie powinno automatycznie rozpoznać projekt ESP32-CAM.

Uzupełnienie nazwy i Hasła sieci Wifi
Projekt wykorzystuje połączenie z siecią Wi-Fi do wyświetlania galerii online ze zdjęciami wykonanymi aparatem. Dlatego przed skompilowaniem programu musimy podać dane sieci, z którą będzie łączył się ESP32-CAM. W panelu Explorer po lewej stronie rozwijamy katalog `src` i odnajdujemy plik `wifi_credentials.example.h`. Klikamy go prawym przyciskiem myszy, wybieramy Copy, a następnie klikamy prawym przyciskiem katalog `src` i wybieramy Paste. Utworzonej kopii nadajemy nazwę `wifi_credentials.h`.
Otwieramy nowy plik i uzupełniamy nazwę oraz hasło swojej sieci Wi-Fi zgodnie ze zrzutem ekranu po prawej stronie. Dane wpisujemy pomiędzy znakami cudzysłowu.

Wgrywanie programu na ESP32-CAM
W prezentowanym projekcie moduł ESP32-CAM jest umieszczony w dedykowanym programatorze wpinanym od jego dolnej strony. Programator stanowi integralną część urządzenia, dlatego nie trzeba podłączać osobnego konwertera USB–UART.
Przed podłączeniem urządzenia sprawdzamy, czy moduł ESP32-CAM jest prawidłowo osadzony w gniazdach programatora. Następnie za pomocą przewodu USB łączymy znajdujące się na programatorze gniazdo z portem USB komputera. Przewód musi umożliwiać przesyłanie danych.
Po podłączeniu urządzenia Windows powinien wykryć programator i przypisać mu port COM. W PlatformIO klikamy przycisk Upload na dolnym pasku. Program zostanie automatycznie skompilowany i wgrany do ESP32-CAM. Przy pierwszym uruchomieniu środowisko może pobrać potrzebne narzędzia, dlatego wymagane jest połączenie z Internetem.
Postęp kompilowania i wgrywania będzie widoczny w terminalu znajdującym się w dolnej części okna Visual Studio Code. Operacja może potrwać kilkadziesiąt sekund. Jeżeli wszystko przebiegnie prawidłowo, w terminalu pojawi się komunikat `SUCCESS`.
Po zakończeniu wgrywania programator automatycznie uruchomi moduł z nowym oprogramowaniem. Aparat należy pozostawić podłączony do komputera, ponieważ kamera zasilana jest przez przewód USB.

Możliwości Konfiguracji
Projekt umożliwia zmianę sieci Wi-Fi, jakości i orientacji zdjęć oraz ustawień diagnostycznych. Dane sieci, w której ma działać galeria online, wpisujemy w pliku `wifi_credentials.h`, tak jak zostało to opisane powyżej.
Jakość zdjęć wybieramy w pliku `src/esp32cam.h`, zmieniając wartość `PHOTO_QUALITY`, zgodnie z tabelą:
| Profil | Rozdzielczość | Zastosowanie |
| PHOTO_QUALITY_LOW | 640 × 480 px | małe pliki |
| PHOTO_QUALITY_MEDIUM | 800 × 600 px | średnia jakość |
| PHOTO_QUALITY_HIGH | 1600 × 1200 px | najwyższa jakość |
|
Domyślnie wybrany jest profil `PHOTO_QUALITY_HIGH`. Orientację, jasność, kontrast, nasycenie i ostrość obrazu można dostosować w pliku `src/esp32cam.cpp`.
Projekt umożliwia również logowanie komunikatów diagnostycznych w terminalu szeregowym. Włącza się je w pliku `src/logging.h`, ustawiając `VERBOSE_LOGGING` na `1`. Komunikaty można odczytać w Serial Monitorze PlatformIO z prędkością 115200 bit/s.
Pozostałe ustawienia zaawansowane, takie jak limit zdjęć w galerii i przypisanie pinów, znajdują się w plikach `src/appconfig.h` oraz `src/pinsdef.h` i zwykle nie wymagają zmian.


zaimplementowane funkcjonalności
Projekt zamienia moduł ESP32-CAM w prosty aparat cyfrowy, który wykonuje zdjęcia z lampą błyskową, zapisuje je na karcie microSD i udostępnia w lokalnym panelu webowym.
Po podłączeniu zasilania aparat uruchamia wszystkie podzespoły. Dwa mignięcia diody oznaczają gotowość do pracy, a trzy szybkie — błąd inicjalizacji. Szczegóły błędu można sprawdzić w Serial Monitorze. Po wystąpieniu błędu urządzenie podejmie próbę ponownej inicjalizacji.
Aby wykonać zdjęcie, wystarczy nacisnąć przycisk aparatu. Dioda LED włączy się na czas wykonywania fotografii i oświetli kadr, po czym automatycznie zgaśnie. Gotowe zdjęcie zostanie zapisane na karcie microSD w formacie JPEG. Pliki otrzymują kolejne nazwy, na przykład `photo_1.jpg`, `photo_2.jpg` i `photo_3.jpg`, dlatego wcześniejsze fotografie nie są nadpisywane.
Zapisane fotografie można przeglądać bez wyjmowania karty z aparatu. ESP32-CAM łączy się z siecią Wi-Fi skonfigurowaną w pliku `wifi_credentials.h` i uruchamia panel webowy dostępny pod adresem:
`http://esp32-camera.local/`
Adres należy wpisać w przeglądarce na komputerze, tablecie lub telefonie połączonym z tą samą siecią Wi-Fi co aparat. Wygląd panelu zaprezentowano na obrazku obok.
W panelu można wybrać zdjęcie z listy, wyświetlić jego podgląd oraz pobrać plik na urządzenie. Jeżeli nazwa `esp32-camera.local` nie działa w danej sieci lub na danym urządzeniu, można skorzystać bezpośrednio z adresu IP aparatu. Dokładny adres, na przykład `http://192.168.1.123/`, pojawi się w konsoli Serial Monitora po nawiązaniu połączenia z Wi-Fi.

Podsumowanie
W tym projekcie pokazaliśmy, jak z popularnego modułu ESP32-CAM zbudować prosty, samodzielny aparat fotograficzny DIY. Przygotowaliśmy przycisk wyzwalający zdjęcie, przylutowaliśmy go do pinów GPIO13 oraz GND, zamontowaliśmy całość w obudowie wykonanej w technologii druku 3D oraz przygotowaliśmy kartę microSD sformatowaną w systemie FAT32.
Następnie skonfigurowaliśmy i wgraliśmy przygotowane oprogramowanie za pomocą PlatformIO. Po uruchomieniu aparat może wykonywać zdjęcia z wykorzystaniem wbudowanej diody LED jako lampy, zapisywać fotografie w formacie JPEG na karcie microSD oraz automatycznie nadawać im kolejne nazwy, dzięki czemu wcześniejsze zdjęcia nie są nadpisywane.
Jedną z ciekawszych funkcji projektu jest galeria dostępna przez Wi-Fi. Dzięki niej nie trzeba za każdym razem wyjmować karty pamięci z aparatu, wystarczy połączyć telefon, tablet lub komputer z tą samą siecią Wi-Fi i otworzyć panel aparatu w przeglądarce. Z jego poziomu można przeglądać oraz pobierać wykonane fotografie.
Całość jest stosunkowo prostym projektem, który wymaga jedynie podstawowego lutowania i konfiguracji oprogramowania, a jednocześnie pokazuje sporo możliwości modułu ESP32-CAM. Gotowy projekt można również dalej rozwijać, zmieniając między innymi jakość obrazu, parametry kamery czy sposób działania oprogramowania i dostosowując aparat do własnych pomysłów.
Zestaw do budowy aparatu ESP32-CAM
Gotowy zestaw dostępny w naszej ofercie!

Prezentowaną w artykule elektronikę znajdziesz oczywiście w naszym sklepie 👉 sklep.msalamon.pl 👈Zapraszamy również na nasze social media, gdzie na bieżąco informujemy o nowych produktach oraz o najciekawszych promocjach 😎👇


