Wi-Fiのスキャン

ここ数日、色んな所でWi-Fiのスキャンを行ったりした内容を記載しておく。

■ 一般的なWiFiの仕様
あまりWiFiの仕様に詳しくなかったけど、ここ最近で色々と調べてなるほどね!!と分かってきたりして、簡単な説明ついでに。まず一般的なWiFiで利用できる電波帯域と仕様は次に別れている。

2.4GHz帯域
802.11 b/g/n

5GHz帯域
802.11 a/n/ac

よく無線ルータを買ってくると、802.11 a/b/g/n/ac対応とかって謎の文字が書いてあったりする。そんな仕様をアピールしても一般ユーザに何も響かない気もするけど、仕様は色々とある。ザックリ説明するとこんな感じ。

pic1

2.4GHz帯は昔からある仕様で、他に使っている物はおなじみのBluetoothやZigbee、そして電子レンジとか。他にもコードレス電話とか、2.4GHzを使っている物は沢山ある。このBluetoothや電子レンジがクセもので、知らずに2.4GHzでWiFiやBluetoothを使ったコントローラが影響を受けたという人もいるかも。(希有な方が、2.4G無線LAN電子レンジ影響調査という素敵な資料を作っていました。)

そして、5GHz帯はわりと最近からの仕様で、特にacはiPhone6に入ってきたことで「一部の層で」話題になったと思う。こちらは制限があるものの(チャネル数に)屋外でも使える。Bluetoothとか普及している他の影響をあまり受けないから、サクサク使えると思う。

あと、それぞれ、802.11 なんちゃらを使った場合の最大帯域は、こんな感じ。(アンテナの本数増やしたり、a/nとかの組み合わせは省いている)

802.11 b : 11Mbps
802.11 g : 54Mbps
802.11 n : 144Mbps

802.11 a : 54Mbps
802.11 n : 300Mbps
802.11 ac: 1300Mbps

 

■ WiFiがつながりにくいぜ!!
よくあるのが「WiFiがつながりにくいぜ!!」とか、つながっても「ネット使えねーよ!!」みたいな話で、特に人が密集している所ではよく発生する。
原因の一つでよく言われるのが、WiFi同士の電波干渉。イメージ的には、水面に一つだけ石を投げた時は綺麗に波が伝わるけど、いっぱい放り投げると波同士が合成(干渉)されて増幅・打ち消し合ったりして新しい波が出来る事が想像できると思う。お互いが影響しあって情報を送受信しあう電波が使えないぜ!!とった状態になる。

特に2.4GHz帯域は昔からあるから、多くのスマホや身の回りの環境(電子レンジ、コードレス電話、Bluetooth)で電波を発生する物があるから、干渉しまくりで使えないぜ!!という事が多々ある。今はみんなスマホ持ち歩いているから、WiFiとBluetoothで2.4GHzの影響が倍増(w)して、ちょっと人が集まるとろくに使えない状態になる。

逆に5GHzの方は割とサクサク使える。新しい仕様といっても、殆どのPCやスマートフォンの無線の機能としては入っているし、他の環境機器の影響を避けたいなら5GHzの方を使うのはオススメ。凄まじく人が居る状態でも経験した感じでは、あまり干渉を受けずに使えると思われ。

 

■ 色んな所でWiFiをスキャンしてみた結果
断っておくと、スキャンはWiFiオンにすれば行われるから良いにしたって、勝手に接続するのは絶対ダメです。

WiFiのスキャンはWiFi Explorerという物を使っています。結果はこんな感じで見れる。
AP名、BSSIDは消しています。あと、下のグラフにはAP名とチャネル、干渉状態を見る事が出来る素敵なアプリです。あと結果は場所によって変わってくるので。

 

■ みなとみらい
ここはタバコを吸う灰皿があって、ここでスキャンしてみた。駅を出て地上に出てすぐの所。

何故か一瞬で110個ものAPが出てきた。屋外にはみ出ているAPも多数(w)
単位は個数で。

Total : 110
2.4GHz    : 65
5Ghz         : 45
Key無       : 12

2.4GHz
802.11b             :    4
802.11g             :    1
802.11b/g        : 14
802.11b/g/n   : 36
802.11 g/n       :    3
802.11 n            :    7

5GHz
802.11a             :    7
802.11n            :    2
802.11a/n       :  35
802.11ac          :    1

 

■ 中華街
ちょっと足を運んで中華街へ。休日なだけあって、人が凄まじい…

特徴的な気がしたのはがキー無しAPの割合が多い。飲食店で「WiFiがすぐ使えますよー」といって提供している所が多いせいだとは思う。とはいっても、みなとみらいと大差ないけど。

