|
Senzory 1.0
|
Hlavní aplikace pro měření kvality vnitřního prostředí. More...
#include <avr/io.h>#include <util/delay.h>#include <avr/interrupt.h>#include <stdio.h>#include "timer.h"#include "twi.h"#include "oled.h"#include "adc.h"#include "gp2y1010.h"#include "mq135.h"#include "dht12.h"Functions | |
| void | oled_setup (void) |
| Inicializace a rozložení OLED displeje. | |
| void | timer1_init (void) |
| Inicializuje časovač TIMER1 pro periodické přerušení. | |
| int | main (void) |
| Vstupní bod programu. | |
| ISR (TIMER1_OVF_vect) | |
| Obsluha přerušení od TIMER1. | |
Variables | |
| volatile uint8_t | flag_update = 0 |
Hlavní aplikace pro měření kvality vnitřního prostředí.
Program periodicky měří teplotu a vlhkost (DHT12), koncentraci prachových částic (GP2Y1010AU0F) a odhad kvality vzduchu / CO2 (MQ-135). Naměřené hodnoty se zobrazují na OLED displeji.
Aplikace využívá moduly: DHT12 Temperature & Humidity Sensor Library, GP2Y1010 Dust Sensor Library, MQ-135 Gas Sensor Library, ADC Driver, TWI Library, OLED Display Driver a Timer Library.
Časovač TIMER1 generuje periodické přerušení, které nastavuje vlajku flag_update, podle které hlavní smyčka provádí aktualizaci.
| ISR | ( | TIMER1_OVF_vect | ) |
Obsluha přerušení od TIMER1.
Každé přetečení nastaví vlajku pro aktualizaci měření v hlavní smyčce.
| int main | ( | void | ) |
Vstupní bod programu.
Provede inicializaci všech periferií (ADC, I2C, senzory, OLED, časovač) a poté v nekonečné smyčce čeká na příznak aktualizace. Po jeho nastavení provede měření senzorů a zobrazí výsledky na OLED displeji.
| void oled_setup | ( | void | ) |
Inicializace a rozložení OLED displeje.
Zapíše statické texty a připraví rozvržení obrazovky.
| void timer1_init | ( | void | ) |
Inicializuje časovač TIMER1 pro periodické přerušení.
Každé přetečení nastaví vlajku flag_update ve ISR.