- MicroPython은 무엇입니까?
- NodeMCU 용 MicroPython이 필요한 이유
- ESP8266 (NodeMCU)이란 무엇입니까?
- 사용 된 하드웨어
- ESP8266 용 MicroPython 펌웨어 설치
- PuTTY를 사용하여 NodeMCU와 통신
- Ampy를 사용하여 Python 기반 LED 깜박임 코드 업로드
- ESP8266의 MicroPython : DHT22로 온도 및 습도 얻기
ESP8266과 같은 Wi-Fi 지원 마이크로 컨트롤러를 프로그래밍하는 데 관심이있는 초보자에게는 ESP-IDF 프로그래밍 환경 또는 Arduino IDE를 이해하는 것이 어려울 수 있습니다. C 및 C ++ 언어의 암호화 된 구문에는 컴퓨터 과학에 대한 더 많은 지식이 필요합니다. 이러한 언어가 항상 초보자에게 친숙하지 않은 이유 이므로이 기사 에서는 MicroPython을 사용하여 ESP8266 을 설정하고 프로그래밍하는 방법을 배우고 마지막으로 선호하는 DHT22 온도 및 습도 센서에서 온도 및 습도 데이터를 가져옵니다. 이전에는 Micro Python으로 ESP32를 프로그래밍하는 방법에 대한 자습서도 만들었습니다. 관심이있는 경우 확인할 수도 있습니다.
MicroPython은 무엇입니까?
MicroPython은 마이크로 컨트롤러 및 임베디드 시스템과 함께 작동하도록 설계된 Python의 잘린 버전이라고 말할 수 있습니다. MicroPython의 구문 및 코딩 프로세스는 Python과 유사합니다. 따라서 이미 파이썬을 알고 있다면 MicroPython을 사용하여 코드를 작성하는 방법을 이미 알고 있습니다. Python 팬이라면이 기사를 확인할 수 있습니다.
MicroPython은 Damion jones가 이끄는 팀에 의해 영국에서 개발되었으며, 돌아 오는 동안 Kickstarter를 시작했습니다. 그곳에서 펌웨어를 실행하는 특정 개발 보드 세트를 시작하여 MicroPython을 실행할 수 있습니다. 이제 펌웨어가 ESP8266에서 실행되도록 포팅되었으며,이 기사에서 배우게 될 것입니다.
NodeMCU 용 MicroPython이 필요한 이유
Python은 현재까지 가장 널리 사용되는 프로그래밍 언어 중 하나입니다. 따라서 MicroPython의 도입으로 하드웨어 기반 마이크로 컨트롤러 프로그래밍이 매우 쉬워졌습니다. 이전에 마이크로 컨트롤러를 프로그래밍 한 적이없고 프로그래밍 학습을 시작하고 싶다면 MicroPython이 좋은 시작입니다.
MicroPython은 제거 된 버전의 Python 표준 라이브러리를 사용하므로 모든 표준 라이브러리를 사용할 수 없습니다. 그러나 MicroPython에는 하드웨어와 인터페이스하기위한 간단하고 사용하기 쉬운 모듈이 포함되어 있습니다. 즉, MicroPython의 도움으로 GPIO 레지스터에 대한 읽기 및 쓰기가 훨씬 쉬워졌습니다.
MicroPython의 궁극적 인 목표는 프로그래밍 마이크로 컨트롤러를 최대한 간단하게 만드는 것이므로 누구나 사용할 수 있습니다. MicroPython이 라이브러리를 가져오고 코드를 작성하는 것이 쉬워졌습니다. 아래에 표시된 코드는 NodeMCU 보드의 온보드 LED를 깜박이는 간단한 예제입니다.이 기사 이후에 코드에 대해 자세히 논의 할 것입니다.
from machine import Pin from time import sleep LED = Pin (2, Pin.OUT) while True: LED.value (not LED.value ()) sleep (0.5)
ESP8266 (NodeMCU)이란 무엇입니까?
ESP8266은 사물 인터넷 (IoT) 관련 애플리케이션을 위해 설계된 저렴한 Wi-Fi 모듈입니다.
범용 입력 및 출력 핀 (GPIO)과 함께 제공되며 SPI, I2C, UART 등과 같이 일반적으로 사용되는 다양한 프로토콜도 지원합니다. 그러나이 마이크로 컨트롤러의 가장 멋진 기능은 내장 Wi-Fi가 있다는 것입니다. 그것으로 우리는 2.4GHz Wi-Fi에 매우 쉽게 연결할 수 있습니다.
이제 기본 사항은 필수 하드웨어와 ESP8266 IC에 MicroPython을 설치하는 프로세스를 보여주는 실용적인 부분으로 이동할 수 있습니다.
사용 된 하드웨어
사용 된 재료 목록
- 1 x 브레드 보드
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (온도 및 습도 센서)
- 1 x 3mm LED (발광 다이오드)
- 1 x 1K 저항기
- 5 x 점퍼 와이어
ESP8266 용 MicroPython 펌웨어 설치
이 기사에서는 ESP8266에 MicroPython 펌웨어를 설치하는 두 가지 방법이 있습니다. 두 가지 모두에 대해 이야기하지만 먼저 다운로드해야합니다.
ESP8266 용 MicroPython 펌웨어 다운로드:
NodeMCU (ESP8266) 보드를 PC에 연결하기 전에 최신 버전의 MicroPython을 다운로드해야합니다. 그런 다음 NodeMCU에 펌웨어를 설치할 수 있습니다. 공식 Micropython 다운로드 페이지 에서 다운로드 할 수 있습니다 .
ESP8266에 MicroPython 펌웨어 설치:
펌웨어를 ESP8266에 설치하기 전에 USB- 직렬 변환기에 적합한 드라이브가 있는지 확인해야합니다. 대부분의 NodeMCU 보드는 CP2102 USB-UART 변환기 IC를 사용하기 때문에 다음을 다운로드하여 설치해야합니다. CP2102 USB to UART 변환기 용 드라이버, 드라이브가 다운로드되고 설치되면 ESP8266에서 펌웨어를 읽고 쓰기 위해 만들어진 파이썬 기반 도구 인 esptool을 다운로드해야합니다.
Python을 얻는 가장 쉬운 방법은 Microsoft Store를 통해 Python을 다운로드하여 설치하는 것입니다. Python이 설치되면 pip3 install esptool 명령을 사용하여 esptool을 설치할 수 있습니다. 프로세스는 아래 이미지와 유사합니다.
일단 설치되면 명령 터미널에서 esptool에 액세스하는지 확인하십시오.
이렇게하려면 아래 이미지와 같은 창이 나타나면 esptool.py 버전 명령을 실행하기 만하면 Windows PC에 esptool을 성공적으로 설치 한 것입니다.
명령 창에서 esptool에 액세스하는 데 문제가있는 경우 Windows 환경 변수에 전체 설치 경로를 추가해보십시오.
NodeMCU 보드에 할당 된 PORT 찾기:
이제 NodeMCU 보드에 할당 된 포트를 찾아야합니다. 그렇게하려면 장치 관리자 창으로 이동하여 NodeMCU 보드와 관련된 포트를 찾을 수있는 확장하면 포트라는 옵션을 찾습니다. 우리에게는 아래 이미지와 같습니다.
ESP8266의 플래시 메모리 지우기:
이제 관련 COM 포트를 알아 냈으므로 플래시 메모리를 지워 NodeMCU 모듈을 준비 할 수 있습니다. 이를 위해 esptool.py --port COM6 erase_flash 명령을 사용 합니다. 프로세스는 아래 이미지와 유사합니다.
펌웨어 설치:
다음 명령을 실행하면 MicroPython 바이너리가 NodeMCU 보드에 설치되고,이 바이너리가 설치되면 Python 프로그램을 업로드하고 Read Evaluate 및 Print 루프 와 통신 할 수 있습니다.
esptool.py --port COM6 --baud 460800 write_flash --flash_size = detect 0 esp8266-20200911-v1.13.bin
프로세스는 아래 이미지와 유사합니다.
설치 당시 바이너리가 데스크탑에 있었으므로 데스크탑에 CD를 가지고 명령을 실행합니다.
이제 보드와 통신하고 일부 LED를 깜박일 시간입니다.
PuTTY를 사용하여 NodeMCU와 통신
이제 PuTTY, PuTTY를 사용하여 첫 번째 Hello World 프로그램을 시작하겠습니다. 연결 유형을 Serial로 설정하고 다음으로 Serial 라인 (여기서는 COM6)을 설정하고 마지막으로 Speed를 115200 baud로 설정합니다..
모든 것이 올바르게 완료되면 아래 이미지와 유사한 창이 나타나고 코드를 쉽게 작성할 수 있으며 일반적으로 iPython 터미널처럼 작동합니다. 또한 간단한 두 줄로 된 첫 번째 hello world 프로그램을 실행했으며 print 문을 입력하면 응답을 받았습니다.
Ampy를 사용하여 Python 기반 LED 깜박임 코드 업로드
PuTTY 터미널의 도움으로 MicroPython에 액세스하는 것은 ESP 모듈과 통신하는 좋은 방법이지만 코드를 업로드하는 또 다른 쉬운 방법은 Adafruit Ampy 도구를 사용하는 것입니다. ampy를 설치하려면 간단한 pip3 install adafruit- ampy 명령을 입력하면 PC에 ampy가 설치됩니다. 프로세스는 아래 이미지와 유사합니다.
이제이 정보가 있으면 연결된 직렬 포트에 대한 정보가 여전히 필요합니다. 우리의 경우 COM6입니다. 이제 MicroPython을 사용하여 LED Blink 코드를 작성하기 만하면 됩니다.이를 위해 공식 마이크로 Python 웹 사이트에서 제공 하는 가이드를 사용했습니다.
가이드의 도움으로 다음 코드가 작성됩니다.
from machine import Pin from time import sleep LED = Pin (2, Pin.OUT) while True: LED.value (not LED.value ()) sleep (0.5)
코드는 매우 간단합니다. 먼저 컴퓨터에서 Pin 라이브러리를 가져옵니다. 핀 클래스. 다음으로 지연 함수를 만드는 데 사용되는 시간 라이브러리를 가져와야합니다. 다음으로 Pin2 (ESP12E 모듈에 부착 된 온보드 LED)를 출력으로 설정합니다. 다음으로 500ms 지연으로 LED를 켜고 끄는 while 루프를 설정합니다.
이것이 NodeMCU에 코드를 업로드하는 방법입니다. 이렇게하려면 다음 ampy 명령 을 실행해야합니다.
ampy --port COM6 put main.py
프로그램이 수정되면 아래와 같이 LED가 깜빡입니다.
참고: 코드를 업로드하는 동안 현재 프롬프트 위치를 내 데스크톱으로 설정했기 때문에 main.py 파일 의 전체 경로를 지정할 필요가 없습니다. 그렇지 않은 경우 메인의 전체 경로를 지정해야합니다..py 파일.
다음으로 DHT22 센서에서 온도 및 습도 데이터를 가져옵니다.
ESP8266의 MicroPython: DHT22로 온도 및 습도 얻기
DHT22를 NodeMCU와 인터페이스하기위한 회로도:
이 프로젝트의 전체 회로도는 아래에서 찾을 수 있습니다. 이 회로를 만들기 위해 fritzing을 사용했습니다.
보시다시피 회로는 매우 간단하며 점퍼 와이어를 사용하여 브레드 보드에 쉽게 구축 할 수 있습니다. 전체 회로는 NodeMCU의 마이크로 USB 포트를 사용하여 전원을 공급받을 수 있습니다. 내 하드웨어 설정은 다음과 같습니다.
암호:
이전에 설치 한 MicroPython 펌웨어에는 내장 DHT 라이브러리가 함께 제공되므로 MicroPython을 사용하여 DHT22 또는 DHT11 센서에서 온도 및 습도 데이터를 가져 오는 것은 매우 쉽습니다.
1. 머신 클래스에서 DHT 라이브러리와 핀 라이브러리를 가져 와서 코드를 시작합니다.
기계 수입 핀에서 dht 가져 오기
2. 다음으로 센서를 부착 한 핀을 참조하는 DHT 개체를 만듭니다.
센서 = dht.DHT22 (핀 (14))
3. 마지막으로 센서 값을 측정하려면 다음 세 가지 명령을 사용해야합니다.
sensor.measure () sensor. temperature () sensor.humidity ()
최종 코드를 위해 while 루프에 넣고 코드 끝을 표시하는 값을 인쇄합니다. 또한 DHT22 센서는 데이터를 읽기 전에 2 초가 필요하므로 2 초 지연을 추가해야합니다.
from machine import Pin from time import sleep import dht dht22 = dht.DHT22 (Pin (14)) while True: try: sleep (2) dht22.measure () temp = dht22. temperature () hum = dht22.humidity () print ('Temperature: % 3.2f C'% temp) print ('Humidity: % 3.2f %%'% hum) except OSError as e: print ('Failed to read data from the DHT22 sensor.')
코딩이 끝나면 ampy 명령을 사용하여 코드를 업로드 할 수 있습니다.
ampy --port COM6 put main.py
코드를 성공적으로 실행 한 후 모든 직렬 모니터에서 온도 및 습도 값을 모니터링 할 수 있습니다. 저는 퍼티를 사용했고 아래에서 볼 수 있듯이 COM5에서 온도 및 습도 값을 수신 할 수있었습니다.
기사를 즐겁게 읽고 유용한 것을 배웠기를 바랍니다. 질문이있는 경우 아래 댓글 섹션에 남겨 두거나 포럼 을 사용 하여 다른 기술 질문을 게시 할 수 있습니다.