Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

SENZOR MQ135

Vlastimil Vágner

    Pro jeden projekt jsem potřeboval senzor který snímá kromě plynů i kouř, po testech s optickým senzorem který spíše dobře snímá prachové částice padla po několika testech senzorů volba na MQ135. Senzory na plyny a prach v ovzduší se dají koupit hotové ale nemají počet výstupů které jsem potřeboval tak že jsem zvolil tento senzor a řídící jednotku založenou na ARDUINO UNO nebo ARDUINO NANO, program umožňuje načítání dat a změnu konstanty pomocí počítače nebo z tabletu, chytrého telefonu. Volba na tablet je z důvodu že v několika případech je veškerá elektronika umístěna ve výšce, po nastavení pracuje přípravek bez nutnosti připojení k počítači,tabletu.

 

Popis senzoru MQ135

    Senzor je napájený napětím 5V vlastní snímač je trvale nahříván tak že se nehodí na napájení z baterií, má dva výstupy jeden je označený „AO“ tento výstup má napěťovou úroveň která je úměrná koncentraci plynu v ovzduší. Druhý výstup je označený „DO“ tento výstup je v úrovni TTL tyto úrovně se nastavuji pomocí trimru kdy nastavujeme hodnotu při jaké napěťové úrovni má být tento výstup „DO“ aktivní. Na DPS jsou osazeny dvě LED diody jedna signalizuje zapnutí a druhá LED dioda signalizuje aktivní výstup „DO“. Z důvodu trvalého nahřívání snímacího prvku se na toto musí brát zřetel ohřátý snímač má teplotu do 40°C. Doba nahřívání senzoru po zapnutí by měla být 1minuta až 2 minuty že je senzor již ohřátý se pozná při ustálené hodnotě výstupného napětí zobrazované na monitoru počítače nebo tabletu ve spuštěném sériovém terminálu.

 

Popis přípravku

    Schéma zapojení přípravku je na Obr.č.01 napájení je ze zdroje 9VDC jde o zdroj s možností volby výstupního napětí, zdroj napájí desku Arduina přes jeho napájecí konektor. Senzor MQ135 je napájen ze stejného zdroje přes stabilizátor 7805 z desky Arduino je napájen i převodník pro komunikační modul BLUETTOTH JDY-33 a další senzory a relé. V tomto schématu je pouze ovládaný dle hodnoty ze senzoru jeden PIN D3 nastavený jako výstupní, další připojené senzory a ovládání motorů není součástí tohoto zapojení a úprava je čistě individuální stejně tak i popsané programy. Výstup ze senzoru „AO“ je připojený na analogový vstup Arduina „A0“, při použití BLUETOOTH nebo počítače v provozu jsou při komunikaci použité komunikační signály TXD, RXD programem nastaveny na desce Arduina TXD je na PIN 11, RXD je na desce Arduina na PIN 10. Pro vyhodnocování úrovně signálu ze senzoru dle znečištění je použit uvedený výstup „AO“ pro plynulou změnu hodnot napětí. Která je v programu použita pro porovnání s konstantou, výstup „DO“ není použit pro nestabilitu nastavené hodnoty trimrem, která se neustále měnila i u více senzorů. Při sestavě přípravku jsou použity hotové moduly pro připojení Arduina je použit hotový modul „ ARDUINO UNO TERMINÁL SHIELD, senzor MQ135 je také již osazený na DPS pouze pro modul BLUETOOTH byl vyrobený převodník na univerzální vrtané destičce stejně tak je vyrobený i zdroj napětí 5V se stabilizátorem 7805.

 

