ESP 01용 펌웨어 1m. ESP8266 마이크로컨트롤러: 연결 및 구성. DTR 커넥터를 사용하는 USB-TTL 변환기

점점 더 복잡해지는 프로젝트를 연구하고 설계하는 과정에서 WiFi와 같은 일반적인 유형의 통신을 사용하여 작업하는 방법을 배우고 싶은 필요성과 욕구가 생길 때가 옵니다. 이러한 유형의 통신을 사용하면 스마트 홈 장치에 대한 단일 네트워크를 편안하게 생성하고 관리할 수 있습니다. 휴대전화, 태블릿 또는 컴퓨터, 즉 실제 스마트 하우스, 매장에서 기성 솔루션을 구매하는 것보다 수십 배 더 저렴합니다. 물론 WiFi의 사용은 이에 국한되지 않으며 이러한 유형의 통신을 사용하는 예가 너무 많아서 나열할 필요가 없으며 이 페이지에 도착했다면 이미 다음을 수행해야 함을 의미합니다. 어떤 이유로든 Wi-Fi를 사용하려면 Wi-Fi를 올바르게 사용하는 방법만 알아내면 됩니다.

가장 저렴하고 인기 있는 순으로 정리하겠습니다. WiFi 모듈 ESP8266-01. 당사 웹사이트에서 ESP8266-01 WiFi 모듈을 구입할 수 있습니다.

이러한 모듈의 주요 장점 중 하나는 보드에 메모리와 자체 마이크로 컨트롤러가 있다는 것입니다. 이를 통해 스케치를 모듈 자체에 직접 로드하여 독립적으로 작동할 수 있습니다.

ESP8266 WiFi 모듈에는 실제로 많은 수정 사항이 있으므로 여기에 나열하지는 않습니다. 일단 작업 방법을 배우면 다른 것과 쉽게 작업을 시작할 수 있습니다. WiFi 작업은 다소 어려운 작업처럼 보일 수 있으며, 수하물에 완료된 프로젝트가 거의 없다면 지금은 WiFi 통신을 포기하고 프로젝트에서 무선 통신을 사용하는 것이 좋습니다. 이해하기가 훨씬 쉽습니다. WiFi 모듈 작업을 위해 전체 커뮤니티와 주제별 포럼이 만들어졌습니다. 이는 대부분의 사람들이 이러한 유형의 통신을 즉시 이해하는 것이 얼마나 어려운지 다시 한 번 입증하고 모든 정보를 다시 읽은 후에 대부분의 사람들은 단순히 포기합니다. 아마 다 못 할 것 같아 중요한 정보이 기사의 틀에만 맞추는 것은 의미가 없습니다. 그렇지 않으면 또 다른 혼란이 될 것입니다. 저는 여러분이 이러한 유형의 의사소통의 작동 원리를 이해하기 시작한 다음 이 방향으로 자신의 기술을 개발할 수 있도록 가장 중요한 사항을 엄격하게 순서대로 따르려고 노력할 것입니다.

그럼 시작해서 먼저 WiFi 모듈 핀을 살펴보겠습니다. ESP8266-01.

VCC- 3V ~ 3.6V의 모듈 전원 공급 장치

접지- 지구.

RST- 모듈 재부팅을 담당하는 출력을 재설정합니다.

CH_PD- "칩 파워 다운"에 전원이 공급되면 모듈의 동작이 활성화됩니다.

텍사스- 데이터 전송(UART 인터페이스)

RX- 데이터 수신(UART 인터페이스)

GPIO0

GPIO2- 범용 I/O 포트

GPIO0 및 GPIO2 핀은 Arduino 보드에서 인터페이스로 사용하는 디지털 핀과 정확히 동일합니다. 다양한 센서, ESP8266-01 모듈의 내부 WiFi 마이크로 컨트롤러에서 독립적으로 작동하는 경우에 사용됩니다.

ESP8266-01 모듈에 안정적으로 전원을 공급하려면 외부 안정화 3.3V 전원 공급 장치를 사용하고 Arduino 보드에서 전원을 공급받지 않는 것이 좋습니다. 모듈이 최대 215mA의 전류를 소비하고 이로 인해 사용자에게 좋지 않은 결과가 발생할 수 있기 때문입니다. 개발 보드. 안정화된 3.3V 전원 공급 장치를 어디서 구할 수 있는지가 문제가 되지 않기를 바랍니다. 그렇지 않으면 이 모듈을 다루기에는 분명히 너무 이르습니다. 예를 들어, 저는 이 3.3V 및 5.0V YWRobot 전원 모듈을 사용하여 브레드보드의 회로를 빠르게 조립하는 것을 좋아합니다. 이를 통해 브레드보드의 해당 전원 경로에서 3.3V 또는 5V의 안정화된 전압을 빠르게 얻을 수 있습니다.

플러스 연결하기 (+) 3.3V 전원 공급 장치에서 핀까지 VCC모듈 ESP8266-01 및 마이너스 (-) 전원 공급 장치를 출력으로 가져옵니다. 접지. 이 상태에서는 모듈의 빨간색 LED가 켜져 전원이 올바르게 연결되었음을 알려줍니다. 모듈을 활성화하려면 플러스도 연결해야 합니다. (+) 출력이 있는 전원 공급 장치 CH_PD모듈 ESP8266-01이며 10kOhm 저항을 통해 직접 수행하는 것이 좋습니다. 이제 전원을 켜면 모듈의 빨간색 LED가 켜지고 파란색 LED가 몇 번 빠르게 깜박여야 합니다. 이런 일이 발생했다면 모든 것이 정상이며 모든 것이 올바르게 연결되었으며 모듈이 작동하고 있는 것입니다. 그렇지 않으면 연결을 다시 확인하거나 모듈이 작동하지 않을 가능성이 높으므로 모듈을 교체하십시오.

