3 posts tagged with "無線lan"

View All Tags

Nefry Tips 無線LAN接続について

Nefryを使ったいろんな作品が見られて幸せなわみさんです。

今回は無線LANのプチTipsを共有したいと思っています。

Nefryには、Webページ上で設定した無線LANから自動的にもっとも電波強度が強いものに接続するような機能があります。

ただ、基本的には起動時に接続しにいくのみで、起動したあとに切断された場合再接続処理が上手くいかず接続できないことがあります。

デモのような短時間の動作であれば上記のような現象は気にならないと思いますが、長時間のモニタリングなどでなってしまうとなかなか辛いことがあると思いますので今回のTipsを試してもらえればと思います!

#include<Nefry.h>
void setup() {
// 何か処理
}
void loop() {
// なんか処理a
if(WiFi.status() != WL_CONNECTED){
//無線LANが接続されていないとき
Nefry.reset();
}
}

上記のコードが今回のTipsです。

無線LANに接続していないときにNefryをリセットするコードになります。

Nefryがネットワークにつながらなくなっても再起動して無線LAN接続が正常に行えるはずです!!

ぜひ試してみてください!

ESP8266で静的なIPをわりふってみる

家のネット環境によってはDHCPでIPアドレスを取得するより、静的(static)なIPで割り振りたいという要望を聞きましたのでソースコードを公開します。

#表示内容

ESP8266のlocalIP ゲートウェイのIP サブネットマスク ESP8266のmacAddress

#コード

#include <ESP8266WiFi.h>
#define debug Serial
/*
IPアドレスをDHCPではなく手動で割り振ることをすることができる。
localIP:moduleのIP gateway:デフォルトゲートウエイ subnet:サブネットマスク DNSは指定しなくてよい。
config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000)
*/
void setup(){
debug.begin(115200);
WiFi.config(IPAddress(192,168,1,2),IPAddress(192,168,1,1),IPAddress(255,255,255,0));
debug.print("Local IP :");debug.println(address(WiFi.localIP()));
debug.print("Gateway IP:");debug.println(address(WiFi.gatewayIP()));
debug.print("SubnetMask:");debug.println(address(WiFi.subnetMask()));
debug.print("macAddress:");debug.println(WiFi.macAddress());
}
void loop(){
}
String address(IPAddress ip){
String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);
return ipStr;
}

ESP8266でWPSを実装してみる

http://bbs.espressif.com/viewtopic.php?t=1096

ソース元はこちら

ESP-WROOM-02にはWPSでWiFiの設定をすることができる環境がつくられているようなのでその解説と結果を報告します。

環境

Arduino IDE 1.6.7 Arduino core for ESP8266 WiFi chip (https://github.com/esp8266/Arduino) v2.2.0

Arduino coreのバージョンが古いと実装されてない可能性があります。

コード

#include <ESP8266WiFi.h>
void Wifi_wait();
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
//WiFi.begin("","")このようにすることでWPSで保存したデータがある場合そちらに接続するようになる
WiFi.begin("", "");
Wifi_wait();
// Wifiに接続していないときにはWPSを開始します
if (WiFi.status() != WL_CONNECTED) {
Serial.println("\nAttempting connection ...");
WiFi.beginWPSConfig();
Wifi_wait();
if (WiFi.status() == WL_CONNECTED) {
Serial.println("Connected!");
Serial.println(WiFi.localIP());
Serial.println(WiFi.SSID());
Serial.println(WiFi.macAddress());
} else {
Serial.println("Connection failed!");
}
} else {
Serial.println("\nConnection already established.");
}
}
void loop() {
}
void Wifi_wait() {
int wait=0;
Serial.println("WiFi connecting");
while (wait < 20) {
if (WiFi.status() == WL_CONNECTED) {
Serial.println("WiFi connected");
return;
}
Serial.print(".");
wait++;
delay(250);
}
Serial.println("Connect timed out");
}

使いかた

Wifiに接続失敗したときにWPSで設定中のルータをさがしに行きます。

WPSで設定中のものがあったとき、ESP-WROOM-02はそのルータから設定を取得し、今後そのルータに接続するようになります。

Wifiに詳しくない人でもESP-WROOM-02を手軽に扱えるようになる技術だと思います、

結果

私の所持しているWifiルータではWPSでの接続は成功しませんでした…

それは、私の持っているWifiルータが悪いのかもしれないのでもしよければ、試して成功したかどうか教えてください。