ESP32에 PlatformIO IDE를 사용하여 쓰는 이야기

7628 단어 C++PlatformIOESP32

소개



평소 마이크로 컴퓨터를 쓰려면 Arduino IDE
앱은 개인적으로 사용하기가 어렵습니다.
Web Editor는 클라우드 타입이므로 편리하고 사용하기 쉽지만 로그인 처리 등이 번거롭습니다.
같은 것을 느꼈기 때문에 이번에 KeeYees ESP32 ESP-32S 개발 보드

환경



OS는 windows
VSCode 및 PlatformIO는 설치됨

샘플 프로그램



SimpleTime.cpp
#include <WiFi.h>
#include "time.h"

const char* ssid       = "your_ssid";
const char* password   = "your_pass";

const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 3600;
const int   daylightOffset_sec = 3600;

void printLocalTime()
{
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)){
    Serial.println("Failed to obtain time");
    return;
  }
  Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}

void setup()
{
  Serial.begin(115200);

  //connect to WiFi
  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
  }
  Serial.println(" CONNECTED");

  //init and get the time
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  printLocalTime();

  //disconnect WiFi as it's no longer needed
  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
}

void loop()
{
  delay(1000);
  printLocalTime();
}

샘플 프로그램은 wifi에 연결하여 시간을 표시하는 프로그램을 선택

절차



PlatformIO는 VS 코드에서 쉽게 설치할 수 있습니다.


+New Project 일 때 보드 선택이 너무 많습니다 ... 어느 것입니까?
우선 esp32dev를 선택
platfom은 02:espressif8266과 32:espressif32로 나누어져 있으므로 주의가 필요할지도 지금은 대체로 WROOM-32가 판매하고 있다고 생각하므로 espressif8266은 사용하지 않을까?


프로그램의 이름은 적당하게 입력

이전 샘플 프로그램을 src의 main.cpp에 입력


platformio.ini 내에 모니터 속도 및 업로드 속도 설정

platformio.ini
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600

모니터 속도를 입력하지 않으면 디스플레이가 깨집니다.
업로드 속도는 자신의 환경이라고 할 수 없으면 쓰기가 타임 아웃으로 실패하는 경우가 많았다

VSCode의 왼쪽 하단 바에서
✓: 빌드
→:upload를 한다


안전하게 성공하면 serialmonitor에서 결과를 볼 수 있습니다.


요약



몇 번 PlatformIO는 만진 적이 있었지만 역시 순정보다 사용하기 쉽고 멋지다 (웃음)
다음은이 개발 환경과 ESP32에서 온도 감지를 시도하려고했습니다.

좋은 웹페이지 즐겨찾기