계속하세요. ESP8266 WiFi 모듈을 사용하려면 USB-UART 어댑터가 필요합니다. 예를 들어 FT232RL, CP2102, PL2303과 같은 다양한 어댑터가 있습니다. 하지만 이러한 어댑터가 없다고 가정하고 Arduino 보드를 USB-UART 어댑터로 사용하겠습니다. 이를 위해 Arduino NANO 보드를 사용하겠지만 원하는 대로 다른 보드를 사용해도 됩니다. 모든 보드의 연결은 동일합니다. 다음 다이어그램에 따라 연결합니다.

여기서 우리가 무엇을 했는지 살펴보겠습니다. Arduino 보드의 핀을 점퍼로 연결했음을 즉시 확인하십시오. RST그리고 접지. 이 조작을 통해 마이크로 컨트롤러가 비활성화되고 Arduino 보드에서 실제 USB-UART 어댑터를 만들 수 있습니다.

별도의 외부 전원 공급 장치에서 ESP8266-01 WiFi 모듈에 전원을 공급하므로 프로젝트의 모든 전원 공급 장치의 접지를 항상 연결해야 한다는 점을 기억하십시오. 그러므로 우리는 출력을 연결합니다 접지접지가 있는 Arduino 보드 (-) ESP8266-01 모듈에 전원을 공급하도록 설계된 외부 3.3V 전원 공급 장치입니다.

결론 텍사스 Arduino 보드를 핀에 연결하십시오 텍사스 ESP8266-01 모듈. 이 라인은 WiFi 모듈에서 Arduino 보드로 데이터를 전송합니다. UART 인터페이스에 익숙한 사람이라면 "하지만 어떻게 이럴 수 있지? TX는 RX에 연결되어야 한다고 가르쳤습니다. TX는 정보를 전송하고 RX는 수신합니다."라고 궁금해할 것입니다. 그리고 당신이 옳을 것입니다. 맞습니다. TX는 항상 RX에 연결되어 있지만 Arduino에서 UART 어댑터를 만들 경우 장치를 직접 연결해야 합니다. 이것이 규칙의 예외라고 생각하십시오.

RX또한 Arduino 보드를 라인에 직접 연결합니다. RX ESP8266-01 모듈. 이 라인은 Arduino 보드의 정보를 Arduino 보드로 전송합니다. WiFi 카드기준 치수. 그러나 우리는 공칭 값이 1kOhm과 2kOhm인 두 개의 저항으로 구성된 소위 전압 분배기를 통해 이러한 연결을 만듭니다. Arduino 보드는 5V 전압으로 논리 신호를 전송하고 WiFi 모듈은 3.3V 전압으로 작동하므로 두 개의 저항기(전압 분배기)를 사용하여 이 라인의 전압을 줄여야 합니다. 로직 신호를 변환하기 위해 특수 로직 레벨 컨버터 보드를 사용할 수 있습니다. 물론 이것이 더 정확할 것입니다. 하지만 다시 한 번 말씀드리지만, 이 보드가 없다고 가정하고 더 간단한 경로를 사용하여 이를 수행해야 했습니다. 전압 분배기.

이제 추가 작업에 필요한 모든 것을 연결했지만 아직 사용하지 않은 핀이 3개 더 있습니다( GPIO0, GPIO2그리고 RST) 에 WiFi 모듈 ESP8266-01. 안정적인 WiFi 작업모듈에서 사용되지 않은 나머지 단자를 양극으로 당겨야 합니다. (+) 10kOhm 저항을 통한 모듈 전력선.

이는 다양한 간섭(간섭)으로부터 우리를 보호하고 모듈의 작동을 안정적으로 만들어줍니다. 즉시하는 것이 좋습니다. 그렇지 않으면 모듈이 지속적으로 과부하되거나, 이해할 수 없는 정보를 생성하거나, 전혀 작동하지 않는다고 놀라지 마십시오. 프로젝트에서 안정적인 작동을 원한다면 마이크로컨트롤러의 사용하지 않는 핀에 풀업 저항을 사용하는 것이 좋습니다.

그리고 다시 ESP8266-01 WiFi 모듈의 기능을 확인합니다. 전원을 켜고 빨간색 LED가 켜지고 파란색 LED가 몇 번 깜박이는 것을 확인하세요. 모든 일이 이렇게 되면 좋습니다. 계속 진행하겠습니다. 그렇지 않으면 연결의 정확성과 모든 연락처의 품질을 확인합니다. 모든 것을 열 번씩 다시 확인하고 모든 것이 올바르게 연결되었는지 확인하면 사소한 상황일 수 있지만, 모듈을 켜면 파란색 LED가 제대로 작동하지 않고 계속 켜져 있고 계속 깜박이는 것을 볼 수 있습니다. 아니면 전혀 반응하지 않습니다. 이는 일부 회선의 접촉 불량으로 인한 것일 수 있습니다. 예를 들어, 브레드보드에 회로를 조립할 때 저항기 중 하나가 제자리에 단단히 고정되지 않아 간섭이 발생합니다. 연결 품질을 확인하십시오. 모듈은 매우 민감합니다. 이것을 무시하지 마십시오. 이는 불안정한 작동의 일반적인 이유입니다.

일반적으로 연결이 완료되었습니다. 이제 프로그램을 준비해야 합니다. 아두이노 IDE WiFi 모듈 ESP8266-01 작업용. 이렇게 하려면 라이브러리, 예제 및 ESP 보드가 포함된 필수 아카이브를 Arduino IDE에 다운로드하여 설치해야 합니다. 그러면 ESP8266-01 모듈의 마이크로 컨트롤러에 직접 스케치를 업로드하고 펌웨어를 변경할 수 있습니다. 이 기사의 목적상 이러한 설정이 필요하지 않을 가능성이 높지만 모듈을 연결하는 방법을 알아낸 후 Arduino IDE 작업에 필요한 모든 것을 즉시 다운로드하면 절차가 올바른 것 같습니다. . 여기의 모든 것은 원칙적으로 간단합니다.

