구피 자동으로 밥주기

반응형

Mark Hanford(f) 제공

구피 이 친구 밥주기각 겁나게 귀찮아서

자동으로 밥주는 기계 만들라고 했다.

esp-32 모듈을 홈어시스턴트에 등록하고

자동화 이용해야 겠다는 아이디어가 떠올라서

구글링 했는데(2시간 정도)

3d 프린터로 모델링한 것 이용하는것 밖에 못찾았다.

그래서 한3일가 고민하다가 한가지 떠올랐다.

뚜껑 두개를 인두기로 구멍을 내고

모터를 구멍에 끼운 다음 글루 건으로 고정했다.

모터 몸통은 구피 밥통 뚜껑에

모터 축은 페트 병 꾸껑에 고정했다

그러면 페트 병 뚜껑만 도니까

그러면 한 바퀴에 한 번만 구멍이 서로 아구가 맞아서 그때만 흐를 테니까.

모터가 멈출때 구멍이 서로 아구가 맞을 확률은 얼마 안되기도하고

구멍이 작아서 흐르다 말거라 생각했다.

페트 병 뚜껑은 굴러 다니는 것이 많아서

바로 만들어 봤는데물론 모터가 빠르게 돌아서 흩뿌려 지고 많이 안나왔다.

코드도 문제가 없었다.

#include <WiFi.h>
#include <PubSubClient.h>

const char *ssid =  "olleh_WiFi_BA83";   
const char *password =  "0000002583"; 

const char* ID = "구";  // Name of our device, must be unique
const char* TOPIC = "room/guppy/state"; 
const char* INTOPIC = "room/guppy/feed";
const char* mqttUser = "dragon";
const char* mqttPassword = "qazwsxedcrfvtgbyhnujm";
const char* broker = "172.30.1.48";

WiFiClient wclient;
PubSubClient client(wclient); 
char messages[50];
int state = 0;
int feed = 4;

// Connect to WiFi network
void setup_wifi() {
  Serial.print("\nConnecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password); 
  while (WiFi.status() != WL_CONNECTED) { 
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Received messages: ");
  Serial.print(INTOPIC);
  for(int i=0; i<length; i++){
    Serial.println((char) payload[i]);
  }
  Serial.println();
  if ((char)payload[0] == '1') {
    //client.publish(TOPIC, "1");
    digitalWrite(feed, HIGH);
    delay(3000);
    digitalWrite(feed, LOW);
    client.publish(TOPIC, "0");
  } 
  Serial.print(state);
}


// Reconnect to client
void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Attempt to connect
    if (client.connect(ID, mqttUser, mqttPassword)) {
      Serial.println("connected");
      Serial.print("Publishing to: ");
      Serial.println(TOPIC);
      Serial.println('\n');
      client.subscribe(INTOPIC);

    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println("\n try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}

void setup() {
  Serial.begin(115200); 
  pinMode(feed, OUTPUT);
  delay(100);
  setup_wifi(); // Connect to network
  client.setServer(broker, 1883);
  client.setCallback(callback);
}

void loop() {
  if (!client.connected()){
    reconnect();
  }
  client.loop();
}

configuration.yaml 파일에 구피를 추가했다.

#Guppy
  - platform: mqtt
    name: "구피"
    command_topic: "room/guppy/feed"
    state_topic: "room/guppy/state"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"

지금까지는 성공적.

그런데!!!!

처음에 만든 건 구린 모터를 이용하기도 했고

 

사료가 모터에 들어갈 것은 생각도 못해서

망했다 한마디로....

이제는 모터가 없어서 못한다.

ㅋㅋㅋㅋㅋ

그냥 조금씩 주는게 힐링 되기도하고

ㅋㅋㅋㅋㅋ

https://dazabamuker.tistory.com/59

 

구피 먹이 주기 자동화 + 수족관 수위 측정

저번에 방법은 설명 했짐나 이런저런 이요 때문에 작동에 문제가 있어서 하지 못했는데 뭐하지 뭐하지 하다가 갑자기 띠용!!!! 하고 떠올라서 바로 레스기릿! https://dazabamuker.tistory.com/9?category=4843

dazabamuker.tistory.com

 

반응형

'스마트 홈 > esp32' 카테고리의 다른 글

ESP32-DHT11 집 온도와 습도 측정!  (0) 2021.07.03
ESP32-CAM 외장 안테나 달깅!  (0) 2021.06.27
esp32-cam 도착!  (0) 2021.06.26
비닐하우스 개폐기 esp32~!(1)  (0) 2021.06.21
스마트 홈 구축 1 스마트 스위치  (3) 2021.05.28