注目キーワード

【Arduino】M5StickCをWi-Fi接続する(1)

この記事では、Arduino IDEを使ってコンピュータをWi-Fiルータに接続する方法について紹介します。
Wi-Fi接続する方法は、2つがあります。今回はプログラム内でWi-FiのSSID/パスワードを指定して接続するやり方をご紹介します。
Wi-Fiに接続する際にプログラム内でアクセスポイント情報(SSIDやパスワード)を記述すると、Wi-Fi環境が変わった際にプログラムの修正が必要になります。便利な機能としてアクセスポイント情報をNVS(不揮発性メモリ)に保存することができます。ただし、NVS領域は暗号化されないため、読みだすことができます。廃棄する際にスケッチを上書きするだけでは消えないため注意が必要です。
本サイトではアクセスポイント情報を指定して接続する方法と合わせて、アクセスポイント情報をM5StickCに覚えさせることで、プログラム上では指定しない方法の2種類のやり方を紹介します。ご自身にあった方法で活用してください。

Arduinoって?

世の中にはいろいろなプログラミング言語がありますよね。

iphoneのアプリやWindowsのアプリなどを作るのも楽しいですが、あくまでも画面上で動くものなので、ちょっと動いている実感が薄いと思われている方も多いのではないでしょうか。

そんな中で実際にLEDやモーターなどのハードを制御することができるのが「Arduino」です。

ハード制御ができることに加え、小さいコンピュータ上で動作するため、IoTやセンシング、ロボットなどへの応用にも使用できる非常に面白い言語です。電子工作の世界を広げてくれますよ!

ぜひ挑戦してみてください!

Wi-Fiに接続するといいことがある

Wi-Fiとは?

無線LANに関する登録商標(※)です。家の中で使うパソコンやタブレットなどのネットワーク対応端末が、ケーブル(有線)ではなく無線の電波によって接続できるようになる便利な機能です。


Wi-Fiの規格には以下のものがあります。

無線LAN規格 通信速度 周波数帯
IEEE802.11ax(Wi-Fi 6) 9.6Gbps 2.4GHz/5GHz帯
IEEE802.11ac(Wi-Fi 5) 6.9Gbps 5GHz帯
IEEE802.11n(Wi-Fi 4) 300Mbps 2.4G帯/5GHz帯
IEEE802.11a 54Mbps 5GHz帯
IEEE802.11g 54Mbps 2.4GHz帯
IEEE802.11b 11Mbps 2.4GHz帯

現在の主流はWi-Fi5です。最近の最新パソコンや、タブレット、スマートフォンには、Wi-Fi6に対応しているものが出てきています。

注意が必要なのは、パソコンなどが最新のWi-Fi6に対応していても接続先のWi-Fiルーターが対応していないと接続してもWi-Fi5での通信になったりします。

周波数による特徴は次の通りです。

周波数帯 特徴
5GHz ・障害物に弱い
・同一の周波数帯を使用する機器がないため、電波干渉が少ない
2.4GHz ・障害物に強い
・電子レンジ・無線キーボード・マウス・Bluetoothなどと干渉しやすい
・屋内・屋外共に利用可能。

※Wi-Fi Alliance(アメリカ合衆国に本拠を置く業界団体)によって、国際標準規格であるIEEE 802.11規格を使用したデバイス間の相互接続が認められたことを示す名称です。

 

Wi-Fiルーターとは?

Wi-Fiルータとは、パソコンやスマホなど複数の端末をインターネットに接続するための装置です。インターネット側「WAN」と宅内側「LAN」という異なるネットワークを相互接続する交換機のようなものです。

インターネット回線を契約するとONUという回線終端装置をつけてもらえますが、その装置にWi-Fiルータを接続して使います。基本的にパソコンやタブレットなどの機器は、Wi-Fiルータに接続させます。

代表的なWi-Fiルータは、I/OデータかBUFFALOでしょう。
以下の製品は最新のWi-Fi6に対応しているようです。しかも有線LANが10Gbps対応のものがついています。

最新のWi-Fi6対応ルータ(2021年4月時点)

I-O DATA WiFi 無線LAN ルーター WN-DAX3600XR
(有線)
ポート×1:10Gbps/5Gbps/2.5Gbps/1Gbps/100Mbps
ポート×4:1Gbps/100Mbps/10Mbps
(Wi-Fi)
IEEE802.11ax Draft、IEEE802.11ac、IEEE802.11n、IEEE802.11a、IEEE802.11g、IEEE802.11b
(無線LANセキュリティ)
WPA2-PSK (AES)、WPA3-SAE、WPA3-SAE Transition
※接続台数:推奨32台Amazonで確認
バッファロー WiFi ルーター WXR-6000AX12S/N
(有線)
ポート×1:最大10Gbps
ポート×3:最大1Gbps
(Wi-Fi)
IEEE 802.11ax、IEEE 802.11ac、IEEE 802.11n、
IEEE 802.11a、IEEE 802.11g、IEEE 802.11b : 11Mbps
(無線LANセキュリティ)
WPA3 Personal、WPA2 Personal、WPA/WPA2 Personal、
WPA2/WPA3 Personal、WEP(128-bit / 64-bit)Amazonで確認

 

Wi-Fiに対応したコンピュータを選ぼう

パソコンをWifi環境に接続するためには、接続するWifi規格に対応したパソコンでないといけませんよね?

Arduinoでプログラミングできるコンピュータの中には、Wifi規格に対応した(機能がついている)ものと対応していない(機能がついていない)ものがあります。ArduinoでプログラミングできるコンピュータのWi-Fi対応状況は確認してくださいね。

今回の記事で紹介しているやり方は以下の機器で検証を行っています。

製品 Wifi機能有無 対応規格 本記事の動作確認状況
M5StickC あり 802.11 b/g/n
802.11 n (2.4 GHz), up to 150 Mbps
検証済み
(ESP32-PICO)

 

Wi-Fi機能付きのArduino対応コンピュータ

M5StickC

M5StickC

Amazonで確認

評価: 4.5
価格: 4.0
げんろく
げんろく

ディスプレイ付きのマイコンです。非常に使い勝手がいいサイズと機能で以下のメリットがあります。

  • 基板むき出しでなくケースいり。
  • ディスプレイ搭載のため単体で使える。(80×160)
  • Arduinoでの開発も可能(開発例も多い)
  • WifiとBluetoothが標準搭載済み非常に小さい(48×25×14 mm)
  • 6軸センサーも搭載されている

パソコンとの接続も専用装置などが必要なくUSBーCケーブルで接続するだけでプログラミングが開始できるので、IoTや組み込みのプログラミング初級機として、おすすめです。

※私もこれでデビューしました。

 

Wi-Fi接続してみよう!

コンピュータをWi-Fi接続するプログラムを作成します。

Wi-Fi接続するプログラム.

Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。

 Arduino IDE スケッチ例

 M5StickCへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、M5StickCであるか確認します。
    この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  3. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。
  4. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 

 プログラム実行結果

シリアルモニタ上に以下の通り表示されれば成功です。

Connecting to your-ssid
...............
WiFi connected
IP address: 
192.xxx.xxx.xxx
Disconnect from WiFi
.
WiFi disconnected

 

さて、これでWi-Fi環境に接続することができました。今回の記事は以上になります。
次回は、今回のWi-Fi接続のプログラムで記述したアクセスポイント情報をM5StickCに事前に保存し、Wi-Fi接続時に読みだして使用する方法を記載します。

 

これからはじめる方にお勧めの参考図書はこちら!