소개
이 게시물의 목적은 MicroPython의 파일 시스템에서 스크립트를 실행하는 방법을 설명하는 것입니다. 이것은 ESP32와 ESP8266 모두에서 테스트되었습니다. 여기에 표시된 인쇄물은 ESP32로 수행된 테스트에서 가져온 것입니다.
이것은 ESP에서 실행되는 MicroPython의 컴퓨터에서 스크립트를 실행한 이전 자습서 와 다릅니다 . 이 경우 스크립트는 MicroPython의 파일 시스템에 있습니다.
당연히 이것은 프롬프트에서 명령을 반복할 필요 없이 Python 코드를 실행할 수 있는 데 매우 유용할 것입니다.
이 자습서에서는 사용된 장치(ESP32 및/또는 ESP8266)에 대한 MicroPython 지원의 이전 설치와 호스트 컴퓨터에 Python 및 ampy 의 이전 설치를 가정 합니다. 여기에 표시된 모든 절차는 Windows 8에서 테스트되었습니다.
절차
우선 ESP 장치에 업로드할 MicroPython 스크립트를 생성합니다. 매우 기본적이며 일부 내용을 입력 매개변수로 받아 인쇄하는 echo 함수만 만들 것입니다.
또한 파일에 정의된 함수와 Python의 다른 함수 호출이 모두 잘 작동함을 보여주기 위해 간단한 메시지를 인쇄할 것입니다. 아래의 파일 스크립트를 확인하십시오.
1 2 삼 4 5 |
def echo(content): print (content) print("Running a script from the file system!") echo("Invoking a function") |
파일을 선택한 디렉토리에 .py 확장자로 저장합니다. 원하는 대로 이름을 지정할 수 있지만 이 예에서는 script.py 라고 합니다 .
이제 ampy를 사용하여 ESP8266 /ESP32에 파일을 업로드합니다 . 그렇게 하려면 명령줄을 열고 파일이 있는 폴더로 이동한 다음 아래 표시된 명령을 누르기만 하면 됩니다. ampy로 파일을 업로드하는 방법에 대한 자세한 자습서가 필요하면 이 게시물을 확인하세요 .
1 | ampy --port COM5 put script.py |
장치가 있는 직렬 포트로 COM5 를 대체해야 합니다 . 또한 파일에 다른 이름을 사용한 경우 잊지 말고 변경하십시오. 그림 1에서 예상 결과를 확인하십시오.
그림 1 - ampy를 사용하여 스크립트 파일 업로드
이제 몇 가지 명령을 보내기 위해 MicroPython 프롬프트에 연결해야 합니다. 저는 Putty 를 사용하지만 원하는 다른 소프트웨어를 사용할 수 있습니다. 연결이 설정되면 파일이 파일 시스템에 있는지 확인합니다.
1 2 |
import os os.listdir() |
아래 그림 2에서 볼 수 있듯이 script.py 는 이제 예상대로 파일 시스템에 있습니다.
그림 2 - 파일 시스템의 현재 디렉토리에 있는 파일 나열.
마지막으로 스크립트를 실행하려면 일반 Python 모듈처럼 작동하므로 가져오기만 하면 됩니다. 가져오기 시 모든 실행 가능한 문이 실행되고 정의된 기능을 사용할 수 있습니다.
1 2 |
import script script.echo("Running the imported function") |
그림 3에서 볼 수 있듯이 모듈을 가져올 때 이전에 정의한 실행 가능한 명령문에서 출력을 얻습니다. 또한 가져오기를 반복하면 해당 명령문이 다시 실행되지 않습니다. 그런 다음 filename.functionName 을 호출하여 파일에 정의된 함수에 액세스할 수 있습니다 .
그림 3 - 스크립트 파일 가져오기.
관련된 컨텐츠
관련 게시물
'ESP32' 카테고리의 다른 글
ESP32 Arduino: Getting started with WiFi (0) | 2021.08.16 |
---|---|
ESP32: HTTP GET Requests (0) | 2021.08.16 |
ESP32 / ESP8266 MicroPython: Automatic connection to WiFi (0) | 2021.08.16 |
ESP32: MicroPython support (0) | 2021.08.16 |
ESP32 MicroPython: Connecting to a WiFi Network (0) | 2021.08.16 |