|

楼主 |
发表于 2024-10-26 16:57:02
|
显示全部楼层
图片里可能看不出,补个接线图和程序
- #define BLINKER_WIFI //// 设置 Blinker's 工作模式为 WiFi
- #include <ESP8266WiFi.h> // ESP8266 WiFi库
- #include <DHT.h> // DHT传感器库
- #include <Blinker.h> // Blinker库,用于与点灯科技通信
- #define DHTPIN 2 // DHT22传感器连接的引脚
- #define RELAY_PIN 0 // 继电器连接的引脚
- #define DHTTYPE DHT22 // DHT传感器类型
- DHT dht(DHTPIN, DHTTYPE); // 初始化DHT传感器
- // Blinker配置信息
- char auth[] = "72e69126a448"; // Blinker平台的设备认证密钥
- char ssid[] = "手机维修_中国移动"; // WiFi名称
- char pswd[] = "12345678"; // WiFi密码
- float tempThreshold = 30.0; // 温度阈值
- float humThreshold = 40.0; // 湿度阈值
- // 定义 Blinker 按钮和数显组件
- BlinkerButton button1("btn-relay"); // 控制继电器的按钮
- BlinkerNumber tempNumber("temp"); // 显示温度的数显
- BlinkerNumber humNumber("hum"); // 显示湿度的数显
- unsigned long lastReadTime = 0;
- const long readInterval = 10000;
- void setup() {
- pinMode(RELAY_PIN, OUTPUT); // 设置继电器引脚为输出模式
- dht.begin(); // 初始化DHT传感器
- // 连接到 WiFi 和 Blinker 平台
- Blinker.begin(auth, ssid, pswd);
- // 按钮回调函数,用于手动控制继电器,接受一个String参数
- button1.attach([](const String &state) {
- if (state == "1") { // 如果按钮被按下
- digitalWrite(RELAY_PIN, HIGH); // 继电器闭合
- Blinker.notify("继电器已闭合"); // 发送通知到手机
- } else { // 如果按钮被松开
- digitalWrite(RELAY_PIN, LOW); // 继电器断开
- Blinker.notify("继电器已断开"); // 发送通知到手机
- }
- });
- }
- void loop() {
- // 读取温度和湿度
- unsigned long currentTime = millis();
- if (currentTime - lastReadTime >= readInterval) {
- lastReadTime = currentTime;
- float humidity = dht.readHumidity(); // 读取湿度
- float temperature = dht.readTemperature(); // 读取温度
- // 温湿度显示在手机端
- tempNumber.print(temperature); // 向Blinker App发送温度数据
- humNumber.print(humidity); // 向Blinker App发送湿度数据
- // 如果温度或湿度超过阈值,控制继电器
- if (temperature > tempThreshold || humidity < humThreshold) {
- digitalWrite(RELAY_PIN, LOW); // 继电器断开
- } else {
- digitalWrite(RELAY_PIN, HIGH); // 继电器闭合
- }
- }
- // 保持Blinker连接
- Blinker.run();
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|