Uređaj za mjerenje količine svjetlosti, vlage i temperature

Srednja škola Jelkovec

Namjena ovog uređaja je da istovremeno izmjeri osnovne uvjete (količinu svjetlosti, vlagu i temperaturu) na nekoj udaljenoj lokaciji i rezultate prikaže mjerilom na mobitelu za svaku veličinu posebno, te grafički tako da se može pratiti i povijest mjerenja. Pri tome indikator količine svjetlosti postoji i na mjestu mjerenja. Što je mračnije, upaljeno je više LED dioda. Cilj projekta bio je naučiti primijeniti aplikaciju na mobitelu za kontrolu uvjeta na nekoj udaljenoj lokaciji učenje programiranja te spajanja elektroničkih komponenti i uređaja.

Najprije je napravljen indikator količine svjetlosti pomoću modula s fotootpornikom, osam LED dioda i posmačnog registra. Posmačni registar odabran je kako bi se lakše upravljalo većim brojem LED dioda i za to koristilo samo tri digitalna izlaza Arduina. Posmačni registar ima četrnaest pinova, od toga je jedan za uzemljenje, a jedan za napajanje. Osam pinova su izlazi, a još tri pina su ulazi koje koristimo za pristup podacima – pin 14 (DS ili SER) je serijski ulaz za podatke, pin 11 je impuls ritma posmačnog registra (SH_CP ili SRCLK), a pin 12 je impuls ritma spremnika (ST_CP ili RCLK). Kada se pin 11 prebaci iz 0 u 1, vrijednost serijskog ulaza pohranjuje se u registar, a vrijednosti koje su bile u registru pomiču se kako bi napravile mjesta za novi bit. Pin 12 ostaje u logičkoj nuli dok se u registar upisuju podaci. Kada se on prebaci u logičku 1, vrijednosti posmačnog registra blokiraju spremnik i onda se šalju na izlazne pinove. Na eksperimentalnoj pločici je napravljen prototip sklopa. LED diode su spojene na izlaze posmačnog registra preko otpornika. Registar je spojen na napajanje i uzemljenje, a ulazni pinovi registra spojeni su na Arduino. Modul s fotootpornikom spojen je na uzemljenje, napajanje i analogni ulaz A0 Arduina. Modul DHT11 spojen je također na napajanje, uzemljenje i digitalni ulaz 6 Arduina. Napravljen je program koji pri registriranju određene količine svjetlosti fotootpornikom pali, odnosno gasi određeni broj LED dioda na mjestu mjerenja, a na zaslonu mobitela prikazuje se količina svjetlosti. U program je dodano očitavanje vlage i temperature te prikaz tih podataka na zaslonu mobitela. Sva tri podatka o količini svjetlosti, vlazi i temperaturi prikazuju se na pojedinačnim mjerilima. Dodan je i grafikon na kojem se prikazuju sva tri podatka, a očitanje se može pratiti u stvarnom vremenu, te pogledati i podaci iz prošlosti. Zatim je napravljena tiskana pločica sa SMD otpornicima i tiskanim vodovima kako bi se smanjio broj vodiča i veličina uređaja. Uz malu doradu, tako da se uzmu SMD LED diode, dimenzije uređaja bi se mogle još smanjiti.

Izrada projekta

Prikaz eksperimentalne pločice sa spojenim komponentama. Gore lijevo gotov uređaj. Gore desno: uređaj mjeri vlagu, temperaturu i svjetlost, LED diode signaliziraju srednju količinu svjetlosti. Dolje lijevo upaljena je jedna LED dioda jer je jako svjetlo (osvijetlili smo fotootpornik svjetiljkom u mobitelu). Dolje desno: potpuni mrak, svijetle sve LED diode (fotootpornik smo prekrili prstom).

