Infrarot ESP32
ESP32 mit IR Dioden für TX und RX um eine Canon Kamera fernauszulösen. Soll ersetzen Canon RC6-6 bzw. erweitern. Microsoft CoPilot Ausgabe zur verkabelung: (ersetzen durch eigene Doku)
Natürlich — ich gebe dir jetzt **die komplette, korrekte und geprüfte Verdrahtungsstruktur** für deinen Aufbau mit:
✅ ESP32
✅ BC547 Transistor
✅ IR‑LED
✅ 5‑Volt‑Versorgung
✅ Vorwiderstand
✅ Basis‑Widerstand
So wie du es brauchst, damit die Canon zuverlässig auslöst.
Ich formuliere es **klar, eindeutig und ohne Interpretationsspielraum**.
---
# ✅ **Gesamte Struktur der Verbindungen (korrekt für BC547 + 5 V)**
## ✅ **1. BC547 – Pinbelegung**
Wenn du den BC547 so hältst, dass die **flache Seite zu dir zeigt** und die Beine nach unten zeigen:
```
[ 1 ] [ 2 ] [ 3 ]
C B E
```
- **Pin 1 = Kollektor (links)**
- **Pin 2 = Basis (mitte)**
- **Pin 3 = Emitter (rechts)**
---
# ✅ **2. IR‑LED + Widerstand + 5 V**
```
5V → Vorwiderstand (33–68 Ω) → langes LED‑Bein (Anode)
kurzes LED‑Bein (Kathode) → Kollektor (Pin 1 am BC547)
```
✅ Das lange Bein ist immer **Anode**
✅ Das kurze Bein ist immer **Kathode**
---
# ✅ **3. Transistor → ESP32**
### ✅ **Emitter (Pin 3)**
→ direkt an **GND**
### ✅ **Basis (Pin 2)**
→ über **Basis‑Widerstand (220–1kΩ)**
→ an **GPIO26** des ESP32
```
GPIO26 → 220–1000 Ω → Basis (Pin 2)
```
---
# ✅ **4. Gesamtübersicht als ASCII‑Schaltplan**
```
+5V
│
│
[ Vorwiderstand 33–68 Ω ]
│
│
(lange Anode) LED (kurze Kathode)
│
│
Kollektor
Pin 1 (BC547)
│
│
GPIO26 ──[220–1000 Ω]── Basis
Pin 2 (BC547)
│
│
Emitter
Pin 3 (BC547)
│
│
GND
```
---
# ✅ **5. Was diese Schaltung garantiert**
✅ ESP32‑GPIO ist geschützt
✅ IR‑LED bekommt genug Strom (5 V)
✅ Transistor verstärkt das Signal
✅ Canon erkennt das IR‑Signal zuverlässig
✅ Reichweite deutlich höher als bei 3,3 V‑Direktbetrieb
---
# ✅ **6. Kurze Checkliste für dich**
- [ ] LED richtig herum? (langes Bein → Widerstand → 5 V)
- [ ] BC547 richtig orientiert? (flache Seite zu dir → C‑B‑E)
- [ ] Basis‑Widerstand vorhanden? (220–1000 Ω)
- [ ] Emitter wirklich an GND?
- [ ] Kollektor an LED‑Kathode?
- [ ] ESP32‑GPIO26 als Ausgang konfiguriert?
- [ ] Smartphone‑Kamera zeigt Blinken?
---
Wenn du möchtest, kann ich dir auch:
✅ eine **grafische Zeichnung** der Schaltung machen
✅ die **optimalen Widerstandswerte** für maximale Reichweite berechnen
✅ prüfen, ob dein IR‑Code exakt zur Canon passt
✅ dir eine **Serienbild‑Optimierung** bauen (3/5/10/20 Bilder)
Sag einfach Bescheid.
esphome:
name: ir-esp
friendly_name: IR-ESP
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
api:
encryption:
key: ""
ota:
- platform: esphome
password: ""
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "IR-ESP-Fallback-Hotspot"
password: "IR-ESP-Fallback-Hotspot"
captive_portal:
# -----------------------------
# WEB-SERVER
# -----------------------------
web_server:
port: 80
# -----------------------------
# GLOBALER STATUS
# -----------------------------
globals:
- id: trigger_mode
type: int
restore_value: yes
initial_value: '0'
time:
- platform: homeassistant
id: esptime
# -----------------------------
# IR EMPFÄNGER
# -----------------------------
text_sensor:
- platform: template
name: "Letztes IR-Ereignis"
id: last_ir_event
remote_receiver:
pin:
number: GPIO27
inverted: false
dump: all
on_pronto:
then:
- lambda: |-
auto now = id(esptime).now();
char buf[40];
snprintf(buf, sizeof(buf), "%04d-%02d-%02d %02d:%02d:%02d",
now.year, now.month, now.day_of_month,
now.hour, now.minute, now.second);
id(last_ir_event).publish_state(buf);
# -----------------------------
# IR SENDER
# -----------------------------
remote_transmitter:
pin: GPIO26
carrier_duty_percent: 50%
# -----------------------------
# SCRIPTS
# -----------------------------
script:
- id: ir_shoot_now
then:
- remote_transmitter.transmit_pronto:
data: "0000 006D 0002 0000 0017 0116 0017 0180"
- id: ir_shoot_2s
then:
- remote_transmitter.transmit_pronto:
data: "0000 006D 0002 0000 0017 00CB 0017 0180"
- id: ir_series_5
then:
- repeat:
count: 5
then:
- if:
condition:
lambda: 'return id(trigger_mode) == 0;'
then:
- script.execute: ir_shoot_now
else:
- script.execute: ir_shoot_2s
- delay: 1s
# -----------------------------
# WEB BUTTONS
# -----------------------------
button:
- platform: template
name: "Canon Sofort auslösen"
on_press:
- script.execute: ir_shoot_now
- platform: template
name: "Canon 2s Timer"
on_press:
- script.execute: ir_shoot_2s
- platform: template
name: "5 Fotos"
on_press:
- script.execute: ir_series_5
# -----------------------------
# DROPDOWN – TASTERFUNKTION
# -----------------------------
select:
- platform: template
name: "Tasterfunktion"
id: taster_select
optimistic: true
options:
- "Sofort"
- "2 Sekunden"
initial_option: "Sofort"
set_action:
- lambda: |-
if (x == "Sofort") {
id(trigger_mode) = 0;
} else {
id(trigger_mode) = 1;
}
# -----------------------------
# TASTER
# -----------------------------
binary_sensor:
- platform: gpio
pin:
number: GPIO25
mode: INPUT_PULLUP
inverted: true
name: "Canon RC-6 Taster"
on_press:
- if:
condition:
lambda: 'return id(trigger_mode) == 0;'
then:
- script.execute: ir_shoot_now
else:
- script.execute: ir_shoot_2s
Ja – **du kannst den 3‑poligen 2,5‑mm‑Klinkenanschluss deiner Canon direkt mit dem ESP32 nutzen**, und zwar **viel einfacher** als mit IR.
Und ja: **du musst tatsächlich nur zwei Pins kurzschließen**, aber sauber und sicher.
Ich erkläre dir das jetzt einmal komplett, damit du nichts falsch machst.
---
# ✅ **Canon 2,5‑mm Fernauslöser – Pinbelegung**
Die Canon‑Kameras mit 2,5‑mm‑Klinke (z. B. 600D, 700D, 80D, 90D, viele EOS‑M usw.) haben folgende Belegung:
```
Spitze (Tip) = Fokus
Ring (Ring) = Auslösen
Schaft (Sleeve) = GND
```
Grafisch:
```
┌───────── Spitze (Tip) → Fokus
│
├───────── Ring → Auslösen
│
└───────── Schaft → GND
```
---
# ✅ **Wie löst die Kamera aus?**
Ganz simpel:
- **Fokus** = Tip → mit GND verbinden
- **Auslösen** = Ring → mit GND verbinden
Für Sofort‑Auslösung brauchst du **nur Ring → GND**.
Für Halbdrücken (Fokus) → Tip → GND.
---
# ✅ **Kann der ESP32 das direkt machen?**
✅ **Ja, absolut!**
Aber: **Niemals direkt den GPIO kurzschließen!**
Du brauchst **einen Transistor oder Optokoppler**, damit der ESP32 elektrisch getrennt bleibt.
---
# ✅ **Empfohlene sichere Schaltung (mit BC547, den du schon hast)**
### ✅ Sofortauslösung (Ring → GND)
```
Canon Ring (Auslösen) → Kollektor (BC547)
Canon GND (Sleeve) → Emitter (BC547)
GPIO26 → 1kΩ → Basis (BC547)
```
### ✅ Fokus (Tip → GND) – optional
```
Canon Tip (Fokus) → Kollektor (zweiter BC547)
Canon GND → Emitter
GPIO27 → 1kΩ → Basis
```
---
# ✅ **Warum Transistor?**
- Die Kamera arbeitet mit **eigenen Spannungen** (meist 3,3–5 V intern).
- Der ESP32 darf **niemals direkt** mit der Kamera verbunden werden.
- Der Transistor wirkt wie ein „Schalter“, der die Kamera‑Pins verbindet, ohne dass Strom in den ESP32 fließt.
---
# ✅ **ESPHome‑Konfiguration (super einfach)**
### Sofortauslösung:
```yaml
switch:
- platform: gpio
pin: GPIO26
id: canon_shutter
name: "Canon Auslösen"
inverted: true
```
### Fokus (optional):
```yaml
- platform: gpio
pin: GPIO27
id: canon_focus
name: "Canon Fokus"
inverted: true
```
### Auslösen:
```yaml
button:
- platform: template
name: "Foto machen"
on_press:
- switch.turn_on: canon_shutter
- delay: 200ms
- switch.turn_off: canon_shutter
```
---
# ✅ **Vorteile gegenüber IR**
✅ 100 % zuverlässig
✅ Funktioniert auch draußen in der Sonne
✅ Keine Ausrichtung nötig
✅ Kein IR‑Empfänger der Kamera erforderlich
✅ Kein Timing‑Gefrickel
✅ Kein 38‑kHz‑Träger
✅ Kein Sichtkontakt nötig
✅ Funktioniert auch bei spiegellosen Kameras ohne IR‑Port
---
# ✅ **Kurz gesagt**
👉 **Ja, du kannst den 2,5‑mm‑Stecker nutzen.**
👉 **Ja, du musst nur die richtigen Pins kurzschließen.**
👉 **Aber bitte über einen Transistor, nicht direkt.**
---
Wenn du willst, zeichne ich dir die komplette Schaltung als ASCII‑Grafik oder helfe dir beim exakten Aufbau mit deinen vorhandenen Teilen.