Wprowadzenie
ESP32 to tani i energooszczędny mikrokontroler opracowany przez Espressif. ESP32 jest ceniony za swoją niewielkie rozmiary, solidną konstrukcje, wszechstronności zastosowań, wbudowane Wi-Fi, Bluetooth no i za bardzo przystępną cenę
Jedna z płytek z ESP32 ma zintegrowany moduł kamery, zwany ESP32-cam, całość można kupić w Chinach za zaledwie kilka Amerykańskich dolarów.
Dzięki takim projektą jak Tamota/AIS-Tasmota można zbudować tanią alternatywę dla komercyjnych kamer bezprzewodowych przy użyciu oprogramowania typu open source, które można łatwo kontrolować za pośrednictwem protokołu HTTP lub MQTT i zintegrować z wielofunkcyjnym serwer automatyzacji działającym na bramce AIS dom.
Dzięki Tasmota i AIS
Jeżeli nie masz doświadczenia z ESP32 to warto zacząć od tego filmu:
Dlaczego wybrałem AIS-Tasmota?
AIS-Tasmota to 100% kodu Tasmota i kilka fajnych dodatków ułatwiających działanie urządzeń z bramką AIS dom.
To oprogramowanie to jest wg mnie solidna alternatywa dla komercyjnego oprogramowania w różnych urządzeniach z ESP. AIS team dobrze to wykombinował, żeby nie pisać swojego softu a skorzystać z tego, co jest napisane i działa - cwaniaczki
Dodatkowa motywacja w przypadku kamery to fakt, że AIS-Tasmota jest skompilowane z flagą ENABLE_RTSPSERVER bez tego nie działa serwer RTSP na kamerze.
Jak ja to robie?
To nie będzie opis krok po kroku dla tych co nie potrafią programować ESP32. Takich opisów w sieci jest sporo. Na tym forum użytkownik @Tomasz zrobił bardzo dobre opisy, od których można zacząć. Kierujcie się takmi obrazkami jak poniżej
Opiszę tu jak ja programuje ESP32 oprogramowaniem AIS-Tasmota.
Instalacja
- Kody pobieram z repozytorium AIS-Tasmota taką komendą:
wget -P AIS_ESP32_CAM/ https://github.com/sviete/AIS-Tasmota/raw/firmware/firmware/tasmota32/languages/tasmota32-ais-webcam.bin \
wget -P AIS_ESP32_CAM/ https://github.com/sviete/AIS-Tasmota/raw/release-firmware/firmware/tasmota32/ESP32_needed_files/boot_app0.bin \
wget -P AIS_ESP32_CAM/ https://github.com/sviete/AIS-Tasmota/raw/release-firmware/firmware/tasmota32/ESP32_needed_files/bootloader_dout_40m.bin \
wget -P AIS_ESP32_CAM/ https://github.com/sviete/AIS-Tasmota/raw/release-firmware/firmware/tasmota32/ESP32_needed_files/partitions.bin
- Usuwam bieżące oprogramowanie / czyszczę dane
wprowadzam kamerę w tryb programowania (zwieram na stałe GPIO 0 z GND) i podłączam do USB, u mnie kamera ESP32 jest na ttyUSB0 więc ją kasuje tym poleceniem
esptool.py --port /dev/ttyUSB0 erase_flash
- Wgranie nowego oprogramowania
jak esptool.py zakończy kasowanie to naciskam przycisk resetowania na płytce ESP32 i wgrywam oprogramowanie tą komendą
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dout --flash_freq 40m --flash_size detect 0x1000 bootloader_dout_40m.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 tasmota32-ais-webcam.bin
Konfiguracja wstępna urządzenia
jak programowanie się zakończy to rozłączam zworkę GPIO 0 z GND i naciskam przycisk resetowania na płytce ESP32
Podłączam się terminalem do ESP32 (ja to robię programem CoolTerm - polecam)
ustawienia mam takie
i wydaje komendę która przełącza urządzenie w tryb AP
WifiConfig 2
Dodatkowe opcje konfiguracji serwera kamery
Po podłączeniu kamery do WiFi pytam o jej ustawienia komendą
status 0
tu widać jej IP
Resztę konfiguracji robie już z przeglądarki ale zostawiam sobie połączenie szeregowe żeby podczas konfiguracji widzieć logi.
Konfiguracja wideo
Tu ważna jest komenda WcRtsp
tym włączamy serwer RTSP
następnie możemy sprwadzić np w VLC czy serwer działa pod takim linkiem:
rtsp://[ip-kamery]:8554/mjpeg/1
Ustawienia kamer w Tasmota
Wszyskie parametry dotyczące ustawień kamery które udało mi się ustalić:
Komenda | Definicja | Wartości |
---|---|---|
WcBrightness | Image brightness | -2, -1, 0, 1, 2 |
WcContrast | Image contrast | -2, -1, 0, 1, 2 |
WCFlip | Flips the image vertically | 1, 0 |
WcInit | Initializes the webcam server | |
WCMirror | Flips the image horizontally | 1, 0 |
WcResolution | Image resolution | 0: FRAMESIZE 96x96 |
1: FRAMESIZE 160x120 | ||
2: FRAMESIZE 176x144 | ||
3: FRAMESIZE 240x176 | ||
4: FRAMESIZE 240x240 | ||
5: FRAMESIZE 320x240 | ||
6: FRAMESIZE 400x256 | ||
7: FRAMESIZE 480x320 | ||
8: FRAMESIZE 640x480 | ||
9: FRAMESIZE 800x600 | ||
10: FRAMESIZE 1024x768 | ||
WcSaturation | Image saturation | -2, -1, 0, 1, 2 |
WcStream | Controls the video streaming | 0: stop, 1: start |
WcRtsp | Control RTSP Server | 0=disable, 1=enable (forces restart) (if defined ENABLE_RTSPSERVER) |
u mnie działa (czego i Wam żeyczę )
PS
Przepraszam, ale nie będę mógł za bardzo aktywnie uczestniczyć w dyskusji “u mnie nie działa”, “napisz mi co mam zrobić krok po kroku”, “kupiłem inną kamerę i też nie działa”, itd…
Wybaczcie, ale mam teraz jak by to powiedzieć sianokosy i są inne priorytety
Jeżeli komuś ten opis pomoże to będzie mi miło. Jeżeli nie, to może trzeba poświecić więcej czasu na czytanie ze zrozumieniem Lub zainwestować w jakiś bardziej komercyjny produkt.
Podsumowując wińcie za niedziałanie kogo chcecie: Espressif, Tasmotę, AIS i Jolkę… ale proszę nie mieszjcie w to moją osobę za mocno … bo mi to działa