この記事の結論
- Arduino Uno R4 WiFiは、通信用のESP32-S3チップを内蔵し、追加部品なしでWi-Fi・Bluetoothが使えるモデル
- 通常のUno R4 Minimaより価格は上がるが、スマホ操作やセンサー値の遠隔確認といったIoT工作に対応できる
- スマホからLEDを操作する程度なら、難しいネットワーク設定は不要でWi-Fi標準ライブラリだけで実現できる
- 2.4GHz帯のWi-Fiにのみ対応しており、5GHz専用に設定したルーターでは接続できない点に注意
「Arduinoでスマホから家電やLEDを操作できたら便利そう」と考えたことがある人は多いはずです。
実は、通常のArduino Unoに無線通信の機能はなく、そのままではスマホと連携できません。
そこで登場するのが、Wi-Fi機能を最初から内蔵した「Arduino Uno R4 WiFi」です。
この記事では、Arduino Uno R4 WiFiがどんなボードなのか、IoT工作で何ができるのか、そして最初の一歩となるWi-Fi接続の考え方までを整理します。
Arduino Uno R4 WiFiとは何か、通常モデルとの違い
ESP32-S3コプロセッサの役割
Arduino Uno R4 WiFiは、2023年発売のUno R4シリーズのうち、無線通信機能を搭載したモデルです。
基板の中には、メインの処理を担当する「RA4M1」というチップに加えて、Wi-FiとBluetoothの通信だけを専門に担当する「ESP32-S3」という別のチップが載っています。
この役割分担のおかげで、外付けのWi-Fiモジュールを別途購入して配線する手間がなく、ボード1枚だけで通信を扱えます。
Uno R4 Minimaとの価格・機能差
Uno R4シリーズには、無線機能を持たない「Uno R4 Minima」と、この記事で扱う「Uno R4 WiFi」の2種類があります。
Uno R4 WiFiには、無線通信機能に加えて、基板上に12×8のLEDマトリクスが内蔵されているという特徴もあります。
そのぶん価格は、Minimaより高めに設定されています。
2つのモデルの違いや価格帯は、Arduinoスターターキットの選び方の記事でも整理しているので、購入前にあわせて確認してみてください。

紹介した商品:Arduino Uno R4 WiFi
Arduino Uno R4 WiFi【日本純正品】ABX00087
この記事で紹介したIoT工作に使う、Wi-Fi機能内蔵の純正ボードです。
Amazon ¥4,898
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
Arduino Uno R4 WiFiでできるIoT工作の具体例
スマホから家電・LEDを操作する
もっとも取り組みやすいのが、スマホのWebブラウザからArduinoに接続して、LEDのオン・オフを切り替える工作です。
Arduino自体が簡易的なWebサーバーになり、スマホからボタンを押すとその指示がArduinoに届く、という仕組みです。
LEDを接続していた出力ピンにリレーモジュールの制御入力(IN)をつなぎ替えれば、コンセントに差した家電のオン・オフをスマホから切り替える工作にも発展できます。
配線には、Arduinoとブレッドボードをジャンパー線でつなぐ基本の要領がそのまま使えます。
ジャンパー線・ブレッドボードの扱いに不安がある場合は、ブレッドボードの使い方の記事を先に確認しておくとスムーズです。
AC100V(家庭のコンセントの電源)を扱う工作は、感電や火災の危険があるため注意が必要です。
電子工作に慣れないうちは、まずはUSB機器や電池駆動の機器などAC100Vを使わないものでリレーの動作を試すことをおすすめします。
AC100Vを扱う工作に挑戦する場合は、電気工事に関する知識がある人に相談するか、専門の解説書で手順を確認したうえで進めてください。

紹介した商品:リレーモジュール(KY-019)
KY-019リレーモジュールボード5V 1チャンネル for Arduino デュポンケーブル付き(5個セット)
本文で紹介したLED出力ピンからの制御入力(IN)をつなぎ替えるだけで使える1チャンネルタイプです。
Amazon ¥749(5個セット)
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
センサーの値をスマホに通知する
逆方向の使い方として、Arduinoが測定したセンサーの値をネットワーク経由で送信する工作もあります。
たとえば、温湿度センサー(DHT11・DHT22)で測った気温・湿度をWi-Fi経由でスマホに表示すれば、外出先から部屋の状態を確認できます。
「操作する」「知らせる」のどちらの方向にも使えるのが、Wi-Fi対応ボードの強みです。
Wi-Fi接続の基本設定
WiFiS3ライブラリを使う
Uno R4 WiFiでWi-Fi通信を行う際は、ボードマネージャでUno R4のボードを追加すると一緒にインストールされる「WiFiS3」というライブラリを使います。

