ESP32を使い始めて3日目。サンプルソースを組み合わせながらプログラムして、
「インターネット呼び鈴」を試作しました。
すごくくだらないんですけど。
「インターネットの向こう側の人が、こちらでチャイムを鳴らすことができる」
というモノです。
使い道としては、ネットゲームやチャットの相手を24時間呼び出しできたり(冗談です)
インターネット呼び鈴のイメージは、こんな感じ。
インターネット越しに、昼だろうが夜だろうがパソコンをシャットダウンしてようが、
不特定多数の人が、ネコダ自宅のESP32からチャイムやブザー音を鳴らせます。
具体的には、無線LAN接続したESP32自体が簡易の「Webサーバ」になっていて
スマホやパソコンのブラウザからブログ等に貼ったURLをクリックすると、GETリクエストが飛んで
受信したESP32が指定に応じた処理をします。
(目的はESP32がインターネット越しに動くかの実験なので、ルータ設定等の説明は省略します)
回路図。めちゃくちゃシンプルです。
ESP32はAliExpressで398円。牛丼並盛の値段?
OLED表示は、I2C接続とSSD1306ライブラリでさっくり動きました。
無線LANの接続、IP周り、Webサーバについても、ライブラリとサンプルソースで楽に動きます。
チャイム・ブザーの音ですが、ESP32はD25,D26pinに8ビットのDAコンバータを持っているので
WAVファイルから変換した音声データを垂れ流して再生、スピーカーを直結してみました。
調整すれば効果音くらいなら出せます。
この辺はArduino nanoと比べると、本当に使いやすいです。
簡易Webサーバの待機画面。
インターネット時計(NTP)と、ESP32のIPアドレス、MACアドレスを表示してみました。
WiFiが切れた時は、IPが「0.0.0.0」にクリアされて気付けます。
Webサーバが外部からGETリクエストを受け取ると、
自動でhttpログ表示画面に切り替わり、アクセスがあったことを知らせるようにしました。
5秒後、時計表示に復帰。
OLED表示器の右下に、青いリード線。
これがタッチセンサーになっていて、触るとログ画面を10秒間表示、視認できるようにしました。
ESP32のタッチセンサー、めっちゃ便利です。
スマホからインターネット越しに、ESP32の簡易Webサーバへ接続した様子です。
http://(IPアドレス)/ でトップ画面を表示、「here」をクリックすると以下のURLに飛びます。
・内蔵LEDオン http://(IPアドレス)/H
・内蔵LEDオン http://(IPアドレス)/L
・チャイムを鳴らす http://(IPアドレス)/C
・ブザーを鳴らす http://(IPアドレス)/B
ここでURL末尾の/Cとか/Bというのは、HTMLのような実ファイルはありません。
あくまで合図として扱います。
ESP32自前のWebサーバなので、C言語のプログラム次第で好き放題に処理できるのです。
結果、ESP32がチャイムを鳴らしたり、LEDオンオフを実行します。
https:ではなくhttp:なので、ブラウザによっては弾かれるようです。
またキャッシュなどの影響か、やや不安定だったり遅延があります。この辺は仕方ないですね。
短時間ですが、ブログにリンクを貼って、さらにチャットの方々にも試してもらいました。
(ご協力くださった皆様、ありがとうございました)
インターネット越しに誰かが操作しては、手元の機械が「ピンポーン」「ブー」など動作するので、
不思議な感覚というか、遊びとしてはなかなか面白いと思います。
※今回のようにインターネット側に手元の機器を公開するのは、セキュリティ面でリスクがあります。
同様のことを試す方は、十分にリスクを検討・承知した上で、自己責任でお願いします。
・・・。
インターネットで誰かが操作したら、夜中に人形の首が動く、ってのも面白そう。やらないけど。
おしまい。