Die Shelly Camera ist klein, kompakt und lässt sich unkompliziert in das eigene Netzwerk integrieren. Ein Feature fehlt mir jedoch: Die Kamera kann nicht aus der Ferne geschwenkt oder geneigt werden.
Genau diese Funktion möchte ich in diesem Projekt nachrüsten. Dafür montiere ich die Shelly Camera auf einem Pan-Tilt-Bausatz mit zwei SG90-Servomotoren. Gesteuert wird die Halterung von einem XIAO ESP32-C6 über eine kleine Webseite, die gleichzeitig regelmäßig ein aktuelles Kamerabild anzeigt. So lässt sich die Blickrichtung der Shelly Camera bequem über den Browser verändern.
Hinweis: Der RTSP-Stream der Shelly Camera kann von modernen Webbrowsern nicht direkt wiedergegeben werden. Auf der Steuerungsseite wird deshalb regelmäßig ein aktuelles Standbild über die Snapshot-Adresse der Kamera geladen. Das Aktualisierungsintervall lässt sich direkt auf der Webseite einstellen. Ein flüssiges Livebild kann weiterhin separat über das Webfrontend der Shelly Camera oder die Shelly Smart Control App aufgerufen werden.
Das fertige Projekt im Überblick
Die Shelly Camera besitzt keinen integrierten Motor und kann deshalb nur von Hand ausgerichtet werden. Das ist ausreichend, solange immer derselbe Bereich überwacht werden soll. Möchte man die Blickrichtung später verändern, muss man jedoch direkt zur Kamera gehen.



Genau hier setzt dieses Projekt an: Die Shelly Camera wird auf einer Pan-Tilt-Halterung mit zwei SG90-Servomotoren montiert. Ein Servo dreht die Kamera nach links und rechts, während der zweite sie nach oben und unten neigt. Dadurch lässt sich der sichtbare Bereich bequem aus der Ferne verändern.



Die Steuerung übernimmt ein XIAO ESP32-C6, der eine kleine Webseite im lokalen Netzwerk bereitstellt. Auf dieser wird regelmäßig ein aktueller Schnappschuss der Kamera angezeigt. Mit vier Pfeiltasten lässt sich die Pan-Tilt-Halterung bewegen. Zusätzlich kann eingestellt werden, nach wie vielen Sekunden das Kamerabild aktualisiert werden soll.
Im folgenden kurzen Video siehst du, wie die fertige Kamerasteuerung funktioniert:
Was wird benötigt?
Der Aufbau kommt mit wenigen Komponenten aus. Neben der Shelly Camera werden ein Mikrocontroller, die bewegliche Halterung und eine separate Stromversorgung für die Servomotoren benötigt:
- XIAO ESP32-C6* oder ein vergleichbarer ESP32*,
- Shelly Camera,
- Pan-Tilt-Bausatz* mit zwei SG90-Servomotoren,
- Breadboard* inklusive Breadboardkabel*,
- regelbares Netzteil* mit 3 bis 24 V und 3 A,
- USB-Datenkabel* zur Programmierung des Mikrocontrollers.
Wichtig: Das regelbare Netzteil muss vor dem Anschließen der SG90-Servomotoren auf 5 V eingestellt werden. Eine höhere Spannung kann die Servomotoren beschädigen.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Pan-Tilt-Halterung aus dem 3D-Drucker
Einen fertigen Pan-Tilt-Bausatz für den Arduino habe ich bereits in einem früheren Beitrag vorgestellt. Dessen obere Halterung ist jedoch vor allem für kleine Kameramodule gedacht und eignet sich nicht optimal für die Shelly Camera.
Für dieses Projekt verwende ich deshalb eine 3D-gedruckte Pan-Tilt-Halterung für zwei SG90-Servomotoren. Die Druckdateien findest du kostenlos auf MakerWorld. Die obere Plattform bietet Platz für die Shelly Camera.
Die Shelly Camera wird mit einer kleinen Metallplatte geliefert. Deren Klebepad befestige ich auf der oberen Plattform der gedruckten Halterung. Anschließend setze ich die Kamera mit ihrem Magnetfuß einfach auf die Metallplatte.
Der untere Servo dreht die Halterung nach links und rechts. Der obere Servo neigt die Plattform mit der Kamera nach oben und unten. So kann ich die Blickrichtung der Shelly Camera über die Webseite verändern, ohne die Kamera von Hand neu auszurichten.
Aufbau der Schaltung
Die elektrische Schaltung ist überschaubar, da der XIAO ESP32-C6 lediglich die Steuersignale für die beiden SG90-Servomotoren erzeugt. Jeder Servo benötigt dafür einen eigenen GPIO-Pin. Die Versorgung der Servomotoren erfolgt jedoch nicht direkt über den Mikrocontroller.
Beim Anlaufen oder unter Last können die beiden SG90-Servomotoren kurzzeitig viel Strom benötigen. Werden sie über den Mikrocontroller versorgt, kann die Spannung einbrechen. Dann zucken die Servos möglicherweise, die WLAN-Verbindung bricht ab oder der XIAO ESP32-C6 startet neu. Deshalb versorge ich die Servos über ein separates 5-V-Netzteil.
Anschluss der Komponenten
| Verbindung | Anschluss |
|---|---|
| Signalleitung des Pan-Servos | GPIO0 des XIAO ESP32-C6 |
| Signalleitung des Tilt-Servos | GPIO1 des XIAO ESP32-C6 |
| rote Leitungen beider Servos | +5 V der externen Stromversorgung |
| braune beziehungsweise schwarze Leitungen | Minuspol der externen Stromversorgung |
| GND des XIAO ESP32-C6 | Minuspol der externen Stromversorgung |
Der Minuspol der externen Stromversorgung muss zusätzlich mit dem GND-Anschluss des XIAO verbunden werden. Diese gemeinsame Masse sorgt dafür, dass die PWM-Steuersignale ein eindeutiges Bezugspotenzial besitzen. Ohne diese Verbindung reagieren die Servomotoren möglicherweise unkontrolliert oder überhaupt nicht.
Wichtig: Wird ein regelbares Netzteil mit einem Bereich von 3 bis 24 V verwendet, muss dessen Ausgang vor dem Anschließen auf 5 V eingestellt und möglichst mit einem Multimeter kontrolliert werden. Eine höhere Spannung kann die SG90-Servomotoren beschädigen.
Programmierung und Quellcode
Die Pan-Tilt-Steuerung läuft mit MicroPython auf dem XIAO ESP32-C6. Falls MicroPython noch nicht installiert ist, findest du die Anleitung in meinem Beitrag „XIAO ESP32-C6 mit MicroPython flashen“.
Den Quellcode und die Anleitung zur Einrichtung findest du auf GitHub. Trage vor dem Start in der Datei config.py deinen WLAN-Namen, dein WLAN-Passwort und die IP-Adresse der Shelly Camera ein. Bei Bedarf kannst du dort auch die GPIO-Pins und die Bewegungsgrenzen der Servomotoren anpassen.

