实验内容
使用 ESP8266 连接并连接贝壳物联平台 (需要对ESP8266进行透传联网),并温湿度数据上传。
贝壳物联的使用手册。
实验器件
- arduino UNO X 1
- ESP8266-01s X 1
- DHT11温湿度传感器 X 1
- USB数据烧写线 X 1
- 面包板 x 1
- 杜邦线 X 10
实验连线
ESP8266 | Arduino |
---|---|
3v3 | 3.3V |
GND | GND |
EN | 3.3V |
RX | TX |
TX | RX |
DHT11 | Arduino |
---|---|
VCC | 5V |
GND | GND |
DATA | 2 |
实验步骤
- 根据连线表格,将ESP8266、DHT11与Arduino开发板进行连接;
- 将代码中“DEVICEID”、“APIKEY”、“INPUTID”进行修改。
- 将Arduino开发板与电脑通过USB烧写线进行连接(上传时RX与TX不要连接,上传完再连接)
- 使用Arduino IDE将代码验证并上传
- 上传成功后,在贝壳物联平台查看数据。
实验代码
注意:记得修改代码中的“DEVICEID”、“APIKEY”、“INPUTID1”、“INPUTID2”。
#include <aJSON.h> //引用库文件
#include <dht11.h> //引用dht11库文件
#define dht11Pin 2 //定义温湿度针脚号为2号引脚
//============= 此处必须修改============
String DEVICEID = "设备ID"; // 你的设备ID=======
String APIKEY = "设备APIKEY"; // 设备密码==
String INPUTID1 = "数据接口1"; //接口ID1==============
String INPUTID2 = "数据接口2"; //接口ID2==============
//=======================================
dht11 dht; //实例化一个对象
unsigned long lastCheckStatusTime = 0; //记录上次报到时间
unsigned long lastUpdateTime = 0;//记录上次上传数据时间
const unsigned long postingInterval = 40000; // 每隔40秒向服务器报到一次
const unsigned long updateInterval = 5000; // 数据上传间隔时间5秒
unsigned long checkoutTime = 0;//登出时间
void setup() {
pinMode(dht11Pin, OUTPUT); //通过定义将Arduino开发板上dht11Pin引脚(2号口)的工作模式转化为输出模式
Serial.begin(115200);
delay(5000