Alkoino – dodavanje idućeg senzora

Prethodni korak: početno sastavljanje Arduino modula

Vrijeme je za dodavanje novog DHT11 senzora temperature i vlažnosti. Ovaj korak kao što sam ranije navodio nije skroz nužan, ali želio sam ga provesti za svoj projekt radi preciznijih očitanja i zanimljivosti u programiranju. Senzor sam spojio na već postojeću schemu:

tutorial_web_img60

Konkretno spojen izgleda ovako:tutorial_web_img61

Prilikom spajanja također je bitan poredak pinova senzora. Za spajanje DHT11 senzora na Arduino, odabrao sam analogni pin A4 koji će biti input pin za očitanje.

Raspored pinova DHT11 senzora:tutorial_web_img62

Otpornik od 5,6 k sam spojio prema preporuci iz DHT11 datasheeta.

Ovako sastavljen Arduino modul zahtjeva unaprijeđen sketch kojim će se moći očitati temperatura i vlažnost da bi se također ispisali na Serial Monitoru. Korištenje DHT11 u Arduino sketchu očekuje i malo znanje upotrebe libraryja jer se ne može direktno pristupiti očitanju vrijednosti analognog pina. Zbog toga treba malo proučiti i upute na linku http://playground.arduino.cc/Main/DHTLib kako bi se upoznalo korištenje i preuzeo library koji je potrebno importati u Arduino IDE. Prema uputama djeluje komplicirano, ali nije, bitno je preuzeti zadnju verziju libraryja s GitHuba što piše u uputama. Ukoliko se koristi neki drugi senzor temperature i vlažnosti, npr. DHT22, princip je isti, a u sourceu sam dodao komentare prema kojima bi se trebali snaći u pozivu druge funkcije za pristup senzoru. Uglavnom, nije toliko komplicirano kao na prvi pogled. Više informacija vezanih za import libraryja u Arduino IDE možete naći na http://arduino.cc/en/Guide/Libraries.

Source code sketcha:

/************************************************************************************************
*
* Inicijalizacija senzora - burn in MQ-3 senzora, očitavanje temperature i vlažnosti zraka
*
************************************************************************************************/
#include <dht.h>

dht DHT;

#define ledPin 13 // indikator rada na internom LED-u
#define pinOUT_MQ A2 // A2 je output pin za 5V za MQ-3 senzor
#define pinIN_MQ A1 // A1 je input pint za očitanje MQ-3 senzora
#define DHT_PIN A4 // pin A4 je input pin DHT senzora

int chk; // varijabla provjere očitanja DHT senzora
float t; // temperatura
float h; // vlažnost zraka

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(pinOUT_MQ, OUTPUT);
  digitalWrite(ledPin, LOW);
  digitalWrite(pinOUT_MQ, LOW);
  Serial.begin(9600);
  // zaglavlje CSV ispisa na Serial Monitoru
  Serial.println("DHT temperature;DHT humidity;MQ-3 value");
}

void loop() {
  digitalWrite(pinOUT_MQ, HIGH);  
  delay(10000);
  chk = DHT.read11(DHT_PIN); // poziva se read11 ako se koristi DHT11, za npr. DHT22 pozvati read22
  // ispravno očitanje temperature i vlažnosti
  if (chk == DHTLIB_OK && !isnan(DHT.temperature)) {
    t = DHT.temperature;
    h = DHT.humidity;
    // ispis u CSV formatu temperatura;vlažnost;vrijednost MQ-e senzora
    Serial.print(t);
    Serial.print(";");
    Serial.print(h);
    Serial.println(";" + String(analogRead(pinIN_MQ)));
  } else {
    // ispis u CSV formatu samo vrijednosti MQ-3 senzora
    Serial.println(";;" + String(analogRead(pinIN_MQ)));
  }
  // blink internog LED-a - indikator rada
  digitalWrite(ledPin, HIGH);
  delay(500);
  digitalWrite(ledPin, LOW);
}

Nakon verifikacije koda i uploada na Arduino, evo i nekih od očitanih vrijednosti vidljivih u Serial Monitoru:tutorial_web_img63

Ovaj sketch također može poslužiti za preheat MQ-3 senzora, odaberite koji bi vam bolje odgovarao. Sketch je unaprijeđen na način da se vrijednosti prema Serial Monitoru šalju u CSV formatu pa ih dalje možete npr. kopirati u Excel ili LibreOffice i po potrebi analizirati, tako se može promatrati recimo promjena temperature i vlažnosti zraka tokom dana.

Source code sketcha sadrži puno komentara prema kojima se može lakše ispratiti što se kojom linijom želi postići. Najvažniji je dio poziv funkcije za očitanje senzora i logička provjera da li je senzor ispravan te da li je očitana vrijednosti temperature ispravna (numerička).

Sljedeći korak: dodajmo Bluetooth

Leave a Reply

Your email address will not be published. Required fields are marked *

* Copy This Password *

* Type Or Paste Password Here *