프로그램 실행 아두이노 IDE그리고 메뉴로 가보세요 "파일" - "설정"

나타나는 창에서 상단 필드에 "esp8266"을 씁니다. 결과적으로 창에는 필요한 펌웨어만 표시됩니다. 펌웨어를 클릭하면 버튼이 나타납니다 "설치". 버튼을 클릭하세요 "설치"모든 것이 설치될 때까지 기다리십시오. 아카이브는 약 150MB로 꽤 크므로 기다려야 합니다.

설치가 완료된 후. Arduino IDE를 재부팅하고 "도구" - "보드" 메뉴에 새로운 ESP 보드가 어떻게 나타나는지 확인합니다. 그게 다야. 와 함께 아두이노 설정우리는 IDE를 마쳤습니다. 지금은 이러한 설정이 필요하지 않지만 향후 작업에서는 이러한 설정 없이는 할 수 없습니다.

모든 것이 연결되고 준비되었으므로 이제 컨트롤을 이해할 수 있습니다. 실제로 이제 우리는 AT 명령을 사용하여 모듈을 계속 확인하고 구성할 것이며, 그것 없이는 할 수 있는 방법이 없습니다. WiFi 모듈은 모듈의 펌웨어에 내장된 소위 AT 명령을 사용하여 모듈과의 모든 통신이 이루어지는 방식으로 구현됩니다. 여기에 모든 AT 명령을 나열하지는 않습니다. 꽤 많은 명령이 있으며 모든 것을주의 깊게 연구하고 싶다면 인터넷에서 쉽게 찾을 수 있습니다. 이제 시작하는 데 가장 필요한 것만 사용하겠습니다.

그래서 우리는 Arduino 보드를 다음을 통해 연결합니다. USB 케이블컴퓨터에. ㅏ 외부 소스영양을 주는 음식 WiFi 모듈 ESP8266-01아직 켤 필요는 없습니다. 발사하자 아두이노 프로그램 IDE의 "도구" 메뉴에서 Arduino 보드를 선택합니다. 제 경우에는 Arduino NANO를 선택하면 됩니다. 또한 Arduino가 연결된 포트를 선택하는 것을 잊지 마십시오. 이 모든 것을 이해하고 수행 방법을 알기를 바랍니다.

오픈 포트 모니터링 "도구" - "포트 모니터". 포트 속도 선택 74880 (이 속도에서 모듈이 시작됨) 왼쪽 목록에서 "NL & CR"을 선택하십시오.

이제 WiFi 모듈에 전원을 공급하는 외부 전원을 연결합니다. 그러면 포트 모니터에 대략 다음과 같은 정보가 표시됩니다.

여기서는 WiFi 모듈에 대한 일부 정보(속도, 내장 메모리 양 등)를 볼 수 있습니다. 수신되는 정보는 버전에 따라 다를 수 있습니다. WiFi 펌웨어기준 치수. 이것에 집중하지 말자. 다른 것이 중요합니다. 아래에는 의미 없는 문자 세트가 있습니다. 이는 우리가 설정한 포트 속도(74880 보드)가 다음에만 적합하다는 것을 의미합니다. 부트스트랩모듈에서는 이 정보를 정상적으로 볼 수 있지만, 이 속도는 WiFi 모듈과의 정상적인 통신에는 적합하지 않습니다.

올바른 포트 속도를 선택하려면 포트 속도를 변경하고 기호를 포트(상단에 있는 필드와 보내기 버튼)로 보내면 됩니다. 우리가 대답을 얻을 때까지 좋아요. 지금 당장 문자를 보내려고 하면 74880의 속도로 포트에 연결하면 응답으로 또 다른 한두 개의 의미 없는 문자를 받게 됩니다.

즉시 속도를 115200보드로 설정하고 AT 명령을 보내보세요. 대부분의 경우 모듈은 이 속도로 플래시됩니다.

이것은 포트 모니터에서 볼 수 있는 그림입니다. 여전히 이해할 수 없는 문자 집합이 응답으로 수신되면 속도를 낮추고 다시 보내세요. 대답이 돌아올 때까지 명령 좋아요. 모든 속도를 시도했지만 정답을 얻지 못한 경우 운이 좋지 않은 것이며 모듈에 비표준 속도로 펌웨어가 플래시됩니다. 그런 다음 남은 것은 일반 펌웨어로 모듈을 다시 플래시하는 것입니다. 그러나 이것은 별도의 기사에 대한 주제입니다.

모든 것이 잘 되기를 바라며 올바른 속도를 선택하시기 바랍니다. 그런데 올바른 속도를 선택한 후 WiFi 모듈을 껐다가 다시 켜려고 하면 74880 보드 속도에서 올바르게 표시된 것과 동일한 초기 정보 대신에 다음과 같은 결과가 나타납니다. 뒤죽박죽된 문자 집합이 보이지만 마지막에는 "ready"라는 단어가 표시됩니다. 하지만 이 초기 정보를 올바른 속도로 일반 형식으로 볼 수 있는 기회가 있습니다. 이를 위해서는 AT 명령을 사용하여 프로그래밍 방식으로 모듈을 재부팅해야 합니다. AT+RST.

ESP8266-01 WiFi 모듈의 펌웨어 버전을 확인하려면 포트 모니터에 명령을 보내야 합니다. AT+GMR이에 대한 응답으로 대략 다음 정보를 받게 됩니다.

ESP8266-01 WiFi 모듈은 액세스 포인트와 클라이언트 모드 모두에서 작동할 수 있습니다. 모듈이 모든 모드에서 동시에 작동하도록 하려면 포트 모니터에 명령을 보냅니다. AT+CWMODE=3응답으로 당신은 받아야합니다 좋아요.

AT+CWLAP당신이 볼 수있는 모든 WiFi 액세스 포인트를 볼 수 있습니다 이 순간당신의 모듈. 예를 들어, 내 모듈은 현재 해당 서비스 지역에 WiFi 액세스 포인트가 3개만 표시됩니다. 대답은 다음과 같아야 합니다.

