Build an AI-powered currency detection system using ESP32-CAM. Learn real-time note recognition with this easy DIY electronics project.
seen from China
seen from Pakistan

seen from United States

seen from Malaysia
seen from Canada
seen from China

seen from United States
seen from Paraguay

seen from Norway
seen from United States
seen from United States
seen from Philippines

seen from United States

seen from Panama

seen from France
seen from Norway

seen from United States
seen from China
seen from France
seen from Colombia
Build an AI-powered currency detection system using ESP32-CAM. Learn real-time note recognition with this easy DIY electronics project.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch âą No registration required âą HD streaming
ESP32-CAM WROVER E
In diesem Beitrag möchte ich dir eine weitere ESP32-CAM vorstellen und zeigen, wie du diese programmierst.
Eine ESP32-CAM habe ich dir bereits im Beitrag Einrichten der ESP32-CAM und erster betrieb vorgestellt und auch gezeigt, wie du diese in der Arduino IDE programmierst.
Bezug der ESP32-CAM WROVER DEV
Die mir vorliegende ESP32-CAM habe ich recht gĂŒnstig ĂŒber aliexpress.com fĂŒr knapp 7 ⏠zzgl. Versandkosten erstanden. Du findest die coole ESP32-CAM auch auf amazon.de fĂŒr knapp 35 ⏠als Set mit diversen Sensoren / Aktoren. Lieferumfang Zum Lieferumfang der ESP32-CAM gehört neben dem Mikrocontroller noch ein kleine 66° Kameralinse vom Typ OV2640.
Anschluss der ESP32-CAM
Der Anschluss an den Computer erfolgt ĂŒber eine Micro-USB Schnittstelle. In meinem Fall war kein passendes Kabel dabei (jedoch im verlinkten Amazon Produkt ist es enthalten). Im GerĂ€te-Manager von Microsoft Windows 10 wird der Mikrocontroller als "USB-SERIAL CH340" angezeigt.
GerĂ€te-Manager von Windows 10 mit angeschlossener ESP32-CAM WĂ€hrend des Betriebs der ESP32-CAM leuchtet eine kleine grĂŒne SMD LED.
Technische Daten des ESP32 WROVER E
Hier nun ein kleiner Auszug aus den technischen Daten des ESP32 WROVER E. MicrochipESP32-D0WD-V3 Xtensa 32bit LX6Taktgeschwindigkeit240 MHzROM448 KBSRAM520 KBSRAM (in RTC)8 KBPSRAM8 MBSPI flash4 MBWiFiProtokolle - 802.11 b/g/n (802.11n bis zu 150 Mbps)Frequenzbereich - 2412 ~ 2484 MHzBluetoothProtokolle - Bluetooth v4.2 BR/EDR und Bluetooth LE (Low Energy)FeaturesUART, SPI, IÂČC, LED, PWM, Motor PWM, IÂČS, IR, Puls Counter, GPIO, kapazitiver Touch Sensor, ADC, DAC, TWAI (Two-Wire Automotive Interface), kompatibel mit ISO11898-1 (CAN-Bus Spezifikation 2.0)Hall SensorSpannungsaufnahme3.0 V ~ 3.6 VStromaufnahme500 mABetriebstemperatur-40 °C ~ 85 °C Im englischen Dokument ESP32ÂWROVERÂE Datasheet findest du eine ausfĂŒhrliche Liste mit den technischen Daten zum ESP32 WROVER E.
Programmieren in der Arduino IDE
Das ESP32-CAM Beispiel aus der ESP32 Bibliothek beinhaltet eigentlich auch die Konfiguration fĂŒr das vorliegende Modell, jedoch ist das Kompilat 10 % gröĂer als der verfĂŒgbare Speicher des ESP32. text section exceeds available space in boardDer Sketch verwendet 1431461 Bytes (109%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes. Globale Variablen verwenden 65344 Bytes (19%) des dynamischen Speichers, 262336 Bytes fĂŒr lokale Variablen verbleiben. Das Maximum sind 327680 Bytes. Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it. Fehler beim Kompilieren fĂŒr das Board ESP32 Wrover Module. Auf der Seite https://freenove.com/fnk0060/ findest du eine ZIP-Datei mit allem, was du benötigst, um den ESP32 CAM vom Typ WROVER E zu programmieren und unter anderem ist dort auch eine komprimierte Version enthalten. Zum einen hat der vorliegende Mikrocontroller kein SD-Karten Slot und somit benötigen wir diese Konfiguration inkl. Bibliothek nicht.
Webinterface
Bevor du das Beispiel aus dem Ordner "Freenove_ESP32_WROVER_Board-mainCSketchesSketch_05.1_CameraWebServerSketch_05.1_CameraWebServer.ino" auf den ESP32 speicherst musst du lediglich die SSID & das Passwort von deinem WiFi Netzwerk eintragen. const char *ssid_Router = "********"; //input your wifi name const char *password_Router = "********"; //input your wifi passwords WĂ€hrend des Uploads musst, du, wenn die Ausgabe mit den vielen Punkten erscheint die Taste "EN/RST" betĂ€tigen und der Upload wird ausgefĂŒhrt. Nachdem erfolgreichen Upload kannst du im seriellen Monitor der Arduino IDE die IP-Adresse des Mikrocontrollers ablesen. Ăber diese IP-Adresse kannst du das Webinterface erreichen und einen Stream deiner ESP32-CAM betrachten und auch Bilder speichern.
Webinterface der neuen ESP32-CAM von 2022
Vergleich mit dem VorgÀngermodell
Wie bereits erwÀhnt habe ich dem VorgÀngermodell bereits einige BeitrÀge gewidmet und auch gezeigt, wie du die Bilder / den Videostream per Python abgreifst und speichern kannst. Da das neue Modell sehr Àhnlich funktioniert, kannst du die BeitrÀge auf den Mikrocontroller adaptieren.
ESP32-CAM Modelle Was zunĂ€chst auffĂ€llt ist, das die neue ESP32-CAM ohne SD-Card Slot und LED Blitz daherkommt, jedoch bietet diese deutlich mehr GPIO Pins und somit kann man diese recht einfach nachrĂŒsten. ZusĂ€tzlich bietet die neue ESP32-CAM vom Typ WROVER E einen onboard FTDI Chip CH340 welcher durch die vorhandene Micro-USB Buchse ohne ein zusĂ€tzliches, externes FTDI Modul t die Programmierung ermöglicht. Beim VorgĂ€ngermodell wurde dieses mit einem speziellen Board gelöst, auf welches der Mikrocontroller gesteckt wurde.
Vergleich der technischen Daten
Hier ein kleiner Vergleich der technischen Daten der beiden Mikrocontroller. ESP32-CAMESP32 WROVER E CAMMicrochip32Bit Dual Core CPUÂ ESP32-D0WD-V3 Xtensa 32bit LX6Taktgeschwindigkeit240 MHz240 MHzPSRAM4 MB8 MBSPI flash4 MB4 MBWiFi802.11 b/g/n/e/i802.11 b/g/n (802.11n bis zu 150 Mbps)BluetoothBluetooth v4.2 BR/EDR und Bluetooth LE (Low Energy)Bluetooth v4.2 BR/EDR und Bluetooth LE (Low Energy)FeaturesUART, SPI, PWM, GPIO, kapazitiver Touch Sensor, ADC & DACUART, SPI, IÂČC, LED, PWM, Motor PWM, IÂČS, IR, Puls Counter, GPIO, kapazitiver Touch Sensor, ADC, DAC, TWAI (Two-Wire Automotive Interface), kompatibel mit ISO11898-1 (CAN-Bus Spezifikation 2.0)Auszug aus den technischen Daten der ESP32-CAMs Read the full article
ESP32-CAM Stream per Python3 aufzeichnen
In diesem Beitrag möchte ich dir zeigen, wie du ein Stream der ESP32-CAM per Python3 aufzeichnen kannst.
Die ESP32-CAM habe ich dir bereits im Beitrag Einrichten der ESP32-CAM und erster betrieb vorgestellt und gezeigt wie man den Sketch / das Program "CameraWebServer" hochlÀdt.
FĂŒr diesen Beitrag verwende ich das Beispiel "CameraWebServer" ohne Ănderungen.
Ermitteln der Adresse der ESP32-CAM
Die Adresse der ESP32-CAM kannst du entweder aus der seriellen Schnittstelle ablesen (in der Arduino IDE) oder du schaust in deinen Router.
Ausgabe der ESP32-CAM in der Arduino IDE
Eintrag der ESP32-CAM in der FritzBox Die WeboberflĂ€che der ESP32-CAM kannst du ĂŒber die IP-Adresse / den Namen des GerĂ€tes und dem default HTTP Port 80 aufrufen. http://192.168.178.33:80 http://esp32-arduino:80 Den Port kannst du in diesem Falle weglassen, bzw. der Browser Google Chrome entfernt diesen von selbst.
Nachdem wir nun die Adresse der ESP32-CAM ermittelt haben, können wir den Stream entweder ĂŒber die IP-Adresse inkl. des Seitennamens "/stream" aufrufen oder mit dem Namen des GerĂ€tes. http://192.168.178.33:81/stream http://esp32-arduino:81/stream
Aufzeichnen mit OpenCV2
Auf der Seite How to Record Video in Python using OpenCV habe ich ein kleines Beispiel gefunden, welches sich mit sehr wenigen Anpassungen fĂŒr die ESP32-CAM nutzen lĂ€sst. Datei 'requirements.txt' opencv-python~=4.5.5.64 requests~=2.27.1 Datei 'recordStream.py' ''' Beispiel von http://www.learningaboutelectronics.com/Articles/How-to-record-video-Python-OpenCV.php (kleinere Anpassungen durch mich) ''' import cv2 import time # IP Adresse der ESP32-CAM ipAdress = '192.168.178.33' # Streaming Adresse aufbauen streamAddress = 'http://' + ipAdress + ':81/stream' cap = cv2.VideoCapture(streamAddress) width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) filename = time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".mp4" writer = cv2.VideoWriter(filename, cv2.VideoWriter_fourcc(*'DIVX'), 20, (width, height)) while True: ret, frame = cap.read() writer.write(frame) cv2.imshow('frame', frame) # ESC Taste zum Abbrechen if cv2.waitKey(1) & 0xFF == 27: break cap.release() writer.release() cv2.destroyAllWindows()
Video von OpenCV einer ESP32-CAM
Anpassen der Auflösung
Wenn man das obige Skript startet, dann wird die Aufzeichnung mit der Standardauflösung von 320x240 Pixel aufgenommen. Diese Auflösung kann man durch das Absenden eines Requests VOR dem Start der Aufzeichnung des Videos anpassen. Im nachfolgenden Code wird die Auflösung auf 1024x768 Pixel geÀndert. """ Index | Auflösung 13 | 1600 x 1200 12 | 1280 x 1024 11 | 1280 x 720 10 | 1024 x 768 9 | 800 x 600 8 | 640 x 480 7 | 480 x 320 6 | 400 x 296 5 | 320 x 240 4 | 240 x 240 3 | 240 x 176 2 | 176 x 144 1 | 160 x 120 0 | 96 x 96 """ import requests ipAdress = '192.168.178.33' requests.get('http://'+ipAdress+'/control?var=framesize&val=10') Möchte man nun eine Auflösung von zbsp 640x480 Pixel (VGA) einstellen, so muss man den Index 8 absenden.
Modifikation 1 - beenden nach X Sekunden
Wenn das Skript soll sich selbstÀndig nach einer Zeit X beenden soll, so muss man wÀhrend der Laufzeit die Sekunden aufzeichnen und dieses mit einer maximalen Zeit vergleichen. ''' Beispiel von http://www.learningaboutelectronics.com/Articles/How-to-record-video-Python-OpenCV.php (kleinere Anpassungen durch mich) ''' import cv2 import time # IP Adresse der ESP32-CAM ipAdress = '192.168.178.33' # Streaming Adresse aufbauen streamAddress = 'http://' + ipAdress + ':81/stream' cap = cv2.VideoCapture(streamAddress) width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) filename = time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".mp4" writer = cv2.VideoWriter(filename, cv2.VideoWriter_fourcc(*'DIVX'), 20, (width, height)) # Zeit wann das Skript gestartet wurde in Sekunden start_time = int(time.time()) # Maximale Aufnahmezeit in Sekunden time_max = 10 # vergangene Sekunden time_elapsed = 0 while True: ret, frame = cap.read() writer.write(frame) cv2.imshow('frame', frame) if cv2.waitKey(1): if time_elapsed > time_max: break if (time.time() - start_time) - time_elapsed > 0: time_elapsed = time.time() - start_time # ESC Taste zum Abbrechen if cv2.waitKey(1) & 0xFF == 27: break cap.release() writer.release() cv2.destroyAllWindows()
Modifikation 2 - beenden nach X Byte
Man kann auch das Skript nach X Byte beenden, bzw. eher nach X Kbyte. Dazu mĂŒssen wir zusĂ€tzlich das Modul "os" importieren von welchem wir die Funktion "os.path.getesize" verwenden können um die DateigröĂe (in Byte) zu ermitteln. ''' Beispiel von http://www.learningaboutelectronics.com/Articles/How-to-record-video-Python-OpenCV.php (kleinere Anpassungen durch mich) ''' import cv2 import time import os # IP Adresse der ESP32-CAM ipAdress = '192.168.178.33' # Streaming Adresse aufbauen streamAddress = 'http://' + ipAdress + ':81/stream' cap = cv2.VideoCapture(streamAddress) width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) filename = time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".mp4" writer = cv2.VideoWriter(filename, cv2.VideoWriter_fourcc(*'DIVX'), 20, (width, height)) # Maximale DateigröĂe in Kilobyte (hier 500 Kb) max_filesize = 1024 * 500 while True: ret, frame = cap.read() writer.write(frame) cv2.imshow('frame', frame) if cv2.waitKey(1): # Auslesen der DateigröĂe filesize = os.path.getsize(filename) # Wenn die Datei gröĂer ist als das Maximum dann Abbrechen if filesize > max_filesize: break # ESC Taste zum Abbrechen if cv2.waitKey(1) & 0xFF == 27: break cap.release() writer.release() cv2.destroyAllWindows() Read the full article
Intégrer un module ESP32-CAM à un Dashboard Node-RED (firmware modifié)
En installant le firmware officiel modifiĂ© proposĂ© sur Github, il est trĂšs facile dâintĂ©grer une image de surveillance provenant dâun module ESP32-CAM Ă un dashboard Node-RED.
[wpsm_ads1]
 Le Dashboard Node-RED
Avant de vous lancer, vous aurez besoin de Node-RED avec le plugin Dashboard configuré. Tout est expliqué en détail dans les tutoriels suivants
View On WordPress

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch âą No registration required âą HD streaming
ESP32-CAM, flash du firmware. Test sur Domoticz, Jeedom, Home Assistant, NextDom, Node-RED
ESP32-CAM, carte de développement #ESP32 pour fabriquer ses propres caméras de vidéosurveillance IP. Flash du firmware avec l'IDE #Arduino. Test sur #Domoticz, #Jeedom, #HomeAssistant, #NextDom, #NodeRED #DIY #IoT #domotique
ESP32-CAM est un module ESP-WROOM-32 du fabricant AI Thinker associĂ© Ă une camĂ©ra couleur 2MP OV2640. Le module ESP32-CAM dispose Ă©galement dâun lecteur de carte SD qui pourra servir Ă enregistrer des images lorsquâun Ă©vĂ©nement est dĂ©tectĂ© (dĂ©tecteur de prĂ©sence ou de mouvement par exemple). Espressif fournit une API complĂšte qui permet dâaccĂ©der Ă toutes les fonctionnalitĂ©s du module camĂ©ra.âŠ
View On WordPress
Nouveautés M5Stack ESP32 2019. Core, modules, Units, packs débutant robotique FLIR
De nouveaux modules N5Stack et 3 projets pour dĂ©buter viennent complĂ©ter une liste dĂ©jĂ trĂšs longue. Pour ceux qui ne connaissent pas encore, N5Stack est une plateforme de dĂ©veloppement modulaire basĂ©e sur le SoC ESP32 dâEspressif. Les modules (capteur, actionneur, module de communication) viennent sâempiler sur le Core que lâon peut programmer en MicroPython, en C++ depuis lâIDE Arduino ou avecâŠ
View On WordPress