ArduinoでIoTにチャレンジ<その1>まずはIoT対応のArduinoを使ってみる

 この連載では、初めてArduinoを利用する初心者がIoTを実現するための準備から実践を行います。
 Arduinoには8ビットのマイコンを搭載したものと、32ビット高性能マイコンを搭載した複数のモデルがあります。内容は高度化されていますが、初心者はそれらの違いを意識することなく利用できるようになっています。

 IoTで必須なネットワーク接続できる機種もあり、Wi-Fiを国内で使用できるモデルも、2021年7月より秋月電子通商から購入できるようになりました。

入門コース

 状況が熟したので、Arduinoの経験のない初心者も対象に、ArduinoでIoTを実現するための入門コースの記事をはじめます。

達成する目標

 初めてArduinoを利用する方が、Arduinoに接続されたLEDやモータなどのON/OFFを、スマートフォンやPCのWebブラウザから行い、Arduinoに接続された各種のセンサから読み取った値を、スマートフォンやPCのWebブラウザに表示できることを目標にします。

Arduinoの基本的なスペック

 Arduinoには多数のモデルがあります、ここでは、エントリ・モデルのArduno UNOと、インターネット対応のMKR WIFI 1010を取り上げます。

Arduno UNO シリーズ

 8ビット・マイコンを搭載し、次に示す形状です。

I/O アナログ入力 6入力(A0からA5)
   ディジタル入出力 0から13
電源電圧 5V、8ビット・マイコンATMega328



「Arduinoで計る、測る、量る」CQ出版 p.11より

Arduino MKR WIFI 1010

 Arduino MKRシリーズは、UNOより小型化し、SAMD21(Cortex-M0+)32ビット・ロー・パワーARM MCUを採用しています。電源電圧は3.3Vです。



   出典 https://store.arduino.cc/usa/mkr-wifi-1010

 Arduino MKR WIFI 1010の資料は、Arduino.ccのホームページのdocumentation を選択し、リストからGetting Startedを選択し、MKR WIFI 1010を選択すると、次の利用方法に関するページとなります。

  https://www.arduino.cc/en/Guide/MKRWiFi1010

 このページの最後のproduct page.をクリックすると、個別の製品仕様のページになります。
 Overviewのタグで概要、Tech Specsタグで技術仕様、Documentation タグで上記のピン配置、回路図、I2Cポートのピン配置などは記載されています。必要なときに参照できます。

 Arduino UNO、MKR WIFI 1010 のピン配置はいろいろな場面で必要になります。ここでは概要を示しました。技術的な仕様は、それぞれ利用する場面で詳しく説明する予定です。

Arduino MKR WIFI 1010を使ってみる(1)

 Arduino MKR WIFI 1010が、2021年7月から秋月電子通商で、技適マークのラベルの付いたものを入手できるようになりました。早速3980円で購入しました。

 これから数回に分けて、次の解説を行います。

(1) MKR WIFI 1010の基本機能の説明と、ArduinoIDEを利用してMKR WIFI 1010のプログラムを開発するための準備を行う(今回行うこと)
(2) Wi-Fiを経由してMKR WIFI 1010に接続されたLEDのON/OFF(外部のデバイスのON/OFFの例)、センサの値を読み取ってPCに表示する

(1) Arduino IDEの準備

 現在、Arduinoのシステムの開発には、

①クラウドWeb Editorを利用
②従来から利用されているPCのArduino IDEをインストールしてPCで行う

方法があります。
 2021年7月現在、今しばらくは、このPC上のArduino IDEを利用する方法でプログラムの開発を進めます。

Arduino IDEのダウンロードとインストール

 Arduono IDEのシステムは、Arduino.ccのホームページhttps://www.arduino.cc/のsoftwareを選択し、対応するOS、Windowsのシステムのダウンロード・ファイルを選択し、ダウンロードします。開発を支援するための寄付を行ってダウンロードすることも、寄付なしでダウンロードすることもできます。具体的なダウンロードの様子はこのサイトのhttps://www.denshi.club/cookbook/arduino/uno/arduino2-32.htmlページでも示されています。必要に応じて参照してください。
 2021年7月の時点ではインストールファイル「arduino-1.8.15-windows.exe」がダウンロードされます。このファイルを起動してArduino IDEをインストールします。

