M5Stack社のM5ATOMシリーズ(Matrix/Lite)のプログラムをVSCode上のPlatformIO環境で書くための雛形です。
platformio.inoの[env]セクションにあるbuild_flagsでENABLE_SERIAL_MONITORを定義すると,common.hにあるシリアル周りのマクロ定義が有効になり,シリアル表示のコードを挿入します。また,MACアドレスを表示するためのマクロ定義も追加されます。このマクロ定義を使ってデバッグ用の表示コードを書いておくと,不要なときは表示コードを挿入しないようにすることができます。
VSCodeのステータスバー(画面下)にある「Switch ProjectIO Project Environment」を押すと,環境の切り替えメニューが画面上に表示され,platformio.inoのdefault_envsを書き換えずに環境を切り替えることができます。
用意している環境は以下の3つです。
m5atom
M5ATOMの最小限の雛形m5atom-wifi
M5ATOMをWiFiに接続する雛形m5atom-ble-keyboard
M5ATOMをBLEキーボードにする雛形
M5ATOMのボタンを押すとSEND_KEYに指定したキーを押したのと同じm5atom-espnow
ESPNOWでデータを送受信する雛形m5atom-mqtt
M5ATOMをMQTTクライアントにする雛形。m5atom-wifiも必要
m5atom-wifiでビルドする場合,data/settings.jsonに以下のようにWiFiの設定を書いてSPIFFSに転送することで,M5ATOMのNVS(不揮発記憶装置)にWiFiのSSIDとパスワードを記録し,再起動時にNVSから設定を読み込んでWiFiに接続できるようになります。
{
"ssid": "SSID",
"password": "Password"
}settings.jsonをM5ATOMのSPIFFSに転送するには,VSCodeのPlatformIOのプロジェクトタスクから「m5atom/Platform/Upload Filesystem」を選びます。
コマンドラインから実行することもできます。以下のコマンドを実行します。
$ pio run --target uploadfs
M5ATOMのSPIFFSにファイルが転送されると,M5ATOMが再起動します。
M5ATOMはSPIFFSの/settings.jsonを見つけると,JSONに書かれているSSIDとパスワードをNVSに記録し,settings.jsonを削除します。
これ以降は再起動されるたびにNVSに記録された接続情報を利用してWiFiに接続します。
WiFiの設定を変更するには,settings.jsonの内容を変更し,再度M5ATOMにファイルを転送してください。