예를 들어 세 번째 액세스 포인트의 비밀번호를 알고 이에 연결하려면 다음 명령을 실행합니다. AT+CWJAP="이름","비밀번호", 제 경우에는 이 명령은 다음과 같습니다 AT+CWJAP="dsl_unlim_512_home","11111111", 이에 대해 성공적인 응답을 얻습니다.

명령 매개변수는 ESP8266-01 WiFi 모듈의 플래시 메모리에 기록되며, 모듈을 껐다가 다시 켜면 자동으로 이 액세스 포인트에 연결됩니다. 우연히 명령에 공백을 허용하지 마십시오. 그렇지 않으면 답변을 받게됩니다 오류. 최신 펌웨어 버전에서는 다음 명령을 사용하는 것이 좋습니다. AT+CWJAP_CUR즉, 명령은 다음과 같습니다. AT+CWJAP_CUR="이름","비밀번호".모듈이 어느 액세스 포인트에 연결되어 있는지 갑자기 잊어버린 경우 명령을 보내야 합니다. AT+CWJAP?또는 AT+CWJAP_CUR?이에 대한 응답으로 WiFi 모듈이 현재 연결된 액세스 포인트를 받게 됩니다.

연결과 초기 설정 WiFi 모듈 ESP8266-01우리는 그것을 알아 냈습니다. 모듈이 작동하고 향후 프로젝트를 구현할 준비가 되었습니다. 한 기사의 틀 내에서 이 모듈을 사용하여 작업하는 가능한 모든 예를 분석하는 것은 불가능하며 다음 기사에서 이에 대해 다룰 것입니다. 프로그래밍에 익숙하지 않지만 WiFi를 사용하여 프로젝트 관리를 빠르게 시작하고 싶은 분들에게는 RemoteXY WiFi 프로젝트 디자이너를 소개하는 것이 좋습니다. 이 사이트는 휴대폰이나 태블릿용 제어 인터페이스를 쉽게 만들고 이를 사용하여 WiFi 모듈을 연결하는 장치를 제어하는 ​​데 도움이 됩니다.

모울 esp-01
계획 올바른 연결프로그래밍 및 펌웨어용 esp-01 모듈입니다.

프로그래밍 모드로 전환하면 모듈이 플래시됩니다. 이렇게 하려면 FLASH 버튼을 누른 상태에서 놓지 말고 RESET 버튼을 짧게 누르고 FLASH를 놓습니다.
모듈이 프로그래밍 모드로 전환됩니다.
현재 터미널에서 볼 수 있습니다.

2013년 1월 8일 기준, 첫 번째 원인: 2, 부팅 모드:(1.6)
부팅 모드:(1,6) - RESET을 통해 프로그래밍 모드로 재부팅
부팅 모드:(1,7) - 프로그래밍 모드로 전원 재부팅 - 완전히 정확하지는 않습니다.

펌웨어의 경우 프로그램을 사용하겠습니다. NODEMCU 펌웨어 프로그래머
(프로그램이 포함된 아카이브가 주제에 첨부됩니다)
아카이브의 압축을 풀고 내 경우에는 32비트 버전의 프로그램\Win32\Release\ESP8266Flasher.exe를 실행합니다.
모듈에 맞게 구성했는데 제 경우에는 1MB의 플래시 메모리 또는 8MB입니다.




첫 번째 단계는 빈 1MB 파일로 메모리를 지우는 것입니다.
선택사항 항목입니다. 지우기를 건너뛰고 펌웨어로 이동할 수 있습니다.
메모리가 많거나 적은 사람들은 적절한 크기의 빈 파일이 필요합니다.
다음으로 어떤 펌웨어가 필요한지 결정합니다!
다음과 같이 사용할 수 있습니다. 준비된 펌웨어 NODEMCU와 디자이너로부터 필요한 모듈을 조립할 수 있습니다.
예를 들어, 오래되고 입증된 NODEMCU 중 하나

생성자 wifi-iot.com/
생성자 nodemcu-build.com/
또는 최신을 다운로드

펌웨어 문제
만약에 esp8266 모듈이 깜박이지 않습니다. 풀업과 GND GPIO0에 대한 올바른 연결을 확인하세요. 또한 RX TX가 혼합되어 있는지 여부도 표시됩니다.
터미널에서 boot mode:(1,6) 또는 boot mode:(1,7)이 표시되는지 확인할 수 있습니다.

만약에~ 후에 실패한 펌웨어모듈이 작동하지 않으면 메모리 크기만큼 빈 양식 파일을 사용하여 메모리를 지워보세요.

만약에펌웨어가 성공한 후 모듈이 작동하지 않고 끝없이 쓰레기를 포트로 보냅니다(데이터 전송 LED가 깜박일 수 있음). 이는 최신 Nodemcu 빌드를 플래시할 때 발생합니다. 그런 다음 추가로 파일을 메모리 영역에 플래시해야 합니다. 메모리 칩.
메모리에 대한 정보는 nodemcu 웹사이트에서 가져왔습니다.
512kB의 경우 0x7c000, ESP-01,03,07과 같은 모듈
1MB의 경우 0xfc000, ESP8285, PSF-A85와 같은 모듈뿐만 아니라 일부 종류의 esp-01,01도 있습니다.
2MB의 경우 0x1fc000
4MB의 경우 0x3fc000, 모듈 유형 ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini 등

다른 모든 방법이 실패하면 다음을 작성하십시오.

장비 제조사의 공식 그룹을 추가하겠습니다.

Wi-Fi 모듈 ESP-01은 ESP8266 시리즈 중 가장 널리 사용되는 모듈입니다. 컴퓨터 또는 마이크로 컨트롤러와의 통신은 일련의 AT 명령을 사용하여 UART를 통해 수행됩니다. 또한 모듈을 독립 장치로 사용할 수 있으므로 이를 위해서는 자체 펌웨어를 모듈에 로드해야 합니다. Arduino IDE 버전 1.6.5 이상을 통해 펌웨어를 프로그래밍하고 다운로드할 수 있습니다. 모듈 펌웨어를 플래시하려면 UART-USB 어댑터가 필요합니다. ESP-01 모듈은 IoT(Internet of Things) 장치에 널리 사용될 수 있습니다.

