uPyCraft를 이용한 ESP32 ping 명령 방법

3798 단어 ESP32

소개



안녕하세요. 이 기사는 ESP32에서 ping 명령을 실행하고 싶지만 방법을 모르는 사람을위한 기사입니다. 이 기사를 쓰는 계기는 인터넷에서 「ESP32 ping 방법」이라고 검색해도 그 대부분이 C언어로 쓰여져 있는지, 환경이 Arduino IDE이거나라고 자신이 원하는 기사가 나오지 않았던 것이 이유입니다 . 고생한 끝에 도착한 기사가 매우 도움이 되었기 때문에 자신과 같은 사람이 있으면 도움이 된다고 생각하므로 사수해 주세요.

이 기사에 맞는 사람


  • ESP32를 사용하여 ping 명령을 사용하고 싶습니다.
  • 통합 개발 환경 (IDE)에 uPyCraft를 사용하고 있습니다

  • 이번에 사용한 것 (사용 환경)


  • windows10
  • uPyCraft1.1
  • ESP32

  • 구현 전



    MicroPython을 사용합니다. IDE는 uPyCraft를 사용합니다. 어떻게 준비하는지는 이 기사에서 자세히 쓰여져 있습니다( ESP32에 micropython을 넣는 방법 ). 또, wifi에 연결할 필요도 있기 때문에 이쪽의 기사에 방법이 실려 있습니다( ESP32를 Wifi에 연결하는 방법 ). 이 두 가지를 할 수있어 처음으로 핑에 걸릴 준비가되었습니다.
    Python에서 ping 명령을 사용한다면 라이브러리에서 "import pings"나 "import subprocess"를 호출하여 ping 명령을 사용한다고 생각하지만 MicroPython에서는 이것이 라이브러리로 들어 있지 않습니다. MicroPython에서 사용할 수 있는 라이브러리 목록은 다음과 같습니다.

    보시다시피 파이썬보다 라이브러리 수가 적네요. 그리고 ping 명령을 사용하고 싶지만 라이브러리가 없다는 문제에 직면합니다. 없는 경우 어떻게 해야 할지, 제일 좋은 것은 스스로 만드는 것입니다만 나에게는 그 실력은 없기 때문에 실력이 있는 사람의 힘을 빌립니다. 이 기사 ( uPing - Ping library for MicroPython )에서 MicroPython으로 자작 ping 모듈을 만들고 ping 명령을 재현하고 있습니다. 이번은 그 기사를 참고로 ping이 제대로 다니고 있는지 어떤지를 확인하는 프로그램을 만들고 싶습니다.

    핑 라이브러리 만들기



    자작 ping을 만든 Shawwwn 씨의 git을 빌려 ping 라이브러리를 사용할 수 있도록 합니다. 덧붙여서 45행째의 「h.id = urandom.randomint(0, 65355)」를 「h.id = urandom.getrandbits(16)」로 바꾸면 올바르게 움직인다고 합니다.

    이 프로그램을 uPyCraft로 실행하면 다음과 같은 결과를 얻을 수 있다고 생각합니다.이 결과가 나오면 성공입니다. MicroPython에서 ping 라이브러리가 의사 적으로 사용되지만 사용할 수 있습니다.

    시험에 Google이 무료로 제공하고 있는 「Google Public DNS」의 IP주소 8.8.8.8을 향해 해 봅니다.

    성공입니다.

    간단한 연결 판정 프로그램



    사용할 수있게 된 ping 라이브러리에서 ping 연결 판정을하고 싶습니다.
    import uping
    target = "8.8.8.8"
    aaa = uping.ping(target, count=1)
    
    if aaa == (1, 1):
      print('成功')
    else:
      print('失敗')
    


    성공적으로 결정할 수있었습니다.

    참고문헌


  • ESP32에 micropython을 넣는 방법 (uPyCraft 사용)
  • ESP32를 Wifi에 연결하는 방법
  • uPing - Ping library for MicroPython
  • github
  • 좋은 웹페이지 즐겨찾기