ボード情報、ライブラリの追加

 Arduino IDEを新しくインストールした後で、利用できるボード確認するために、メニューバーのツール>ボードを選択して、利用できるボードのリストを次に示すように表示しました。
 Arduinoの登場当初からボードは表示されますが、MKRシリーズなどのボードは見当たりません。今回利用する予定のArduino MKR WIFI 1010がArduino IDEで利用できるように、ボードマネージャを用いてこれらを追加します。

ボードマネージャの起動

 ツール>ボードを選択すると、ボードのリストの最上段に「ボードマネージャ」が表示されています。この「ボードマネージャ」を選択すると、次に示すボードマネージャが起動します。

 ボードマネージャを起動し、Arduino MKR WIFI 1010がボードとして含まれているArduino SAMD Boards(32-bits ARMCortex-M0+)を、次に示すように選択します。
 まだ、Arduino IDEにこのモジュールはインストールされていないので、モジュールの表示の右下に「インストール」のボタンが表示されます。
 このボタンをクリックして、このモジュールをインストールします。

 インストールが開始されると、インストール・ボタンの表示は消え、インストールの進行状況が青色のバーグラフで表示されます。

 インストールが完了すると、次に示すようにバージョン情報に続いてINSTALLEDが表示されます。

追加されたボードの確認

 ボードマネージャでMKR WIFI 1010のボードが利用できるようなったか確認します。次に示すように、

  ツール>ボード>Arduino SAMD(32-bits ARM Cortex-M0+)

を選択すると、新しく追加されたボードのリストが次に示すように表示されます。その中にMKR WIFI 1010のボードがあるのが確認できます。

 新しくボードを追加すると、ボードを選択した時点でボードマネージャの表示の下にオリジナルのシリーズのボードが格納されているArduino AVR Boardsと新しく追加されたシリーズを示すArduino SAMD(32-bits ARM Cortex-M0+)が表示されます。該当するボードが格納されている項目をクリックします。ESP32シリーズなど新たなシリーズのボードを追加すると、この下に新たな項目が追加されます。


ライブラリの追加

 Arduino MKR WIFI 1010に搭載されているWi-Fiのモジュールはu-blox製NINA-W102で、このモジュールのネットワーク処理のためのライブラリがWIFININAの名前で用意されています。このライブラリのインストールを行います。

  ツール>ライブラリを管理

を選択すると、次に示すライブラリマネージャが起動し表示されます。トピックの欄に WIFININA と入力すると、該当するライブラリが表示されます。検索しなくても順番に表示して探すこともできますが、少し大変です。

 WIFININAはまだインストールされていないので、インストールのボタンがあります。このボタンをクリックすると、WIFININAライブラリがインストールされます。

 インストールが完了すると、次に示すようにバージョン番号とINSTALLEDが表示されます。

インストールの確認

 スケッチ>ライブラリをインクルード

を選択して、利用できるライブラリを次に示すように表示して、ライブラリがインストールされたことを確認できます。リストには WIFININA が表示されています。ライブラリマネージャでのインストールが正しく完了しています。

ライブラリのインストールに合わせてサンプルもインストール

 WIFININAのライブラリをインストールすると、このライブラリを使用したサンプルのプログラムも一緒にインストールされます。サンプルのプログラムは、次に示すように18種類もインストールされています。



 次回はこのサンプルを利用して、Arduinoプログラム(スケッチ)作成法と、IoTのために必要となるネットワーク処理のプログラムの作成を始めます。

(2021/7/31 V1.0)

<神崎康宏>

前へ

Arduino夏休み<架空>ワークショップ②「温度計を作る」 3回で読み切りの最後 温度を測る

次へ

ArduinoでIoTにチャレンジ<その2>Wi-Fiを使う前の準備