Senzory 1.0
main.c File Reference

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

Detailed Description

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.

Function Documentation

◆ ISR()

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.

◆ main()

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.

◆ oled_setup()

void oled_setup ( void )

Inicializace a rozložení OLED displeje.

Zapíše statické texty a připraví rozvržení obrazovky.

◆ timer1_init()

void timer1_init ( void )

Inicializuje časovač TIMER1 pro periodické přerušení.

Každé přetečení nastaví vlajku flag_update ve ISR.