Hranilica za psa

Mladi informatičari Strahoninca

Stiže nam ljeto i godišnji odmori. Nemojte dopustiti da Vaš najbolji prijatelj bude gladan. Udruga MIS predstavlja automatiziranu hranilicu za psa (slobodno se koristi i za ostale kućne ljubimce).
Hranilica za psa omogućuje hranjenje kućnih ljubimaca u željeno vrijeme (vrijeme se postavlja putem mobilne aplikacije) tako da ne trebate mijenjati njihove navike kada niste kod kuće.

Video snimka

Izrada projekta

Slika prikazuje gotovi projekt. Na Arduino mkr1000 spojili smo servo motor koji upravlja spremnikom za hranu. Spremnik se otvara u postavljeno vrijeme i puni zdjelicu hranom.

Spremnik je povezan sa zdjelicom za hranu kako bi ljubimac mogao jesti bez ometanja.

Mobilna aplikacija

Mobilna aplikacija sastoji se od prikaza statusa – da li je hranjenje već obavljeno ili u koliko sati će se hranjenje obaviti. Preostala dva widgeta služe za postavljanje vremena hranjenja.

Konfiguracija widgeta za prikaz stanja hranilice.

Konfiguracija widgeta za odabir sati.

Konfiguracija widgeta za odabir minuta.

Shema projekta

Prilikom izrade projekta od elektroničkih komponenti koristili smo Arduino mkr1000 i servo motor.

Arduino program

#define BLYNK_PRINT /*
#define BLYNK_PRINT Serial

#include 
#include 
#include 
#include 
#include 


RTCZero rtc;
Servo myservo;
const byte seconds = 59;
const byte minutes = 58;
const byte hours = 11;

char auth[] = "db63a7ff5acb4c6ab4927a068995e629";
char ssid[] = "ssid";
char pass[] = "pass";

#define SERVO_OPEN 0 
#define SERVO_CLOSED 100

int pos = 0;
volatile bool mustFeed = false; 
const byte day = 1;
const byte month = 5;
const byte year = 18;


void setup()
{
  Serial.begin(9600); 
  Blynk.begin(auth, ssid, pass);
  myservo.attach(9);
  rtc.begin();
  rtc.setTime(hours, minutes, seconds);
  rtc.setDate(day, month, year);

  rtc.setAlarmTime(12, 00 , 00);
  rtc.enableAlarm(rtc.MATCH_HHMMSS);
  rtc.attachInterrupt(Feed);
}

void loop()
{
  Blynk.run(); 
  if (mustFeed)
  {

    mustFeed = false; 

    myservo.write(SERVO_OPEN);
    delay(500);
    myservo.write(SERVO_CLOSED);
    Blynk.virtualWrite(V5, "NAHRANJENO");

  }
  print2digits(rtc.getDay());
  Serial.print("/");
  print2digits(rtc.getMonth());
  Serial.print("/");
  print2digits(rtc.getYear());
  Serial.print(" ");
  
  print2digits(rtc.getHours());
  Serial.print(":");
  print2digits(rtc.getMinutes());
  Serial.print(":");
  print2digits(rtc.getSeconds());
  Blynk.virtualWrite(V0, rtc.getHours());
  Blynk.virtualWrite(V2, rtc.getMinutes());
  if (rtc.getHours() == 11){
      Blynk.virtualWrite(V5, "HRANJENJE U 12:00");
  }
  
  Serial.println();

  delay(1000); 

}

void Feed(){
  mustFeed = true; 
}

void print2digits(int number) {
  if (number < 10) {
    Serial.print("0");
  }
  Serial.print(number);
}

Arduino program ovoga projekta možete preuzeti ovdje.

Autori

Projekt su izradili Fran Železnjak i Šimun Bilas uz mentorstvo Viktora Lazara iz udruge "Mladi informatičari Strahoninca".

Projekt je prijavljen na temu: Internet of Things: Kućni ljubimci i domaće životinje.

Drugi projekti