Das ESPCam-Modul besteht aus einer winzigen Kamera (Vorderseite) und einem ESP32 (Rückseite).
Dem Modul fehlt der USB-Anschluss. Daher kann er nicht direkt an den Computer zum Programmieren angeschlossen werden.
Das Modul kann auf dieses Modul aufgesteckt und direkt an den Rechner angeschlossen werden: ESP32 Cam-MB
Alternativ kann das Modul über ein FT232-Modul programmiert werden. FT232-Modul
Die Blitzlicht-LED ist an Pin4 angeschlossen. Mit diesem Sketch können wir das Board testen:
const int ledPin = 4;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Unter Examples.ESP32.Camera.CameraWebServer kannst du ein Programm öffnen, mit dem die ESP32Cam zu einem Webserver wird. das Kamerabild kann über einen Webbrowser aufgerufen werden.
Der Sketch muss an folgenden Stellen noch angepasst werden:
In Zeile 12 und 13 müssen die Daten deines Wlans eingetragen werden. Achte darauf, dass du diese Daten niemals an andere Personen weitergibst.
Im Bereich Select Camera model müssen alle Zeilen außer #define CAMERA_MODEL_AI_THINKER // Has PSRAM auskommentiert werden.
Der Code ist deutlich kürzer als der Beispiel-Sketch von oben:
#include <WiFi.h>
#include <WebServer.h>
#include <AViShaESPCam.h>
const char* ssid = "YOUSSID";
const char* password = "YourPassword";
WebServer server(80);
AViShaESPCam cam;
void setup() {
Serial.begin(115200);
// Initialize camera
cam.enableLogging(true);
cam.init(AI_THINKER(), QVGA);
// Connect to WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
Serial.print("Camera Stream IP: ");
Serial.println(WiFi.localIP());
server.on("/", HTTP_GET, []() {
WiFiClient client = server.client();
String response = "HTTP/1.1 200 OK\r\n";
response += "Content-Type: multipart/x-mixed-replace; boundary=frame\r\n\r\n";
client.print(response);
while (client.connected()) {
FrameBuffer* frame = cam.capture();
if (frame) {
client.print("--frame\r\n");
client.print("Content-Type: image/jpeg\r\n\r\n");
client.write(frame->buf, frame->len);
client.print("\r\n");
cam.returnFrame(frame);
}
delay(1);
}
});
server.begin();
}
void loop() {
server.handleClient();
}