명세서기준 치수

  • Wi-Fi 802.11b/g/n
  • WiFi 모드: 클라이언트, 액세스 포인트
  • 출력 파워- 19.5dB
  • 공급 전압 - 1.8 -3.6V
  • 전류 소비 - 220mA
  • GPIO 포트: 4
  • 클록 주파수프로세서 - 80MHz
  • 코드 메모리 용량
  • - 96KB
  • 크기 - 13×21mm

연결

AT 명령 모드를 고려해 봅시다. 이렇게 하려면 USB-UART 어댑터를 통해 모듈을 컴퓨터에 연결하십시오. 모듈 핀의 목적(그림 1 참조):
  • VCC - +3.3V
  • GND - 접지
  • RX, TX - UART 핀
  • 출력 CH_PD - 칩 활성화
  • GPIO0, GPIO2 - 디지털 접점
모듈에는 다음이 필요합니다. 외부 전원 공급 장치 3.3V.

그림 1. ESP-01 모듈 핀 할당

AT 명령 모드에서 모듈과 통신하기 위한 연결 다이어그램(그림 2):

그림 2. 직렬 포트를 통해 ESP-01 모듈을 컴퓨터에 연결하는 다이어그램

그림 3. 조립 회로

Mac OS X에서 AT 명령을 보내려면 CoolTerm 프로그램을 사용할 수 있습니다. 운영 체제 윈도우 프로그램흰개미. 모듈에 연결하기 위한 COM 포트의 속도는 실험적으로만 확인할 수 있으며 펌웨어마다 다를 수 있습니다. 내 모듈의 속도는 9600보드로 나타났습니다. 또한 CH_PD 핀을 전원 공급 장치에서 분리했다가 다시 연결한 후에만 교환이 가능했습니다. 연결 후 터미널에 AT를 입력하면 모듈로부터 OK 응답을 받아야 합니다. AT+GMR 명령은 모듈 펌웨어 버전 번호를 제공하고, AT+RST 명령은 모듈을 재부팅합니다(그림 4 참조). 기본 AT 명령 목록은 이 문서(ESP8266ATCommandsSet.pdf)에서 찾을 수 있습니다.

그림 4. Termite에서 모듈로 AT 명령 보내기

AT 명령 모드가 불편할 경우 AppStack ESP8266 Config 프로그램을 사용하여 보드를 구성할 수 있습니다. 이 프로그램은 http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip 링크에서 다운로드할 수 있습니다. 모습프로그램은 그림 5에 나와 있습니다. 모듈은 다음을 사용하여 구성됩니다. GUI, 명령 실행은 프로그램 모니터에서 볼 수 있습니다 (그림 6 참조). 모니터는 명령줄에서 AT 명령을 보낼 수도 있습니다.

그림 5. AppStack ESP8266 구성 프로그램

그림 6. AppStack ESP8266 Config 프로그램의 직렬 모니터

이 모듈을 사용하는 데는 두 가지 옵션이 있습니다:

  • UART를 통해 모듈을 제어하는 ​​마이크로 컨트롤러(예: Arduino)와 함께;
  • ESP8266을 독립형 장치로 사용하기 위해 자신의 펌웨어를 작성합니다.

사용예