Arduino IDEのインストールがまだの場合は、Arduino IDEのインストール・初期設定の記事を先に確認してください。
接続の基本的な流れは、次のようになります。
#include <WiFiS3.h>
char ssid[] = "自宅のWi-Fi名(SSID)";
char pass[] = "自宅のWi-Fiパスワード";
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("接続完了");
Serial.println(WiFi.localIP());
}
void loop() {
}
WiFi.begin関数にSSID(Wi-Fiの名前)とパスワードを渡すと、自動でルーターへの接続を試みます。
接続できたかどうかは、シリアルモニタに表示されるIPアドレスで確認できます。
SSID・パスワードをコードに書き込む際の注意点
SSIDとパスワードは、上記のようにコードへ直接書き込むのが基本ですが、このコードをそのままSNSや外部サービスに公開しないよう注意してください。
スケッチをブログやGitHubで共有する予定がある場合は、SSID・パスワードの部分を伏せ字にするか、別ファイルに分けて管理する方法があります。
また、多くの家庭用ルーターは2.4GHzと5GHzの両方の電波を出していますが、Uno R4 WiFiが対応しているのは2.4GHz帯のみです。
スマホの設定画面で見えるWi-Fi名が「〜-5G」のように5GHz用の名前だった場合は、同じルーターの2.4GHz用の名前(SSID)を確認してから接続を試してください。
スマホからLEDを操作する簡単なデモの流れ
Wi-Fiへの接続が確認できたら、次はスマホから操作できる簡易サーバーを作ってみましょう。
WiFiS3ライブラリには「WiFiServer」というクラスが用意されていて、Arduinoを簡易的なWebサーバーとして動かせます。
大まかな流れは、「①スマホのブラウザでArduinoのIPアドレスにアクセスする」「②ArduinoがそのアクセスをHTTPリクエストとして受け取る」「③リクエストの中身を読み取ってLEDのオン・オフを切り替える」の3ステップです。
HTTPリクエストの中身を細かく解析する部分はやや複雑になるため、初めては公式のサンプルスケッチ(WiFiWebServerなど)をそのまま使い、動きを確認してから少しずつ書き換えていく進め方がおすすめです。
公式のサンプルスケッチは、Arduino IDEのメニューから「ファイル→スケッチ例→WiFiS3」で開くことができます。
まずはサンプルをそのまま書き込み、スマホのブラウザで動作を確認してから、LEDの配線ピンやページの表示内容を自分好みに変更していくと理解が進みやすくなります。

つまずきやすいポイント
Wi-Fi関連の工作は、配線のトラブルとは違う種類のつまずきが起きやすい分野です。
Q. WiFi.status()がずっとWL_CONNECTEDにならず、接続に失敗し続けます。
A. まずSSID・パスワードの入力ミス(全角文字が混ざっていないか)を確認し、次にルーターが5GHz専用モードになっていないかを見直してください。
それでも解決しない場合は、ルーターの近くでもう一度試し、電波強度が問題になっていないか切り分けましょう。
会社やカフェなど、自分でルーターの設定を変更できないWi-Fi環境では、セキュリティ制限によって接続できないことがあります。
IoT工作の練習は、自宅の自分で管理できるWi-Fi環境で行うのが基本です。
スマホのブラウザからIPアドレスにアクセスしても画面が表示されない場合は、スマホとArduinoが同じWi-Fiルーターに接続されているかを再確認してください。
スマホが自宅Wi-Fiではなくモバイルデータでインターネットにつながっていると、Arduinoの簡易サーバーには届きません。
まとめ:IoT工作を始める前のチェックリスト
Arduino Uno R4 WiFiでIoT工作に取りかかる前に、以下の点がなんとなくつかめているか確認してみてください。
- Uno R4 WiFiがESP32-S3という通信専用チップを内蔵していることが、なんとなくわかっている
- 自宅ルーターの2.4GHz用SSIDとパスワードが、すぐに確認できる状態になっている
- 「操作する」「知らせる」の2方向の使い方があることが、だいたいイメージできている
- 接続に失敗しても、SSID入力ミス・5GHz問題・Wi-Fi環境の3点から切り分けられる見当がついている


コメント