それほど遠くない過去では、Wi-Fiデバイスのサポートは高価で扱いにくく、エネルギー効率がよくありませんでした。 開発者は、さまざまな競合ソリューションに基づいた無線インターフェースの使用を余儀なくされました。 プロトコルレベルで「バイク」を発明しました。 そして、彼らは、ブリッジの機能を実装する追加のデバイスを使用することでのみ、切望されたWi-Fiに参入しました。 非常に顕著なお金の価値があります。
しかし、人生は続きます。 技術は急速に発展しています。 「モノのインターネット」という言葉はますます耳にされています。 大規模であってもそれほど多くない多くのチップメーカーは、Wi-Fiを小型で安価なデバイスに統合するという永遠の問題を最終的に解決する必要に迫られています。 ほとんどすべての家庭ですでに利用可能なインフラストラクチャに直接接続できるようにするため。 ネットワークに接続されたシンプルなデバイスの新しい市場の一部をできるだけ多く食べること。
2014年、複数のメーカーが対応するチップセットのリリースを発表しました。 今日は、中国企業EspressifのESP8266チップについてお話します。 このチップをベースにしたUART-WIFIモジュールはすでに中国全土に殺到しており、価格はたったの4.5ドルです(無料国際配送付き)。
ESP8266のUART-WIFIブリッジ
このモジュールは、Ta宝網、AliExpressなどの多くの場所ですでに購入できます。 利用可能なドキュメントはあまりありませんが、ATコマンドを使用した作業に関するマニュアルは、中国語だけでなく、無料でダウンロードできます。 Arduinoのモジュールの使用例がネットワークに表示され始めます:
#include <SoftwareSerial.h> #define SSID "xxxxxxxx" #define PASS "xxxxxxxx" #define DST_IP "220.181.111.85" //baidu.com SoftwareSerial dbgSerial(10, 11); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(57600); Serial.setTimeout(5000); dbgSerial.begin(9600); //can't be faster than 19200 for softserial dbgSerial.println("ESP8266 Demo"); //test if the module is ready Serial.println("AT+RST"); delay(1000); if(Serial.find("ready")) { dbgSerial.println("Module is ready"); } else { dbgSerial.println("Module have no response."); while(1); } delay(1000); //connect to the wifi boolean connected=false; for(int i=0;i<5;i++) { if(connectWiFi()) { connected = true; break; } } if (!connected){while(1);} delay(5000); //print the ip addr /*Serial.println("AT+CIFSR"); dbgSerial.println("ip address:"); while (Serial.available()) dbgSerial.write(Serial.read());*/ //set the single connection mode Serial.println("AT+CIPMUX=0"); } void loop() { String cmd = "AT+CIPSTART=\"TCP\",\""; cmd += DST_IP; cmd += "\",80"; Serial.println(cmd); dbgSerial.println(cmd); if(Serial.find("Error")) return; cmd = "GET / HTTP/1.0\r\n\r\n"; Serial.print("AT+CIPSEND="); Serial.println(cmd.length()); if(Serial.find(">")) { dbgSerial.print(">"); }else { Serial.println("AT+CIPCLOSE"); dbgSerial.println("connect timeout"); delay(1000); return; } Serial.print(cmd); delay(2000); //Serial.find("+IPD"); while (Serial.available()) { char c = Serial.read(); dbgSerial.write(c); if(c=='\r') dbgSerial.print('\n'); } dbgSerial.println("===="); delay(1000); } boolean connectWiFi() { Serial.println("AT+CWMODE=1"); String cmd="AT+CWJAP=\""; cmd+=SSID; cmd+="\",\""; cmd+=PASS; cmd+="\""; dbgSerial.println(cmd); Serial.println(cmd); delay(2000); if(Serial.find("OK")) { dbgSerial.println("OK, Connected to WiFi."); return true; }else { dbgSerial.println("Can not connect to the WiFi."); return false; } }
興味深い回路、競合他社との比較
Espressifのプレスリリースから、メーカーがチップコンポーネントの統合度を誇りに思っていることは注目に値します。 実際、一般的なチップストラップは7つの要素のみで構成されています。 モジュールボードはほとんど空で、コンポーネントはほとんどありません。 これはすべて、より安価な方向のエンドデバイスのコストに自然に影響します。
競合他社の製品を見ると、人員配置を最小限に抑えることの利点がさらに明白になります。 これは、Mediatekの競合ソリューションであるMT7681に基づく典型的なモジュールです。
Marvellのチップセットに基づくモジュールは次のとおりです。「非常に費用対効果が高く、柔軟で使いやすいハードウェア/ソフトウェアプラットフォームで、新世代の接続デバイスを構築します」:
革命とは?
このような低コストのソリューションの登場により、「スマートホーム」のさまざまなarduinoソリューションのホームデベロッパーでさえ、デバイスをWi-Fiネットワークに接続する機会がありますが、Wi-Fiネットワークにはまだアクセスできません。 ESP8266はすでにインターネット上で「NRF24LE1キラー」と呼ばれています。 さらに低コストで、ESP8266に基づくモジュールはより多くの機能を約束します。 Arduino上のデバイスでは、本格的なWebインターフェースと便利なJSON APIの両方を簡単かつ安価に実装できます。
高度な開発者は、無線センサー、光、水、および日常生活の中で各人を取り巻くその他の「モノ」の制御デバイスを備えたソリューションのメインプロセッサとしてチップを使用できるようになります。