Izgled tiskane pločice. Gore lijevo stražnja strana pločice gdje se vide tiskani vodovi i smd otpornici. Dolje lijevo gornja strana tiskane pločice s izvodima i podnožjem za IC74HC595. Desno: shema tiskane pločice.

Tiskana pločica s komponentama, sve spojeno s Arduinom MKR1000, pogled iz različitih smjerova.

Mobilna aplikacija

Dva zaslona mobitela u različitim uvjetima. Korištena su tri mjerila, po jedan za vlagu, temperaturu i svjetlost. Dodan je grafikon koji uživo prikazuje podatke s istih senzora za vlagu, temperaturu i svjetlost.

Prikazuje parametre postavljene na mjerila za vlagu, temperaturu i svjetlost. Za fotootpornik se koristi analognu ulaz A0, za temperaturu virtualni ulaz V6, a za vlagu virtualni ulaz V0. uz /pin/ dodana je decimalna točka koja znači da se brojke ispisuju kao cjelobrojne.
10 ugašena.

Postavljanje parametara grafikona. Najprije treba odabrati koje se veličine prikazuju (najljevija slika), a potom podesiti i parametre za svaku od tih veličina. Odabran je oblik crte jer su tako grafovi najuočljiviji.

Shema projekta

Korišten je posmačni registar SN74HC595. osam LED diode spojeno je na izlaze posmačnog registra preko otpornika (izvodi 15 i 1 do 7). Ulazni pinovi registra (11, 12 i 14) spojeni su na Arduino na digitalne pinove 3, 4, 5. Osmi izvod spojen je na uzemljenje, kao i 13 (OE), a napajanje je na 16. izvodu. deseti izvod spojen je također na napajanje. Modul s fotootpornikom spojen je na uzemljenje, napajanje i analogni ulaz A0 Arduina. Modul DHT11 spojen je također na napajanje, uzemljenje i digitalni ulaz 6 Arduina.

Shemu ovoga projekta možete preuzeti ovdje.

Arduino program

#define BLYNK_PRINT /*



#define BLYNK_PRINT SerialUSB



#include   // pozivamo potrebne bibilioteke
#include 
#include 

#include  
#include 
#define DHTpin 6          // definira digitalni pin na koji je senzor povezan s MKR1000

#define DHTTYPE DHT11     // DHT 11, senzor vlage i temperature

DHT dht(DHTpin, DHTTYPE);
SimpleTimer timer; 

char auth[] = "433100205520403c92111b81a5ef6334";

char ssid[] = "Tele2 Pokucni Internet-EFCC";
char pass[] = "JYQFY7JGA0A";

void sendSensor()// dio programa koji očitava podatke sa senzora vlage i temperature
{
  float v = dht.readHumidity();
  float t = dht.readTemperature(); 
  
  if (isnan(v) || isnan(t)) {
    Serial.println("Nemoguće očitatit DHT senzor!");
    return;
  }
  Blynk.virtualWrite(V5, v); // ispis potaka sa senzora vlage i temperature na virtualne izlaze Blyink aplikacija
  Blynk.virtualWrite(V6, t);
}

BLYNK_WRITE(A0) // ispis količine svjetlosti na analogni izlaz Blyink aplikacije
{
  int svjetlo = param.asInt();
  SerialUSB.print("Količina svjetlosti: ");
  SerialUSB.println(svjetlo);
}

int foto = A0;// pin na koji je spojena fotodioda
int blok = 4;// pin na koji je spojen impuls ritma spremnika
int impuls ritma = 5;// pin na koji je spojen impuls ritma posmačnog registra
int podaci = 3;// pin na koji je spojen serijski ulaz

int leds = 0;  //jedan byte je osam bitova, koristi se za prikaz brojeva; svaki bit može biti u dva stanja, 0 ili 1
// kako imamo osam ledica, naredba nam odgovara


