Newer
Older
M5StickCPlus_FactoryTest2022 / SampleSrc / httpclient01.ino
#include <M5StickCPlus.h>
#include <WiFi.h>
#include <HTTPClient.h> // ステータスコードの定義もここにある

const char* ssid = "ics-ap";
const char* password = "jikkenics";


void setup() {
  M5.begin(115200);
  pinMode(10, OUTPUT);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) { // 接続中...
    delay(150);
    Serial.print(".");
  }
  Serial.println("Connected.");
  delay(2000);
  get_weather(); // シリアルモニタに天気予報を書き出す
}

int led=0;
void loop() {
  M5.update(); // 各ボタンの状態を(読み取って)更新する:ボタンを判定するときは必須。
  
  if (M5.BtnA.wasReleased()) {
    get_weather(); // シリアルモニタに天気予報を書き出す
  }
  delay(150);
  
  led++;
  if (led%2==1){
    digitalWrite(10,  LOW ); // LED ON (LOW=0)
  } else {
    digitalWrite(10,  HIGH ); // LED OFF (HIGH=1)
  }
}

void get_weather(){
  // 天気予報API https://weather.tsukumijima.net/ から、千葉の天気を取得
  const char* weatherapi_url = "http://weather.tsukumijima.net/api/forecast/city/120010";
  
  HTTPClient http;            // クライアント作成
  http.begin(weatherapi_url); // HTTPでサーバに接続
  int httpCode = http.GET();  // ステータスコードを取得
  if (httpCode > 0) {
    Serial.println(httpCode);
    if (httpCode == HTTP_CODE_OK) { // ステータスコードが「成功」(200) なら
      String payload = http.getString();
      Serial.println(payload);
    }
  }
  http.end();
  Serial.println("[A]ボタンを押すと、再度取得します。");
}