Arduino의 WLAN-ESP8266-01을 Arduino에 연결하고 스마트 폰으로 원격으로 NodeMCU Amica를 제어
Arduino는 가장 잘 알려진 개발자 보드 중 하나입니다. 불행히도 표준 모델에는 Wi-Fi 칩이 설치되어 있지 않습니다. 이 실용적인 팁은 ESP8266-01 WLAN 모듈을 Arduino에 연결하는 방법과 스마트 폰으로 NodeMCU Amica를 원격으로 제어하는 방법을 보여줍니다.
스마트 폰으로 NodeMCU Amica 제어
NodeMCU Amica는 다양한 핀과 내장 ESP8266 Wi-Fi 칩 및 microUSB 소켓을 갖추고 있습니다. 따라서 장치를 독립형 장치로 사용하는 것이 좋습니다. "클래식"ESP8266 보드를 Arduino에 연결하는 방법은이 기사의 뒷부분에 설명되어 있습니다.
- ESP 칩을 프로그래밍하려면 먼저 Silicon Labs에서 모든 CP210er 칩의 드라이버를 다운로드하여 설치해야합니다. 다행히도 이것은 비교적 빨리 일어난다.
- 그런 다음 Arduino IDE를 열고 설정으로 이동하십시오. 추가 보드 관리자 URL에 "//arduino.esp8266.com/stable/package_esp8266com_index.json"(따옴표없이)을 추가하십시오. 그런 다음 보드 관리자를 시작하고 "ESP8266"을 입력하고 패키지를 설치하십시오.
- 또한 라이브러리 관리자로 이동하여 "Blynk"를 입력하고 최신 버전을 설치하십시오. 필요한 모든 구성 요소가 설치되었습니다.
- 스마트 폰으로 NodeMCU를 제어하려면 Blynk 앱이 필요합니다. 아직 완료하지 않은 경우 여기에서 새 계정을 만들거나 기존 계정으로 로그인하십시오. 그런 다음 새 프로젝트를 만들고 보드로 NodeMCU를 선택하십시오.
- Arduino IDE의 샘플 코드를 사용하면 NodeMCU에서 Blynk (→ "Boards_WiFi") 코드도 찾을 수 있습니다. 여기에 프로젝트의 Blynk 토큰을 입력하면 자동으로 이메일로 발송됩니다. SSID와 비밀번호도 입력하십시오.
- 코드를 보드에로드하려면 "도구"탭에서 코드를 선택해야합니다. 이 경우 "NodeMCU 1.0 (ESP12E 모듈)", 주파수 80 MHz, 메모리 크기 "4M (3M SPIFFS)"및 전송 속도 115200을 선택해야했습니다. 그러나 모델에 따라 정보가 다를 수 있습니다.
- 그런 다음 간단히 코드를 보드에로드하고 Blynk 앱으로 제어 할 수 있습니다. 여기에서 쉽게 다른 위젯을 만들고 버튼으로 LED를 제어 할 수 있습니다.
Arduino에서 WiFi 연결-ESP8266-01을 Arduino에 연결
다음으로 Arduino와 ESP8266-01 모듈을 연결하여 사용하려고합니다.
- 황금 안테나로 보드가 아래로 향하도록 보드를 돌리면 왼쪽 상단에서 VCC 핀을 찾을 수 있습니다. 물론 HIGH로 설정해야합니다. 오른쪽에는 일반적으로 사용할 필요가없는 RST 핀이 있습니다. 옆에있는 CH_PD 핀도 다시 HIGH로 설정해야합니다. 오른쪽 상단에는 신호를 출력하는 TXD 핀이 있고 왼쪽 하단에는 물론 신호를 수신하는 RXD 핀이 있습니다. 또한 GPIO0 및 GPIO2와 오른쪽 하단에 위치한 클래식 접지 핀이 있습니다.
- HardwareSerial은 대부분 Arduino와 PC 간의 통신에 사용되므로 Arduino에서 모듈을 사용하려면 SoftwareSerial을 사용하는 것이 좋습니다. 그러나이 경우 모듈은 전송 속도로 115200을 사용하므로 SoftwareSerial을 통한 ESP와 Arduino 간의 통신이 불가능합니다.
- 전송 속도를 변경하기 위해 많은 사용자가 단순히 다른 전송 속도를 제공하는 새 펌웨어를 플래시합니다. 그러나 전송 속도는 명령을 사용하여 변경할 수도 있기 때문에 반드시 필요한 것은 아닙니다. 이 명령은 "AT + UART_DEF"입니다. "AT + IPR"또는 "AT + CIOBAUD"와 같은 다른 명령도 인터넷에서 찾을 수 있지만 특히 "AT + IPR"도 모듈을 손상시킬 수 있으므로 권장하지 않습니다.
- 명령을 모듈로 보내려면 USB 어댑터를 사용하여 PC에 연결하는 것이 좋습니다. USB 어댑터는 일반적으로 무료로 제공되거나 인터넷에서 약 1 유로 찾을 수 있습니다. USB 어댑터가없는 경우 온라인으로 주문하거나 적극 권장하고 제대로 작동하지 않는 범용 FTDI 어댑터를 사용하는 것이 좋습니다. 대안 적으로, 나중에 설명 될 다른 변형이있다.
- 어댑터가있는 모듈을 PC에 연결 한 경우 전송 속도 115200 및 CR + LF와 함께 "AT + UART_DEF = 9600, 8, 1, 0, 0"명령을 보낼 수 있습니다. 그런 다음 모듈을 다시 연결하고 전송 속도 9600으로 명령을 보낼 수 있습니다.
- 다음으로 Arduino를 프로그래밍해야합니다. 코드는 비교적 간단합니다. 먼저»String s = "";«명령으로 빈 문자열을 정의하고 SoftwareSerial (»# include«)을 가져오고 새 SoftwareSerial 객체 (»SoftwareSerial Serial_ESP (2, 3);«)를 만듭니다. 설정 방법에서 ESP 연결 (»Serial_ESP.begin (9600);«)과 PC 연결 (»Serial.begin (9600);«)이 시작됩니다. ESP가 신호를 보내면이 값이 문자열에 추가되고 문자열이 직렬 모니터에 출력됩니다 (»while (Serial_ESP.available ()> 0) {s + = (char) Serial_ESP.read ();} if ! = "") {Serial.println (s); s = "";}«). 반대로, 직렬 모니터, 즉 PC에 의해 전송 된 신호는 ESP에도 전달됩니다 ( "(Serial.available ()> 0) {Serial_ESP.write (Serial.read ());}"). 그러나 ESP가 숫자를 다시 보내므로 모든 것이 문자로 변환되는 것이 매우 중요합니다. 기사 마지막에있는 사진 갤러리에서 코드를 다시 찾을 수도 있습니다.
- Arduino에 코드를로드 한 후 ESP를 연결해야합니다. 주의! ESP는 5V 대신 3.3V를 사용합니다. 5V는 이것을 완전히 끊습니다. 그러나 Arduino는 5V 로직으로 작동하므로 그에 따라 전압을 조정해야합니다.
- 이론적으로는 저항이있는 전압 분배기를 사용할 수 있지만 실제로는 모든 것이 부정확하고 쉽게 방해받을 수 있습니다. 따라서 Arduino와 ESP간에 로직 레벨 변환기를 전환해야합니다.
- Arduino의 5V 핀을 HV, 즉 컨버터의 고전압 핀에 연결하고 컨버터의 LV 핀을 ESP의 VCC 핀에 연결하십시오. 또한 칩이 켜지도록 LV 핀을 ESP의 CH_PD 핀에 병렬로 연결하십시오. 또한 충분한 전류를 얻으려면 Arduino의 3.3V 핀을 변환기의 LV 핀에 연결해야하므로 결과적으로 ESP의 VCC 및 CH_PD에 연결해야합니다. 이제 Arduino의 3 번 핀인 SoftwareSerial의 TX 핀을 HV 1, 2, 3 또는 4로 연결하고 반대쪽 LV 핀을 ESP의 RXD 핀으로 연결합니다. Arduino의 RX 핀에도이 단계를 반복하십시오.
- 마지막으로 접지를 연결해야합니다. 이렇게하려면 Arduino의 접지를 변환기의 HV 측의 접지에 연결하십시오. 그런 다음 LV 측의 접지를 ESP의 접지에 연결하십시오. 마지막으로 HV 접지와 LV 접지를 연결해야합니다.
- 이제 Arduino를 통해 PC로 AT 명령을 ESP로 쉽게 보낼 수 있습니다. Arduino를 WiFi에 쉽게 연결하고 웹 서버 등을 만들 수 있습니다. ESP로 전송 될 Arduino 코드에 각 AT 명령을 추가하기 만하면됩니다 (설정 방법). "AT 명령 세트"에서도 찾을 수 있습니다.
- USB 어댑터가 준비되지 않은 경우 Arduino의 TX 및 RX 핀 (예 : 0 및 1)을 사용하여 동일한 회로를 사용하여 HardwareSerial을 통해 전송 속도를 변경하도록 명령을 보낼 수도 있습니다. 그러나 코드에서 전송 속도를 조정하는 것을 잊지 마십시오.
다음 실습 팁에서는 Java 프로그래밍 언어에 대해 소개합니다.