<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=Arduino%E3%81%AE%E5%9F%BA%E7%A4%8E_-_Wi-Fi</id>
	<title>Arduinoの基礎 - Wi-Fi - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=Arduino%E3%81%AE%E5%9F%BA%E7%A4%8E_-_Wi-Fi"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Arduino%E3%81%AE%E5%9F%BA%E7%A4%8E_-_Wi-Fi&amp;action=history"/>
	<updated>2026-09-09T06:24:04Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=Arduino%E3%81%AE%E5%9F%BA%E7%A4%8E_-_Wi-Fi&amp;diff=12684&amp;oldid=prev</id>
		<title>Wiki: /* 概要 */</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Arduino%E3%81%AE%E5%9F%BA%E7%A4%8E_-_Wi-Fi&amp;diff=12684&amp;oldid=prev"/>
		<updated>2024-12-09T21:55:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;概要&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2024年12月10日 (火) 06:55時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 概要 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 概要 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Arduino UNO R4 Wifiは、統合されたWi-Fiモジュールを搭載しており、WiFiS3.hライブラリを使用してWi-Fi接続を実現する。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;u&amp;gt;2.4GHz帯のWi-Fi通信をサポートしており、IEEE 802.11 b/g/nの規格に対応している。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Wi-Fi接続の基本的な流れを以下に示す。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# まず、SSIDとパスワードを設定する。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# 次に、WiFi.beginメソッドを使用して接続を開始する。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# 接続状態はWiFi.statusメソッドで確認可能であり、WL_CONNECTEDという状態コードで接続成功を判断することができる。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;エラーハンドリングにおいて、接続処理ではWi-Fiモジュールの存在確認から始まり、接続タイムアウト、再試行の制御、接続後の状態監視まで、様々なエラー状態に対応する必要がある。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;特に、不安定なネットワーク環境では、接続が突然切れる可能性があるため、定期的な接続状態の確認と再接続処理の実装が推奨される。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;セキュリティにおいては、WEP、WPA、WPA2、WPA3等の暗号化方式をサポートしているが、最新のセキュリティ規格であるWPA3の使用が推奨される。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;また、Wi-FiのSSIDとパスワードはソースコード内でハードコーディングせずに、外部設定ファイルや環境変数として管理することが望ましい。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Wi-Fi接続後は、IPアドレスの取得や信号強度 (RSSI) の確認が可能である。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;これらの情報は、WiFi.localIPメソッドおよびWiFi.RSSIメソッドで取得することが可能である。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;特に、ネットワークの品質モニタリングには、RSSIの値を定期的に確認することが有効である。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;デバッグ時においては、シリアルモニタを活用することにより、接続プロセスの各段階での状態確認が可能である。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;接続の試行回数、タイムアウト時間、再接続のインターバル等のパラメータは、環境に応じて適切に調整する。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;実務では、HTTPクライアント、WebSocketクライアント、MQTTクライアント等で使用されることが多い。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;また、省電力設計も考慮する必要がある。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;u&amp;gt;Wi-Fi通信は比較的電力を消費するため、必要に応じてスリープモードの活用、接続頻度の最適化を検討することが推奨される。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mochiuwiki:diff:1.41:old-12683:rev-12684:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=Arduino%E3%81%AE%E5%9F%BA%E7%A4%8E_-_Wi-Fi&amp;diff=12683&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == &lt;br&gt;&lt;br&gt;  == Wi-Fiモジュールの存在の確認 == シリアル通信を9600[bps]〜115200[bps]で初期化する。&lt;br&gt; Wi-Fiモジュールの存在を確認して、見つからない場合はエラーとする。&lt;br&gt; &lt;br&gt; また、必要であれば、Wi-Fiファームウェアバージョンを確認する。&lt;br&gt; &lt;br&gt;  &lt;syntaxhighlight lang=&quot;c++&quot;&gt;  #include &lt;WiFiS3.h&gt;    Serial.begin(115200);    // シリアル通信の初期化が完了する…」</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Arduino%E3%81%AE%E5%9F%BA%E7%A4%8E_-_Wi-Fi&amp;diff=12683&amp;oldid=prev"/>
		<updated>2024-12-09T21:48:13Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;  == Wi-Fiモジュールの存在の確認 == シリアル通信を9600[bps]〜115200[bps]で初期化する。&amp;lt;br&amp;gt; Wi-Fiモジュールの存在を確認して、見つからない場合はエラーとする。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; また、必要であれば、Wi-Fiファームウェアバージョンを確認する。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;  &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;  #include &amp;lt;WiFiS3.h&amp;gt;    Serial.begin(115200);    // シリアル通信の初期化が完了する…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wi-Fiモジュールの存在の確認 ==&lt;br /&gt;