DHT11 습도 및 온도 센서를 ESP-01 모듈에 연결하고 데이터를 ESP-01로 보내는 예를 살펴 보겠습니다. 클라우드 서비스 ThingSpeak (https://thingspeak.com/). 다음 부분이 필요합니다.
  • 모듈 ESP-01
  • 빵판
  • 습도 및 온도 센서 DHT11
  • 저항 10kΩ
  • 연결 전선
  • 전원 공급 장치 3 - 3.6V
먼저 DS18B20 센서를 ESP-01 모듈에 연결해 보겠습니다. DS18B20은 단일 와이어 1-Wire 인터페이스를 통해 작동하는 디지털 온도 센서입니다. 모듈에 대한 DS18B20 센서의 연결 다이어그램은 그림 1에 나와 있습니다. 7.

그림 7. DHT11 센서와 ESP-01 모듈의 연결 다이어그램.

그런 다음 ThingSpeak 서비스에서 프로필을 생성해야 합니다. 서비스에는 서비스에 데이터를 보내고 서비스에서 데이터를 받기 위한 지침이 있습니다.

그림 8. 완전한 회로.

우리는 프로그램을 다음과 같이 작성할 것입니다. 아두이노 환경 ESP8266용 IDE. ESP8266WiFi.h(내장) 및 OneWire.h 라이브러리를 사용하겠습니다. 목록 1의 스케치를 Arduino 보드에 업로드해 보겠습니다. 온도 센서로부터 데이터를 수신하고 데이터를 ThingSpeak 서비스로 보냅니다. ESP-01 모듈의 WiFi 액세스 포인트에 대한 데이터를 입력해야 합니다.

  • const char *ssid;
  • const char *비밀번호;
ThingSpeak 서비스의 애플리케이션에 대한 privateKey 매개변수도 포함됩니다. 목록 1 // 웹사이트 // esp8266을 사용할 라이브러리 포함 #include // DHT11과 함께 작동하도록 DHT 라이브러리를 포함합니다. #include // DATA 핀 연결 핀 #define DHTPIN 4 // DHT11 센서 #define DHTTYPE DHT11 // DHT 객체의 인스턴스 생성 DHT dht(DHTPIN, DHTTYPE); //ssid WiFi 네트워크연결 const char ssid = "********"; // WiFi 비밀번호연결 네트워크 const char 비밀번호 = "******"; // ThingSpeak 서버 const char* 호스트 = "184.106.153.149"; // ThingSpeak 애플리케이션의 API KEY const char* privateKey = "****************"; // 온도와 습도를 저장하는 변수 float temp; 플로트 습도 // 측정 간격에 대한 변수 unsigned long millis_int1=0; void setup() ( // 직렬 포트 시작 Serial.begin(115200); Delay(10); Serial.print("WiFi에 연결"); Serial.println(ssid); // WiFi를 통해 연결 WiFi.begin( ssid , 비밀번호); while (WiFi.status() != WL_CONNECTED) ( 지연(500); ) Serial.println("WiFi 연결됨"); // dht 시작 dht.begin(); ) void loop() ( / / 10분 간격 대기 if(milis()-millis_int1>=10*60000) ( Serial.print("connect to ThingSpeak"); Serial.println(host); // WiFi 클라이언트 사용 WiFiClient client; if (!client.connect (host, 80)) ( Serial.println("connection failed"); return; ) // 온도 데이터 가져오기 temp = get_data_temp(); 습도 = get_data_humidity(); // 요청으로 URL 생성 서버용 String url = "/ update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += 습도; // 요청 보내기 서버에 client.print(String(" GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r \n"); 지연(10); // ThingSpeak 서버 응답 while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) ) 이제 ThingSpeak 서비스에서 판독값 그래프를 볼 수 있습니다. DHT11 온도 센서(그림 9).

그림 9. ThingSpeak 서비스의 DS18B20 온도 센서 판독값 그래프.

자주 묻는 질문(FAQ)

1. 모듈이 응답하지 않습니다.AT 명령
  • 모듈이 올바르게 연결되었는지 확인하십시오.
  • UART-USB 어댑터에 대한 Rx, Tx 접점의 올바른 연결을 확인하십시오.
  • CH_PD 핀이 3.3V에 연결되어 있는지 확인하세요.
  • 직렬 포트의 통신 속도를 실험적으로 선택하십시오.
2. ESP-01 모듈은 센서로부터 온도 데이터를 수신하지 않습니다.DHT11
  • DHT11 센서가 모듈에 올바르게 연결되어 있는지 확인하십시오.
3. 데이터가 ThingSpeak 서비스로 전송되지 않습니다.
  • WiFi 액세스 포인트에 대한 모듈의 연결을 확인하십시오.
  • WiFi 액세스 포인트와 인터넷의 연결을 확인하십시오.
  • ThingSpeak 서비스에 대한 요청이 올바른지 확인하세요.

... 일반적으로 이 자료는 하나의 Arduino 주제에만 국한되지 않습니다.

ESP8266의 주제는 꽤 어려운 주제입니다. 그러나 Arduino IDE 개발 환경에서 이러한 Wi-Fi 모듈을 사용하면 진입 임계값이 일반 Arduino 사용자에게 허용되는 수준으로 떨어집니다. Arduino 사용자뿐만 아니라 IoT(사물 인터넷) 주제에 관해 뭔가를 만들고 싶은 욕구가 있고 칩에 대한 문서를 읽고 이러한 모듈에 대한 API를 연구하는 데 많은 시간을 들이지 않고 싶은 모든 사람입니다.

이 비디오는 아래 기사에 제시된 자료를 완전히 복제합니다.

글쎄, 우리는 ESP8266을 연결하고 프로그래밍 모드로 전환하는 방법을 이미 알고 있습니다. 이제 더 유용한 것으로 넘어가겠습니다.

Arduino 개발 환경에서 모듈을 프로그래밍하면 기본 펌웨어가 파괴되고 더 이상 AT 명령을 사용하여 모듈을 사용할 수 없게 된다고 바로 말씀드리겠습니다. 개인적으로 이것이 나를 차갑거나 뜨거워지게 만들지는 않지만 누군가 필요하다면 기사 끝부분에서 기본 펌웨어를 모듈이나 NodeMcu와 같은 일종의 부트로더로 다시 플래시하는 방법을 보여 드리겠습니다.

우선 공식 홈페이지에서 다운로드하세요 최신 버전 Arduino IDE, 현재 1.6.7. 1.0.5와 같은 이전 버전. 필요한 기능이 없기 때문에 적합하지 않을 것이고 탬버린과 함께 춤을 추는 것은 우리에게 관심이 없기 때문입니다. 그렇죠?

개발 환경을 시작하고 즉시 파일/설정으로 이동합니다.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

그런 다음 도구/보드:/보드 관리자...로 이동합니다.

보드 관리자 창이 우리 앞에 나타나서 맨 아래까지 스크롤하면 모든 것이 올바르게 완료되면 다음과 같은 내용이 표시됩니다.

비문 "에서 커서를 클릭하십시오. esp8266~에 의해 ESP8266 커뮤니티"그런 다음 "설치" 버튼이 있고 원하는 버전을 선택하고 최신 버전을 선택합니다. 오늘은 2.1.0입니다. 개발 환경에서는 필요한 파일(약 150MB)을 다운로드하고 그 반대편에는 비문 " esp8266~에 의해 ESP8266 커뮤니티""INSTALLED"가 나타납니다. 즉, 설치된 것입니다.

보드 목록을 아래로 스크롤하여 목록에 다양한 ESP가 있는지 확인하고 "일반 ESP8266 모듈"을 선택합니다.

"도구"로 이동하여 원하는 COM 포트(저는 COM32) Arduino 또는 USB UART 변환기를 선택한 다음 업로드 속도를 "115200"으로 설정합니다.

속도를 74880 및 "NL & CR"로 설정하고 다시 끄고 전원을 공급하면 일부 디버깅 정보로 응답합니다.

74880은 ESP8266의 기본 속도가 아니며 단지 디버깅 정보를 보내는 것입니다. 모듈이 콘솔에 아무 것도 보내지 않으면 뭔가가 잘못 연결된 것일 수 있습니다.

기본적으로 속도는 115200이어야 하는데 어떤 경우에는 9600이 될 수도 있고 다른 경우도 있을 수 있으니... 그러니 찾아보세요.

필요한 속도를 선택한 후 "AT" 모듈을 보내면 모든 것이 "OK"라고 응답해야 합니다. "AT+GMR" 명령은 펌웨어에 대한 정보를 표시합니다.

Arduino IDE에서 ESP8266 플래시를 시작하기 전에 기사를 끝까지 읽어 보시기 바랍니다.

이제 Arduino IDE를 통해 ESP8266을 플래시해 보겠습니다. 우리는 모듈을 프로그래밍 모드로 전환했습니다(이전 기사에서 이 작업을 수행하는 방법을 썼습니다).

플래셔에 표준 LED를 추가해 보겠습니다.

// PodelkinTs 씨 youtube.com/RazniePodelki // geektimes.ru/post/271754/에 특별함/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); 지연(1000); digitalWrite(TXD, LOW); 지연(1000); )

번쩍였나요? 그래서 모든 것이 올바르게 이루어졌습니다. LED가 첫 번째 핀에 연결되어 있다는 것을 어디서 얻었습니까? 이전 기사에는 다양한 모듈의 핀아웃이 있는 사진이 있으며 Arduino 부트로더를 사용할 때 포트 표시가 있습니다(핀은 분홍색으로 표시됨).

LED를 깜박이는 것도 물론 좋지만, 일종의 웹 서버를 설치하거나 최소한 브라우저의 버튼을 사용하여 LED 제어를 시작해야 겠죠? 하지만 이에 대해서는 나중에 말씀드리겠습니다.

그리고 지금 기본 펌웨어를 플래시백하는 방법, 그리고 타사 부트로더를 사용하여 모듈을 플래시하는 방법도 알아보세요. ESP8266의 경우 원래 NodeMCU 부트 로더를 플래시하기 위한 NodeMCU Flasher와 같은 프로그램이 있습니다. 그러나 결과적으로 다른 펌웨어가 완벽하게 깜박입니다.

편의를 위해 이 프로그램과 펌웨어가 포함된 아카이브를 기사에 첨부할 예정이지만 언제든지 다운로드할 수 있습니다. 새로운 버전 NodeMCU 플래셔.

“nodemcu-flasher-master” 폴더에는 Win64와 Win32라는 두 개의 폴더가 있으며, OS의 비트 심도에 따라 필요한 폴더를 선택하세요. 다음으로, Release 폴더에서 "ESP8266Flasher.exe"를 실행하고 프로그램 인터페이스를 확인하세요.

원하는 COM 포트를 선택하고 "Config" 탭으로 이동하여 "INTERNAL://NODEMCU" 옆에 있는 십자가를 제거하고 스크린샷과 같이 한 포인트 아래에 놓습니다.

(NodeMCU 부트로더를 플래시하려면 십자가가 없던 곳을 제거하고 원래 있던 위치, 즉 "INTERNAL://NODEMCU" 근처에 놓으십시오.)

그런 다음 기어를 클릭하고 펌웨어가 있는 위치를 선택합니다. 펌웨어는 일반적으로 *.bin 형식입니다(첨부된 아카이브에서는 기본 폴더에 있는 "v0.9.5.2 AT Firmware.bin"입니다). 또한 "0x00000" 이상을 선택합니다.

다시 "Operation" 탭으로 돌아가서 모듈을 프로그래밍 모드로 전환하고 "Flash"를 클릭합니다.

모듈이 플래시되기 시작했습니다. 플래시한 후 모듈을 재부팅하는 것을 잊지 마세요. 짜잔, 필요한 펌웨어로 플래시됩니다.

AT 명령 “AT+GMR”을 사용하여 모든 작업을 올바르게 수행했는지 확인합니다.

보시다시피 모든 것이 순조롭게 진행되었습니다.

ESP-01 모듈을 사용하여 인터넷을 통해 LED를 제어하는 ​​방법 전기 장치.

이 ESP8266 튜토리얼에서는 ESP-01 모듈을 사용하여 인터넷을 통해 LED를 제어합니다. ESP8266은 인터넷을 통한 통신을 위한 저렴하지만 효과적인 플랫폼입니다.

Arduino와 함께 사용하는 것도 쉽습니다. 이 수업을 마치면 전 세계 어디에서나 인터넷을 통해 모든 전기 장치를 제어하는 ​​기본 지식을 얻게 됩니다!

여기서는 USB-TTL 변환기를 사용하여 ESP8266 ESP-01을 프로그래밍하겠습니다. 그리고 우리는 다음을 위한 웹 서버를 개발하는데 사용할 것입니다. 리모콘주도의.

작동 원리

ESP8266은 로컬 Wi-Fi 네트워크 또는 인터넷(포트 전달 후)에서 제어할 수 있습니다. ESP-01 모듈에는 인터넷을 통해 LED 또는 릴레이를 켜거나 끄도록 프로그래밍할 수 있는 GPIO 핀이 있습니다. 모듈은 직렬 핀(RX, TX)을 통해 Arduino USB-TTL 변환기를 사용하여 프로그래밍할 수 있습니다.

ESP8266에 하드웨어 연결

USB-TTL 변환기를 사용하거나 Arduino를 사용하여 ESP8266을 프로그래밍할 수 있습니다. ESP8266에 코드를 로드하기 위해 따를 수 있는 세 가지 방법은 다음과 같습니다. 가장 적합한 방법을 선택하세요. 각 옵션에 대한 다이어그램을 참조하고 이에 따라 장비를 구성하십시오.

1. DTR 커넥터를 사용하는 USB-TTL 변환기

DTR 출력이 가능한 USB-TTL 변환기를 사용하면 다운로드가 원활하게 진행됩니다. 이때 시리얼 모니터는 작동하지 않으니 주의하시기 바랍니다.

USB TTL → ESP8266 ESP-01
접지 → 접지
송신 → 수신
수신 → 송신
RTS → RST
DTR → GPIO0

2. DTR 출력이 없는 USB-TTL 변환기

DTR 핀 없이 USB-TTL 변환기를 연결하려면 수동 전송을 사용해야 합니다. 이를 위해 두 개의 버튼을 사용합니다. 다음 다이어그램을 참조하세요.

USB TTL → ESP8266 ESP-01
접지 → 접지
송신 → 수신
수신 → 송신
재설정 버튼 → RST
플래시 버튼 → GPIO0

코드를 다운로드할 때 "다운로드"(플래시) 버튼을 클릭하세요. 재설정 버튼을 한 번 누른 상태에서 버튼을 길게 누르세요. 이제 플래시 버튼을 놓을 수 있습니다. ESP8266은 이제 스케치를 업로드할 수 있는 모드에 있습니다.

3. Arduino Uno를 사용하여 ESP8266에 코드 업로드

ESP8266 ESP-01을 사용하여 코드를 실행할 수 있습니다. 코드를 다운로드할 때 두 번째 지점과 동일한 절차를 따르십시오. "다운로드" 버튼을 누른 상태에서 재설정을 한 번 누른 다음 플래시 버튼을 놓습니다.

아두이노 → ESP8266 ESP-01
접지 → 접지
텍사스 → 텍사스
수신 → 수신
재설정 버튼 → RST
플래시 버튼 → GPIO0

ESP8266 코드 다운로드

위의 방법 중 하나를 사용하고 를 연 다음 메뉴에서 ESP8266 보드를 선택합니다.

도구 → 보드 → 일반 ESP8266 모듈
(도구 → 보드 → ESP8266 모듈)

메모. ESP8266 Arduino 보드를 설치 및 구성하지 않은 경우 이 튜토리얼 위의 단계를 수행하십시오. 그런 다음 계속 진행할 수 있습니다.

이제 아래 코드를 Arduino IDE에 복사하고 다운로드 버튼을 클릭하세요. SSID를 점으로 변경 Wi-Fi 접속그리고 비밀번호를 네 것으로 바꿔봐 Wi-Fi 비밀번호그리고 컴파일하세요.

#포함하다 const char* ssid = "YOUR_SSID";//ssid를 입력하십시오. const char* 비밀번호 = "YOUR_PASSWORD";//비밀번호를 입력하십시오 int ledPin = 2; // ESP8266 WiFiServer 서버의 GPIO2(80);//서비스 포트 void setup() ( Serial.begin(115200); 지연(10); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); // 연결 WiFi 네트워크 Serial.println(); Serial.println(); Serial.print("연결 중"); Serial.println(ssid); WiFi.begin(ssid, 비밀번호); while (WiFi.status() != WL_CONNECTED ) ( 지연(500); Serial.print("."); ) Serial.println(""); Serial.println("WiFi 연결됨"); // 서버 시작 server.begin(); Serial.println( "서버 시작됨"); // IP 주소 인쇄 Serial.print("연결하려면 이 URL을 사용하십시오: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial .println("/"); ) void loop() ( // 클라이언트가 WiFi에 연결되었는지 확인합니다. Client = server.available(); if (!client) ( return; ) // 클라이언트가 데이터를 보낼 때까지 기다립니다. Serial .println("new client"); while(!client.available())( Delay(1); ) // 요청의 첫 번째 줄을 읽습니다. String request = client.readStringUntil("\r"); Serial.println (요청); client.flush(); // 요청과 일치 int value = LOW; if (request.indexOf("/LED=ON") != -1) ( digitalWrite(ledPin, HIGH); value = HIGH; ) if (request.indexOf("/LED=OFF") != -1)( digitalWrite(ledPin, LOW); value = LOW; ) //요청에 따라 ledPin을 설정합니다. //digitalWrite(ledPin, value); // 응답을 반환합니다. client.println("HTTP/1.1 200 OK"); client.println("콘텐츠 유형: text/html"); client.println(""); // 이것을 잊지 마세요 client.println(""); client.println(" "); client.print("현재 LED 핀은 다음과 같습니다: "); if(value == HIGH) ( client.print("On"); ) else ( client.print("Off"); ) client.println( "

"); client.println("클릭 여기핀 2의 LED를 켜십시오.
"); client.println("클릭 여기에서 핀 2의 LED를 끄십시오.
"); client.println(""); 지연(1); Serial.println("클라이언트 연결이 끊어졌습니다."); Serial.println(""); )

직렬 모니터를 열고 웹 브라우저를 통해 직렬 모니터에 표시된 URL을 엽니다. ESP8266의 GPIO 2를 더 긴 LED 핀에 연결합니다. 이제 인터넷을 통해 원격으로 LED를 제어할 수 있습니다!

코드를 다운로드하는 데 필요한 모든 전선을 제거합니다. LM1117 모듈은 조정된 3.3V 출력을 제공하는 데 사용됩니다. 이를 통해 ESP8266 또는 ESP-01 모듈을 독립형으로 만들 수 있습니다.

ESP8266을 인터넷에 연결하기

현재 ESP8266 모듈은 다음을 통해서만 사용할 수 있습니다. 지역 네트워크와이파이. 인터넷에서 장치를 관리하려면 라우터에서 포트 전달을 수행해야 합니다.

이를 수행하려면 터미널에서 "ifconfig" 명령을 사용하거나 whatsmyip.org로 이동하여 시스템의 IP 주소를 찾으십시오. IP 주소를 복사하세요. 이제 라우터 설정을 열고 전달 설정으로 이동하세요. "서비스 포트"와 "IP 주소"에 대한 세부 정보를 입력합니다. 서비스 포트는 Arduino 코드의 포트 번호입니다(서비스 포트: 80).

WiFiServer 서버(80);//서비스 포트

IP 주소는 앞서 지정한 주소입니다. 나머지 설정은 기본값으로 둡니다. 이제 브라우저로 가서 주소: xxx.xxx.xx.xx:80을 입력하면 LED를 제어할 수 있는 페이지가 열립니다.