MC, 2025
Ilustracja do artykułu: Jak uruchomić ESP32Cam z Pythonem - Kompletna instrukcja

Jak uruchomić ESP32Cam z Pythonem - Kompletna instrukcja

Witaj w świecie Internetu Rzeczy (IoT), gdzie połączenie nowoczesnych technologii z prostymi urządzeniami może prowadzić do niesamowitych rezultatów! Dzisiaj porozmawiamy o jednym z najciekawszych urządzeń IoT – kamerze ESP32Cam, która łączy w sobie moc mikrokontrolera ESP32 oraz kamerę wideo, umożliwiając tworzenie projektów związanych z obrazowaniem i przesyłaniem danych w czasie rzeczywistym. W artykule tym dowiesz się, jak zintegrować ESP32Cam z Pythonem oraz jak wykorzystać jej pełny potencjał.

Czym jest ESP32Cam?

ESP32Cam to mikrokontroler ESP32, który posiada wbudowaną kamerę OV2640. Jest to mały, tani i niezwykle wszechstronny moduł, który pozwala na realizację projektów związanych z przesyłaniem obrazu, detekcją ruchu czy też przesyłaniem zdjęć do chmury. Dzięki wsparciu dla Wi-Fi, ESP32Cam może łączyć się z Internetem, co czyni go idealnym rozwiązaniem dla projektów związanych z transmisją obrazu na żywo.

Do tego wszystkiego, ESP32Cam współpracuje z Pythonem! Jeśli masz doświadczenie w pracy z Pythoniem, będziesz mógł wykorzystać jego potęgę do zbudowania naprawdę fajnych projektów. Zaczynajmy więc przygodę z ESP32Cam i Pythonem!

Jak podłączyć ESP32Cam?

Zanim przejdziemy do kodu, zacznijmy od podstawowej konfiguracji ESP32Cam. Moduł ten jest dość prosty w podłączeniu, ale wymaga kilku kroków, które musisz wykonać:

  • Moduł ESP32Cam – najważniejszy element projektu. Upewnij się, że masz go w ręku.
  • Programator USB-UART – będzie to urządzenie, które pozwoli Ci połączyć ESP32Cam z komputerem, ponieważ sam moduł nie ma wbudowanego portu USB.
  • Kabel połączeniowy – do połączenia ESP32Cam z programatorem.

Podłączając ESP32Cam do programatora, pamiętaj o poprawnym ustawieniu pinów. Piny TX i RX powinny być odpowiednio podłączone do pinów RX i TX programatora. Upewnij się, że masz stabilne połączenie, aby uniknąć problemów z programowaniem.

Instalacja niezbędnych bibliotek w Pythonie

Do pracy z ESP32Cam w Pythonie, będziesz potrzebować kilku bibliotek, które umożliwią Ci komunikację z tym urządzeniem. Jedną z najważniejszych jest ESP32Camera, ale przydatne będą także inne biblioteki, jak opencv-python do obsługi obrazu.

Najpierw zainstaluj biblioteki, używając poniższego polecenia:

pip install opencv-python

Jeśli chcesz korzystać z kamer w czasie rzeczywistym, zainstaluj także bibliotekę picamera:

pip install picamera

Prosty przykład - robimy zdjęcie z ESP32Cam

Teraz, gdy masz już zainstalowane wszystkie potrzebne biblioteki, czas na napisanie pierwszego programu w Pythonie, który pozwoli Ci zrobić zdjęcie za pomocą ESP32Cam. W tym przykładzie połączymy się z kamerą, wykonamy zdjęcie, a następnie zapisujemy je na dysku.

import cv2

# Połączenie z ESP32Cam
ip_address = "http://adres_ip_esp32cam"
url = f"{ip_address}/capture"

# Wykonanie zapytania HTTP do ESP32Cam, aby pobrać zdjęcie
img_resp = cv2.imread(url)

