ArduinoでIoTにチャレンジ<その9> Arduino IDE 2.0のRC版をテストする②

 2022年8月1日現在、Arduino IDE 2.0 RC09(8月2日にRC9.1)となっています。まもなくRCが取れるものと期待できます。
 前回はボードマネージャでMKRシリーズのボードの導入を行い、Arduino MKRWiFi 1010のボードも利用できるようになりました。

ライブラリを追加する

 MKRシリーズのボードを追加したとき、利用できるライブラリは次のようになります。Wi-Fiに利用できるライブラリがありません。


 Arduino MKR WiFi 1010に搭載されているのは、Wi-FiモジュールU-BLOX社のNINA W102です。このモジュールに対応したライブラリ、WiFiNINA を追加します。


 

 「インストール」をクリックします。次に示すように、バージョン1.8.13のWiFiNINAのライブラリがダウンロードされ、引き続きインストールされます。
 経過は、出力の画面にログとして表示されています。

  WiFiNINAのライブラリをインストールすると、このライブラリを利用するサンプル・スケッチもインストールされます。
 サンプル・スケッチは次に示すように、ArduinoIDE1.8.19のWiFiNINAのサンプル例と同じです。

 最初に、この例の中からScanNetworksのテストを行います。このサンプルはWi-Fiのアクセス・ポイントをスキャンして、検出されたアクセス・ポイントのSSIDと電波強度を表示します。
 WiFiNINAのライブラリのWiFi Classの各メソッドを利用して、必要な情報を取得します。

ボードのWiFiNINAのモジュールのMACアドレスの取得

 MACアドレスを格納するための6バイトのbyte型の配列mac[]を定義し、その配列を引数にしてWiFi.macAddress(mac)を呼び出すと、モジュールのMACアドレスが得られます。
具体的なコードは次のように記述します。

 byte mac[6];
 WiFi.macAddress(mac);

アクセス・ポイントをスキャンする

 アクセス・ポイントをスキャンしてその数を求めるメソッドが、scanNetworks()として用意されています。戻り値は、検出されたアクセス・ポイントの数となり、検出されなかった場合の戻り値は-1となります。具体的なスケッチは次のようになります。

 int numSsid = WiFi.scanNetworks();

 numSsidの値が-1の場合、アクセス・ポイントに接続できなかったと表示し、スケッチの実行を中断します。
 戻り値が-1以外のときは、アクセス・ポイントのSSID名をWiFi.SSID(thisNet)のメソッドで、電波の強さをWiFi.RSSI(thisNet)のメソッドで調べシリアルモニタに表示します。
 thisNetは検出されたアクセス・ポイントを示す0から始まるナンバーです。

暗号化方法の検出

 アクセス・ポイントの間の暗号化方法をWiFi.encryptionType(thisNet)で検出しています。ここで検出された値を調べ表示するための関数が、スケッチの中でvoid printEncryptionType(int thisType)の名の関数として定義されています。

 シリアルモニタに表示された内容を次に示します。最初にMACアドレス、その後0)から5)までのアクセス・ポイントが検出されています。

MAC: 9C:9C:1F:C1:8B:68
Scanning available networks...
** Scan Networks **
number of available networks:6
0) Buffalo-G-4EA0 Signal: -52 dBm Encryption: WPA2
1) Buffalo-G-4EA0-WPA3 Signal: -53 dBm Encryption: WPA2
2) Buffalo-G-2C6E Signal: -53 dBm Encryption: WPA2
3) Buffalo-G-2C6E Signal: -56 dBm Encryption: WPA2
4) Extender-G-C56E Signal: -63 dBm Encryption: WPA2
5) BCW710J-04F4A-G Signal: -90 dBm Encryption: WPA2

 このシリーズの3回目の「ArduinoでIoTにチャレンジ<その3>Wi-Fi経由でLチカ」
   https://www.denshi.club/cookbook/arduino/mkr1010/arduinoiot3wi-fil.html


でテストしたSimpleWebServerWiFi.insも実行してみました。前回の結果と同様にスケッチのコンパイル、ボードへの書き込み、アクセス・ポイントの接続、ボードからシリアルモニタに割り当てられたIPアドレスの送信など同様に行われました。

 Arduino IDE 2.0では従来と表示方法が異なっていますが、同じようにテストができました。


Arduino IDE 2.0で変わった点

 IDE 2.0のツールバーは、次に示すように、「検証(コンパイル)」、「書き込み」は従来のArduino IDEと同様です。その次のアイコンが「デバッグの開始」となります。

 このデバッグの機能は、MKRシリーズのボードなどに対応してオンボードのデバッグを行うことができます。Atmel-ICEなどのツールが必要なのとSWD、SWCLKの信号線の引き出しの処理などが必要となるので、別の機会に詳しく説明します。

選択されたボードの表示欄

 ツールバーの新規スケッチ、開く、保存のアイコンが変わって、選択されたボードの表示欄が設けられました。下向きの黒い三角のアイコンをクリックすると、次に示すように接続されているマイコン・ボードとCOMポート番号が表示されます。表示されるリストから該当するボードを選択すると、書き込みを行うボードの種類とCOMポートが設定されます。


ボードが接続されていない場合

 ボードが接続されていない場合は、リストに変わって「他のボードとボードの選択」が表示されます。この表示をクリックすると、次に示すボードの選択画面が表示されます。

 サーチ欄があるので、選択表示することもできます。表示されたボード名からArduino MKR WiFi 1010を選択すると、対象となるボードが選択されます。
 ボードが接続されていないので接続されているCOMポートもありません。そのため、ポート欄の表示はありません。

ボードを接続しなくてもスケッチは作成できる

 スケッチを作成するだけだと、ボードの接続は必須ではありません。しかしArduino MKR WiFi 1010を利用してWi-Fiを扱うスケッチを作成するなどのようにボード特有の機能を利用する場合は、スケッチを作るだけでもボードの選択を行う必要があります。

ボードを接続すると

 ボード選択の画面を表示しながらボードを接続すると、次に示すように接続されたボードのCOMポート番号が表示されます。

 ボードが接続されている場合はこの画面を表示しなくても、ドロップダウン・リストに接続されているボードとCOMポート番号が表示されるので、そちらから選択したほうが容易です。ここでは、接続されていないボードのスケッチを行うときに利用します。

シリアルプロッタ/シリアルモニタ

 IDE 2.0では次に示すように、シリアルモニタの左側にシリアルプロッタを起動するアイコンが用意されています。シリアルプロッタのアイコンをクリックするとシリアルプロッタのウインドウが表示されます。シリアルモニタは、エディタの画面の下の「出力」の表示エリアの同じ場所に出力に代わって表示されます。
 シリアルモニタの下の「…」のアイコンがエディタのタブの追加編集を行うメニューを表示するためのアイコンです。


出力、シリアルモニタ、クリア、スクロール

 スケッチのコンパイル結果が出力画面に表示されています。シリアルモニタ・アイコンをクリックすると、次に示すように「出力」の横にシリアルモニタ表示が現れ、出力の画面はシリアルモニタの画面に代わります。表示の出力、シリアルモニタをクリックすることで指定した画面が表示されます。

 出力、シリアルモニタの表示されている欄の右側のアイコンは、右端の鍵の形のアイコンは自動でスクロースするかどうか決めます。その隣のアイコンは表示のクリアを行います。

 使い勝手はよくなっていますが、処理の流れは基本的に同じものとなっています。


 (2022/08/05)

<神崎康宏>

前へ

ArduinoでIoTにチャレンジ<その8> Arduino IDE 2.0のRC版をテストする①

次へ

Arduino の電圧供給 (Vcc) を測定