ESP8266 키패드 릴레이

이 튜토리얼은 ESP8266와 키패드를 사용하여 릴레이를 제어하는 방법을 안내합니다. 사용자가 키패드에 올바른 비밀번호를 입력하면, ESP8266가 릴레이를 활성화합니다.

이 튜토리얼은 또한 delay() 함수를 사용하지 않고 일정 시간 동안 릴레이를 활성화한 다음 비활성화하는 ESP8266 코드를 제공합니다. ESP8266 코드는 또한 여러 개의 비밀번호를 수용합니다.

전자 자기 잠금장치(ESP8266 - 전자기 자물쇠), 솔레노이드 잠금장치(ESP8266 - 솔레노이드 잠금장치), 리니어 액츄에이터(ESP8266 - 구동기), 히팅 요소(ESP8266 - 발열 요소), 펌프(ESP8266 - 펌프), 또는 팬(ESP8266 - 팬)에 릴레이를 부착함으로써... 우리는 키패드를 사용하여 이들을 제어할 수 있습니다.

ESP8266 NodeMCU 키패드 릴레이

준비물

1×ESP8266 NodeMCU 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×키패드 쿠팡 | 아마존
1×릴레이 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP8266용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) ESP8266 Type-C용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

키패드와 릴레이에 대하여

키패드와 릴레이(핀 아웃, 작동 방식, 프로그래밍 등 포함)에 익숙하지 않다면, 다음 튜토리얼이 도움이 될 수 있습니다:

선연결

ESP8266 NodeMCU 키패드 릴레이 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP8266 핀배열ESP8266 전원을 켜는 방법에 대해 더 많이 보십시오.

ESP8266 코드 - 비밀번호가 맞으면 릴레이를 켭니다

암호가 맞으면 다음 코드가 릴레이를 활성화할 것입니다.

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-keypad-relay */ #include <Keypad.h> #define RELAY_PIN D0 // ESP8266 핀이 릴레이의 IN 핀에 연결됨 #define ROW_NUM 4 // 4 행 #define COLUMN_NUM 3 // 3 열 char key_layout[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pin_rows[ROW_NUM] = {D1, D2, D3, D4}; // ESP8266 핀이 행 핀에 연결됨 byte pin_column[COLUMN_NUM] = {D5, D6, D7}; // ESP8266 핀이 열 핀에 연결됨 Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "ABC1234"; // 여기서 비밀번호를 변경하세요 const String password_2 = "5642B"; // 여기서 비밀번호를 변경하세요 const String password_3 = "9765"; // 여기서 비밀번호를 변경하세요 String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // 최대 비밀번호 크기는 32, 필요하면 변경하세요 pinMode(RELAY_PIN, OUTPUT); // 핀을 출력으로 초기화. digitalWrite(RELAY_PIN, LOW); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // 입력 비밀번호를 초기화 } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Turning ON relay"); digitalWrite(RELAY_PIN, HIGH); } else { Serial.println("The incorrect password! try again"); } input_password = ""; // 입력 비밀번호를 초기화 } else { input_password += key; // 입력 비밀번호 문자열에 새 문자 추가 } } }

사용 방법

Arduino IDE에서 ESP8266을 시작하기 위해 다음 단계를 따르세요:

  • ESP8266을 Arduino IDE에서 설정하는 방법에 대해 처음이라면 ESP8266 - 소프트웨어 설치 튜토리얼을 확인하세요.
  • 다이어그램에 표시된 대로 구성 요소를 연결하세요.
  • USB 케이블을 사용하여 컴퓨터에 ESP8266 보드를 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
  • USB 케이블을 ESP8266과 PC에 연결하세요.
  • Arduino IDE를 열고 적절한 보드와 포트를 선택하세요.
  • Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.
  • “keypad”를 검색하고 마크 스탠리(Mark Stanley)와 알렉산더 브레빅(Alexander Brevig)이 만든 키패드 라이브러리를 찾으세요.
  • 그런 다음, 키패드 라이브러리를 추가하려면 Install 버튼을 누르세요.
ESP8266 NodeMCU 키패드 라이브러리
  • “ezOutput”을 검색하고 ArduinoGetStarted에서 ezOutput 라이브러리를 찾으세요.
  • EzOutput 라이브러리를 설치하려면 Install 버튼을 누르세요.
ESP8266 NodeMCU output 라이브러리
  • 코드를 복사하여 아두이노 IDE에서 열어주세요.
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 ESP8266으로 전송하세요.
아두이노 코딩
  • 1234를 입력하고 #을 누르세요.
  • 그 후, 9765를 입력하고 #을 누르세요.
  • 시리얼 모니터에서 출력과 릴레이의 상태를 확인하세요.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
The incorrect password! try again The correct password! Turning ON relay
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

코드 설명

ESP8266 코드에서는 인증된 비밀번호가 미리 정의되어 있습니다. 사용자가 입력한 비밀번호를 저장하는 데 사용되는 문자열을 입력 문자열이라고 합니다. 키패드에서는 두 개의 키(*#)가 특수한 목적으로 사용됩니다: 비밀번호를 지우기 위해, 그리고 비밀번호 입력을 종료하기 위해 사용됩니다. 키패드의 키가 눌렸을 때:

  • 눌린 키가 두 특수 키 중 하나가 아닌 경우, 해당 키는 입력 문자열에 추가됩니다.
  • 눌린 키가 *인 경우, 입력 문자열이 지워집니다. 이는 비밀번호를 입력하거나 재입력하는 데 사용할 수 있습니다.
  • 눌린 키가 #인 경우:
    • ESP8266은 입력 문자열이 사전에 정의된 비밀번호 중 하나와 일치하는지 확인하고, 일치하면 릴레이가 켜집니다.
    • 비밀번호의 정확성 여부와 상관없이, 다음 입력을 위해 입력 문자열은 지워집니다.

ESP8266 코드 - 비밀번호가 맞다면 일정 시간 동안 릴레이를 켭니다

비밀번호가 맞으면 릴레이가 5초 동안 켜집니다. 그 후에, 릴레이가 꺼집니다.

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-keypad-relay */ #include <Keypad.h> #include <ezOutput.h> #define RELAY_PIN D0 // ESP8266 핀이 릴레이의 IN 핀에 연결됨 #define ROW_NUM 4 // 4행 #define COLUMN_NUM 3 // 3열 char key_layout[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pin_rows[ROW_NUM] = {D1, D2, D3, D4}; // ESP8266 핀이 행 핀에 연결됨 byte pin_column[COLUMN_NUM] = {D5, D6, D7}; // ESP8266 핀이 열 핀에 연결됨 Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); ezOutput relay(RELAY_PIN); const String password_1 = "ABC1234"; // 여기서 비밀번호를 변경하세요 const String password_2 = "5642B"; // 여기서 비밀번호를 변경하세요 const String password_3 = "9765"; // 여기서 비밀번호를 변경하세요 String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // 최대 비밀번호 크기는 32이며 필요시 변경하세요 relay.low(); } void loop() { relay.loop(); // loop() 함수를 먼저 호출해야 함 char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // 입력 비밀번호를 초기화 } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Turning ON relay"); relay.low(); // 높은 펄스를 만들기 전에 낮게 설정 relay.pulse(RELAY_ON_TIME); // RELAY_ON_TIME 기간 동안 릴레이를 켜고 다시 끔 } else { Serial.println("The incorrect password! try again"); } input_password = ""; // 입력 비밀번호를 초기화 } else { input_password += key; // 입력 비밀번호 문자열에 새 문자 추가 } } }

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.