안녕하세요 고양이를 키우고 싶은 주인장입니다.
반려동물 자동 급식기에서 가장 핵심인 사료를 배출하는 방식일 텐데 저는 서보모터를 제어하여 정해진
각도로 사료를 배출하고 다시 사료를 채울 수 있게 설계를 해봤습니다 그리고 핸드폰 앱을 이용하여
WIFI 연결로 서보모터를 제어하는 시간을 가져봅시다^_^
필요한 서보모터와 보드는 준비물에 적어 놓았으니 필요하신 분들은 구매하는 거 추천드립니다!
아두이노와 앱을 WIFI로 연결하여 반려동물 자동급식기를 컨트롤해 보자!
설계 회로도
준비물 : MG995R모터, 전력공급장치, ESP32
기본 구조는 전력공급장치(아두이노 보드로 하겠습니다)와 ESP32를 MG995R모터에 연결하여
핸드폰 앱을 이용하여 ESP32 보드와 WIFI로 통신하여 모터를 컨트롤하는 게 기본 구조입니다.
회로도 프로그램에 ESP32 보드가 없어서 가장 비슷한 걸로 대체했습니다.
ESP32 보드는 마이크로 5핀 단자가 있어서 쉽게 전원을 공급해 줄 수 있어서 따로 전원 회로는 생략
했습니다 >_0
ESP32 보드와 서보모터는 신호선(노란색!)으로 연결하고 서보모터는 전원을 연결해 주시면 됩니다!
당연히 서보모터에 맞는 필요 전력에 따라 전원을 연결해 줘야 됩니다.
코드
#include <WiFi.h>
#include <Servo.h>
#define GPIO2 0
Servo servo;
int GP0val=0;
int value1 =0;
const char* ssid = "id"; // wifi 이름 넣기
const char* password = "passwd"; // wifi 비밀번호 넣기
WiFiServer server(80);
void setup() // wifi로 ESP32 웹서버 실행
{
servo.attach(2);
Serial.print("Connecting 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 : http://");
Serial.println(WiFi.localIP());
server.begin();
}
void loop()
{
WiFiClient client = server.available();
String req = client.readStringUntil('\r'); // 앱에서 사용자가 보낸 신호 읽기
if(req.indexOf("/gpio2/1") != -1){
GP0val = 1;
}
if(GP0val == 1 ){ // +90도 작동해서 사료 배출
value1 += 90;
delay(1000);
servo.write(value1);
if(value1 == 90){ // -90도 뒤로 작동하여 사료 채우기
delay(2000);
value1 =0;
servo.write(value1);
GP0val = 0;
}
}
아두이노 스케치에서 ESP32 모듈의 환경설정이 끝나셨다면 위의 코드를 사용하시면 됩니다
코드의 설명은 주석으로 달아 놓았습니다. 설명이 부족하다면 댓글로 고고
앱인벤터
앱인벤터는 디스플레이 와 코드블록만 빠르게 보여드릴게요!
이제 ESP32 보드와 어플을 같은 WIFI 에 있게 설정한 후 ESP32 보드가 WIFI 와 연결되면 자신의
웹 IP 주소를 시리얼모니터로 출력합니다
ESP32 보드에서 제공받은 IP 주소를 어플 가장 위 주소창에다가 입력을 하게 되면 어플은 ESP32가 만든 웹서버에
접속을 하게 되고 버튼을 누른다면
블록코드 로직에 따라서 "/gpio2/1"을 전송하게 됩니다 그렇게 된다면 서보모터는 아주 잘 작동이 될 거예요!
간단한 어플이나 테스트용 어플 제작할 때는 앱인벤터를 사용하면 좋습니다.
이상 주인장이었습니다 뿅
'Capstone Design > - Arduino' 카테고리의 다른 글
[Arduino] 반려동물 스마트 급식기 만들기 #0 (0) | 2023.01.22 |
---|
나만의 개발 데이터베이스!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!