void setup() 
{
  SerialUSB.begin(9600);

  Blynk.begin(auth, ssid, pass);
  
 timer.setInterval(1000L, sendSensor); // u kojim vremenskim razmacima očitavamo podatke sa senzora DHT , 1 sekunda
  
  pinMode(blok, OUTPUT);  // postavljamo izlazne pinove
  pinMode(podaci, OUTPUT);  
  pinMode(impulsritma, OUTPUT);
}

void loop() 
{
  Blynk.run(); // pokrećemo bibilioteke potrebne za prikaz podataka na mobitelu

   timer.run(); //pokreće se biblioteka za vremenske odrednice
   
  int reading  = analogRead(svjetlo); // inicijalizacija očitanja fotodiode
  int brojLED = reading / 57;  //1023 / 2 / 9 = 57 // računamo koliko ledica se upali
  // fotodioda ima otpor oko 1kOhm, a ugrađeni otpor isto toliko, zato 1023 dijelimo s dva
  // onda dijelimo s devet jer je sve skupa devet razina - prva razina kada su sve diode ugašene, pa do devete kada su sve ledice upaljene
  if (brojLED > 8) brojLED = 8;
  leds = 0;   // na početku su sve ledice ugašene
  for (int i = 0; i < brojLED; i++)
  {
    leds = leds + (1 << i);  // postavlja  i-ti bit, ledice se pale ovisno o količini svjetlosti
  }
  updateShiftRegister();
}

void updateShiftRegister()
{

   digitalWrite(blok, LOW);// ova funkcija najprije postavlja ulaz "blok" u nulu, onemogućuje prolaz podataka
   shiftOut(podaci, impulsritma, LSBFIRST, leds); //poziva ugrađenu funkciju shiftOut
 //prva dva parametra su pinovi , treći parametar označava korištenje bita najmanjeg značaja, četvrti parametar je podatak koji ie u posmačni registar
   digitalWrite(blok, HIGH);// postavlja "blok" u jedinicu, šalje nove podatke na izlaze
}




Arduino program ovoga projekta možete preuzeti ovdje.

Autori

Projekt su izradili Dora Medvarić i Marko Kunješić uz mentorstvo Mirjane Malarić iz Srednje škole Jelkovec.

Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.

Drugi projekti

Pametna rasvjeta – Zastora pomoću mobitela

Pametna rasvjeta – Zastora pomoću mobitela

Sustav pametne rasvjete baziran na prisutnosti korisnika

Sustav pametne rasvjete baziran na prisutnosti korisnika

Vanjska pametna rasvjeta – sensor

Vanjska pametna rasvjeta – sensor

Zvučna rasvjeta

Zvučna rasvjeta

Pametna rasvjeta za stan

Pametna rasvjeta za stan

Ambijetalno svjetlo

Ambijetalno svjetlo

Pametna rasvjeta

Pametna rasvjeta

Solarna energija

Solarna energija

Svjetlo u tami

Svjetlo u tami

Pametna rasvjeta (detektor zvuka)

Pametna rasvjeta (detektor zvuka)

Policijska sirena i oznaka Starta

Policijska sirena i oznaka Starta

Daljinsko upravljanje rasvjetom

Daljinsko upravljanje rasvjetom

Pali – gasi

Pali – gasi

Pametna rasvjeta – Music reacting circuit

Pametna rasvjeta – Music reacting circuit

Anti-theft

Anti-theft

Connect IT Pametni hodnik

Connect IT Pametni hodnik

Protuprovalni sustav

Protuprovalni sustav

Pametni stan

Pametni stan

Pametni tanjurić za šalicu

Pametni tanjurić za šalicu

Pametna kuća s Arduinom

Pametna kuća s Arduinom

Pametna kuća

Pametna kuća

Protuprovalno svjetlo u ormaru

Protuprovalno svjetlo u ormaru

Pametna rasvjeta

Pametna rasvjeta

Pametne osvijetljene stube

Pametne osvijetljene stube

Svijetliš u noći

Svijetliš u noći

