現: 2022-10-01 (土) 11:41:15 yuji ソース
Deleted an attach file: microservomotor.png at 2022-10-01 (土) 11:44:32, Deleted an attach file: botswitch.ino at 2025-04-30 (水) 21:19:34, Deleted an attach file: web.png at 2025-04-30 (水) 21:39:14
Line 1: Line 1:
 +* SwitchBotのボットもどきの作成 [#x5e89055]
 +家のアパートのリビングの照明スイッチは古い2個口のスイッチ &worried;~
 +これでON/OFFしているのが,これまた古い電球型蛍光灯。~
 +IoTということでちょっと便利になるように[[SwitchBotのボット>https://www.switchbot.jp/pages/switchbot-bot]]を使って[[Echo Dot>https://amzn.to/3MvgsW5]]や[[Google Home Mini>https://store.google.com/jp/product/google_nest_mini?hl=ja&pli=1]]を使ってON/OFFさせてみたいと思ったのだが,[[SwitchBotのボットを購入>https://amzn.to/3e0psW9]]する前にとりあえず同様な機能の物を,ありあわせの物で自作してみることにした。~
 +
 +** ボットもどき作成に使用した物 [#u2dabefb]
 +- [[WeMOS D1>/開発/WeMos D1]]~
 +数年前に500円ぐらいで購入した激安のHiLetGo製[[WeMos D1互換ボード>https://amzn.to/3Rnozo7]]((HiLetGO製のボードは現在は販売されていない。こちらは似たようなボード))があったので使ってみた。~
 +このボードには無線LAN機能があるので直接Networkに接続できる。~
 +[[WeMOS D1 Mini>https://amzn.to/3UUpHmk]]だともっと小さいボードなので,小型に作成するには良いかも。~
 +WeMOS D1 Miniは,[[NodeMCU Development Kit>https://www.nodemcu.com/index_en.html]]と互換の製品のようだ。~
 +- Tower Pro SG92R マイクロサーボモーター~
 +Amazonで[[Tower Pro製 SG92R ラジコン用の小型サーボモーター>https://amzn.to/3SLp3Wg]]を500円ぐらいで購入した。~
 +これを使ってアクチュエーターでスイッチをON/OFF出来るかもしれない。~
 +- 12VのACアダプター~
 +ころがっていたACアダプター。WeMos D1互換ボード用の電源として使用した。~
 +
 +** ハードウェアの作成 [#u8ada48c]
 +以下のように,WeMos D1互換ボードとマイクロサーボモーターSG92Rとを1m程度のワイヤーで接続した。~
 + WeMOS D1        SG92R ServoMotor
 +   D6 ---------- 黄色
 +   +5V ---------- 赤色
 +   GND ---------- 茶色
 +
 +** 壁のスイッチにマイクロサーボモーターを貼り付ける [#qba0abf6]
 +&ref(microservomotor.png,,40%); マイクロサーボモーターを壁のスイッチの近くに両面テープで固定した。~
 +スイッチは右側を押すとONに左側を押すとOFFになるので,アクチュエーターをだいたい真ん中ぐらいにして貼り付けた。~
 +うまく動作するのに,貼り付ける位置が微妙に影響する。少しでもずれるとスイッチを押せない &worried;
 +
 +WeMos D1互換ボードとACアダプターは床に置いてある。~
 +
 +しかし,ださいなぁ ;)
 +
 +** ソフトウェアの作成 [#c54545bd]
 +WeMos D1互換ボードに書き込むプログラムは[[Arduino IDE>/開発/WeMos D1#nff0b1a9]]で作成した。~
 +
 +PCとWeMos D1互換ボードをUSBで接続し,直接作成したプログラムを書き込める。~
 +
 +*** Arduino IDE用のライブラリのインストール [#yd3fe158]
 +- WeMOS D1ハードウェアパッケージ~
 +[[WeMOS D1ハードウェアパッケージをArduino IDEにインストールする>/開発/WeMos D1#l51e57d4]]。~
 +- [[FauxmoESP>https://github.com/vintlabs/fauxmoESP/]]ライブラリ~
 +[[ESP8266>https://ja.wikipedia.org/wiki/ESP8266]]や[[ESP32>https://ja.wikipedia.org/wiki/ESP32]]のボードで[[Philips Hue ライト>https://www.philips-hue.com/ja-jp/]]をローカルデバイスとしてエミュレートして,Alexaデバイスと連携出来るようにするライブラリ。~
 +[[ここ>https://github.com/vintlabs/fauxmoESP/archive/refs/heads/master.zip]]からzipファイルをダウンロードして,Arduino IDEでzipファイルからインストールした。~
 +Arduino IDEのライブラリマネージャーでfauxmoESPを指定してもインストールできる。~
 +- [[ESPAsyncTCP>https://github.com/me-no-dev/ESPAsyncTCP/]]ライブラリ~
 +ESP8266でFauxmoESPライブラリを使う場合は,このESPAsyncTCPライブラリが必要。~
 +[[ここ>https://github.com/me-no-dev/ESPAsyncTCP/archive/refs/heads/master.zip]]からzipファイルをダウンロードして,Arduino IDEでzipファイルからインストールした。~
 +ESP32を使用したボードを使う場合は,[[ここ>https://github.com/me-no-dev/AsyncTCP/archive/master.zip]]から[[AsyncTCP>https://github.com/me-no-dev/AsyncTCP/]]ライブラリのzipファイルをダウンロードして,Arduino IDEでzipファイルからインストールする。~
 +
 +第3世代Echo DotのようなAlexaデバイスと連携する場合は,WEBポートに80番を使用する必要がある。~
 +またESP8266の場合,Arduino IDEの設定でLwIPを"1.4 Higher Bandwidth"に設定した。~
 +
 +*** プログラム [#fd72b460]
 +以下のプログラムを作成した。~
 +
 +標準ライブラリのServoライブラリを使ってサーボモーターを動かしている。~
 +write(angle) でangleに角度を指定するとその角度に動く。~
 +
 +Alexaデバイスから使えるように[[FauxmoESP>https://github.com/vintlabs/fauxmoESP/]]ライブラリを使用している :) ~
 +
 +#code(c,nonumber,botswitch.ino)
 +
 +#code(c,nonumber,credentials.h)
 +
 +Arduino IDEからWeMOS D1ボードにコンパイルして書き込んだ。~
 +
 +** 動作テスト [#j910bc1d]
 +PCからWEBブラウザでhttp://<ip address>:8080/cmdにアクセスして,OnやOffをクリックするとスイッチが動いた :)
 +#ref(web.png,,30%)
 +また,WgetなどでWEB APIにコマンドを送ってみても動作した。~
 +:スイッチをOn |
 + wget http://xxx.xxx.xxx.xxx:8080/cmd?POS=on
 +:スイッチをOff|
 + wget http://xxx.xxx.xxx.xxx:8080/cmd?POS=off
 +
 +* Echo Dotとの連携 [#wd3cda64]
 +Android端末のAlexaアプリを起動して,以下のようにしてデバイスを追加した。~
 +- デバイスをクリック~
 +- 右上の+ボタンをクリック~
 +- デバイスを追加をクルック~
 +- その他をクリック~
 +- デバイスを検出をクリック~
 +
 +しばらくすると作成した''スイッチ''という名前のデバイス(電球タイプ)が検出された。~
 +
 +それにしてもAlexaデバイスはローカルデバイスを直接アクセスできるのが素晴らしいなぁ :)
 +
 +** Echo Dotで操作してみる [#faf06fc9]
 +「アレクサ,スイッチオン」と言うと,マイクロサーボモーターが少し回って壁のスイッチをONした。~
 +「アレクサ,スイッチオフ」と言うと,マイクロサーボモーターが少し逆に回って壁のスイッチをOFFした。~
 +
 +スイッチじゃ味気ないんで,「電気つけて/消して」とか「ライトつけて/消して」とかの定形アクションを作成した。~
 +
 +これで,[[SwitchBotのボット>https://www.switchbot.jp/pages/switchbot-bot]]のような事が出来るようになった。~
 +
 +確かに声で操作するのは便利だ。
 +
 +* 課題 [#qa78f6c0]
 +- 2個のスイッチに対応する~
 +マイクロサーボモーターを2個使えばいいのだが,1個でなんとかならないかな。~
 +- 固定方法がなんとかならないか~
 +両面テープでマイクロサーボモーターを貼り付けているだけなんで,うまくスイッチが押せなくなってしまうことがある。~
 +SwitchBotのボットみたいにケースに入れたい。~
 +- 電池駆動にする
 +- Google Home Miniで使えるようにする~
 +WEBからON/OFF出来るAPIを用意して,IFTTT(Google Assistant)を使ってWEB APIをアクセスすればいいのかも。~
 +09/01/2022からGoogle AssistantとIFTTTの連携の仕様が変更になり,数値や文字等のパラメーターをIFTTTに渡せなくなってしまった ;( リモコン等の用途にIFTTTは役立たずになってしまった。
 +- [[SwitchBot ボットを購入>https://amzn.to/3VfQlZp]]する~
 +やれることは同じなんで,どうしようかな。
  

  • 開発/SwitchBotのボットもどきの作成 のバックアップ差分(No. All)
    • 現: 2022-10-01 (土) 11:41:15 yuji
      • Deleted an attach file: microservomotor.png at 2022-10-01 (土) 11:44:32, Deleted an attach file: botswitch.ino at 2025-04-30 (水) 21:19:34, Deleted an attach file: web.png at 2025-04-30 (水) 21:39:14

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 763, today: 5, yesterday: 1