おはようございます!!
先日、こちら↓の記事を書かせていただきました。
スマートリモコンの学習キットの「sLab-Remo2」ですね!!
【電子部品利用実習⑧編】ということで実際に回路を組み、プログラムを転送し、赤外線障害物センサの動作確認まで行いました。
全くスマートスピーカーとは関係の無いところに行っちゃってますが・・・
・・・で、前回で電子部品利用実習編は終わりましたので、
今回よりWifi利用編でWifi無線接続を学習しました!!
目次
スマートリモコン「sLab-Remo2」(エスラボリモ2)【Scratch・Arduino対応】環境センサ・カメラ付《IoT電子工作・AI学習・プログラミング》
こちらです!
4,290円でこれだけ遊べたら凄いものです。(・・・と奧さんに言われています)
ちなみに、本キットの心臓部ESP32-DevKitCですが、Amazonさんで1,500円ぐらいで普通に買えますね。
Espressif社純正 ESP-WROOM-32D開発ボード ESP32-DevKitC-32D
壊してしまったら一大事!と思ってましたが・・・昼ごはん1回我慢すれば買えます(泣)
では、スタートします。
sLab-Remo2【Wifi利用①編】
公式メニューのWifi利用に入ります!(こちら)
下にもズラズラ~っと並んでいますが、まずは Wifi無線接続を学習するわけですね!!
Wi-Fiを利用して通信を行うための電子工作を行っていきます。
以下の内容を説明していますので、順番に学習して下さい。
3番目になると、かなりスマートスピーカーに近づいてきますね。楽しみです!!
Wi-Fi無線接続
こちらですね。
今回はWifiなので、目に見えない世界ですね。
電気回路と電子工作
Wi-Fi無線接続を行う電子工作を行います。ESP32-DevKitC(ESP-WROOM-32)は無線Wi-Fi機能を有していますのでは「2-1-6.赤外線リモコン送信」で組み立てたキット構成をそのまま利用します。ただ、今回利用する電子部品はLEDのみとなります。
Wifiの回路はCPUボードの中のカンカンに入っているんですね!!
その上の黒い部分がアンテナでしょうか?
回路部分は現在は・・・
上側だけで十分なのですが、このままにしておきたいので配線が切れてないかチェックだけしてそのまま使いました。
スケッチ(制御ソフトウェア)
Arduino IDEの登場です!!・・・あ~大変だ。
これでプログラミングしないと回路が動かないわけですね。
スケッチを作成!!
今回も前回作ったArduinoフォルダの中のsLab-Remo2フォルダのInfrared_obstacle_ sensorを「Wifi_Check」と名前をつけて保存してから、サンプルスケッチを貼り付けて保存します。(※ 手順の画像はこれまでと同様なので端折ります)
よしよし!これで動くはず・・・
スケッチの中身
公式に丁寧に解説してありますね。とりあえず貼り付けます。
いつもならこれを確認して終わりなのですが、今回は個々の環境に変更しないといけないようです。
③Wi-Fi及びネットワークに関するパラメータを定義します。
SSIDとPasswordは接続するWi-Fiの設定値を定義して下さい。(##### SSID #####,### PASSWORD ###部分を変更して下さい。)
(パスワードについてはそのまま文字列を設定しても動作しますがハッシュ化した文字列を設定することが望ましいです。今回まずは電子工作の学習に注力頂くため割愛させて頂きます。ESP32-DevKitCとしては、そのままの文字列でもハッシュ化した文字列でも動作します。)
また、接続するネットワーク環境を調べてIPアドレスとデフォルトゲートウェイとサブネットを設定して下さい。仮の値としてIPアドレス「192.168.1.123」などを入力していますが、例えば同じ宅内で利用するスマホやパソコンのIPアドレスが「192.168.0.8」の場合は同じネットワークに繋がるので設定するIPアドレスを「192.168.0.x」に設定する必要があります。xは0から255(サブネットマスクが255.255.255.0の場合)で他の端末でも利用されていない値を設定して下さい。サブネットマスクとデフォルトゲートウェイは宅内につながっている他の端末と同じ値を設定します。同じネットワーク内の端末のIPアドレスなどを調べる方法はこちらを参照下さい。
これは一般の方には難易度高そうですね!!
・・・でも、現在インターネットの時代では「スマホの使い方レベルで知っておくべきこと」と思いますので、御存じでない方は何とか勉強してやってください。
上の文章で紹介されているページでわかりくかった方はこちらがいいかも?・・・いや、やっぱり難しいですよね。ホントにこんな面倒なこと誰が決めたのか(泣)
私はこのように変えました!!
// ③Wi-Fi設定const char *ssid = “##### SSID #####”;const char *password = “### PASSWORD ###”;IPAddress ip(192, 168, 1, 123); // IPアドレス(本機が利用するIP)IPAddress gateway(192, 168, 1, 1); // デフォルトゲートウェイIPAddress subnet(255, 255, 255, 0); // サブネットマスク
// ③Wi-Fi設定const char *ssid= “我が家のWifiルーターのSSID“;const char *password= “我が家のWifiルーターのパスワード“;IPAddress ip(192, 168, 1, 123); // IPアドレス(本機が利用するIP)IPAddress gateway(192, 168, 1, 1); // デフォルトゲートウェイIPAddress subnet(255, 255, 255, 0); // サブネットマスク
はい、SSIDとパスワードだけです。
解説にはパスワードのハッシュ化が書かれていますが、今回は使いませんでした。
その他の環境は「192, 168, 1,*(0~255までの数値)」の環境なので、そのままでOKでした。
一般的な家庭用ルーターは「192, 168, 1, *」もしくは「192, 168, 0, *」だと思いますので、それに合わせてやればOKです。
あと、本機が利用するIPアドレスは、念のためにDOS窓でpingが通らないこと(=使ってないこと)を確認して、そのままの123を使いました。(← 基本的にずぼらです。)
今回は、重要なsetup()だけフローチャートにしてみました。
プログラムと解説を見比べながら、ツール(こちら)を使って作りました。
今回はループ部分がメインではなく、その手前の設定部分がメインなんですね。
・・・で、今回のWifi部分ですが、ほとんどライブラリ「Wifi.h」にお任せですね。
そちらの接続情報を送って、返ってくる情報を読み込んで画面に出したりLEDを点けたりしているだけです。こんな簡単だなんて驚きです!!
ハラハラドキドキ!動作確認!!
ハラハラドキドキです。
ボードにUSBケーブルを繋いでノートパソコンに接続、そして、プログラムを開きました。ボードへの書込は、忘れずにこの技↓ですね!!(※ 該当の部分に飛びます)
(※ 後半の「書き始めるまでBOOTボタン押しっぱなし技」です。)
今回は1回で成功しました!
さて、どうなるか・・・はい!!
点が伸びていくだけで一向に認識してくれません。これではLチカとなんら変わりません。
・・・あっ!!忘れてました!!
我が家はWifiルーターのMACアドレスフィルタリングをONにしているので、WifiルーターにMACアドレスを登録しないと繋がらないんです。
焦っているとろくな事はありません(※ちなみに昼御飯の時間です(泣))ので、とりあえずOFFにします。
・・・で、戻ってみると・・・あれ?右に伸びている。
そういえば改行って無かったですね。ほっておくとトンでもない1行に!!
ちゃんと接続されてIPアドレスが表示されています!!
接続後はloop()に移ってLEDは点灯したままですね。
Wifiが接続するだけの確認実験ではありますが、なんとか動きました。
まとめ
実は、今回は電子利用の最終回のカメラをやる予定だったのですが・・・
カメラの電子工作を行います。カメラ映像を閲覧するためには無線Wi-Fi経由でWebブラウザで映像を確認することになりますので「3-1.無線Wi-Fi」と「3-2.Webサーバ」を学習してから本電子工作をお願いします。
確かにこれを飛ばしていては画像も写せませんものね!(笑)
次回は【Wifi利用②編】で、そのWebサーバー機能ですね!
昔は簡単にはできなかったことが、こんな感じで簡単にできる時代になったんですね。
凄いものです。
以上です!!
Wifiルーターも日進月歩で、最近売られているものはWifi6とかメッシュとか、聞いたこともない言葉だらけです。簡単になるって言ってたのはどうなったのでしょうかね?
中身に新しい技術が使われていても、ユーザーから見ればワンタッチで操作できる製品が一番ありがたいのですが、相変わらずのような気がします。
(おわり)