Careduino

Careduino

Rainclock

Rainclock

Pljeskalica

Pljeskalica

Zebra

Zebra

Pametna rasvjeta informatika

Pametna rasvjeta informatika

Pametna rasvjeta

Pametna rasvjeta

Signalizacija

Signalizacija

Pametna rasvjeta

Pametna rasvjeta

Svjetlo za ugođaj

Svjetlo za ugođaj

Pametna rasvjeta

Pametna rasvjeta

Snimanje filma s mobitelom uz pomoć pametne rasvjete

Snimanje filma s mobitelom uz pomoć pametne rasvjete

Pametna ulična rasvjeta

Pametna ulična rasvjeta

Neka bude svjetlo

Neka bude svjetlo

Emotion light

Emotion light

Gasi letriku!

Gasi letriku!

Svjetlosni komunikator

Svjetlosni komunikator

iHouse

iHouse

Pametna rasvjeta s Arduinom

Pametna rasvjeta s Arduinom

Pametna rasvjeta kuće

Pametna rasvjeta kuće

Model kuće s pametnom rasvjetom

Model kuće s pametnom rasvjetom

Pametna rasvjeta – Zaštita kuće od provalnika

Pametna rasvjeta – Zaštita kuće od provalnika

Pametna rasvjeta na pljeskalački pogon

Pametna rasvjeta na pljeskalački pogon

Pametna rasvjeta

Pametna rasvjeta

Uređaj za mjerenje količine svjetlosti, vlage i temperature

Uređaj za mjerenje količine svjetlosti, vlage i temperature

Pametna budilica

Pametna budilica

Ambijentalna rasvjeta

Ambijentalna rasvjeta

Pametna garaža

Pametna garaža

Laserski brojač ljudi

Laserski brojač ljudi

Pametna vanjska rasvjeta

Pametna vanjska rasvjeta

Pametna rasvjeta

Pametna rasvjeta

Blynk pametna rasvjeta sa ESP8266

Blynk pametna rasvjeta sa ESP8266

Rasvjeta u igraonici

Rasvjeta u igraonici

Svjetionik

Svjetionik

IoT pametna rasvjeta ovisno o vremenu dana

IoT pametna rasvjeta ovisno o vremenu dana

Arduino smart light switch

Arduino smart light switch

Slabo pokretne osobe

Slabo pokretne osobe

RGB mixer

RGB mixer

Pametna rasvjeta

Pametna rasvjeta

Zujalica i svjetlo na senzor

Zujalica i svjetlo na senzor

Žuta i zelena soba

Žuta i zelena soba

Pametna rasvjeta

Pametna rasvjeta

Ako upališ, ugasi!

Ako upališ, ugasi!

Upozorenje na upaljena svjetla

Upozorenje na upaljena svjetla

GPS rasvjeta

GPS rasvjeta

RGB svjetlo

RGB svjetlo

Pametan parking

Pametan parking

Priprema, pozor, sad

Priprema, pozor, sad

Disco light

Disco light

Aurora Borealis

Aurora Borealis

Pametni hladnjak

Pametni hladnjak

Pametna rasvjeta

Pametna rasvjeta

Pametna rasvjeta u kući

Pametna rasvjeta u kući

Noćna rasvjeta

Noćna rasvjeta

Noćni prozor

Noćni prozor

Otvori me, zatvori me

Otvori me, zatvori me

House and garden lights

House and garden lights

IOT_Rasvjeta_4

IOT_Rasvjeta_4

Smart rasvjeta

Smart rasvjeta

IOT-Stubišni automat

IOT-Stubišni automat

Lego Arduino pametna rasvjeta

Lego Arduino pametna rasvjeta

IOT_Rasvjeta_2

IOT_Rasvjeta_2

IOT_Rasvjeta_1

IOT_Rasvjeta_1

Svjetlo za bicikl

Svjetlo za bicikl