11 svi Samo trči, samo trči … naprijed Orky
OŠ “Kuna”
Ako nemate kolo za hrčka možete ga izraditi pomoću papira i kartona. Neodimijski magnet prilijepite s unutrašnje strane valjka.
U mobilnoj aplikaciji koristimo Value Display widget za prikaz pređenih krugova, a Labeled Value widget za prikaz pređenih metara. Ukoliko bi imali pravog hrčka trebali bi mjeriti pređene kilometre jer hrčak u prosjeku pređe 50 km mjesečno. To bi mogli tako da promijenimo vrijednost varijable “meters” u programskom kodu.
SuperChart će prikazivati grafički prikaz pređenog puta u vremenu. Uz pomoć ovog dijela mogli bi otkriti da hrčci trče većinom noću.
Vaule Display koristi pin V0, a Labeled Value i Superchart widget koriste pin V1.
Na Arduino je spojen senzor magnetnog polja i svjetleća dioda. U Fritzing programu nismo našli senzor magnetnog polja. Zato pokraj sheme imate sliku našeg senzora magnetnog polja s kablovima pripadajućih boja.
#define BLYNK_PRINT /*
#define BLYNK_PRINT SerialUSB
#include
#include
#include
int LedCrvena = 7; // pin ledice
int reelSwitch = 6; // pin magnetnog senzora
int switchState; // varijabla koja sluzi za spremanje vrijednost magnetnog senzora
int number = 0; // varijabla koja sluzi za brojanje krugova //nije potrebno resetiranje na 0 pri gašenju/paljenju Arduina
float meters = 0; // varijabla koja sluzi za odredivanje predene udaljenosti //nije potrebno resetiranje na 0 pri gašenju/paljenju Arduina //ukoliko imate pravog hrcka trebali bi brojati kilometre
char auth[] = “11dc5e1468d34f01bb7da1ec377b7e73”; //pin projekta
char ssid[] = “IoT”; // ime mreze
char pass[] = “011235813”; // lozinka mreze
BlynkTimer timer; //Blynk timer omogucuje pozivanje drugih funkcija u void loop() petlji
void setup()
{
pinMode (LedCrvena, OUTPUT); // ledica je izlaz
pinMode (reelSwitch, INPUT); // senzor je ulaz
Serial.begin(9600); // broj bitova po sekundi za prijenos podataka// moguce ocitati podatke pomocu Arduino aplikacije -> Tools -> Serial Monitor
Blynk.begin(auth, ssid, pass); //spajanje na wifi mrezu i Blynk server
timer.setInterval(100L, switchstate);// poziva funkciju switchstate svakih 100ms (vrijeme poziva je potrebno odrediti prema jakosti magneta i prema brzini trcanja hrcka tako da se registrira samo jedan okretaj pri prolazu magneta pokraj senzora)
}
void switchstate(){
switchState = digitalRead(reelSwitch); // procita vrijednost magnetnog senzora i zapisuje tu vrijednost u varijablu switchstate
if (switchState == LOW) // ukoliko magnetni senzor ne osjeti prisutnost magneta
{
digitalWrite(LedCrvena, LOW); // iskljucuje ledicu
}
else // inace (magnetni senzor osjetio prisutnost magneta)
{
digitalWrite(LedCrvena, HIGH); // ukljucuje ledicu
number=number+1; // povecava varijablu number za 1 (varijablu koja broji broj krugove sto ih hrcak prede)
Blynk.virtualWrite(V0,number); // zapisuje vrijednost varijable number pinu V0
meters=number*0.5; // varijabla koja odreduje predenu udaljenost u metrima (broj krugova se mnozi s opsegom kruga u metrima)
Blynk.virtualWrite(V1,meters);// zapisuje vrijednost varijable meters pinu V1
}
delay(100); // jednostavni debounce
}
void loop()
{
timer.run();// omogucuje pozivanje void switchstate() funkcije
Blynk.run();// omogucuje rad Blynk mobilne aplikacije // uz Blynk.run() i timer.run() nije pozeljno dodavati neku drugu funkciju jer je moguce odspajanje Arduina s Interneta //sve funkcije se trebaju pozivati pomocu “timer.setInterval” (primjer je u void setup() funkciji
}
Arduino program ovoga projekta možete preuzeti ovdje.
Projekt su izradili Petra Milovčić i Letizia Grljušić uz mentorstvo Srećka Jančikića iz OŠ “Kuna”.
Projekt je prijavljen na temu: Internet of Things: Kućni ljubimci i domaće životinje.