ESP-WROOM-02でLチカとWi-Fiの動作試験をする(5)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) 次のページへ
2017年11月08日 公開。

9.無線LAN内に簡単なWebサーバを作る

この章では、ESP-WROOM-02を使って簡単なWebサーバを作ってみます。Webサーバを作るといっても、webブラウザ(Google Chrome、FireFox、Safari、Edgeなど、Webサイトを閲覧するソフト)で見ると、図23の様に、単に"hello from esp8226!"というメッセージが表示されるだけの簡単な物です。

図23、この章で作るWebサーバにアクセスした結果
図23、この章で作るWebサーバにアクセスした結果
広告

9-1.必要な通信環境

これから作るWebサーバの動作確認をするには、無線LAN(Wi-Fi)の通信環境が必要になります。インターネットへのアクセスを、自宅の無線LANの親機(無線LANルータや無線LANのアクセスポイント)を使って行っている人は、この条件を満たします。

参考:Wi-Fi(ワイファイ)とは、無線LAN機器の内、Wi-Fi Allianceという団体によって、IEEE 802.11の規格に則って、相互接続性の試験を受け、その試験にパスして認定を受けたものをいいます。Wi-Fi Allianceの認定を受けた製品にはWi-Fi CERTIFIEDロゴが付いています。消費者の視線で見ると、Wi-Fi CERTIFIEDロゴが付いている無線LAN機器がWi-Fi機器で、Wi-Fi機器同士ならば、相互に接続できる事が保証されているために、安心して買えるというメリットがあります。ただし、現在では無線LAN機器のほとんどがWi-Fi Allianceの認定を受けているので、事実上、Wi-Fi ≒ 無線LANと考えてもいいでしょう。

また、自宅の無線LANの親機にESP-WROOM-02を無線接続するには、その親機のSSIDとキー(パスワード)を知っている必要があります。

出荷状態でのSSIDやキーについては、製品にそれらを記載した書類が入っていたはずですし、場合によっては、親機の筐体のどこかに書いてある事もあります。(写真9参照)

写真9、筐体に記載された出荷時のSSIDとキー
↑ 画像をクリックすると拡大
写真9、筐体に記載された出荷時のSSIDとキー
無線LAN親機に記載された、出荷時のSSIDとキーの例です。赤線を引いたところに、出荷時のSSIDとキーが書いてあります。右上にはWi-Fi CERTIFIEDロゴが写っています。なお、セキュリティ上の問題から、画像の一部をぼかしています。これ以降に掲載する写真や画面のハードコピーにおいても、セキュリティ上の必要がある場合は、画像の一部をぼかします。

人によっては、セキュリティ向上などのため、購入後に親機のSSIDやキーを変更している場合もあるでしょうが、その場合は設定したSSIDやキーのメモなどが残っているはずです。

【コラム】SSIDとキーについて
(1)SSIDとは

最近は無線LAN機器が普及したので、近所に無線LANの親機を使用している人がいる場合が多くなりました。特に都会においては、自分の無線LAN子機(タブレット、スマートフォン、ノートパソコンなど)と通信ができる近距離に、無線LAN親機が数台~十数台ある事も珍しくなくなりました。

有線LANを使う場合はLANケーブルをつなぐ相手が通信の相手となりますが(図24参照)、無線LANの場合は正しい通信相手(親機)を指定する必要があります。そこで、SSIDという、それぞれの親機を識別するための文字列を使います。(図25参照)

図24、有線LANの場合の通信相手の決め方
↑ 画像をクリックすると拡大
図24、有線LANの場合の通信相手の決め方
図25、無線LANの場合の通信相手の決め方
↑ 画像をクリックすると拡大
図25、無線LANの場合の通信相手の決め方

無線LANの親機は通常、定期的に自分のSSIDを周囲の機器に通知しています。それを受信する事により、子機が周辺の親機のSSIDの一覧を取得できるのです。

