絶対に押しちゃダメなボタンです。押すなよ,絶対に押すなよ。
※元ネタは「『絶対に!押すな』のボタン、押し放題の誘惑」(2022 年 6 月 5 日 日経 MJ)です。
絶対に!押すなボタンは絶対に押しちゃダメなボタンで,M5Stack 社 の ATOMS3を使用して実装しています。
Arduino 版は ATOMS3 が USB キーボードとして認識され,絶対に押しちゃダメですが,ボタンが押されると指定されたキーコード(デフォルトでは CTRL+ALT+DELETE
)を送信します。WiFi に接続してキーコードの送信と同時に LINE Notify で押されたことを通知することもできます。
UIFlow2 版は ATOMS3 を WiFi に接続し,絶対に押しちゃダメですが,ボタンが押されると LINE Notify で押されたことを通知します。
キーコードの送信 | LINE Notify での通知 | |
---|---|---|
Arduino 版 | ○ | ○ |
UIFlow2 版 | × | ○ |
LINE Notify で通知する場合は,LINE Notify のマイページでパーソナル・アクセス・トークンを発行する必要があります。
Arduino 版,UIFlow2 版とも Windows 11 と macOS Sonoma で動作確認をしています。
M5Unifiedと自作したM5Stack 用 LINE Notify ライブラリを使って実装しています。VSCode の PlatformIO IDE 環境でコンパイルして実機にアップロードしてください。
デフォルトのenv:never-push-me
を選択してコンパイルすると,ボタンを押したときに決められたキーコードを送信します。
env:never-push-me-with-line-notify
を選択してコンパイルすると,ボタンを押したときにキーコードを送信するだけでなく,WiFi に接続して LINE Notify にボタンが押されたことを通知します。
env:never-push-me-with-line-notify
でコンパイルする場合は,data
ディレクトリ(platformio.ini
の[platformio]
セクションにあるdata_dir
で指定したディレクトリ)に以下 JSON ファイル(line_notify.json
)を置いて LINE Notify に接続するために必要な情報を記載します。
{
"ssid": "[SSID]",
"password": "[パスワード]",
"token": "[LINE Notify のパーソナル・アクセス・トークン]",
"message": "[ボタンが押されたときに通知するメッセージ]"
}
message
には UTF-8 で約 48 文字までのメッセージを指定できます。
line_notify.json
を実機の SPIFFS に転送して設定を反映するためには,PlatformIO メニューから「Upload Filesystem Image」を選択するか,コマンドラインからpio run --target uploadfs
を実行します。
ATOMS3 を PC に接続すると,USB キーボードとして認識されます。絶対に押しちゃダメですが,押すとCTRL+ALT+DELETE
が押されたのと同じ動作になります。
LINE Notify の通知を有効にしている場合は,ボタンを押すと指定したメッセージで LINE Notify に通知されます。
※UIFlow2 の v2.1.3 以降で動作します。
Arduino 版とは異なり,キーコードを送信する機能はなく,ボタンが押されたときに LINE Notify で指定したメッセージを通知します。
UIFlow2 の「Import project from local file」メニューからプロジェクトファイルuiflow2/never-push-me.m5f2
を読み込んでください。
また,同じものを Project Zone でも公開しています。https://uiflow2.m5stack.com/?pkey=39a6e782a09e466881fbf5957dfdd146からプロジェクトを読み込むか,Project Zone の検索窓に「never-push-me」と入力して検索し,Import ボタンを押すことで読み込むことができます。
プロジェクトを読み込んだら,WiFi と LINE Notify の設定をします。
- 接続する WiFi の SSID とパスワードをそれぞれ変数
WIFI_SSID
とWIFI_PASSWORD
に設定します。 - ボタンが押されたときに通知する LINE Notify のパーソナルトークンを変数
LINE_NOTIFY_TOKEN
に設定します。 - ボタンが押されたときに通知するメッセージを変数
LINE_NOTIFY_MESSAGE
に設定します。
右下にある「Download the program to device」ボタンを押してください。
ATOMS3 を起動すると,変数WIFI_SSID
と変数WIFI_PASSWORD
に設定した情報を使って WiFi に接続します。そして,絶対に押しちゃダメですが,ボタンを押すと LINE Notify で変数LINE_NOTIFY_MESSEGE
に指定したメッセージを通知します。