前言

经过前面的无数次采坑,对于ESP8266的官方SDK我是无能为力了,反正总是遇到问题,然后Arduino,真香!

Arduino的集成封装也挺多的,这真的是极大的减小了萌新对底层操作的要求。

一.需要下载的东西

1.Arduino本体

emmm似乎没有那么多需要下载的东西,就一个Arduino本体。

中文社区提供的下载帖子:https://www.arduino.cn/thread-5838-1-1.html

二.载入ESP8266

1.添加网址

在左上角的:文件-首选项-附加开发板管理网址中添加以下网址:

https://github.com/esp8266/Arduino/releases/download/2.5.0/package_esp8266com_index.json

arduino环境搭建 esp8266 arduino esp8266开发环境搭建_串口

2.载入ESP8266开发板

在“”工具——开发板——开发板管理器“”中搜索ESP8266,然后选中esp8266 by ESP8266 Community,借用官方社区一张图,因为我安装了后搜出来有些问题,然后就是这样,版本我选的是最新的版本。

arduino环境搭建 esp8266 arduino esp8266开发环境搭建_#include_02

3.选择开发板且修改选项

根据型号选择吧。但是如果你知道具体的烧录参数和板子信息,你可以这样选择Generic ESP8266 Module。我是ESP8266-12F,然后按如下选择烧录信息,串口只有在CH340或者有电的状态下才能选择,而且必须手动选择。

arduino环境搭建 esp8266 arduino esp8266开发环境搭建_#include_03

 

三.烧录

当我们编辑好了一切。写上我们的测试代码:

/*
  文件名称:blink.ino
  功能:NTP 获取网络时间示例
  作者:www.doit.am
  日期:2017-2
  版本:1.0
*/
#include <ESP8266WiFi.h> //这是支持Wifi基本功能的头文件
#include <time.h> //时间处理功能的头文件

const char* ssid = "Doit";  //所接入的无线网络名称
const char* password = "doit3305";  
//访问密码,这两个信息在后面章节会频繁用到

int timezone = 3;
int dst = 0;

//ESPDUINO开发版的初始函数
void setup() {
  Serial.begin(115200); //设定串口速率为115200B/s
  Serial.setDebugOutput(true); //将串口设为调试输出模式

  WiFi.disconnect();//断开之前的连接
  WiFi.mode(WIFI_STA);  //将此Wifi芯片设为STA模式
  WiFi.begin(ssid, password); //接入到无线环境热点
  Serial.println("\nConnecting to WiFi");
 
 //如果Wifi状态不是WL_CONNECTED,则表示连接失败
  while (WiFi.status() != WL_CONNECTED) {  
    Serial.print("."); //在串口窗口输出.,表示连接进度信息
    delay(1000); //延时1秒
  }

  //设置时间格式以及时间服务器的url网址
  configTime(3 * 3600, 0, "pool.ntp.org", "time.nist.gov");
  //串口信息输出,此处不建议用中文,因为寻址方式的原因,会出乱码
  Serial.println("\nWaiting for time");
  while (!time(nullptr)) {
    Serial.print(".");
    delay(1000);
  }
  Serial.println("");
}

//进入事件主循环
void loop() {
  time_t now = time(nullptr); //获取当前时间
  Serial.println(ctime(&now));//打印并换行
  delay(1000); //延迟一秒(间隔)
}

然后把我们的0口拉低,15口拉高进入下载模式后,直接项目-上传即可等待他编译,烧录,然后我们再拉低IO2重启ESP8266就可以运行了!

打开串口助手,我们就可以显示当前的时间了!!!