参考:セキュリティ確保のため、親機がSSIDを周囲の機器に通知しないようにする場合があります。これをSSIDステルスと呼びます。SSIDステルスを使うと、周囲の子機に表示されるSSIDの一覧表には自分のSSIDが表示されなくなるため、無線LANの専門的な知識がない人が、いたずらで接続を試みるのを防ぐことができます。しかし、高度な知識を持った人にとっては、SSIDステルスにしていようと、攻撃の難しさはあまり変わらないようで、セキュリティ確保の効果は高くないようです。

(2)キーとは

有線LANを使っている場合は、通信する機器同士をLANケーブルでつながないと通信できません。そのため、通信内容を傍受したい悪意のある第三者がいても、物理的にLANケーブルをつなげられない限り、通信内容を傍受できません。

一方で無線LANの場合は、通信の内容が、電波により周囲に広がっていきます。そのため、なんの工夫もしないと、悪意のある第三者に簡単に通信内容を傍受されてしまいます。それだけではなく、第三者が自分になりすまして、勝手に無線LANに接続する可能性もあります。

そこで無線LANでは、セキュリティーを確保するために、通信を暗号化する場合がほとんどです。暗号には色々な種類があるのですが、家庭で無線LANを使う場合は、共通鍵を使う方法が良くとられます。

共通鍵というのは、自分と通信の相手の2者だけが知っているパスワードの事です。情報を送信する場合、共通鍵を使って暗号化を行えば、その共通鍵を知らない人には内容が分からなくなるような暗号を実現できます。

また、無線LANに接続する際も、共通鍵を使って認証を行う事で、共通鍵を知らない第三者が不正に通信を行う事を防げます。

共通鍵を英訳するとcommon keyとなります。単にキー(key)というと鍵の事になりますが、文脈からそれが共通鍵を指すのが明らかな場合は、共通鍵の事をキーと呼ぶ事もあります。

写真10は、Androidのタブレットで、周辺の無線LAN親機のSSIDを表示した例です。SSIDの左側の扇型のアイコンに鍵のマークが付いていれば、その親機の通信は、暗号化されています。鍵のマークのないアイコンなら、通信が暗号化されていません。例えばこの写真の例なら、SSDIが"ESP_"で始まる親機の通信は暗号化されていません。(実はこれはESP-WROOM-02のSSIDなのですが)

写真10、CAPTION
↑ 画像をクリックすると拡大
写真10、CAPTION

写真11は、写真10に写ったSSIDの中から、アイコンに鍵のマークが付いている物を適当に選び、接続しようとした時の画面です。パスワード(キー)の入力を求められている事が分かります。

写真11、通信が暗号化されている無線LAN親機に接続しようとした時の画面
↑ 画像をクリックすると拡大
写真11、通信が暗号化されている無線LAN親機に接続しようとした時の画面

9-2.ESP-WROOM-02のWi-Fi機能を使うのに必要なネットワーク技術の知識

ESP-WROOM-02のWi-Fi接続を利用した電子回路を作ろうと思うと、電子工作やプログラミングの知識以外に、インターネットを含むネットワーク技術の知識も要求されます。そのためESP-WROOM-02は、ちゃんと動作原理を理解して使いこなそうと思うと、Arduinoなどを使うよりも、敷居が高いです。インターネット上にはESP-WROOM-02を使った電子工作の作例を紹介しているサイトやブログも多いですが、IPアドレスやHTMLなど、ネットワーク系の専門用語を理解している事を前提に書かれている物が多いので、その方面に詳しくない人には読みこなすのが大変です。

この記事では、Webサーバの作り方の話の前に、Wi-Fi接続のスケッチを作るのに必要な前提知識を、必要最低限説明しようと思います。ネットワークの知識がある人や、理屈を抜きにして、まずWebサーバを動かしてみたい人は、次の節まで読み飛ばしてください。

9-2-1.サーバとクライアント

普段、インターネット上の色々なサービスを使っています。例えばメールを読んだり、Webサイトでニュースなど色々な記事を読んだり、Youtubeで動画を見たりと、様々な方法で私たちはインターネットを利用します。

ところで、こんな事を考えた事はないでしょうか?Yahoo!ニュースで読むニュース記事は、いったいどこに保存されているんでしょうか?YouTubeで見た動画は、どこに保存されており、どの様に自分のパソコンやスマートフォンに届くのでしょうか?メールはどうやっって相手に届けられるのでしょうか?

