Zpět na články

ESP32 + senzor plamene (5 kanálů) – detekce ohně v Arduino IDE

Jak připojit 5kanálový IR senzor plamene k ESP32 a detekovat oheň pomocí digitálních i analogových výstupů v Arduino IDE.

ESP32 + senzor plamene (5 kanálů) – detekce ohně v Arduino IDE

Co je 5kanálový senzor plamene?

Senzor plamene s 5 IR přijímači dokáže detekovat plamen v rozsahu více než 120°, zatímco jednokanalový senzor pokryje pouze 30°. To z něj dělá mnohem spolehlivější volbu pro bezpečnostní projekty.

Senzor detekuje infračervené záření ve vlnové délce 760–1100 nm, které plamen vyzařuje. IR záření přijímá fotodioda na modulu, jejíž signál zpracovává komparátor LM393 – ten analogový signál převede na digitální podle nastaveného prahu citlivosti.

Každý z 5 kanálů má vlastní digitální i analogový výstup, takže můžete zjistit nejen zda plamen hoří, ale i přibližně z jakého směru.

Hlavní vlastnosti

  • 5 IR přijímačů – detekce plamene v rozsahu 120°+
  • Detekce vlnových délek 700–1100 nm (krátkovlnné blízké IR)
  • Digitální i analogový výstup na každém kanálu
  • Napájení 3,3–9V – kompatibilní s ESP32
  • Potenciometr pro nastavení citlivosti
  • Indikační LED pro každý kanál

Potřebné komponenty

  • ESP32
  • 5kanálový IR senzor plamene
  • Propojovací vodiče
  • Volitelně: bzučák pro zvukový alarm
⚠️ Nevystavujte senzor přímému slunečnímu záření – může způsobit falešné detekce, protože sluneční záření obsahuje IR složku.

Zapojení

Modul má celkem 13 pinů – pro základní použití stačí připojit napájení a jeden nebo více kanálů.

Napájení: VCC připojte na 3,3V ESP32, GND na GND ESP32.

Digitální výstupy (D1–D5): připojte na libovolné GPIO piny ESP32. Doporučené piny jsou GPIO 34, 35, 32, 33 a 25 – jsou určené pouze pro vstup a neruší ostatní periferie.

Analogové výstupy (A1–A5): připojte na ADC piny ESP32 (GPIO 34, 35, 32, 33, 25). Pozor – GPIO 34–39 jsou pouze vstupní piny, nelze je použít jako výstup.

⚠️ Nepoužívejte ADC2 piny (GPIO 0, 2, 4, 12–15, 25–27) pokud používáte WiFi – ADC2 s WiFi nefunguje.

Kód 1 – základní detekce (digitální výstupy)

flame.c
1// Digitální piny pro 5 kanálů senzoru 2const int FLAME_D1 = 34; 3const int FLAME_D2 = 35; 4const int FLAME_D3 = 32; 5const int FLAME_D4 = 33; 6const int FLAME_D5 = 25; 7 8const int BUZZER_PIN = 26; // volitelný bzučák 9 10void setup() { 11 Serial.begin(115200); 12 13 pinMode(FLAME_D1, INPUT); 14 pinMode(FLAME_D2, INPUT); 15 pinMode(FLAME_D3, INPUT); 16 pinMode(FLAME_D4, INPUT); 17 pinMode(FLAME_D5, INPUT); 18 pinMode(BUZZER_PIN, OUTPUT); 19} 20 21void loop() { 22 int d1 = digitalRead(FLAME_D1); 23 int d2 = digitalRead(FLAME_D2); 24 int d3 = digitalRead(FLAME_D3); 25 int d4 = digitalRead(FLAME_D4); 26 int d5 = digitalRead(FLAME_D5); 27 28 // LOW = plamen detekován, HIGH = žádný plamen 29 bool flameDetected = (!d1 || !d2 || !d3 || !d4 || !d5); 30 31 if (flameDetected) { 32 Serial.println("⚠️ PLAMEN DETEKOVÁN!"); 33 Serial.print("Aktivní kanály: "); 34 if (!d1) Serial.print("1 "); 35 if (!d2) Serial.print("2 "); 36 if (!d3) Serial.print("3 "); 37 if (!d4) Serial.print("4 "); 38 if (!d5) Serial.print("5 "); 39 Serial.println(); 40 41 digitalWrite(BUZZER_PIN, HIGH); 42 } else { 43 Serial.println("OK – žádný plamen"); 44 digitalWrite(BUZZER_PIN, LOW); 45 } 46 47 delay(200); 48}


