Automatiziran sustav za pomoć vlasnicima mačaka

OŠ Julija Klovića

Automatizirana vrata aktivirana magnetom na ogrlici mačke i sustav hranilice koja ispušta hranu u podesivim vremenskim intervalima.

Izrada projekta

Slika spoja vodiča.

Mobilna aplikacija

Ovako je aplikacija trebala izgledati, ali zbog poteškoća (aplikacija se gasila 3-4 sekunde nakon sto se spojila s Arduinom) ostvarenje plana nije bilo moguće. Sve tipke iz aplikacije su pretvorene u analogna tipkala i potenciometar.

Shema projekta

Shema projekta.

Shemu ovoga projekta možete preuzeti ovdje.

Arduino program

#define BLYNK_PRINT /*

/*

*/





#include 


Servo door;


#define REED_PIN 6
#define LED_PIN 10
#define BUTTON_DOOR_PIN 7
#define BUTTON_FEEDER_PIN 8
#define POTENCIOMETER_PIN A5


bool doorUnlocked = true;
bool autoFeed = true;


unsigned long timer = 0;



void openDoor() {  //potprogram koji otvori i zatvori vrata
  door.write(7);
  delay(2000);
  door.write(90);
}

void feed() { //potprogram koji aktvira hranilicu. Hranilica bi bila sastavljena od servo motorana dnu posude bez dna. Nju predstavlja lampica.
  digitalWrite(LED_PIN, HIGH);
  delay(1000);
  digitalWrite(LED_PIN, LOW);
}



void setup() {  //definiranje ulaza i izlaza
  door.attach(9);


  pinMode(REED_PIN, INPUT_PULLUP);
  pinMode(BUTTON_DOOR_PIN, INPUT_PULLUP);
  pinMode(BUTTON_FEEDER_PIN, INPUT_PULLUP);
  pinMode(POTENCIOMETER_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);

  Serial.begin(9600);
}




void loop() {
  int buttonDoor = digitalRead(BUTTON_DOOR_PIN);                         /// \ 
  int buttonFeeder = digitalRead(BUTTON_FEEDER_PIN);                      // |
  int reed = digitalRead(REED_PIN);                                       // |---->očitavanje senzora
  int frequency = map(analogRead(POTENCIOMETER_PIN), 0, 1023, 2000, 6000);// /


  if (buttonDoor == 0) {
    doorUnlocked = !doorUnlocked;
    while(buttonDoor == 0){                     //kad je pritisnuto tipkalo mjenja se stanje zaključanosti vrata
      buttonDoor = digitalRead(BUTTON_DOOR_PIN);
    }
  }

  if (buttonFeeder == 0) {
    autoFeed = !autoFeed;
    while(buttonFeeder == 0){                                       //kad je pritisnuto tipkalo mjenja se stanje uključenosti hranilice
      buttonFeeder = digitalRead(BUTTON_FEEDER_PIN);
    }
  }



  if (doorUnlocked) {
    if (reed == 0) {                        //kad mačkina magnetizirana ogrlica aktvira senzor, otvore se vrata
      openDoor();
    }
  }

  if (autoFeed) {
    if (millis() - timer > frequency) {               //ako je isteklo vrijeme definirano potenciometrom, hranilica se aktivira
      timer = millis();
      feed();
    }
  }

  if (doorUnlocked) {
    Serial.println("Unlocked");         //serijski monitor ispisuje jesu li vrata zaljucana ili ne
  }
  else {
    Serial.println("Locked");
  }
}



Arduino program ovoga projekta možete preuzeti ovdje.

Autori

Projekt je izradio Dino Plečko uz mentorstvo Petra Dobrića iz OŠ Julija Klovića.

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

Drugi projekti