작성자:데니스 누치우
최근에 저는 AliExpress에서 약 4달러에 NodeMCU를 구입했습니다. 내가 이렇게 한 이유는 ESP8266에 대한 모든 소란이 무엇인지 알아보기 위해서였습니다.
NodeMCU는 오픈 소스 IoT 플랫폼입니다. 여기에는 Espressif Systems의 ESP8266 Wi-Fi SoC에서 실행되는 펌웨어와 ESP-12 모듈을 기반으로 하는 하드웨어가 포함되어 있습니다.
출처:ESP8266 데이터시트
Arduino UNO와 비교할 때 ESP8266은 CPU 성능과 가격 측면에서 완전히 뛰어납니다.
ESP8266은 Arduino보다 500% 빠르고 82% 저렴합니다. ESP8266에는 WiFi 연결도 있습니다.
ESP8266에 대한 Espressif 웹사이트를 방문했을 때 매우 놀랐습니다. 사용할 수 있는 문서와 리소스가 많이 있습니다. 예를 들어, ESP8266에 WiFi에 연결하라고 지시하는 Android 애플리케이션이 있습니다. 앱은 SSID와 비밀번호를 패킷으로 보내고 ESP8266은 이를 스니핑한 다음 Wi-Fi에 연결합니다. 이는 SmartConfig라고 하며 Texas Instruments에서 개발했습니다.
이 글에서는 Espressif RTOS SDK에서 스마트 구성 예시를 설정하고 실행하는 방법을 안내하겠습니다.
필요한 사항은 다음과 같습니다.
- 현대적인 컴퓨터
- ESP12-E를 갖춘 NodeMCU 보드
- VirtualBox(https://www.virtualbox.org/wiki/Downloads)
- Ubuntu 서버 LTS(https://www.ubuntu.com/download/server)
개발을 위한 VirtualBox 구성
- VirtualBox를 다운로드하고 Ubuntu Server를 설치합니다. 이 작업은 쉽지만 방법을 모르는 경우 Google에 검색하거나 이 그래픽 단계별 가이드를 살펴보세요. OS를 설치하는 것은 좋은 기술입니다. (팁:VirtualBox에서 디스크를 선택하라는 메시지가 표시되면 디스크를 동적으로 할당하고 크기를 최소 50GB로 설정하세요. 이렇게 하면 나중에 골치 아픈 일을 덜 수 있습니다.)
- 가상 머신 내에서 인터넷에 액세스하고 DNS 서버를 구성할 수 있는지 확인하세요.
머신을 마우스 오른쪽 버튼으로 클릭한 다음 설정 -> 네트워크
DNS 서버를 구성하려면 이 예를 살펴보세요.
예:dns-nameservers 8.8.8.8 8.8.4.4 Google에 핑을 보낼 수 있다면 아무 문제 없습니다!
-
(선택 사항) OpenSSH 및 Samba 서버를 설치합니다. 그러면 당신의 삶이 훨씬 더 쉬워질 것입니다.
-
(선택사항) 포트 전달을 활성화합니다. SSH를 통해 가상 머신에 직접 연결하려면 포트 전달을 활성화해야 합니다. 예를 들어 포트 2222를 매핑하려면 호스트 컴퓨터에서 포트 22로 가상 머신 .
포트 전달 활성화:설정 -> 네트워크 -> 포트 전달 아르딩
포트 전달을 활성화한 경우 이제 아래 그림과 같이 호스트 컴퓨터에서 가상 컴퓨터로 SSH를 통해 연결할 수 있습니다.
FIG1:ssh -p 2020 denis@localhost
참고:Windows를 사용하는 경우 Putty가 필요합니다. 가상 머신에 SSH로 접속하기 위해.
- NodeMCU를 연결하고 다음 명령을 실행합니다:
tail -f /var/log/kern.log
그러면 장치가 /dev/ttyUSB0으로 식별되었음을 알 수 있습니다. 아무 일도 일어나지 않으면 USB를 가상 머신에 추가해야 합니다. USB를 추가한 후 장치를 분리했다가 다시 연결하세요.
USB 추가:설정 -> 포트 -> USB
이 지점에 도달했고 모든 것이 제대로 작동한다면 축하합니다 ! 이제 SDK를 컴파일하고 SmartConfig 예제를 실행할 준비가 되었습니다. https://twitter.com/metonymyqt에서 저에게 트윗을 보내실 수도 있습니다.
SDK 컴파일 및 보드 플래싱
- 필요한 패키지를 설치합니다(아래 참조). 이 정보는 SDK의 readme.md에서도 확인할 수 있습니다.
sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin
-
새 폴더를 만들고 해당 폴더로 이동합니다:
mkdir Development && cd Development -
Open SDK 복제:https://github.com/pfalcon/esp-open-sdk
git clone --recursive https://github.com/pfalcon/esp-open-sdk.git
- make 실행:
make
경고:이 단계를 완료하는 데 시간이 좀 걸리므로 기다려 주시기 바랍니다. 내 가상 머신에서는 50분 후에 완료되었습니다. 귀하의 경우 다소 시간이 걸릴 수 있지만 달리기 전에 인터넷에 연결되어 있는지 확인하세요. DNS가 올바르게 구성되었습니다 . 이를 확인하는 가장 좋은 방법은 Google이 해당 지역에서 차단된 경우 Google이나 다른 사이트에 핑을 실행하는 것입니다.
성공적인 ping 명령:$ ping Medium.com
핑에 성공하면 창을 최소화하고 좋아하는 TV 프로그램의 에피소드를 시청할 수 있습니다. 약 40분 후에 다시 돌아오십시오(단, 컴퓨터가 절전 모드로 전환되지 않도록 주의하세요).
SDK가 성공적으로 빌드되면 경로에 무언가를 입력하라는 메시지가 표시됩니다. 그렇게 하려면 다음을 실행하십시오:
echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profile
이 명령은 ~/.profile에 문자열을 추가합니다. 파일. 이제 다음 명령을 실행해 보세요:
xtensa-lx106-elf-gcc --version
명령이 성공적으로 실행되면 이제 진행해도 됩니다!
- 보드 테스트
NodeMCU를 연결하고 lsusb를 실행하세요. 장치가 연결되어 있는지 확인하세요. 그런 다음 esptool.py Chip_id를 실행하세요. . 이제 보드의 칩 ID가 표시됩니다.
_esptool.py 칩id
- ESP8266_RTOS_SDK 복제
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
- 아래 명령을 사용하여 SDK 경로와 SDK/BIN 경로를 내보냅니다.
echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile
- SmartConfig 예시 컴파일
cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
chmod +x ./gen_misc.sh
./gen_misc.sh
이제 SPI_SIZE_MAP을 묻는 메시지가 나타날 때까지 기본값을 수락합니다. 여기에서 4를 선택하세요. NodeMCU의 플래시 크기는 32Mbit이고 이는 4MB로 변환되기 때문입니다. _SPISPEED 3=80Mhz를 선택할 수도 있습니다.
다음과 같은 내용이 표시됩니다:
!!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDKBIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/bin
No boot needed.Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATHeagle.flash.bin — — — →0x00000eagle.irom0text.bin — →0x20000!!!
- 보드 플래시
cd $BIN_PATH
esptool.py erase_flash
esptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.bin
이제 보드를 재설정하면 LED가 깜박이지 않는 것을 볼 수 있습니다.
-
전화 애플리케이션 사용
-
안드로이드 애플리케이션
- 아이폰 애플리케이션
내 Android 기기의 스크린샷
애플리케이션을 열고 WiFi AP에 연결되어 있는지 확인한 후 비밀번호를 입력하고 확인을 누르세요. 몇 초 후에 ESP8266이 AP에 연결됩니다. 그게 다야. 완결을 축하드립니다!
ESP8266-RTOS-SDK를 사용하여 더 많은 개발을 원하시면 공식 웹사이트를 방문해 주세요. 거기에서 많은 리소스와 문서를 찾을 수 있습니다. 또한 SDK 폴더에 있는 다른 예제도 살펴보시기 바랍니다.
시간 내서 읽어주셔서 정말 감사합니다. 저에게 연락하고 싶으시다면 트위터(MetonymyQT)를 통해 연락하실 수 있습니다.
리소스
- ESP8266 개요
- ESP8266 리소스
- FreeRTOS 웹사이트
무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요