M5Stack を WiFiに接続する

最終更新日

Profile

この記事を担当:こうたろう

1986年生まれ
音大卒業後日本、スウェーデン、ドイツにて音楽活動
ドイツで「ピアノとコントラバスのためのソナタ」をリリースし、ステファン・デザイアーからマルチマイクREC技術を学び帰国
金田式DC録音のスタジオにて音響学を学ぶ
独立後芸術工房Pinocoaを結成しアルゼンチンタンゴ音楽を専門にプロデュース
その後写真・映像スタジオで音響担当を経験し、写真を学ぶ
現在はヒーリングサウンド専門の音楽ブランド[Curanz Sounds]を立ち上げ、ピアニスト, 音響エンジニア, マルチメディアクリエーターとして活動中
当サイトでは音響エンジニアとしての経験、写真スタジオで学んだ経験を活かし、制作機材の解説や紹介をしています。
♪この記事には広告リンクを含みます♪

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のインストールなどについてはこちら

在宅介護にも使える! / M5Stackで温湿度計を作る5つの手順

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に関しては自由にカスタマイズしてみてください。