关于点灯开关按钮状态同步-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: mangge08

[已解答] 关于点灯开关按钮状态同步

[复制链接]
 楼主| 发表于 2020-12-14 10:43 | 显示全部楼层
多谢各位帮助,终于解决。代码如下:
#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR
#define BLINKER_WITHOUT_SSL
#include <Blinker.h>
char auth[] = "";
char ssid[] = "";
char pswd[] = "";
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
BlinkerButton b1("b1");
BlinkerButton Button("btn");
#include <DHT.h>
#define DHTPIN 4
int OUT1 = 12;                    
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);
uint32_t read_time = 0;
float humi_read, temp_read;
void button_callback(const String & state)   //手机控制LED的亮灭//
{
BLINKER_LOG("get button state: ", state);
digitalWrite(OUT1, !digitalRead(OUT1));   
if (digitalRead(OUT1)==HIGH)
    {     
      Button.color("#008000");                   //green
      Button.text("on");
      Button.print("on");
    }
    else
    {
     Button.color("#FF0000");                   //red
     Button.text("off");
     Button.print("off");
    }   
   // delay(100);
}  
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    Blinker.vibrate();   
    uint32_t BlinkerTime = millis();   
    Blinker.print("间隔", BlinkerTime/1000);
}
void heartbeat()
{
    HUMI.print(humi_read);
    TEMP.print(temp_read);
if (digitalRead(OUT1)==HIGH)
    {
      Button.color("#008000");                   //green
      Button.text("已开x");
      Button.print("on");
    }
    else
    {
     Button.color("#FF0000");                   //red
     Button.text("已关x");
     Button.print("off");
    }     
}
void dataStorage() {
    Blinker.dataStorage("temp", temp_read);
    Blinker.dataStorage("humi", humi_read);
}
void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
   // BLINKER_DEBUG.debugAll();
    pinMode(OUT1, OUTPUT);                        
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Blinker.attachHeartbeat(heartbeat);
    Button.attach(button_callback);
    Blinker.attachDataStorage(dataStorage);
    dht.begin();
    digitalWrite(OUT1, HIGH);
}
void loop()
{
    Blinker.run();
     digitalWrite(LED_BUILTIN, HIGH);
    if (read_time == 0 || (millis() - read_time) >= 2000)
    {
        read_time = millis();
        float h = dht.readHumidity();
        float t = dht.readTemperature();     
        if (isnan(h) || isnan(t))
        {
            BLINKER_LOG("Failed to read from DHT sensor!");
            return;
        }
        humi_read = 33.33;
        temp_read = 66.666;
        digitalWrite(LED_BUILTIN, LOW);
    }
}
 楼主| 发表于 2020-12-14 10:57 | 显示全部楼层
如果两个wifi,连其中任意一个都行,这个语句怎么写啊?Blinker.begin(auth, ssid, pswd);


   
判断例子
   bool result = Blinker.connect();         //获取连接服务器的状态  0失败 1成功   
      //bool result = Blinker.connected();   
       if (result == 0 ){                        
        digitalWrite(b1, LOW);                  //亮灯
       }else if (result == 1 ){
        digitalWrite(b1, HIGH);                 //灭灯
 楼主| 发表于 2020-12-14 13:52 | 显示全部楼层
这个帖子也不错
esp8266断网后通过软件自动重启的方法
https://www.arduino.cn/forum.php ... =%E9%87%8D%E5%90%AF
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 13:47 , Processed in 0.194053 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表