/never-push-me

絶対に押しちゃダメなボタン

Primary LanguageC++MIT LicenseMIT

絶対に!押すなボタン

絶対に押しちゃダメなボタンです。押すなよ,絶対に押すなよ。

※元ネタは「『絶対に!押すな』のボタン、押し放題の誘惑」(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 で動作確認をしています。

Arduino 版

M5Unifiedと自作したM5Stack 用 LINE Notify ライブラリを使って実装しています。VSCodePlatformIO 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 版

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 と LINE Notify の設定をします。

  1. 接続する WiFi の SSID とパスワードをそれぞれ変数WIFI_SSIDWIFI_PASSWORDに設定します。
  2. ボタンが押されたときに通知する LINE Notify のパーソナルトークンを変数LINE_NOTIFY_TOKENに設定します。
  3. ボタンが押されたときに通知するメッセージを変数LINE_NOTIFY_MESSAGEに設定します。

実機へのアップロード

右下にある「Download the program to device」ボタンを押してください。

実行方法

ATOMS3 を起動すると,変数WIFI_SSIDと変数WIFI_PASSWORDに設定した情報を使って WiFi に接続します。そして,絶対に押しちゃダメですが,ボタンを押すと LINE Notify で変数LINE_NOTIFY_MESSEGEに指定したメッセージを通知します。