esp8266时钟+天气+提醒(一)准备篇
一、概述
1. 概述
本项目使用ESP8266 D1 mini(WIFI模块为ESP-12F)、OLED显示屏、DTH11传感器等实现一个桌面多功能“摆件”,目标功能包括联网时钟、天气显示、室温测定、备忘提醒等功能。
注:本系列中斜体表示IDE中的UI按钮,需要鼠标点击的。粗体表示需要重点关注的内容,起强调或提醒作用。
2. ESP8266
ESP8266是一款WIFI串口模块,其引脚图如下:
与OLED通信需要用到I2C,因此OLED的SCL连接8266的D1引脚,SDA连接D2引脚。I2C的具体原理不在这里赘述了。
3. DTH11
DTH11是一款一体化的温湿度传感器,有很多种产品,包括三引脚的、四引脚的。但其实它们核心功能其实都是一样的,四引脚相较于三引脚,多出来的那个通常是NC,即无连接引脚。
如果条件允许,也可以购买DTH22,它是DTH11的高配版。
二、Arduino IDE配置
1. IDE
Arduino 软件(IDE)是一个开源项目,可以轻松编写代码并将其上传到板。此软件可与任何 Arduino 板一起使用。
虽然我们使用的是ESP8266,但可以通过安装扩展或者库的方式来通过Arduino IDE烧录。
官网下载地址:Arduino IDE 软件,也可以从微软商店等地方下载目前最新的版本是2.3.2。
安装好后,可以先修改语言为简体中文,方法为:顶栏点击Files->Preferences,选择Languages为简体中文即可。
2. 扩展安装
在修改语言后,需要先为其他开发板添加管理器,具体方法为:
打开设置/首选项后,将这个链接放到其他开发板管理地址中去:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
效果如图:
点击确认,保存设置。
值得注意的是,建议在网络设置里配置一下代理,因为有些库的安装源在国外,下载速度非常缓慢甚至可能下载失败。
接下来,在开发板管理器中搜索esp8266并下载,如图所示:
把它安装,点击安装时可能会提示xxx依赖需要安装,这时候需要点击一起安装。
此外还有一些库会用到,在库管理器中搜索、安装(注意和刚才不是一个地方),如图所示:
以NTPClient为例,当然还有其他一些需要的库,后面按需安装。
3. 连接
将ESP8266连接到电脑的USB口上,一般使用手机充电线就可以,这个视插口类型而定。
连接时应该能观察到LED闪烁(没有也问题不大)。
接下来在IDE中选择串口和开发板类型,如图所示:
先点击调试右侧的那个表单按钮,这时候在输入框中输入D1,而非ESP8266,否则可能搜索不到。具体子型号根据自己的模块来确定,我这里选择了D1 mini Pro。
开发板选择好后在右侧选择端口,值得注意的是,请确保提前安装好CH340驱动,否则在这一步或后面可能出现无法连接或无法读取的问题。
三、连接WIFI
1. 示例程序
点击顶栏文件->示例->ESP8266WiFi->WiFiClient,打开连接WiFi的示例工程,位置有点靠下。
打开后如下图所示:
可以注意到,在上面定义了两个常量:
#ifndef STASSID
#define STASSID "your-ssid"
#define STAPSK "your-password"
#endif
const char* ssid = STASSID;
const char* password = STAPSK;
其中,SSID表示要连接的WiFi名称,password就是密码了。
将要连接的WiFi信息填入,烧录程序,观察串口监视器。
如果串口监视器未显示,点击工具->串口监视器,或者按下Ctrl+Shift+M,也可以通过点击界面上X按钮下方的串口监视器按钮来打开。
打开后,注意调整串口监视器的波特率为115200,否则可能出现乱码,这是程序中规定的,当然,也是可以修改的。
当串口监视器中出现“WiFi connected”字样,说明WiFi连接成功,如下图所示:
2. 需认证的WiFi
有些WiFi连接需要认证,主要是一些内部网络,比如校园网、公司网等。若未认证则无法正常使用。
认证的原理通常是判别设备的硬件地址(mac)是否有记录。基于此,可以先认证设备的硬件地址,再启动程序连接。
具体方法如下:
将ESP8266连接手机热点,在手机个人热点的连接管理中查看设备详情:
不同的手机查看方式可能有所区别。
观察到ESP8266的硬件地址为dc:4f:22:6b:de:29。
登入内网的自助服务平台(或者其他的名字),在用户管理或设备管理中选择增加mac,如图所示:
将前面获得的mac输入并保存即可,这样ESP8266就通过了认证。
接下来再返回WiFiClient工程,修改ssid为要连接的WiFi名称,password写成空字符串,再次烧录程序,可以观察到连接成功。
未完待续
下一篇将是代码篇,介绍功能的代码实现。