シリアル通信を9600[bps]〜115200[bps]で初期化する。&amp;lt;br&amp;gt;&lt;br /&gt;
Wi-Fiモジュールの存在を確認して、見つからない場合はエラーとする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、必要であれば、Wi-Fiファームウェアバージョンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 #include &amp;lt;WiFiS3.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Serial.begin(115200);&lt;br /&gt;
 &lt;br /&gt;
 // シリアル通信の初期化が完了するまで待機&lt;br /&gt;
 delay(2000);&lt;br /&gt;
 &lt;br /&gt;
 // Wi-Fiモジュールの状態の確認&lt;br /&gt;
 if (WiFi.status() == WL_NO_MODULE) {&lt;br /&gt;
   Serial.println(&amp;quot;エラー : Wi-Fiモジュールが見つかりません&amp;quot;);&lt;br /&gt;
   while (true);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Wi-Fiファームウェアのバージョンの確認&lt;br /&gt;
 String fv = WiFi.firmwareVersion();&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wi-Fiの接続 ==&lt;br /&gt;
Wi-Fiの接続を行う場合は、試行回数の管理を行うことを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、最大試行回数までの接続をリトライおよび各試行間に待機時間を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wi-Fiの接続において、タイムアウト処理を行うことが重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、各接続試行に対して最大待機時間を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
必要であれば、接続状態の確認と情報を表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 接続成功時&lt;br /&gt;
*: IPアドレスとRSSI (信号強度) の表示する。&lt;br /&gt;
* 接続失敗時&lt;br /&gt;
*: エラーメッセージを表示して再試行する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、エラーハンドリングを実装することも重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
* Wi-Fiモジュールの状態確認&lt;br /&gt;
* 接続タイムアウトの処理&lt;br /&gt;
* 最大試行回数超過時の処理&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wi-Fiの接続に使用するWiFiS3.hのメソッドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* WiFi.beginメソッド&lt;br /&gt;
*: Wi-Fiの接続を開始する。&lt;br /&gt;
* WiFi.statusメソッド&lt;br /&gt;
*: 現在の接続状態を取得する。&lt;br /&gt;
* WiFi.localIPメソッド&lt;br /&gt;
*: 割り当てられたIPアドレスを取得する。&lt;br /&gt;
* WiFi.RSSIメソッド&lt;br /&gt;
*: 信号強度を取得する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、WiFi.statusメソッドで取得可能なWi-Fiの状態コードを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* WL_NO_MODULE&lt;br /&gt;
*: Wi-Fiモジュールが見つからない&lt;br /&gt;
* WL_CONNECTED&lt;br /&gt;
*: Wi-Fiの接続に成功&lt;br /&gt;
* その他の状態&lt;br /&gt;
*: 接続試行中、接続失敗等&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 #include &amp;lt;WiFiS3.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // Wi-Fi接続情報&lt;br /&gt;
 const char *SSID = &amp;quot;&amp;lt;Wi-FiのSSID&amp;gt;&amp;quot;;      // 使用するWi-FiのSSID&lt;br /&gt;
 const char *PASS = &amp;quot;&amp;lt;Wi-Fiのパスワード&amp;gt;&amp;quot;;  // 使用するWi-Fiのパスワード&lt;br /&gt;
 &lt;br /&gt;
 // 接続試行の最大回数とタイムアウト時間&lt;br /&gt;
 const int MAX_ATTEMPTS      = 5;      // Wi-Fi接続の最大試行回数&lt;br /&gt;
 const unsigned long TIMEOUT = 10000;  // タイムアウト時間 (ミリ秒)&lt;br /&gt;
 &lt;br /&gt;
 void connectToWiFi()&lt;br /&gt;
 {&lt;br /&gt;
    int attempts = 0;&lt;br /&gt;
 &lt;br /&gt;
    while (WiFi.status() != WL_CONNECTED &amp;amp;&amp;amp; attempts &amp;lt; MAX_ATTEMPTS) {&lt;br /&gt;
       Serial.print(&amp;quot;Wi-Fi接続を試行中...&amp;quot;);&lt;br /&gt;
       WiFi.begin(SSID, PASS);&lt;br /&gt;
 &lt;br /&gt;
       unsigned long startTime = millis();&lt;br /&gt;
       while (WiFi.status() != WL_CONNECTED &amp;amp;&amp;amp; (millis() - startTime) &amp;lt; TIMEOUT) {&lt;br /&gt;
          delay(500);&lt;br /&gt;
          Serial.print(&amp;quot;.&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       if (WiFi.status() == WL_CONNECTED) {&lt;br /&gt;
          // 接続成功時の処理&lt;br /&gt;
          Serial.println(&amp;quot;Wi-Fi接続に成功しました！&amp;quot;);&lt;br /&gt;
          Serial.print(&amp;quot;IPアドレス: &amp;quot;);&lt;br /&gt;
          Serial.println(WiFi.localIP());&lt;br /&gt;
 &lt;br /&gt;
          return;&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
          // 接続失敗時の処理&lt;br /&gt;
          attempts++;&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wi-Fiの接続後の処理 ==&lt;br /&gt;
Arduinoのメインループ処理において、任意の指定時間ごとにWi-Fiの接続状態を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wi-Fiの接続が切断されている場合は自動的に再接続を試みることにより、継続的な接続監視を実現することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 #include &amp;lt;WiFiS3.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 if (WiFi.status() != WL_CONNECTED) {&lt;br /&gt;
    Serial.println(&amp;quot;Wi-Fi接続が切断されました&amp;quot;);&lt;br /&gt;
    Serial.println(&amp;quot;再接続を試みます&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    // Wi-Fiの再接続&lt;br /&gt;
    connectToWiFi();&lt;br /&gt;
 &lt;br /&gt;
    // 任意の待機時間&lt;br /&gt;
    delay(2000);&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 (Wi-Fiの接続) ==&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 #include &amp;lt;WiFiS3.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // Wi-Fi接続情報&lt;br /&gt;
 const char *SSID = &amp;quot;&amp;lt;Wi-FiのSSID&amp;gt;&amp;quot;;      // 使用するWi-FiのSSID&lt;br /&gt;
 const char *PASS = &amp;quot;&amp;lt;Wi-Fiのパスワード&amp;gt;&amp;quot;;  // 使用するWi-Fiのパスワード&lt;br /&gt;
 &lt;br /&gt;
 // 接続試行の最大回数とタイムアウト時間&lt;br /&gt;
 const int MAX_ATTEMPTS      = 5;      // Wi-Fi接続の最大試行回数&lt;br /&gt;
 const unsigned long TIMEOUT = 10000;  // タイムアウト時間（ミリ秒）&lt;br /&gt;
 &lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
    // シリアル通信の初期化&lt;br /&gt;
    Serial.begin(115200);&lt;br /&gt;
 &lt;br /&gt;
    // 起動時の待機時間&lt;br /&gt;
    delay(2000);&lt;br /&gt;
 &lt;br /&gt;
    Serial.println(&amp;quot;Arduino UNO R4 WiFi 接続プログラムを開始します&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    // Wi-Fiモジュールの状態確認&lt;br /&gt;
    if (WiFi.status() == WL_NO_MODULE) {&lt;br /&gt;
      Serial.println(&amp;quot;エラー : Wi-Fiモジュールが見つかりません&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
      // エラーが発生した場合は無限ループで停止&lt;br /&gt;
      while (true);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // Wi-Fiファームウェアのバージョン確認&lt;br /&gt;
    String fv = WiFi.firmwareVersion();&lt;br /&gt;
    Serial.print(&amp;quot;Wi-Fiファームウェアバージョン : &amp;quot;);&lt;br /&gt;
    Serial.println(fv);&lt;br /&gt;
 &lt;br /&gt;
    // Wi-Fi接続の実行&lt;br /&gt;
    connectToWiFi();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
    // Wi-Fi接続状態の監視&lt;br /&gt;
    if (WiFi.status() != WL_CONNECTED) {&lt;br /&gt;
       Serial.println(&amp;quot;Wi-Fi接続が切断されました&amp;quot;);&lt;br /&gt;
       Serial.println(&amp;quot;再接続を試みます&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
       connectToWiFi();&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // その他のメインループ処理をここに記述&lt;br /&gt;
  &lt;br /&gt;
    delay(10000);  // 10秒ごとにWi-Fiの接続状態の確認&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Wi-Fi接続を行う関数&lt;br /&gt;
 void connectToWiFi()&lt;br /&gt;
 {&lt;br /&gt;
    int attempts = 0;&lt;br /&gt;
 &lt;br /&gt;
    // Wi-Fiの接続が確立されるまで、または、最大試行回数に達するまで繰り返す&lt;br /&gt;
    while (WiFi.status() != WL_CONNECTED &amp;amp;&amp;amp; attempts &amp;lt; MAX_ATTEMPTS) {&lt;br /&gt;
       Serial.print(&amp;quot;Wi-Fi接続を試行中... (&amp;quot;);&lt;br /&gt;
       Serial.print(attempts + 1);&lt;br /&gt;
       Serial.print(&amp;quot;/&amp;quot;);&lt;br /&gt;
       Serial.print(MAX_ATTEMPTS);&lt;br /&gt;
       Serial.println(&amp;quot;)&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
       // Wi-Fi接続の開始&lt;br /&gt;
       WiFi.begin(SSID, PASS);&lt;br /&gt;
 &lt;br /&gt;
       // 接続完了またはタイムアウトまで待機&lt;br /&gt;
       unsigned long startTime = millis();&lt;br /&gt;
       while (WiFi.status() != WL_CONNECTED &amp;amp;&amp;amp; (millis() - startTime) &amp;lt; TIMEOUT) {&lt;br /&gt;
          delay(500);&lt;br /&gt;
          Serial.print(&amp;quot;.&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       Serial.println();&lt;br /&gt;
 &lt;br /&gt;
       if (WiFi.status() == WL_CONNECTED) {&lt;br /&gt;
          // 接続成功時の処理&lt;br /&gt;
          Serial.println(&amp;quot;Wi-Fiの接続に成功&amp;quot;);&lt;br /&gt;
          Serial.print(&amp;quot;IPアドレス : &amp;quot;);&lt;br /&gt;
          Serial.println(WiFi.localIP());&lt;br /&gt;
          Serial.print(&amp;quot;信号強度 (RSSI) : &amp;quot;);&lt;br /&gt;
          Serial.print(WiFi.RSSI());&lt;br /&gt;
          Serial.println(&amp;quot; dBm&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
          return;&lt;br /&gt;
       }&lt;br /&gt;
       else {&lt;br /&gt;
          // 接続失敗時の処理&lt;br /&gt;
          Serial.println(&amp;quot;Wi-Fiの接続に失敗&amp;quot;);&lt;br /&gt;
          attempts++;&lt;br /&gt;
 &lt;br /&gt;
          if (attempts &amp;lt; MAX_ATTEMPTS) {&lt;br /&gt;
             Serial.println(&amp;quot;5秒後に再試行します...&amp;quot;);&lt;br /&gt;
             delay(5000);&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // 最大試行回数を超えた場合のエラー処理&lt;br /&gt;
    if (attempts &amp;gt;= MAX_ATTEMPTS) {&lt;br /&gt;
       Serial.println(&amp;quot;エラー : Wi-Fi接続の最大試行回数を超えました&amp;quot;);&lt;br /&gt;
       Serial.println(&amp;quot;設定を確認して、リセットボタンを押して再試行してください&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
       while (true);  // 無限ループで停止&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Arduino]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>