ESP8266-01 使用 Arduino IDE


可以使用 Arduino IDE 为售价并不昂贵的WiFi模块编写程序。名为hackster.io的会员请我做一个项目:我的确也这么做了。

项目介绍

一位会员(会员F.G.M.)请我利用ESP8266创建一个项目。他要求这个项目可以连接到Internet,可以使用 Arduino IDE I/O。这是一个粗略的项目框架,任何人都可以使用这个框架以初步学习使用 ESP8266 WiFi模块。一旦上电, ESP8266 将初始化 SSD1306 (I2C) OLED,也会扫描周围所有的网络并寻找特定的“首要网络,一旦找到首要网络,将会尝试连接并登录到WiFi路由器。在这一过程的最后阶段,OLED 将向DHCP显示为 ESP8266 分配的 IP 地址。如果对此你有所怀疑,你可以打开一个控制窗口并且PING这个设备

了解编程环境

基本概念 #1:

当和 Arduino IDE 一起使用时,ESP8266 就变成了另外一个 Arduino ,在这种情况下就是一块类似于 Pro Mini 一块体积较小的,带有串行 UART,但不具备 USB 功能。因此,为与建立连接,用户必须要有串行 USB 模块。我会在组成部件清单里列出一个 USB 模块,但是你必须选择一个电压为3.3V 的 USB 模块。

不要把这种模式与运行AT命令模式的ESP8266弄混淆了,后者与 Arduino 板交互,且 Arduino 板已经被编写了程序与 ESP8266 握手。有些网上的文章一开始就让区分两者之间的设置变得非常困难。

基本概念 #2:

ESP8266 同时拥有闪存和SRAM。如果你在 Arduino IDE 中编写的代码被下载到了一个常见的 Arduino 主控制器中(比如UNO, Mini, Nano, Mega2560, Adafruit Pro Trinket,等等),那么你就是在通过串行链路与  ESP8266 握手。指令集最有可能是“AT”指令集。“AT”指令集的机制是控制/响应,和拨号上网时代的老式哈耶斯调制解调器非常相似。使用控制/响应机制存在的一个问题是,程序编写者必须为从 ESP8266 返回的每个可能的响应做好计划,这是一件非常繁重的工作,而且可能需要作出改变,因为你下次购买的模块的固件的版本号可能会不一样。

当你收到开发板时,固件可能已经提前装好,其默认波特率为115200,或者设备的固件可能以默认9600的波特率进行连接。首先试一试较快的速度,然后试试较低的速度。让事情变得更复杂的是,有多种 ESP8266 板可供选择(更多的产品正在规划中)。


ESP官方模型。Adafruit也推出了一个新模型,但此处并未展示。


基本概念 #3:

 

要使用 Arduino 为 ESP8266 直接编写程序,你必须要在工作站(个人电脑、Mac电脑、安装Linux系统的电脑)上安装 Arduino软件,并且也必须安装 ESP8266 “核心文件夹。使用的具体方法将由你安装的核心(有多个核心可供安装)以及你使用的 Arduino 软件的版本所决定。最常见的是,有三个版本的Arduino IDE 和两个核心可以满足绝大多数情况的要求。

· 来自Arduino.cc的Arduino 1.6.4以及更高版本的软件

· 来自Arduino.org的Arduino 1.7.x以及更高版本的软件

我已经在Windows 8.1 Pro上测试过两个软件。你只需从下面的两个网址中选择一个“核心设置供你使用即可。请继续往下阅读。

  1. https://github.com/esp8266/Arduino
  2. https://github.com/sandeepmistry/esp8266-Arduino

软件“核心安装:让事情变得更加复杂的是,对上面显示的 #1 and #2 核心来说,有两种安装方法。具体安装方法取决于你选择的核心和你使用的Arduino IDE 的版本。如果你运行的是来自 Arduino.cc  Arduino 1.6.4以及更高版本的软件,那么你需要使用Board Manager安装新的核心,具体步骤请见此处

