参考は、
https://www.denshi.club/cookbook/arduino/mkr1010/arduinoiot3wi-fil.html
・Wi-Fi使うためにWiFiNINAライブラリのインストール
どこかでインストールしてしまったか、既にインストール済みになっていた。
使い方は既存のA.Pに接続してIPアドレスを取得し、自分自身はHTTPサーバーとなって他のクライアントからのリクエストを受け取ってレスポンスを返すというもの。
あるいは、Arduino自身をA.Pにすることもできるようですね。
・サンプルプログラム
サンプルからSimpleWebServerWiFiを読み込む。
IDEエディタのヘッダーファイルarduino_secrets.hに自分が使うA.P情報を追加入力する。
char ssid[] = “aterm”; # 自分のAP SSID
char pass[] = “pw”; # 自分のpw
int keyIndex = 0;
Wi-Fiはnではつながるけれどもacにはつながらないようです。実用上は全く問題ないですが。
・動作の確認
コンパイルしてArduinoに転送するとプログラムが起動して、
ネットワークにArduinoが見えました、Wi-Fiモジュール(Espressif)は中国製のようです。pingにも応答します。
シリアルモニターにArduinoが吐き出すメッセージとクライアントとの通信ログ(HTTPリクエストの中身)も見えます。また、setup()関数の最後にprintWifiStatus()関数で自分のWi-Fiのステータスを吐き出してます。シリアルモニターはあくまでUSB経由つないだ時しか見れず、Arduinoを切り離してWi-Fiで運用するときには機能しません。あり得ないけど、USBつないでるときは無線でやりとりしないで、USB経由でやりとりしてる?
ブラウザから該当のURLをアクセスすると、このようなメニューが表示されて、ボードのLEDのオンオフがブラウザから”Click here”のリンクをクリックすることで制御できます。ブラウザからのアクセス受け付けるまでに、データ転送完了後あるいはArduinoの電源オンから5秒以上は待たないといけないようです。
これでWi-Fiの疎通確認ができました。
Arduinoはwebサーバー機能あるといっても、HTMLやHTTPステートメントは全てprint文で記述しなければいけないのでかなり面倒ではあります。
admin