目录
点灯科技的下载和注册:
点灯科技的下载网站APP那一行(安卓和苹果)在注册页面,输入手机号,并点击获取验证码,可以收到手机短信验证码,输入验证码和密码后,点击 立即注册 按钮,即可注册账号,注册成功后会进入我的设备页面。
重要提醒(必须看):
免费用户的额度:
介绍
使用esp8266(Wemos D1 Mini ),DHT11,BMP180,MQ135,点灯科技平台,来创造出一个可以使用手机app查看到内温湿度空气质量PM2.5气压+上传至点灯科技平台可以查到1周内温湿度气压
效果展示
一、点灯科技的配置
2、添加设备
通过添加设备页面,您可以添加设备到您的账号。
在我的设备页面点击右上角的“+”图标,即可进入添加设备页面,具体步骤如下:
3.加配置Blinker界面(UI)
我的界面设置在压缩包里
二、代码步骤
1.引入库
代码如下(示例):
#include <MQ135.h>//MQ135
#include <Blinker.h>//点灯科技
#include <DHT.h>//DHT11
#include <Wire.h>
#include <Adafruit_BMP085.h>//BMP180
2.接线(检查好是否连接正确在通电)
- 开发板+5V—VVC(DHT11,MQ135)
- 开发板GND—GND(全部模块的)
- 开发板+3.3V—VVC(BMP180)
- 开发板D1—BMP180(SCL)
- 开发板D2—BMP180(SDA)
- 开发板A0—MQ135(A0)
- 开发板D4—DHT11(DAT)
3.代码
代码如下(示例):
#include <MQ135.h>
#define BLINKER_WIFI
#include <Blinker.h>
#include <DHT.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
#define DHTPIN 2 //定义DHT11模块连接管脚io2
#define DHTTYPE DHT11 // 使用温度湿度模块的类型为DHT11
const int ANALOGPIN =0;
char auth[] = "*****";//*****修改成生成密钥(key)
char ssid[] = "*******";//*****修改WLAN
char pswd[] = "*******";//*****修改WLAN密码
BlinkerNumber TEMP("temp"); // 定义BMT180温度数据键名
BlinkerNumber PRES("pres"); // 定义BMT180气压数据键名
BlinkerNumber HUMI("cemp"); //定义DHT11湿度数据键名
BlinkerNumber CEMP("humi"); //定义DHT11温度数据键名
BlinkerNumber CEMC("humc"); //定义QM135数据键名
DHT dht(DHTPIN, DHTTYPE); //生成DHT对象,参数是引脚和DHT的类型
MQ135 gasSensor = MQ135(ANALOGPIN);
float humi_read, temp_read;//定义浮点型全局变量 储存DHT11读取的温湿度数据
volatile float ad;
volatile float bd;
float cd = 0;
Adafruit_BMP085 bmp;
void heartbeat()
{
TEMP.print(ad);//反馈数据
PRES.print(bd);//反馈数据
HUMI.print(humi_read);//反馈数据
CEMP.print(temp_read);//反馈数据
CEMC.print(cd);//反馈数据
}
void dataStorage()//云存储温湿度数据函数
{
Blinker.dataStorage("temp", ad);//存BMP180储温度
Blinker.dataStorage("pres", bd);//存BMP1880储气压
Blinker.dataStorage("cemp", humi_read);//存DHT11储温度
Blinker.dataStorage("humi", temp_read);//存DHT11储湿度
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd);
Blinker.attachHeartbeat(heartbeat);
Blinker.attachDataStorage(dataStorage);
dht.begin();
bmp.begin());
}
}
void loop() //把主代码放在这里,重复运行:
{
Blinker.run();//运行Blinker
getDHT();
getBMP();
getMQ();
}
void getDHT()
{
float h = dht.readHumidity();//读取DHT11传感器的湿度 并赋值给h
float t = dht.readTemperature();//读取传感器的温度 并赋值给t
if (isnan(h) || isnan(t))//判断是否成功读取到温湿度数据
{
BLINKER_LOG("Failed to read from DHT sensor!");//读取温湿度失败!
}
else//成功读取到数据
{
//打印
BLINKER_LOG("DHT11湿度: ", h, " %");
BLINKER_LOG("DHT11温度: ", t, " *C");
humi_read = h;//将读取到的湿度赋值给全局变量humi_read
temp_read = t;//将读取到的温度赋值给全局变量temp_read
delay(10);//延时函数
}
}
void getBMP()
{
if (!bmp.begin()) {
BLINKER_LOG("找不到有效的BMP180传感器,请检查接线!");
return;}
}
float a = bmp.readTemperature();//读取BMP180传感器的湿度 并赋值给c
float b = bmp.readPressure();//读取BMP180传感器的湿度 并赋值给b
{
//打印
BLINKER_LOG("BMP180温度: ", a, "C");
BLINKER_LOG("气压: ", b, " *Pa");
ad = a;//将读取到的温度赋值给全局变量ad
bd = b;//将读取到的气压赋值给全局变量bd
delay(10);//延时函数
}
}
void getMQ()
{
float c = gasSensor.getPPM();//测MQ135
{
//打印
BLINKER_LOG("getPPM: ", c, "PPM");
cd = c;//将读取到的温度赋值给全局变量ad
}
Blinker.delay(100);//延时函数
}
在我的压缩包里