点灯科技的 滑块参数Slider,如何从设备端传给手机APP端呢-Arduino中文社区 - Powered by Discuz! Archiver

19137426 发表于 2021-6-8 10:03

点灯科技的 滑块参数Slider,如何从设备端传给手机APP端呢

点灯科技的 滑块参数Slider,如何从设备端传给手机APP端呢

我想设计一个滑块组件,控制8266设备端PWM占空比的输出,现在APP端可以控制8266的占空比了。但是,当8266在运行过程中,APP如果关闭了,再次打开,手机端就不会呈现8266滑块的值的数据,而是0,很不方便,想利用类似【Number1.print(counter);//向APP发送数据】,在APP端打开时,用心跳包的方式,把滑块值,发送到手机APP上,
程序如下【      slider1.print(i);//向APP发送数据】
//心跳包数据,大约59秒左右发送一次
void heartbeat()
{   
      slider1.print(i);//向APP发送数据
//    HUMI.print(humi_read);
//    TEMP.print(temp_read);
}

但是编译过程中就报错了,
全部程序在下面
#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define Slider_1 "SliderKey1"
#include <Blinker.h>
/*******此处修改*******/
char auth[] = "c15abcb194d9";//秘钥
char ssid[] = "cym";//WiFi名称
char pswd[] = "19137426";//WiFi密码

// 新建组件对象
BlinkerButton Button1("key");
BlinkerButton Button2("key2");
BlinkerNumber Number1("num-abc");
BlinkerSlider Slider1("ran-cym");//新建一个滑块 对象

int i=0,j=0;
//滑块1执行的程序
void slider1_callback(int32_t value)//滑块回调函数
{   
    i=1023-value;//【value】的值就是滑块传递进来的值
    //BLINKER_LOG("i =", i);
    analogWrite(2, i); //写入占空比的函数
    //slider1.print(i);//向APP发送数据
}

//心跳包数据,大约59秒左右发送一次
void heartbeat()
{   
      slider1.print(i);//向APP发送数据
//    HUMI.print(humi_read);
//    TEMP.print(temp_read);
}


//
int counter = 0;
// 按下按键1即会执行该函数
void button1_callback(const String & state)
{   i=i+50;
    if(i>=1000){i=1000;}
    //analogWrite(2, i);   //把最新的占空比写入程序(占空比为0-1023)
    BLINKER_LOG("get button state: ", state);
    //digitalWrite(2, !digitalRead(LED_BUILTIN));
}

// 按下按键2即会执行该函数
void button2_callback(const String & state)
{
    i=i-50;
    if(i<=0){i=0;}
    analogWrite(2, i);   //把最新的占空比写入程序(占空比为0-1023)

    BLINKER_LOG("get button state: ", state);
    //digitalWrite(2, !digitalRead(LED_BUILTIN));
}


// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);//向串口发送数据
    counter++;
    Blinker.vibrate();//向app发送震动数据,手机会震动
    Number1.print(counter);//向APP发送数据
}

void setup() {
    // 初始化串口
    Serial.begin(115200);
    #if defined(BLINKER_PRINT)
      BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif

    // 初始化有LED的IO
    pinMode(2, OUTPUT);
    analogWrite(2, 1023-400);//pwm信号输出
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);//注册按键回调函数
    Button2.attach(button2_callback);//注册按键回调函数
    Slider1.attach(slider1_callback);//注册滑块回调函数
}

void loop() {
    Blinker.run();
}


点灯官方 发表于 2021-6-8 12:13

请参考例程blinker-library/Slider_WiFi.ino at master · blinker-iot/blinker-library (github.com)

renshuang 发表于 2021-6-14 21:34


//心跳包数据,大约59秒左右发送一次
void heartbeat()
{   
      slider1.print(i);//向APP发送数据
//    HUMI.print(humi_read);
//    TEMP.print(temp_read);
}

这个slider1首字母大小写错了!定义的是Slider1

xiongjiaxiao 发表于 2022-1-7 22:38

哈?滑块模组可以从MCU端发送数据给APP端?这······闻所未闻啊:L

xiongjiaxiao 发表于 2022-1-7 22:39

xiongjiaxiao 发表于 2022-1-7 22:38
哈?滑块模组可以从MCU端发送数据给APP端?这······闻所未闻啊

我记得根本就没这样的函数,点灯APP滑块模组的数据是不能被MCU端更改的

点灯官方 发表于 2022-1-8 11:24

xiongjiaxiao 发表于 2022-1-7 22:39
我记得根本就没这样的函数,点灯APP滑块模组的数据是不能被MCU端更改的

您好,是可以的,参见例程

kck 发表于 2022-7-21 18:47

点灯官方 发表于 2021-6-8 12:13
请参考例程blinker-library/Slider_WiFi.ino at master · blinker-iot/blinker-library (github.com)
...

请问该如何将点灯app里滑块的数据发送至mcu中,并用于编程中参数的设置
页: [1]
查看完整版本: 点灯科技的 滑块参数Slider,如何从设备端传给手机APP端呢