Samo trči, samo trči … naprijed Orky

OŠ “Kuna”

Uz pomoć senzora magnetnog polja možemo odrediti pređeni put hrčka. Uz male modifikacije može se odrediti i brzina hrčka (brzina=pređeni put/vrijeme).
Možemo si zadati cilj vježbanja da pretrčimo svaki dan koliko hrčak pretrči.

Video snimka
Izrada projekta

Ako nemate kolo za hrčka možete ga izraditi pomoću papira i kartona. Neodimijski magnet prilijepite s unutrašnje strane valjka.

Ako se kolo ne kreće magnet će biti pri dnu valjka. Zbog navedenog razloga senzor magnetnog polja (pri vrhu) će očitavati jednu rotaciju kruga samo pri vrtnji koluta (tj. dok hrčak trči u kolutu).

Mobilna aplikacija

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.

Shema projekta

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.

Arduino program

#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.

Autori

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.