私には、これらの問題に全て答えられるだけの知識もありませんし、もしその知識があっても、この記事の中にはそれら全てを説明できるだけのスペースがありませんが、ここで皆さんに知っておいて欲しいと思う事は、それら多くのインターネット上のサービスには、それぞれサービスを提供する主体となるコンピュータがあるという事です。この様な、サービスを提供するためのコンピュータをサーバといいます。

例えば、メールを届けたり受け取ったりするサービスを提供するコンピュータはメールサーバといいます。Webサイト上の色々なコンテンツをユーザの要求に応じて提供するコンピュータはWebサーバといいます。(今ご覧のこの記事も、Webサーバにより配信しています) 動画や音楽などを配信するコンピュータはストリーミングサーバといいます。

参考:メールサーバには、メールの送信に使うSMTPサーバと、メールの受信に使うPOP3サーバ(あるいはIMAP4サーバ)があります。単一のサーバでメールのサービスを提供できるわけではありません。

一方で、普段私たちが使っているパソコンやスマートフォンなどのコンピュータは、サーバが提供するサービスを受ける側のコンピュータです。この様、なサービスを受ける側のコンピュータをクライアントといいます。

元々サーバ(server)という英語の意味は「仕える人」という様な意味で、クライアント(client)は「依頼人」や「顧客」という意味です。パソコンやスマートフォン(つまりクライアント)でニュースを読みたい時に、Yahoo!ニュースのサイトへアクセスすると、「ニュースを読みたい」という要求がYahoo!ニュースのWebサーバに伝わり、Webサーバ側がその要求に応答して、ニュース記事を届けてくれている訳です。(図26参照)

図26、クライアントサーバシステムの概念図
↑ 画像をクリックすると拡大
図26、クライアントサーバシステムの概念図

この様に、サービスを要求するクライアント側と、それに応じてサービスを提供するサーバ側に、コンピュータが二手に分かれて、情報をやり取りするネットワークの利用形態を、クライアントサーバシステムといいます。インターネットの利用形態は、100%ではないにせよ、かなりの部分がクライアントサーバシステムです。

注:この説明では、話を簡単にするために「サーバとはサービスを提供する側のコンピュータだ」としましたが、一つのコンピュータにサービス提供用のソフトを複数インストールして、複数のサービスを提供する事もできます。また、利用者の多いサービスの場合、複数のコンピュータにサーバの機能を分散させる事もあります。さらには、サービス提供用ソフトの事をサーバと呼ぶ事もあります。サーバという言葉は、必ずしも1台のコンピュータを指すとは限らず、文脈に応じて意味を解釈する必要があります。

【コラム】インターネット上のサービスを利用する時のコンピュータの消費電力

クライアントサーバシステムでインターネットを利用する場合は、自分の手元にあるクライアントコンピュータのみでなく、インターネットのどこかにつながっているサーバコンピュータも、間接的に利用する事を説明しました。

クライアントコンピュータを動かすための電気代は自分で払うものの、サーバコンピュータの電気代は直接自分で払う訳ではありません。そのため、サーバコンピュータ(および関連機器)の消費する電力については、私たちは無頓着になりがちです。しかし私たちが意識している以上にサーバコンピュータでも電力を消費しているのです。

FUJITSU JOURNALの大量のエネルギーを消費するデータセンターが目指す「究極の省エネ」とは?という記事には、全世界のエネルギーの2%をデータセンター(サーバコンピュータや通信機器などを多数設置した施設)が消費している事が書いてあります。

最近はスマートフォンで複雑なサービスを利用すできる様になってきていますが、スマートフォンの計算能力はパソコンに比べればしれています。また、スマートフォンの計算能力を最大限に使うと、消費電力が増えて電池の持ちが悪くなるという問題もあります。そのため、サーバ側でなるべく情報処理をやってしまい、スマートフォン側では処理した結果を受け取って表示するだけに徹するという形態が増えてきました。つまり、情報処理や電力消費をサーバ側に押し付け、スマートフォンの負荷を軽くするわけです。

