반응형
구피 이 친구 밥주기각 겁나게 귀찮아서
자동으로 밥주는 기계 만들라고 했다.
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
반응형
'스마트 홈 > 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 |