Vybraný požární senzor pro Arduino poskytuje digitální výstup OUT, tedy informaci sepnuto-nesepnuto. Tento senzor funguje na teplotním jevu při vzniku požáru, kdy se v místnosti začne zvyšovat teplota. Pokud tedy tento požární senzor umístíme na předpokládané ohnisko požáru, například na linku nad plynovým vařičem, můžeme poměrně spolehlivě detekovat zvýšenou teplotu při vzniku požáru.

Na modulu s požárním senzorem je jako hlavní prvek umístěné teplotní čidlo a společně s operačním zesilovačem a trimrem můžeme nastavit požadovanou teplotu, při jejímž překročení budeme detekovat požár. Pro testování je tedy možné využít svíčku nebo zapalovač, případně s nastavenou nízkou teplotou pouze ohřát teplotní senzor sevřením mezi prsty.

Požární senzor

Tento modul s požárním senzorem má 3 propojovací piny. Propojení s Arduinem je jednoduché a uvedené na obrázku níže. Stačí tedy připojit Gnd na zem, OUT na libovolný digitální pin a +5V na 5V napájení Arduino desky. Signál OUT je v klidovém režimu roven Gnd a při překročení nastavené teploty se přepne do log1, tedy napětí rovnému přibližně +5V.

Zapojení požárního senzoru

Ukázkový kód pro zapojení a vyzkoušení požárního senzoru obsahuje jako první inicializaci digitálního vstupu zvukového senzoru a proměnných, které slouží pro detekci překročení nastavené teploty, sepnutí Alarm módu, měření času od sepnutí a nastavení počtu milisekund pro uvedení do klidového režimu od narušení.

V podprogramu setup nejprve nastavíme komunikaci po sériové lince s rychlostí 9600 baud a poté nastavíme vstup z požárního senzoru jako digitální. V loop smyčce se nachází příkazy, které při každém průběhu načtou hodnotu digitálního vstupu do proměnné „teplo“ a poté kontrolují, jestli nebylo detekováno překročení nastavené teploty. Při detekci je pak do proměnné „casSepnuti“ uložen pomocí funkce „millis()“ aktuální čas od zapnutí Arduina při neaktivovaném Alarmu je vytištěna zpráva „Detekce pozaru!“. Po této zprávě se následně nastaví proměnná pro Alarm jako splněná a neopakuje se tedy při nové detekci tištění informace.

Při novém průběhu smyčkou loop je v případě klidového režimu zkontrolována doba mezi aktuálním časem a časem uloženým při posledním sepnutí. V případě, že rozdíl těchto časů je větší, než jsme si nastavili v proměnné „pauzaPoSepnuti“, a zároveň byl v předchozím případě spuštěn Alarm, dojde k vytištění zprávy o přepnutí do klidového režimu a je vynulována proměnná Alarm. Pro testovací režim jsem nastavil tuto prodlevu na 2 vteřiny, v praxi pak samozřejmě bude tato doba delší.

// Arduino požární senzor

// číslo pinu připojeného senzoru
const int senzor = 2;

// proměnná pro detekci dosáhnutí
// nastavené teploty
int teplo = HIGH;
// proměnná pro sepnutí Alarm modu
boolean Alarm = false;
// časová proměnná pro měřeni času sepnutí
unsigned long casSepnuti;
// časová proměnná pro nastavení počtu milisekund
// pro uvedení do klidového stavu od narušeni
int pauzaPoSepnuti = 2000;

void setup ()
{
  // komunikace přes sériovou linku rychlostí 9600 baud
  Serial.begin(9600);
  // inicializace digitálního vstupu
  pinMode (senzor, INPUT);
}

void loop ()
{
  // načtení hodnoty digitálního vstupu
  teplo = digitalRead (senzor);
  // při detekci dosažení nastavené hladiny teploty
  if (teplo == HIGH)
  {
    // uložení času sepnutí
    casSepnuti = millis();
    // při první detekci vytiskne zprávu o detekci požáru
    // pro nové tisknutí musí proběhnout vrácení do klidového režimu
    if (!Alarm){
      Serial.println("Detekce pozaru!");
      Alarm = true;
    }
  }
  // při klidovém režimu udělej následující
  else
  {
    // pokud je rozdíl mezi časem sepnutí a aktuálním časem
    // vetší než nastavená pauzaPoSepnuti a zároveň byl sepnutý Alarm,
    // vytiskni informaci o klidovém režimu a nastav Alarm pro nové použití
    if( (millis()-casSepnuti) > pauzaPoSepnuti  &&  Alarm){
      Serial.println("Klidovy rezim.");
      Alarm = false;
    }
  }
}

Po nahrání programu do Arduino desky si můžeme otevřít Sériový monitor a sledovat informace o detekci nastavené teploty při jejím překročení a následném klidu. Musíme však počítat s tím, že bude nutné umístit celý modul do vhodné vzdálenosti od zdroje tepla, abychom zamezili falešným spuštěním od nežádoucích zdrojů, například při normálním vaření.

Seznam použitých komponent:

http://arduino-shop.cz/arduino/973-arduino-pozarni-senzor-1424115579.html

http://arduino-shop.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html

http://arduino-shop.cz/arduino/844-arduino-nepajive-pole.html

http://arduino-shop.cz/arduino-kabelaz-propoje-rozsireni/1063-arduino-vodice-samec-samec-40-kusu.html

FB gp tw

Další podobné články