Kód 2 – pokročilá detekce (analogové výstupy + směr)

flame.c
1// Analogové piny pro 5 kanálů 2const int FLAME_A1 = 34; 3const int FLAME_A2 = 35; 4const int FLAME_A3 = 32; 5const int FLAME_A4 = 33; 6const int FLAME_A5 = 25; 7 8// Práh detekce (0–4095, nižší hodnota = silnější IR záření) 9const int THRESHOLD = 2000; 10 11void setup() { 12 Serial.begin(115200); 13} 14 15void loop() { 16 int a1 = analogRead(FLAME_A1); 17 int a2 = analogRead(FLAME_A2); 18 int a3 = analogRead(FLAME_A3); 19 int a4 = analogRead(FLAME_A4); 20 int a5 = analogRead(FLAME_A5); 21 22 Serial.printf("Kanály: L=%d | L2=%d | C=%d | R2=%d | R=%d\n", 23 a1, a2, a3, a4, a5); 24 25 // Detekce směru plamene 26 bool left = (a1 < THRESHOLD || a2 < THRESHOLD); 27 bool center = (a3 < THRESHOLD); 28 bool right = (a4 < THRESHOLD || a5 < THRESHOLD); 29 30 if (left && !right) Serial.println("Plamen vlevo"); 31 else if (right && !left) Serial.println("Plamen vpravo"); 32 else if (center) Serial.println("Plamen přímo před senzorem"); 33 else if (left && right) Serial.println("Plamen všude!"); 34 else Serial.println("Žádný plamen"); 35 36 Serial.println("---"); 37 delay(300); 38} 39

Jak to funguje

Digitální výstup

Pokud je plamen detekován, výstupní pin DO dá hodnotu LOW (0V). Pokud plamen není přítomen, výstupní pin dá hodnotu HIGH (5V). Proto v kódu kontrolujeme !digitalRead() – LOW znamená oheň.

Analogový výstup

Analogový výstup vrací hodnotu 0–4095 (12-bit ADC ESP32). Čím nižší hodnota, tím silnější IR záření senzor detekuje a tím blíže nebo intenzivnější je plamen. Díky 5 kanálům rozmístěným vedle sebe lze odhadnout přibližný směr plamene.

Nastavení citlivosti

Na modulu je potenciometr, kterým nastavíte práh citlivosti pro digitální výstupy. Pokud LED zůstává trvale zapnutá nebo vypnutá i při přiblížení plamene, otočte potenciometrem a dolaďte citlivost senzoru.

Časté problémy

Senzor detekuje plamen i bez ohně → Přímé sluneční světlo nebo silné žárovky obsahují IR záření – stíňujte senzor nebo snižte citlivost potenciometrem

Senzor nereaguje ani na oheň → Zvyšte citlivost potenciometrem → Ověřte zapojení VCC a GND → Zkontrolujte, zda nepoužíváte ADC2 piny s aktivní WiFi

Analogové hodnoty jsou nestabilní → Pro projekty vyžadující vysokou přesnost zvažte použití externího ADC (např. ADS1115) místo interního ADC ESP32.

Možná rozšíření

  • Přidejte bzučák pro okamžitý zvukový alarm při detekci plamene
  • Kombinujte s relé modulem pro automatické vypnutí elektrických spotřebičů
  • Připojte SIM7600 a pošlete SMS upozornění při detekci ohně
  • Použijte v hasicím robotovi – 5 kanálů umožní robotovi navigovat směrem k plameni
  • Přidejte OLED displej pro zobrazení stavu a hodnot ze všech kanálů

Nakupte svoje ESP32 ještě dnes!

Doprava Zásilkovnou za 89 Kč
Platba dobírkou
Vrácení do 30 dnů
Omezené zásoby - skladem

ESP32-S3 DevKit USB-C

Kompletní vývojová deska s USB-C

240MHz dvoujádrový
WiFi 802.11 b/g/n
Bluetooth 4.2 + BLE
4MB Flash paměť
520KB SRAM
38 GPIO pinů
209za kus

Množstevní slevy:

1
Celkem
209
Objednat

Bezpečná platba při převzetí zásilky nebo online platba přes Comgate, a.s.