Popis programů

    Programy pro Arduino jsou celkem tři a jsou uloženy v adresáři ARDUINO, v adresáři POČÍTAČ je uložený program ARDUINO.EXE pro sériovou komunikaci včetně návodu v PDF k tomuto programu, součástí je i knihovna RSCOM.DLL která musí být umístěna ve stejném adresáři jako program ARDUINO.EXE. V adresáři jsou i naměřené hodnoty které se dají zobrazit v jakémkoliv manažéru.

    První program pro Arduino má název TEST_ČIDLA_MQ135 tento program načítá výstupní hodnoty a přepočítává je na „ppm“ ze senzoru MQ135 a po ustálení hodnoty se tato hodnota zadává v dalších dvou programech jako konstanta, hodnoty „ppm“ se zobrazují na monitoru počítače se spuštěným programem ARDUINO.EXE. V tomto případě je počítač s Arduino uno propojen programovacím kabelem ze kterého je i Arduino NAPÁJENO a napájení senzoru je ze zdroje 9V/5V, oba moduly jsou propojeny pouze vodičem z PINU GND ARDUINA na GND senzoru a vodičem z výstupu senzoru „AO“ na PIN „A0“ Arduina

    Druhý program má název SNÍMAČ_MQ135_POČÍTAČ tento program umožňuje zadat konstantu do paměti EEPROM, zobrazuje na monitoru počítače vypočítanou hodnotu z načtené hodnoty ze senzoru na hodnotu „ppm“ a současně i stav relé zda je sepnuto nebo rozepnuto. Tyto hodnoty se zobrazují opět ve spuštěném programu ARDUINO.EXE na počítači, zde je již možná volba zda chceme zapsat hodnotu konstanty do paměti EEPROM, nebo pouze chceme načíst hodnotu uloženou v paměti EEPROM poslední možnost je pak volba přepsání již uložené hodnoty v EEPROM novou hodnotou pokud je potřeba. Volby se volí tak že ve spuštěném sériovém terminálu ARDUINO EXE v okně „ZÁPIS TEXT“ v případě zápisu do paměti EEPROM zadáme hodnotu 1,“a hodnotu konstanty“, příklad chceme zadat konstantu dle načtené hodnoty ze senzoru 0.35, zadáme 1,35. Po zadání hodnoty klikneme na tlačítko s nápisem „ ODESLAT ZÁPIS TEXT „ a v okně s názvem „ČTENÍ TEXT“ se začnou zobrazovat přijaté hodnoty z Arduina. V případě že chceme pouze načíst hodnotu uloženou v paměti EEPROM zadáme ve spuštěném sériovém terminálu ARDUINO.EXE v okně  „ZÁPIS TEXT“ hodnotu 2 a klikneme na tlačítko s nápisem „ ODESLAT ZÁPIS TEXT „ a v okně s názvem „ČTENÍ TEXT“ se zobrazí hodnota uložená v paměti EEPROM. Pokud potřebujeme  například po výměně senzoru za jiný (stejný typ MQ135) nebo z jiného důvodu změnit uloženou hodnotu v paměti EEPROM zadáme ve spuštěném sériovém terminálu ARDUINO.EXE v okně  „ZÁPIS TEXT“ hodnotu 3, „a novou hodnotu“ a klikneme na tlačítko s nápisem „ ODESLAT ZÁPIS TEXT „ a v okně s názvem „ČTENÍ TEXT“ se zobrazí nová uložená hodnota v paměti EEPROM, „příklad 3,50“. I v tomto případě je Arduino uno PROPOJENO S POČÍTAČEM PROGRAMOVACÍM KABELEM, S modulem senzoru MQ135 je deska Arduino propojena pouze vodičem z PINU GND Arduina s GND senzoru a výstup „AO“ senzoru je spojen s PINEM „A0“ Arduina. POKUD JE Arduino uno NAPÁJENO PŘES PROGRAMOVACÍ KABEL PŘIPOJENÝ K POČÍTAČI NESMÍ BÝT Arduino NIKDY SOUČASNĚ NAPÁJENO Z JINÉHO ZDROJE PŘES NAPÁJECÍ KONEKTOR.

    Třetí program má název SNÍMAČ_MQ135_BLUETOOTH zde je napájení Arduina i senzoru MQ135 podle obrázku č.01 ze stejného zdroje. Arduino je napájeno přes napájecí konektor. Napájení senzoru je ze stabilizátoru 7805 napětím 5V připojení počítače k Arduinu je pomocí převodníku USB/COM – TTL, komunikace je přes PINY Arduina TXD na PINU 11, RXD na pinu Arduina PIN10 a GND převodníku USB/COM – TTL je připojeno na PIN GND Arduina. GND senzoru MQ135 je také spojeno s GND Arduina a výstup senzoru „AO“ je spojen s „A0“ Arduina, tento program má shodné zadávání hodnot do paměti EEPROM jako je popsáno v popisu k programu SNÍMAČ_MQ135_POČÍTAČ. Pokud je použito ke komunikaci BLUETOOTH tento je připojen podle Obr.č.01 a na tabletu se spustí sériový terminál kde se zobrazují načtené hodnoty ze snímače po přepočtu na ppm.

 

