Android+Arduino搭建物联网应用——驱动ESP8266

物料:

    arduino uno r3板子一枚

    ESP8266-01模块一发

1.确保模块已经刷入AT指令集的固件

    出厂的模块已经刷好了,若要更新版本参考官网教程

2.线路连接

    保证电源在3V-4V之间,保证CH_PD 也就是芯片选通脚为高电平。

Android+Arduino搭建物联网应用——驱动ESP8266_第1张图片

VCC和CH_PD接3.3V,GND接地,UTXD接Arduino的RX或者虚拟串口的RX,URXD接Arduino的TX或者虚拟串口的RX。

3.参考代码 

这里需要用到WiFiEsp这个库,可在https://github.com/bportaluri/WiFiEsp下载,放到Arduino安装路径的libraries文件夹内即可,里面也提供了几个简单的例子用于摸索怎么使用这个库。

这里是用了板子上的6、 7IO口作为虚拟串口与WiFi模块通信的,6为RX,7为TX。

#define后的内容WIFI_AP是你要连的WiFi的SSID(名称),WIFI_PASSWORD是密码,自行更改。

loop()里面执着的执行着一个重连的程序。

#include 
#include 
#include 
#include "SoftwareSerial.h"

#define WIFI_AP "WIFI的SSID"
#define WIFI_PASSWORD "WIFI密码"

// 定义客户端对象
WiFiEspClient espClient;
//定义虚拟串口
SoftwareSerial soft(6, 7); // RX, TX
int status = WL_IDLE_STATUS;

//ESP8266初始化函数
void InitWiFi()
{
  // initialize serial for ESP module
  soft.begin(9600);
  // initialize ESP module
  WiFi.init(&soft);
  // check for the presence of the shield
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue
    while (true);
  }

  Serial.println("Connecting to AP ...");
  // attempt to connect to WiFi network
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to WPA SSID: ");
    Serial.println(WIFI_AP);
    // Connect to WPA/WPA2 network
    status = WiFi.begin(WIFI_AP, WIFI_PASSWORD);
    delay(500);
  }
  Serial.println("Connected to AP");
}

void setup() {
  //硬件串口用于下载代码和打印调试信息
  Serial.begin(9600);
  InitWiFi();
}

void loop() {
  status = WiFi.status();
  if ( status != WL_CONNECTED) {
    while ( status != WL_CONNECTED) {
      Serial.print("Attempting to connect to WPA SSID: ");
      Serial.println(WIFI_AP);
      // Connect to WPA/WPA2 network
      status = WiFi.begin(WIFI_AP, WIFI_PASSWORD);
      delay(500);
    }
    Serial.println("Connected to AP");
  }
}

你可能感兴趣的:(物联网)