Total : 60
2.4GHz    : 42
5Ghz         : 18
Key無       : 16

2.4GHz
802.11b             :    0
802.11g             :    0
802.11b/g        : 12
802.11b/g/n   : 25
802.11 g/n       :    0
802.11 n            :    5

5GHz
802.11a             :    1
802.11n            :    0
802.11a/n       :  17
802.11ac          :    0

 

■ 大桟橋
ちょっとあまりにも沢山のAPが出てきまくるので、桟橋の先端まで行ってみたら、WiFiを検知出来なくなったりするのかしら?という単純な理由で桟橋の先に行くことに。

APの量は圧倒的に少なくなるけど電波って飛んでくるのね。あとショッキングな事が、テザリングをオンにして歩いている方がいらっしゃるのか、「にーさとのiPhone」みたいな感じで名前付きでAPが出てきた…

Total : 26
2.4GHz    : 19
5Ghz         : 7
Key無       : 11

2.4GHz
802.11b             :    0
802.11g             :    0
802.11b/g        :    7
802.11b/g/n   :    8
802.11 g/n       :    1
802.11 n            :    3

5GHz
802.11a             :    1
802.11n            :    0
802.11a/n       :     6
802.11ac          :    0

■ おまけ
某数万人は来ると言われる某イベントでスキャンした内容。IT寄り(?)のイベントで。2.4GHz帯なんか使い物にならないし、WiFiって何ぞや?と思える感じでもある環境ですね。Key無しのAPが激減しているのは、そうですよね…って感もするし、古めの仕様の率も低くなる。街中とかとは全然違う。

Total : 103
2.4GHz    : 47
5Ghz         : 56
Key無       : 2

2.4GHz
802.11b             :    2
802.11g             :    0
802.11b/g        :    8
802.11b/g/n   :  27
802.11 g/n       :    1
802.11 n            :    9

5GHz
802.11a             :    1
802.11n            :    0
802.11a/n       :   50
802.11ac          :     5

本当はこういう各ポイント毎で無線がどんだけ立ってるのー?とか可視化されたら良いと思うんだけど、宅内で立てても外にダダ漏れして街中じゃカオス状態になっていたりするし、難しいんだろうなぁ…とは思う。あと、最低限でもキーは付けた方が良いと思われ。ノーガードは無いっしょ。

iPhone6 802.11ac Test

iPhone6の新機能で注目な、802.11ac 5GHzのWiFi。今年になってIEEEで承認されたホットな仕様で自分の見通しだと、さすがにスマホに802.11acは乗ってこないと思いきや…乗ってきたので早速テスト。ルータにはPlanexのMZK-1200DHPを使った。上流は

こんな感じ。

このPlanexのルータ、802.11acが搭載されていてAmazonで3,778円で買える爆安さに惹かれた。ただ、このルータを起動してみて何故か11acに設定してみても接続できない。そう、ファームが1.30だと11acが使えなかった…orz ファームアップして、1.35にするとバッチリ接続できる。この点だけ要注意。

んで、早速、2.4GHzと5GHzで接続テスト!!テストにはRBB SEEDを使った。

次に、5GHz 11acで。

もちろんだけど、11acの方が全然早い。

MQTT Library for Spark Core

MQTT is lightweight pub/sub messaging protocol for IoT/M2M. MQTT target is large scale pub/sub system, used on Facebook Messenger and others(not for the message queue like a RabbitMQ/AMQP…etc).  MQTT for Arduino is already developed as pubsubclient, but Arduino like open source system “Spark.io” don’t have MQTT library.  So I made MQTT for Spark.io based on pubsubclient. Thanks for knolleary.

MQTT for Spark.

#include "MQTT.h"

void callback(char* topic, byte* payload, unsigned int length);
MQTT client("server_name", 1883, callback);

// recieve message
void callback(char* topic, byte* payload, unsigned int length) {
    char p[length + 1];
    memcpy(p, payload, length);
    p[length] = NULL;
    String message(p);

    if (message.equals("RED"))    
        RGB.color(255, 0, 0);
    else if (message.equals("GREEN"))    
        RGB.color(0, 255, 0);
    else if (message.equals("BLUE"))    
        RGB.color(0, 0, 255);
    else    
        RGB.color(255, 255, 255);
    delay(1000);
}


void setup() {
    RGB.control(true);
    
    // connect to the MQTT server
    client.connect("sparkclient");

    // publish/subscribe
    if (client.isConnected()) {
        client.publish("outTopic","hello world");
        client.subscribe("inTopic");
    }
}

void loop() {
    if (client.isConnected())
        client.loop();
}