如果你使用来自Arduino.org其它 IDE,或者是来自Arduino.cc的、版本号低于1.6.4的软件,那么你需要解压并下载上文提及的 #2 核心,同时把文件解压到你正在工作的 Arduino 目录中,该目录位于硬件文件夹中。在我的工作中上,文件夹名称是:\Documents\Arduino\hardware\ESP8266需要遵循的基本步骤在此处

建立连接: ESP8266-01

如果你有不同的板,使用 Google 图片进行搜索。

ESP8266-01 使用 Arduino IDE_第1张图片

在实验板上:(图片剪辑自 Google 图片)

基本实验板设置

ESP8266-01 使用 Arduino IDE_第2张图片

我的测试设置:图片

Ray的个人设置

ESP8266-01 使用 Arduino IDE_第3张图片


连接细节:

· OLED 是4管脚的二线串行总线设备,带有数据线以连接到  GPIO0 (零),也带有时钟线以连接到  GPIO2 (零二)。

· CH_PD连接到3.3V的电源。有些电路图显示CH_PD通过一个低阻值电阻连接到电源上,但是这个电阻在正常运行中不是必需的。

· 使用一个10K电阻把RST 拉到电源上。

· 电源和地线连接到 OLED 的电源和地线上,然后连接到一个适当、稳定的电源(如电池、稳压器等)。一个 100uF 且质量良好的电容器应当以非常接近 ESP8266 的距离穿过电源连接和地线。

发送通道(UTXD)和接收通道(URXD)是异步串口连接到 ESP8266 的序列式连接,根据固件版本的不同,波特率通常设定为115200或者9600

· 发送通道是输出,因此它应当连接到串行USB模块的串行输入端。

· 接收通道是输入,因此它应当连接到串行USB模块的发送端。

 

编程步骤:

Arduino flavor core似乎可以很好地管理 ESP8266。关键是要使用一个干净、稳定的电源。其它需要注意的事项包括:

· 不要直接把 GPIO0 连接到GND以激活程序模式!而应当:

1. 切断 ESP8266的电源

2. 使用330欧姆的电阻拉低GND 管脚GPIO0

3. 上电

4. 编程

5. 断电

6. 将 GPIO0 从下拉电阻上移去,根据电路简图要求连接(OLED)

7. 如果管脚在偶然中被推高到高位,330欧姆的电阻将防止对 uC 造成任何损害。

 

· 只能使用电压为3.3V的串行USB模块。绝对不要使用电压为5V的串口转换器。由于 ESP8266 需要更多电流,所以不要尝试使用串行 USB 转接器输出的3.3V电流为 ESP8266 提供电源。

· 使用质量良好的电解电容并尽可能靠近 ESP8266……我用的是100uF 的电解电容

· 将电平拉高时,务必使用 1.8K 欧姆的电阻

实验代码

un-ZIP'd代码都放入一个文件夹中:这是一个多页签项目!在我的电脑上,路径是:

\Documents\Arduino\Sketches\ESP8266\OLED\ESP_WiFiScan-Acquire_2

最后,我想说我把这个项目定位为一个中级项目,但是ESP8266的设置使用可能会很复杂,会让人变得非常失望,所以我并不建议初学者使用ESP8266YouTube上有很多视频,而且网上也有很多资源可供使用,但是绝大部分信息都是错误的!如果你尝试创建这个项目的话,请多给自己一些时间,如果你遭受了挫折,那就多花一点时间研究。ESP8266可能会在瞬间就被烧毁,尽管其价格不是很昂贵,但是看到价格在4美元到5美元之间的开发板在你眼前烧毁,而且当得知下一艘运载ESP8266 的货船需要花几周时间才能从中国抵达的话,你仍然会感到伤心。

和以前一样,祝大家玩的开心!

 

版权声明:


本译文仅用于学习和交流目的。非商业转载请注明译者、出处,并保留文章在译言的完整链接。

原文来源:https://www.hackster.io/

原文标题:ESP8266-01 Using Arduino IDE

原文地址:https://www.hackster.io/rayburne/esp8266-01-using-arduino-ide



你可能感兴趣的:(ESP8266-01 使用 Arduino IDE)