参考にしたのは、こちらの記事です:
🔗 M5Stack Core2 / S3 の GPIO を使ってメールを送ってみた(smartlight.co.jp)
ただ、この記事ではArduino IDEで書かれていますが、今回はVSCode + PlatformIOでやってみました。
やりたいこと
- M5Stack Core2を使って、ボタンAを押すとランダムな数値を生成
- その値をメールに載せて送信
- Gmailのアプリパスワードを使って送信認証
- Wi-Fi経由でインターネットに接続して動作
使ったもの
- M5Stack Core2(無印のCore ESP32でもOK)
- VSCode + PlatformIO
- Gmail(アプリパスワード使用)
- EMailSenderライブラリ
- M5Stackライブラリ
VSCode + PlatformIOの準備
まずは開発環境の準備から。PlatformIOはVSCodeでArduino系の開発を行うための拡張機能です。
- VSCodeに「PlatformIO IDE」拡張をインストール
- 新規プロジェクトを作成(Boardは
m5stack-core-esp32
を選択) platformio.ini
は以下のようにしました:
<code>[env:m5stack-core-esp32]
platform = espressif32
board = m5stack-core-esp32
framework = arduino
upload_speed = 115200
monitor_speed = 115200</code>
Code language: HTML, XML (xml)
必要なライブラリの導入
今回は2つのライブラリを使いました:
M5Stack(公式ライブラリ)
🔗 https://github.com/m5stack/M5Stack
EMailSender(SMTPでメール送信できる便利ライブラリ)
🔗 https://github.com/xreef/EMailSender
lib/ フォルダの中にそれぞれのフォルダを置き、中に src/ フォルダを作ってその中に .h .cpp をを入れる構成にしました。入れる構成にしました。
を入れる構成にしました。
lib/
├── M5Stack/
│ └── src/
│ └── M5Stack.h など
├── EMailSender/
│ └── src/
│ └── EMailSender.h / .cpp など
Gmailのアプリパスワードの設定
普通のGmailパスワードでは弾かれてしまうため、「アプリパスワード」という16桁の専用パスワードを発行する必要があります。
- Googleアカウントにログイン
- 「セキュリティ」→「2段階認証プロセス」を有効化
- 「アプリパスワード」メニューからトークンを発行(例:Mail/ESP32など)
→ これをメール送信の際の「パスワード」として使います。
実際に書いたコード
以下が、今回PlatformIOで動作させたコードです。
<code>#include <M5Stack.h>
#include <WiFi.h>
#include <EMailSender.h>
char ssid[] = "あなたのSSID";
char password[] = "あなたのWi-Fiパスワード";
char myMailAdr[] = "送信元Gmailアドレス";
char myMailPass[] = "アプリパスワード";
char toMailAdr[] = "受信先メールアドレス";
EMailSender emailSend(myMailAdr, myMailPass);
boolean send_mail(String msg) {
EMailSender::EMailMessage message;
message.subject = "M5Stackからの通知";
message.message = msg;
EMailSender::Response resp = emailSend.send(toMailAdr, message);
return resp.status;
}
void setup() {
M5.begin();
M5.Power.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
void loop() {
M5.update();
if (M5.BtnA.wasPressed()) {
int val = random(100, 1000);
String msg = "ランダムな値は " + String(val) + " です。";
send_mail(msg);
}
}
</code>
Code language: PHP (php)
実行してみた結果


まとめ
今回は、M5Stack Core2とVSCode + PlatformIOを使ってボタンを押すとメールが届くシステムを作ってみました。
Gmailの設定とライブラリの配置さえできれば思った以上にスムーズでした。
PlatformIOはコード補完やプロジェクト構成が明確で、今後も使っていきたいなと思える開発環境でした。