ESP8266 是一款由乐鑫 Espressif 公司制作的低成本的 Wi-Fi 芯片,具有完整的 TCP / IP 协议栈和微控制器功能。它专为移动设备、可穿戴电子产品和物联网应用设计,功耗很低且价格非常低廉。
我这里使用的 NodeMcu 开发板即搭载了这款芯片。
Arduino IDE 是由 Arduino 官方提供的支持 C 语言的集成开发环境,主要是针对 Arduino 系列的开发板进行编程。
通过简单的配置,可以在原本的编程环境里添加上对 ESP8266 开发板的支持。对于熟悉 Arduino 函数库和开发流程的用户,基本上没有任何使用上的区别。
一、添加 ESP8266 支持
首先从 Arduino 官网 下载最新版本的 Arduino IDE 软件并安装。
安装完成以后,进入首选项(Preferences),找到附加开发板管理器地址(Additional Board Manager URLs),并在其后添加如下信息:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
之后点击工具 - 开发板 - 开发板管理器,进入开发板管理器界面:
找到 esp8266 并安装:
安装完成后,重启 Arduino IDE 软件。在工具 - 开发板选项中即会看到 ESP8266 开发板的选项:
二、测量温湿度
本例中使用 DHT11 温湿度传感器测量室内温度和湿度,再把测量所得的结果输出至 Arduino IDE 的串口监视器中。
源代码
在 Arduino IDE 中新建项目并写入如下代码:
#include "DHT.h"#define DHTPIN 5#define DHTTYPE DHT11// Initialize DHT sensorDHT dht(DHTPIN, DHTTYPE, 15);void setup() {
// Start Serial
Serial.begin(115200);
// Init DHT
dht.begin();}void loop() {
// Reading temperature and humidity
float h = dht.readHumidity();
float t = dht.readTemperature();
// Display data
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C ");
// Wait a few seconds between measurements.
delay(2000);}
由于源代码中首行引入的 DHT 库并不是 Arduino IDE 内置的库文件,需要先点击项目 - 加载库 - 管理库进入库管理器,搜索安装如下两个依赖库(Adafruit Unified Sensor 和 DHT sensor library):
线路连接
该测试项目只需要连接好 NodeMcu 开发板与 DHT11 温湿度模块(或者单独的 DHT11 元件配合 5kΩ 的上拉电阻),无需额外的传感器模块和电子组件。
线路连接示意图如下:
NodeMcu | DHT11 |
---|
3V3 | VCC(Pin1) |
GND | GND(Pin4) |
D1 | DATA(Pin2) |
3V3 | 5k 电阻 - DATA(Pin2) |
编译运行
Arduino IDE 实际上支持非常多的基于 ESP8266 芯片设计的开发板,如 Adafruit Feather HUZZAH ESP8266、LOLIN (WEMOS) D1 mini 等。可以根据自己购买的开发板的具体型号,在编译前选择对应的开发板选项(工具 - 开发板)。
我这里使用的是开源的 NodeMcu v1.0 开发板,编译代码前确保选择正确: