注目キーワード

【Arduino】Raspberry Pi Pico W をArduinoでプログラミング!「Wi-Fi」接続する

すけろく
Raspberry Pi Pico W がArduinoで
プログラムを書き込めることは確認できた。
げんろく
ああ。無事、初回書き込みが出来て、
COMポートとしても認識されたな。
すけろく
次は、Raspberry Pi Pico W の特徴である
Wi-Fi接続してみたいな。
げんろく
よし、今度はWi-Fi接続してみるか。
今回は記事では、「Raspberry Pi Pico W」をArduinoでプログラミングして、Wi-Fi接続してみます。
Wi-Fi接続の方法を確立することで、インターネットとの連携を取ったプログラミングも可能となります。
この記事の前提となる「Raspberry Pi Pico W」のはじめかたについては、次の記事で紹介しています。
関連記事

すけろく ついに、国内でもRaspberry Pi Pico Wを手に入れたぞ! げんろく Wi-Fiモジュールがついているので、 国内の技適取得が必要だったからな。 すけろ[…]

記事内でご紹介する「Raspberry Pi Pico W」はこちら!

ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,190 (2024/04/16 12:31:40時点 Amazon調べ-詳細)
ピンヘッダを自分ではんだ付けするもの
created by Rinker
Raspberrypi
¥1,656 (2024/04/16 03:26:11時点 Amazon調べ-詳細)

Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

Wi-Fi接続するには?

 Wi-Fiとは?

まず、Wi-Fiとは何かですが、無線LANに関する登録商標(※)です。

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

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

 Wi-Fiの規格にはどんなものがある?

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

無線LAN規格 通信速度 周波数帯
IEEE802.11be EHT(Wi-Fi 7) 46Gbps 2.4GHz・5GHz・6GHz帯
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-F6です。最近の最新パソコンや、タブレット、スマートフォンには、Wi-Fi6に対応しているものが出てきています。

「WiFi 7」は、IEEE 802.11be Extremely High Throughput (EHT)とも呼ばれる次世代のWiFi規格です。

2.4GHz・5GHz・6GHzの3帯域全てを利用できます。

WiFi 6は世界中で増加するデバイス数に対応するための規格でしたが、WiFi 7は全デバイスに超高速通信をもたらすための規格です。

度重なる読み込み、通信の遅延や混雑。こうしたこれまでの悩みは、WiFi 7ルーターが解決できるかもしれません。

 Wi-Fiの周波数による特徴は?

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

周波数帯 特徴
6GHz ・帯域幅が広く混雑が少ないため、より安定した通信が可能になるのが最大のメリット。
5GHz ・障害物に弱い
・同一の周波数帯を使用する機器がないため、電波干渉が少ない
2.4GHz ・障害物に強い
・電子レンジ・無線キーボード・マウス・Bluetoothなどと干渉しやすい
・屋内・屋外共に利用可能。

 Raspberry Pi PicoWi-Fiで使えるWi-Fi規格は?

Raspberry Pi Pico W」が対応しているWi-Fiの規格は次の通りです。
対応規格 : 2.4GHz 802.11 b/g/n
先ほど紹介した規格のうち、2.4GHz帯を使う形となります。
お使いのWi-Fiルータを確認しましょう!

Wi-Fiルーターとは?

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

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

代表的なWi-Fiルータは、I/OデータかBUFFALOでしょう。

以下の製品は最新のWi-Fi6に対応しているようです。しかも有線LANが10Gbps対応のものがついています。

Wi-Fi 6 対応製品の中には、6GHz帯に対応しているものもあります。Wi-Fi 7に対応している製品は今後販売予定となっています。

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

(有線)
ポート×1:10Gbps/5Gbps/2.5Gbps/1Gbps/100Mbps
ポート×4:1Gbps/100Mbps/10Mbps
(Wi-Fi)
IEEE802.11ax、IEEE802.11ac、IEEE802.11n、IEEE802.11a、IEEE802.11g、IEEE802.11b
(無線LANセキュリティ)
WPA2-PSK (AES)、WPA3-SAE、WPA3-SAE Transition
※接続台数:推奨44台

(有線)
ポート×1:最大10Gbps
ポート×3:最大1Gbps
(Wi-Fi)
IEEE 802.11ax、IEEE 802.11ac、IEEE 802.11n、
IEEE 802.11a、IEEE 802.11g、IEEE 802.11b
(無線LANセキュリティ)
WPA3 Personal、WPA2 Personal、WPA/WPA2 Personal、
WPA2/WPA3 Personal、WEP(128-bit / 64-bit)

 Wi-Fi接続するためには

Wi-Fi接続する際には、アクセスポイント(ルーター側)の情報(「SSID」と「パスワード」)が必要です。
今回の記事では、プログラム内でアクセスポイント情報(「SSID」と「パスワード」)を記述して、「Raspberry Pi Pico W」へ書き込み実行しています。
Raspberry Pi Pico W」のチップ「RP2040」には不揮発性メモリは内蔵されていないため、NVS(不揮発性メモリ)にを記憶させることはできません。

Raspberry Pi Pico WをWi-Fi接続させてみよう!

Wi-Fi接続を行うプログラムを実行してみます。

この手順を行う際には、事前に「Raspberry Pi Pico W」に対して、Arduino IDEで初回書き込みを行い、COMポートとして認識させておく必要があります。

「Raspberry Pi Pico W」への初回書き込みついては、次の記事を参照してください。
関連記事

すけろく ついに、国内でもRaspberry Pi Pico Wを手に入れたぞ! げんろく Wi-Fiモジュールがついているので、 国内の技適取得が必要だったからな。 すけろ[…]

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

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

 Arduino IDE スケッチ例

 Raspberry Pi Pico Wへの書き込み

2回目以降

  1.  Raspberry Pi PicoをパソコンにUSB接続します。
  2.  Arduino IDEで前述のプログラムを記載して、 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  3. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
    「Raspberry Pi Pico/RP2040」-「Raspberry Pi Pico W」
  4. 「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  5. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「9600」です)
  6. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

プログラム実行結果

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

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

編集後記

いかがだったでしょうか。

Arduino でも、WiFi接続を無事行うことができました。

ただ、プログラムとしては、切断状態で、「WiFi.status()」の値が「0」になっていました。

これは、M5Stackなどのプログラムでは「ステータス変化中」と同じ数値になります。

今回のプログラムでは、「0」の状態で、パソコンから「Raspberry Pi Pico W」のIPアドレスにアクセスできないことを確認できましたので、「0」を切断状態と判断するようにしています。

Raspberry Pi Pico W」のプログラミングといえば、「microPython」と考えていましたが、Arduino IDEでプログラムできるとうれしいです。

これで、他のマイコンと同じArduino IDEで開発できます!

Raspberry Pi Pico W」と同じRP2040というチップを搭載している機器にも使えるので応用ができそうです。

記事は、以上になります。

最後までご覧いただきありがとうございました。

記事内でご紹介する「Raspberry Pi Pico W」はこちら!

ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,190 (2024/04/16 12:31:40時点 Amazon調べ-詳細)
ピンヘッダを自分ではんだ付けするもの
created by Rinker
Raspberrypi
¥1,656 (2024/04/16 03:26:11時点 Amazon調べ-詳細)

Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

「Raspberry Pi Pico W」のその他の記事はこちら!

すけろく うーむ。 どうしたものか。 げんろく どうした。 暗い顔をして。 すけろく カーモデルのウィンカー点滅を再現したくてな。 明滅回路を作ろうか悩んでおる。 げんろく ん!? そんなときは、メインプロセッサと切り離して 動作するPIOの出番ではないのか! この記事では、「Raspberry Pi  Pico/W」に実装されている「PIO(Programmable I/O」を実際に使ってみます […]

すけろく Raspberry Pi Pico/WのPIO機能を使ってUARTの送信には成功した。 しかし、まだ受信側ができていないのぉ。 げんろく そうだな。 今度は受信側を試してみるか。 すけろく どうせなら、パソコンから送った文字を返すような やり取りができるといいな。 げんろく よし。 UART送受信を実装してみよう。 この記事では、「Raspberry Pi  Pico/W」に実装されてい […]

すけろく Raspberry Pi Pico/WのPIO機能については前回調べた。 今度は実際に使ってみたいの~ げんろく そうだな。 実際にプログラムする際の注意事項などを見ていこう。 すけろく Arduino IDEでも使用できるのか? げんろく ああ。 使えるぞ! Arduino IDEで使う場合を例にやっていこう。 この記事では、「Raspberry Pi  Pico/W」に実装されている […]

すけろく Raspberry Pi Pico/Wには、PIOという機能があるらしいな。 げんろく そうだ。 UARTなどのインタフェース不足や、実装されていない機能を GPIOに対してプログラムできる機能だ。 すけろく Raspberry Pi Pico/Wをもっと知るために PIOを調べてみたい。 げんろく よし! PIOについて少し調べてみるか! この記事では、「Raspberry Pi  P […]

すけろく うーむ。 げんろく どうした浮かない顔して。 すけろく これまで、Raspberry Pi Pico / Wをいろいろ確認してきたが 外付けのボタンの認識ってやったかぇ? げんろく たしかに!まだ取り上げていない基本的なものがあるな よし、今回はボタン押下時の状態を Raspberry Pi Pico / Wで認識してみよう。 この記事では、「Raspberry Pi  Pico W」を […]

すけろく 宅内で使っているリモコンは、どういった仕組みで テレビなどをつけているのかな~? げんろく 赤外線を使って信号を送っているのだ。 すけろく しかし、たくさんある機器のリモコンが混信しないのは どういった仕組みなのかぇ? げんろく よし、今回は赤外線リモコンの通信を 調査してみるか! この記事では、「Raspberry Pi  Pico W」を使って、「赤外線リモコンの通信内容を分析する」 […]

すけろく うーむ。 対応付けが難しいな。 げんろく どうした? Raspberry Pi Picoで悩んでいるようだな。 すけろく Raspberry Pi PicoやPico Wの GPIOピンの情報がボード上にプリント されていないから資料との対応付けがやりづらくてな。 げんろく そうか。そういう課題があるのだな。 よし、解決するグッツを作って提供してみよう! 皆さんは、「Raspberry […]

すけろく うーむ。 モーターを毎回同じくらい回転させることはできんのかな。 げんろく DCモーターや、サーボモーターだと、 回転量を正確に制御することは難しいぞ。 すけろく では、何か解決策はあるのかぇ? げんろく ステッピングモーターというものがある。 モーターの回転をステップとして制御できる。 今回はこのあたりを動かしてみるか。 この記事では、「Raspberry Pi  Pico W」を使っ […]

すけろく 以前の記事で、Raspberry Pi Pico Wを Picoprobe経由でデバッグすることができた。 しかし、シリアルの入出力がArduino IDEで 読み込めないのだ。 げんろく そうだな。 Raspberry Pi PicoやRaspberry Pi Pico Wでは、 シリアル出力用の「Serial.println」では、 Picoprobe経由で取得できない。 すけろく […]

すけろく ん~。 このエラーの時の変数の値が知りたいな~ げんろく どうした? プログラムがうまく動かないのか? すけろく そうなのだ。 Raspberry Pi Pico Wでもデバック機能が使えると いいのだが。。。 げんろく ちなみに、Arduino IDE 2.1.0 のデバッグ機能で Raspberry Pi Pico / Wのデバッグができるぞ! やっとできたプログラムを動かしてみると […]