查看: 313|回复: 2

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

[复制链接]

该用户从未签到

发表于 2021-6-8 10:03 | 显示全部楼层 |阅读模式
点灯科技的 滑块参数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 | 显示全部楼层

该用户从未签到

发表于 2021-6-14 21:34 | 显示全部楼层

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


这个slider1首字母大小写错了!定义的是Slider1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

Arduino16进制字符串转ASCII(下)
Arduino16进制字符串转ASC
在Arduino16进制字符串转ASCII(上)(简称:上文)基础上,举一反三,超越自我,提高
OLED 128*64自制可达10000000个选项的菜单(已更新)
OLED 128*64自制可达10000
OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
ps2遥控小车——uno实现
ps2遥控小车——uno实现
前几天在阁楼发现了好久以前3d打印,激光切割的底盘,于是决定做这个东西 正好手上又
.h .cpp源代码转.ino草图
.h .cpp源代码转.ino草图
在Github上下载了源码,是.h 和.cpp文件,请问一下,如何才可以转成可以在arduinoIDE
Atmega8/16等AVR单片机改装成Arduino板子
Atmega8/16等AVR单片机改
Atmega8/16改装Arduino板子想把AVR单片机改装成arduino板的,可以通过一下开源库来支
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表