一、硬件准备
esp8266 / esp32开发板
LED、WS28b20、DHT11/22温湿度传感器、电阻等
二、软件准备
Arduino IDE
IDE需要配置ESP8266扩展
blinker APP
下载地址:https://www.pgyer.com/NUCZgc
三、blinker添加设备
手机APP添加设备,选择网络接入
此时我们可以得到一个密钥:XXXXXXXXX
char auth[] = "设备密钥";char ssid[] = "WIFI名称";char pswd[] = "WIFI密码";
在程序中找到名为auth、ssid和pswd的变量,依次填入之前在App中获取的密钥、设备要连接到的WiFi名和密码
三、源代码:
#define BLINKER_WIFI
#include <Blinker.h>
#include <DHT.h>
char auth[] = "设备密钥";char ssid[] = "WIFI名称";char pswd[] = "WIFI密码";
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");// 定义名为 "temp" 的 BlinkerNumber 对象
#define DHTPIN D7
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);// 初始化 DHT 传感器
float humi_read = 0, temp_read = 0;// 初始化湿度和温度的读取值为 0
// 定义心跳函数
void heartbeat(){
HUMI.print(humi_read);// 将读取到的湿度值打印到 "humi" BlinkerNumber 对象上
TEMP.print(temp_read);}// 将读取到的温度值打印到 "temp" BlinkerNumber 对象上
// 定义数据存储函数
void dataStorage(){
Blinker.dataStorage("temp", temp_read);// 将温度值存储到 Blinker 数据存储中
Blinker.dataStorage("humi", humi_read);} // 将湿度值存储到 Blinker 数据存储中
// 定义主函数
void setup(){ // 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);// 使用 Serial 打印调试信息
BLINKER_DEBUG.debugAll();// 打印所有调试信息
pinMode(LED_BUILTIN, OUTPUT);// LED 的输出模式
digitalWrite(LED_BUILTIN, LOW);// 关闭 LED
// 初始化 Blinker 库
Blinker.begin(auth, ssid, pswd); // 初始化 Blinker 库
Blinker.attachHeartbeat(heartbeat);// 绑定心跳函数
Blinker.attachDataStorage(dataStorage);// 绑定数据存储函数
dht.begin();//初始化 DHT 传感器
}
// 主循环
void loop(){
// 运行 Blinker 库
Blinker.run();
// 读取 DHT 传感器的数据
float h = dht.readHumidity();
float t = dht.readTemperature();
// 如果读取数据失败,打印错误提示
if (isnan(h) || isnan(t))
{
BLINKER_LOG("Failed to read from DHT sensor!");
}
else
// 将读取到的湿度和温度值赋值给相应的变量
{
BLINKER_LOG("Humidity: ", h, " %");
BLINKER_LOG("Temperature: ", t, " *C");
humi_read = h;// 将湿度值赋值给 humi_read 变量
temp_read = t;// 将温度值赋值给 temp_read 变量
}// 延迟 2 秒钟后再次读取数据
Blinker.delay(10);}