インターネットの普及と、サーバ側処理への依存率の上昇により、サーバコンピュータや通信機器、および、それらを冷却する空調装置で消費する電力は急増しています。データセンタの消費電力が環境問題化している中、マイクロソフトやGoogleなどの情報産業の大手企業は、消費電力の削減自然エネルギーの利用促進に取り組んでいる様です。

YouTubeで動画を楽しむ際に、その動画を配信するために、どこかのデータセンターで電気を使っている事を思い出してみるのも、たまにはいいのかも知れません。(文字ベースの情報を提供するWebサーバより、動画配信用のストリーミングサーバの方が、消費電力が多いです)

9-2-2.LANとWANとインターネット

家庭内や会社のオフィスなどに複数のコンピュータがある場合に、それらを通信回線で結ぶと、お互いに情報の共有ができる様になって、利便性が上がります。この様に比較的狭い空間内(通常は一つの建物の中)の複数のコンピュータを通信回線を使って結び、その結果できたネットワークをLAN(Local Area Network)といいます。(図27参照)

図27、LANの概念図
↑ 画像をクリックすると拡大
図27、LANの概念図

LANを構成するための通信機器には、イーサネットと呼ばれる規格に準拠した物がよく使われます。また有線のイーサネットではなく、無線通信により、LANの全部または一部を構成した物を無線LANといいます。

会社の複数の支店にまたがって存在するコンピュータでネットワークを構成しようとすると、イーサネットなどのLAN用の機器では、無理です。(イーサネットで通信可能な距離は、イーサネットの種類により異なりますが、数十m~数kmです) そこで、複数のLANを長距離回線でつなぐことにより、大規模なネットワークを構築します。この様に、長距離回線で構成した大規模ネットワークをWAN(Wide Area Network)といいます。

図28は、大阪市支店、名古屋支店、東京本社の3つのオフィスを持つ会社が、オフィス間を長距離回線で結んで、全社的なネットワークを構築した例です。

図28、3つオフィスを結ぶネットワークを構築した例
↑ 画像をクリックすると拡大
図28、3つオフィスを結ぶネットワークを構築した例

赤い線で示したのが、長距離回線です。この2つの長距離回線により、3つのオフィスを結ぶWANが構成されています。各オフィスにはLANがあり、ルータという装置を介して、長距離回線と接続されています。ルータとは、異なる2つ以上のネットワークを接続し、データをそれらのネットワーク間で中継する装置です。

大阪支店のパソコンから東京本社のパソコンに情報を送る場合、まず大阪支店のパソコンから、大阪支店内のLANに情報が送られ、大阪支店のルータを通って、大阪・名古屋間の長距離回線に転送され、さらに名古屋支店のルータを通って、名古屋支店内のLANに転送され、最終的に名古屋支店の目的のパソコンに到達します。

大阪支店のパソコンから東京本社のパソコンに情報を送る場合は、大阪支店のルータと東京本社のルータを直接結ぶ長距離回線がないため、いったん名古屋支店のルータを中継して情報が届けられます。

ひとつの会社の中だけでなく、大学、病院、公共機関など、組織の垣根を越えて、世界中のLANを長距離回線で結んだら、世界規模のWANが構成できます。この様にしてできたのがインターネットです。

図29はインターネットの概念図です。各LANは、ルータを介して、長距離回線と接続されています。長距離回線とルータで世界規模のWANが構成されていますが、これがインターネットです。(LANは構成要素ではありません。)

図29、インターネットの概念図
↑ 画像をクリックすると拡大
図29、インターネットの概念図

インターネットが世界中のLANを結ぶWANであるのに対し、図28に示した様に、会社など、ある特定の組織内だけで閉じたWANをイントラネットといいます。

話が長くなってきましたので、今回はここらへんで終わります。元々電子工作の話なのに、途中からネットワーク技術の話を始めてしまい、話が脱線しました。恐縮ですが、次回も少しネットワーク技術の話が続く予定です。続きを書くのはぼちぼちと。

目次へ  前のページへ (1) (2) (3) (4) (5) (6) 次のページへ

このページで使われている用語の解説

関連ページ

Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。