본문 바로가기

DIY

근접 시 열리는 애완동물 급식기 개조 DIY - 아두이노

(알리發 급식기를 개조한 근접 시 열리는...)

참새가 너무 달려들어 사료를 쪼아 대는 바람에 주변이 엉망이 되곤 하여서 Aliexpress에서 구입한 급식기인데, 가까이 다가오면 열려서 먹을 수 있게 해주고 움직임이 없으면 닫히는 단순한 제품입니다.

 

문제는 사료를 먹는 도중에 움직이지 않으면 닫혀 버려서 소심한 댕댕이가  '깜짝' 놀란다는 것입니다. 그러는 와중에 비가 오면 닫히는 뚜껑 아래 부분의 틈 사이로 물이 들어가서 결국 회로가 고장이 났습니다. 

 

올해 초부터 아두이노로 하나씩 기능을 추가해서 위 모습에 이르렀고, 움직임이 있으면 열리고 1분 30초간(꽤 긴 시간입니다) 기다렸다가 아무런 움직임 감지가 없다면 자동으로 닫습니다. 

 

원래 제품 대비 개선된 점은 다음과 같습니다. 

  • 아두이노 근접 센서를 써서 2~3미터에서 움직임도 감지(기존 제품은 1미터 미만) => 다만, 해가 비칠 때 직사광선의 반사로 인해 오작동하는 경우가 있습니다. 그리고, 새가 날라와도 작동 될 수 있습니다.ㅜ 
  • 뚜껑이 접히는 부분을 테이프로 감싸서 물이나 사료가 들어가지 않도록 조치 
  • 배터리가 부족하면 LED와 부저를 통해 알리다가, 뚜껑을 열고 대기(방전되어도 밥은 먹어야 하니...)  

내부의 모습은 대충 연결해서 지저분합니다만,,, L298N 모터 드라이버를 사용했고, 충방전 기능을 하는 전원보드를 넣었습니다. 기존 제품에서는 케이스, 모터와 기어 부분과 스위치, 전원잭, 18650 배터리 등을 재활용한 셈입니다. 

 

아두이노 프로 미니, LED, 부저, 18650 리튬배터리 충방전모듈, L298N 모터드라이버

작업 중 주의 사항은  

  • 루프를 그냥 두면 전류 소모가 꽤 많아서 몇 시간 밖에 사용할 수 없으므로, Narcoleptic.delay(1000); 등을 추가하여야 합니다. 디버깅용으로 print문을 쓸 땐 100ms가량 지연을 주어야 시리얼모니터 화면에 글자가 제대로 표시됩니다. 
  • 18650 배터리의 전압을 읽기 위해 Arduino의 입력핀 A0에 그냥 연결하면 안됩니다. 아두이노를 꺼도 A0로 전원이 흘러들어서 전류를 소모합니다. 그래서 +극과 A0핀 사이에 10kohm저항을 달면  측정 결과 0.09mA로 전류를 줄여서 back powering을 방지할 수 있었습니다.(https://forum.arduino.cc/t/aref-pin-powering-arduino/657353/4 참조) 혹은, NPN트랜지스터를 (전류는 줄이고 전압만 읽기 위해) 사용할 수도 있다고 하는데 저는 잘 안되어서 저항을 달아서 처리했습니다. 
  • LED를 켤 때도 적당한 저항(여기에서는 100옴 x 2개)을 달아야 합니다. 
  • 위 사진에는 포함이 안되었지만, 태양전지판을 연결할 때에도 다이오드를 달아야 되더군요. 햇빛이 없을 때 전류가 태양전지판으로 흘러 나갑니다. 결과적으로 전압이 약해져서 오작동하여 알 수 있습니다.  

 

배터리 완전 충전 후 사용 시간은 4~5일 가량이고, 2600mAh 18650 배터리 기준 3.5V부터 저전압 경고를 하게 되고 3.2~3.3V에서는 18650 배터리에서 방전이 차단되는 것 같습니다.   

 

이후, ESPHome으로 개발한 내용은 아래를 참고해 주세요. 

 

https://imky.tistory.com/86

 

근접 자동 열림 급식기 - auto pet feeder, ESPHome, Home Assistant, DIY

개요 근접센서로 자동 열림 기능이 있는 알리익스프레스에서 구입하여 조금 사용하다가 기능(먹는 중에 닫혀서 깜짝 놀람)에 불만을 느껴서 개조한 후 몇 년 동안 사용해 왔던 아두이노 기반 자

imky.tistory.com