Oživení přípravku

    Po nahrání programu TEST_ČIDLA_MQ135 do Arduina odpojíme programovací kabel od Arduina, do desky Arduina zasuneme Arduino terminál shield kde je již připojen senzor i s napájením ze zdroje 9V/5V. Opět propojíme desku Arduino s počítačem na počítači spustíme program ARDUINO.EXE zadáme parametry dle popisu k programu připojíme napájení k senzoru MQ135 a spustíme komunikaci v terminálu. Na monitoru se začnou zobrazovat přepočítané hodnoty ze senzoru a po ohřátí senzoru na provozní teplotu se již zobrazují ustálená data a tuto hodnotu si poznamenáme. Toto první zapnutí senzoru pro získání hodnoty provádíme v místnosti kde není nakouřeno ani jinak znečištěné ovzduší pro kalibraci. Po získání hodnoty vypneme napájení senzoru a odpojíme programovací kabel, a vysuneme z desky Arduino terminál shield desku. Nyní opět propojíme počítač s Arduino a v Arduino IDE přehrajeme program TEST_ČIDLA_MQ135 programem SNÍMAČ_MQ135_POČÍTAČ ukončíme program IDE na programování Arduina na počítači spustíme ARDUINO.EXE zadáme parametry pro komunikaci a podle popisu výše zvolíme možnost podle volby pro zápis do paměti EPROM to jest volba č.1. A nahrajeme hodnotu do EEPROM nyní provedeme tlačítkem „RESET“ na desce Arduina nové spuštění programu a po zadání hodnoty 2 v sériovém terminálu podle popisu výše se již musí zobrazit hodnota uložená v paměti EEPROM. Po zobrazení hodnoty odpojíme programovací kabel do desky Arduina zasuneme desku terminál shield kde je připojený senzor MQ135 a jeho napájení. Zapneme napájení senzoru propojíme programovací kabel do počítače a ve spuštěném sériovém terminálu se již musí v okně „ČTENÍ TEXT“zobrazovat přepočítané hodnoty v „ppm“ podle hodnoty ze senzoru na výstupu „AO“. V programech SNÍMAČ_MQ135_POČÍTAČ, SNÍMAČ_MQ135_BLUETOOTH je předvolena hodnota která se porovnává s hodnotou uloženou v paměti EEPROM a pokud je hodnota vyšší než hodnota v EEPROM dojde k sepnutí relé. Tuto hodnotu je možné si i s dalšími a programy upravit dle vlastních potřeb programy využívají knihovnu MQ135.h volně dostupnou na internetu.

 

 

          použitý senzor MQ135

 

          typ senzoru

 

          převodník pro BLUETOOTH

 

          testování senzoru s programy

 

 

          připojení BLUETOOTH testování programu

 

          použitý sériový terminál na tabletu

 

           zobrazená data ze senzoru a stav relé

 

Použité prameny:

PDF k senzoru MQ135

 

Bližší informace:

Vagnervlastimil@seznam.cz