Übertrage anschließend die Projektdateien auf den XIAO ESP32-C6 und starte die Steuerung. Die Adresse der Webseite wird in Thonny ausgegeben. Öffne sie im Browser, um die Kamera mit den Pfeiltasten zu bewegen, Positionen zu speichern und das Aktualisierungsintervall des Kamerabildes einzustellen.

Kamerapositionen über die Webseite speichern
Über die Webseite des XIAO ESP32-C6 steuerst du die Pan-Tilt-Halterung mit vier Pfeiltasten. Die eingestellten Bewegungsgrenzen verhindern, dass du die Servomotoren über den vorgesehenen Bereich hinaus bewegst. Das Kamerabild wird als Standbild angezeigt und im gewählten Intervall aktualisiert.
Hast du eine nützliche Blickrichtung gefunden, kannst du sie speichern. Die Steuerung legt dabei die Positionen beider Servomotoren und ein aktuelles Kamerabild ab. So erkennst du später, welchen Bereich der gespeicherte Punkt zeigt. Die Daten bleiben auch nach einem Neustart des Mikrocontrollers erhalten. Mit einem Klick fährt die Halterung die gespeicherte Position wieder an.
Fazit
Mit der 3D-gedruckten Halterung, zwei SG90-Servomotoren und dem XIAO ESP32-C6 lässt sich die Shelly Camera aus der Ferne schwenken und neigen. Die Webseite zeigt dazu regelmäßig ein aktuelles Kamerabild und macht es möglich, häufig genutzte Blickrichtungen zu speichern.
Das Projekt ist auch für andere Kameras mit einer erreichbaren Snapshot-Adresse interessant. Die Halterung muss dann allerdings zur Größe und zum Gewicht der jeweiligen Kamera passen. Wenn du die Steuerung nachbaust oder anpasst, freue ich mich über deine Erfahrungen in den Kommentaren.
Letzte Aktualisierung am: 25. September 2026



