Contents menu
※この記事は2020年4月7日に更新されました。
本日もC言語の学習を一緒に進めていきましょう。
C言語の学習は目的を持って、デバイスとともに進めていくことをお勧めします。
【参考書籍】M5Stackに関しては下島先生のこちらの書籍を参考にさせて頂ています。
リンク
WiFi接続

WiFiはssidとpasswordを最初に定義し、WiFi.begin関数で呼び出します。
以下にサンプルコードを掲載しておきます。
#include <M5Stack.h>
#include <WiFi.h>
const char* ssid = "あなたのssid";
const char* password = "あなたのpassword";
void setup() {
M5.begin();
M5.Lcd.setTextSize(2);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED){
delay(500);
M5.Lcd.print('.');
}
M5.Lcd.print("\r\nWiFi connected\r\nIP address: ");
M5.Lcd.println(WiFi.localIP());
}
void loop() {
}
これで簡単に繋がります。
M5Stack は2.4Ghzですので注意です。
WiFiに接続できたら次にネットワークからしっかりと情報を取得していきましょう。
NTPプロトコルを使って時刻をWiFiで取得する

NTPプロトコルを使って現在時刻を取得するライブラリがArduinoに用意されています。
Arduinoのインストールなどについてはこちら
NTP=Network Time ProtocolサーバーとM5Stackを同期します。
サンプルコード
#include <M5Stack.h>
#include <WiFi.h>
#define JST (3600L * 9)
const char* ssid = "あなたのWiFi";
const char* password = "あなたのpassword";
void setup() {
M5.begin();
M5.Lcd.setTextSize(2);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED){
delay(500);
M5.Lcd.print('.');
}
M5.Lcd.print("\r\nWiFi connected\r\nIP address: ");
M5.Lcd.println(WiFi.localIP());
delay(500);
M5.Lcd.setTextSize(3);
configTime(JST,0,"ntp.nict.jp", "time.google.com",
"ntp.jst.mfeed.ad.jp");
}
void loop() {
struct tm tm;
if(getLocalTime(&tm)){
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setCursor(60,80);
M5.Lcd.printf("%d/%2d/%2d",
tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
M5.Lcd.setCursor(80,140);
M5.Lcd.printf("%02d:%02d:%02d", tm.tm_hour, tm.tm_min, tm.tm_sec);
}
delay(1000);
}
#define JST (3600L * 9)
にて、協定世界時間との時差を入力します。
configTimeにてNTPサーバーとの接続を定義。

これでバッチリ表示できました。
printfに関しては自由にカスタマイズしてみてください。