# Zapisanie obrazu na dysku
cv2.imwrite('photo.jpg', img_resp)

print("Zdjęcie zostało zapisane jako 'photo.jpg'")

W powyższym przykładzie używamy biblioteki OpenCV do pobrania obrazu z kamery ESP32Cam. Upewnij się, że masz poprawny adres IP kamery w zmiennej ip_address, aby połączenie działało poprawnie.

Streaming obrazu na żywo

ESP32Cam może również przesyłać obraz na żywo. W tym przykładzie pokażemy, jak użyć Python i OpenCV do wyświetlania strumienia wideo z ESP32Cam w czasie rzeczywistym.

import cv2
import requests
import numpy as np

# Adres IP ESP32Cam
ip_address = "http://adres_ip_esp32cam"

while True:
    # Wysyłanie żądania HTTP do ESP32Cam w celu pobrania strumienia obrazu
    img_resp = requests.get(f"{ip_address}/video")
    
    # Konwersja obrazu na format, który rozpozna OpenCV
    img_array = np.array(bytearray(img_resp.content), dtype=np.uint8)
    img = cv2.imdecode(img_array, -1)
    
    # Wyświetlanie obrazu
    cv2.imshow("ESP32Cam - Streaming", img)
    
    # Wyjście z pętli przy naciśnięciu klawisza 'q'
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cv2.destroyAllWindows()

W powyższym kodzie korzystamy z biblioteki requests do pobierania danych wideo z ESP32Cam oraz OpenCV do wyświetlania strumienia obrazu na ekranie. Po naciśnięciu klawisza q zamykamy okno wyświetlania obrazu.

Detekcja ruchu z ESP32Cam

Jednym z najciekawszych zastosowań kamery ESP32Cam jest detekcja ruchu. Dzięki połączeniu kamery z algorytmami komputerowego rozpoznawania obrazu, możemy wykrywać, kiedy w polu widzenia kamery pojawi się ruch. Poniżej przedstawiamy przykład, jak to zrobić za pomocą Pythona i OpenCV.

import cv2
import numpy as np

# Ustawienia kamery
cap = cv2.VideoCapture("http://adres_ip_esp32cam/video")

# Wstępna konfiguracja dla detekcji ruchu
fgbg = cv2.createBackgroundSubtractorMOG2()

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # Przetwarzanie obrazu w celu detekcji ruchu
    fgmask = fgbg.apply(frame)
    
    # Wyświetlanie przetworzonego obrazu
    cv2.imshow('Ruch Detekcja', fgmask)

    # Jeśli ruch zostanie wykryty
    if cv2.countNonZero(fgmask) > 500:
        print("Ruch wykryty!")

    # Wyjście z pętli przy naciśnięciu klawisza 'q'
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

W powyższym przykładzie używamy klasy BackgroundSubtractorMOG2 z OpenCV do wykrywania ruchu na obrazie. Gdy w polu widzenia ESP32Cam pojawi się ruch, program wyświetli komunikat "Ruch wykryty!". Możesz dostosować próg detekcji, zmieniając wartość 500 w funkcji countNonZero.

Podsumowanie

ESP32Cam to niezwykle potężne i wszechstronne urządzenie, które łączy w sobie mikrokontroler ESP32 z kamerą wideo. Dzięki łatwej integracji z Pythonem, możliwości transmisji obrazu na żywo, wykonywania zdjęć oraz detekcji ruchu, ESP32Cam otwiera drzwi do wielu interesujących projektów związanych z Internetem Rzeczy. Z pomocą Pythona, możesz zbudować własne aplikacje do monitorowania, strumieniowania wideo lub detekcji zdarzeń w czasie rzeczywistym.

Rozpocznij swoją przygodę z ESP32Cam i odkryj, jakie możliwości daje Ci połączenie mikrokontrolera z kamerą i Pythonem. Z pewnością będziesz zaskoczony tym, co można stworzyć!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: