鳕鱼天空

This is Mr Wang's Tech Blog.

esp8266 smartconfig + 断电自动连接wifi

esp8266是一个价廉物美功能多的wifi模块,其中的esp8266-01大概10软妹子左右,带有串口通讯和2个IO口,可以用arduino编译烧录,是居家旅行杀人灭口,不对,廉价物联网必备组件。

第一次用esp8266的时候是手动写入ssid和密码的,总觉得这个太不智慧了,于是发现了smartconfig模式,可以通过手机上面的一键配置联网。

用的是arduino的附加开发板:http://wechat.doit.am/package_esp8266com_index.json

各种度娘之后得出结论,esp8266在自动连接一次以后断电就会自动重连,无需手工保存ssid和密码,下面是代码:

#include <ESP8266WiFi.h>

bool autoConfig()
{
  WiFi.begin();
  for (int i = 0; i < 20; i++)
  {
    int wstatus = WiFi.status();
    if (wstatus == WL_CONNECTED)
    {
      Serial.println("AutoConfig Success");
      Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
      Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
      WiFi.printDiag(Serial);
      return true;
      //break;
    }
    else
    {
      Serial.print("AutoConfig Waiting......");
      Serial.println(wstatus);
      delay(1000);
    }
  }
  Serial.println("AutoConfig Faild!" );
  return false;
  //WiFi.printDiag(Serial);
}
void smartConfig()
{
  WiFi.mode(WIFI_STA);
  Serial.println("\r\nWait for Smartconfig");
  WiFi.beginSmartConfig();
  while (1)
  {
    Serial.print(".");
    if (WiFi.smartConfigDone())
    {
      Serial.println("SmartConfig Success");
      Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
      Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
      WiFi.setAutoConnect(true);  // 设置自动连接
      break;
    }
    delay(1000); // 这个地方一定要加延时,否则极易崩溃重启
  }
}

void setup()
{
  Serial.begin(115200);

  if (!autoConfig())
  {
    Serial.println("Start module");
    smartConfig();
  }
}

void loop()
{
  delay(1000);
  Serial.println("loop");
}

手机端用esptouch就行,appstore里免费有下载,安卓的应该也有类似软件。

 

[转]基于esp8266的开发导航帖arduino ide for esp8266

自从乐鑫esp8266出现后,其价格低廉的解决方案,引起了业界的广泛关注,堪称业界里程碑。但是很多人买来之后不知道怎么使用,今天在这里和大家讨论分享一下:   

   ESP8266简介,乐鑫的单芯片wifi 控制器

目前市面上有3种开发方式:
1:使用乐鑫AT 固件,使用时,单片机通过串口用AT指令来实现wifi连接、网络通迅,例如arduino uno+esp8266他们间使用AT指令来交互。

2:使用乐鑫SDK开发包,直接用C编程。例如果云esp8266 sdk开发之类。直接开发BIN文件
3:使用NODEMCU固件,这是国内大能 在SDK基础上,加入了LUA语言

现在,出现了第4种开发方式,arduino直接编程,原理还是在SDK基础上开发,不过已经封装为我们熟的Arduino语言了。(想想都有点小激动{:soso_e102:})

  注意已经不需要ARDUINO硬件了,而是利用arduino软件平台来编译8266的源码。即利用arduino 语句开发8266的sdk,

下面的几篇帖子将分别介绍开发的一些教程。

第一篇,基于esp8266的智能家居控制系统-基础篇1介绍arduino ide for esp8266,介绍背景,及软件下载

第二篇,基于esp8266的智能家居控制系统-基础篇2硬件平台搭建 ,搭建硬件开发环境
第三篇,基于esp8266的智能家居控制系统-通用篇,常用的示例代码,非无线
第四篇,基于esp8266的智能家居控制系统-局域网篇1 TCP/UDP,tcp通讯的准备作为客户端与电脑通讯
第五篇,基于esp8266的智能家居控制系统-局域网篇1手机控制和透传作为客户端与手机通讯及透传
第六篇,基于esp8266的智能家居控制系统-局域网篇2,tcpserver,作为服务端与其他作为客户端的设备通讯
楼楼将持续更新,么么哒

转载自:http://www.arduino.cn/forum.php?mod=viewthread&tid=18361&highlight=esp8266