本网站所有源码和文章均为作者提供和网友推荐收集整理而来,对提供的源码不拥有任何权利,其版权归原著者拥有。仅供学习和研究使用,下载后请24小时内删除。不得使用于非法商业用途,不得经营非法游戏或违反国家法律。一切关于该资源商业行为与www.meryun.com无关。
1. 硬件
ESP8266模块,或者ESP8266开发板,建议初学者直接使用开发板;
2. 软件
Arduino IDE开发环境;
1. 硬件
硬件环境主要分为两种:
1. ESP8266开发板 + USB线

2. ESP8266模块 + USB转TTL线
如果WiFi模块是ESP8266-01系列,首先请看一下以下引脚接口说明:
引脚编号 | 引脚定义 | 引脚描述 |
---|---|---|
1 | TX | 1)UART_TX发送端;2)通用IO口:GPIO1; |
2 | GND | GND |
3 | CH_PD | 1)高电平工作;2)低电平模块供电关掉; |
4 | GPIO2 | 开机上电时必须为高电平,禁止硬件下拉,内部默认已拉高; |
5 | GPIO16 | 外部Reset信号,低电平复位,高电平工作(默认应该是高电平); |
6 | GPIO0 | 接地进入烧录固件模式,悬空为正常运行模式; |
7 | VCC | 3.3V(切记不要供5V!!!) |
8 | RX | 1)UART_RX接收端;2)通用IO口:GPIO3; |
其余引脚悬空即可。 从引脚介绍表可以看出,关键引脚GPIO0决定了模块当前处于什么工作模式。
烧录固件模式
请按照下图连接ESP8266-01和USB转TTL线,进入烧录模式:
如果WiFi模块是ESP8266-12系列,按照下图对应引脚接线:
温馨提示
- 从Arduino IDE角度来看,ESP8266工作模式包括:
1.烧录固件模式
下载代码的时候,需要将GPIO0口接地;
2.正常工作模式
下载完代码,需要将GPIO0口悬空;
有电路经验的读者可以安装拨码开关来切换工作模式。 - 注意ESP8266安全工作电压是3.3V,不要直接连接5v;
- 手动切换工作模式之后,最好重新启动一下ESP8266模块(通断电);
- 有时ESP8266下载失败,有可能是供电问题,可以尝试独立供电,不直接连到TTL Vcc;
- 烧录固件,我们需要了解的是,我们的固件是以下哪一种:AT固件、自己编写的SDK固件(基于ESP8266 SDK开发或者Lua)以及本书基于Arduino平台开发的ESP8266固件
2. 软件开发环境
软件安装需要分成两个步骤:
1.安装Arduino IDE
Arduino IDE开发环境主要用于Arduino Uno/Mini/Mega2560等平台的项目开发。而ESP8266也可以基于该IDE来开发, 所以我们首先需要安装它;
2.1 安装Arduino IDE
由于某些原因,Arduino官网网站(https://www.arduino.cc/en/Main/Software) 经常打不开或者下载速度极慢,导致下载IDE非常困难,读者可以通过以下两种方式下载安装:通过Arduino中文社区链接地址(https://www.arduino.cn/thread-5838-1-1.html) 去下载。
如果你下载的是windows安装版(exe后缀),那么直接安装即可,其他则直接解压即可使用,注意路径不要存在中文目录。启动Arduino,会出现如下图所示界面:
2.2 安装ESP8266开发环境
安装好Arduino IDE环境后,就得在它基础上配置Arduino Core For ESP8266。以window版本为例,读者可以安装以下顺序安装:
- 打开Arduino IDE->菜单项文件->首选项,然后会看到附加开发版管理器网址,填入http://arduino.esp8266.com/stable/package_esp8266com_index.json,重启IDE;
- 重启IDE之后->菜单项工具->开发板->点击开发板管理器->滚动找到ESP8266平台;
- 从下拉选项中选择你想下载的版本,点击安装,需要等待一段时间安装完毕。
- 安装成功的话,会可以看到下图所示。
到此,整个软件开发环境搭建完毕。
温馨提示
- 如果安装失败,一般都是因为网络问题,可以尝试多次重新安装;多次安装失败之后,可能需要翻墙;
- Arduino Core For ESP8266库版本之间是有区别,有些版本可能没有某些方法,比如笔者刚开始的时候安装了2.0.0版本,但是编译代码不通过,提示client.peekBytes方法不存在,安装最新版本完美无bug。
- Arduino IDE界面相对比较简单,笔者觉得代码提示功能、自动补全不够友好,推荐使用Visual Studio、Eclipse等更为专业的开发环境进行开发。这些第三方的开发环境都需要下载对应的Arduino插件进行配置,笔者这里就不具体讲解,有兴趣的可以自行查阅资料解决。
3. 烧录ESP8266
实验是检验真理的唯一标准,配置好硬件和软件环境之后,笔者就给读者提供一个实例代码,并且告诉读者如何配置烧录以及提及一些烧录配置注意点。
3.1实例代码
首先,请读者不用在意代码细节问题,请先拷贝如下代码到Arduino IDE,然后点击编译:
/**
Authorization.ino
Created on: 09.12.2015
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
ESP8266WiFiMulti WiFiMulti;
void setup() {
Serial.begin(115200);
// Serial.setDebugOutput(true);
Serial.println();
Serial.println();
Serial.println();
for (uint8_t t = 4; t > 0; t--) {
Serial.printf("[SETUP] WAIT %d...\n", t);
Serial.flush();
delay(1000);
}
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("1502", "18560052108");
}
void loop() {
// wait for WiFi connection
if ((WiFiMulti.run() == WL_CONNECTED)) {
WiFiClient client;
HTTPClient http;
Serial.print("[HTTP] begin...\n");
// configure traged server and url
http.begin(client, "http://xxx.com/1.php");
/*
// or
http.begin(client, "http://jigsaw.w3.org/HTTP/Basic/");
http.setAuthorization("guest", "guest");
// or
http.begin(client, "http://jigsaw.w3.org/HTTP/Basic/");
http.setAuthorization("Z3Vlc3Q6Z3Vlc3Q=");
*/
Serial.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
delay(10000);
}