查看: 468|回复: 0

[Arduino物联网开发实战1]控制开关灯

[复制链接]
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2018-12-15 23:32 | 显示全部楼层 |阅读模式

    上一篇:blinker开发实战0-开发准备

    下面是我们的第一个blinker程序,请不要着急编译上传,因为我们还要对其进行简单的配置。

    连接配置

    在程序中找到名为auth、ssid和pswd的变量,
    auth中填入在app中获取到的Secret Key,
    ssid和pswd中填入你要连接的WiFi名和密码,如:

    char auth[] = "abcdefghijkl"; //上一步中在app中获取到的Secret Key
    char ssid[] = "blinkerssid"; //你的WiFi热点名称
    char pswd[] = "123456789"; //你的WiFi密码

    然后编译并上传以下程序:  

    #define BLINKER_WIFI
    
    #include <Blinker.h>
    
    char auth[] = "Your Device Secret Key";
    char ssid[] = "Your WiFi network SSID or name";
    char pswd[] = "Your WiFi network WPA password or WEP key";
    
    // 新建组件对象
    BlinkerButton Button1("btn-abc");
    
    // 按下按键即会执行该函数
    void button1_callback(const String & state) {
        BLINKER_LOG("get button state: ", state);
        digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
        Blinker.vibrate();
    }
    
    void setup() {
        // 初始化串口
        Serial.begin(115200);
        // 初始化有LED的IO
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, HIGH);
        // 初始化blinker
        Blinker.begin(auth, ssid, pswd);
        Button1.attach(button1_callback);
    }
    
    void loop() {
        Blinker.run();
    }

    在APP中点击设备图标,即可进入该设备控制界面,点击按钮就可以控制Arduino上的LED灯开关。

    程序解析

    以下对blinker设备程序解析:

    选择连接方式

    blinker支持多种连接方式,

    #define BLINKER_WIFI

    用于指定设备接入方式,你还可以使用 BLINKER_BLE,不同的接入方式对应的Blinker初始化函数也不同:

    蓝牙接入

    #define BLINKER_BLE  
    #include <Blinker.h>  
    
    void setup() {  
        Blinker.begin();  
    }

    WiFi接入

    #define BLINKER_WIFI  
    #include <Blinker.h>  
    
    void setup() {  
        Blinker.begin(auth, ssid, pswd);  
    }

    新建组件并绑定回调函数

    新建组件
    blinker app上每个UI组件在设备端都可以创建一个对应的对象。创建方式如下:

    组件类型  对象名(键名)

    app中组件对应的键名可以在界面编辑模式下看到。
    使用组件的数据键名创建对应的对象,这个对象就与blinker app界面上的UI组件进行了绑定。
    blinker库定义了多种组件类型,对应app上UI组件类型,如
    BlinkerSlider  滑块组件
    BlinkerRGB   颜色拾取组件
    BlinkerNumber  数值组件
    BlinkerText   文本组件
    如下,创建了按键组件和数值组件对应的对象:

    BlinkerButton Button1("btn-abc");
    BlinkerNumber Number1("num-abc");

    回调函数

    void button1_callback(const String & state) {
        BLINKER_LOG("get button state: ", state);
        digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    }

    绑定回调函数

    Button1.attach(button1_callback);

    当app中组件触发并发送到设备端时将触发该组件注册的回调函数

    开启调试信息

    BLINKER_DEBUG.stream(Serial);

    用于指定调试信息输出的串口,设备开发时调试使用,项目或产品成型后,可以删除。

    如果需要查看更多内部信息,可以添加

    BLINKER_DEBUG.debugAll();

    Blinker运行时

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

    Blinker.run()语句负责处理Blinker收到的数据,每次运行都会将设备收到的数据进行一次解析。
    在使用WiFi接入时,该语句也负责保持网络连接

    下一篇:blinker开发实战2-数据反馈






    如果以上内容对你有帮助,你可以通过打赏支持作者
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    KittenBot杯第六届开源硬件开发大赛启动啦
    KittenBot杯第六届开源硬
    大赛简介: 第六届开源硬件开发大赛由Arduino中文社区发起 由KittenBot冠名赞助
    游戏机和开发板脑洞一下;这个本来就是开源的。
    游戏机和开发板脑洞一下;
    这个开发板和标准UNO是1;1的;通用。做在一起是因为可以不用游戏机时可以切换回来做开
    新人求助,关于舵机和限位开关。
    新人求助,关于舵机和限位
    新人求助社区各位哥哥姐姐,具体需要用航模遥控器的3段开关控制Arduino nano控制一个3
    基于MWC开源飞控DIY关键总结分享:
    基于MWC开源飞控DIY关键总
    很早就已经很想写这么一个帖,但总是由于各种原因没能落实,但最后还是找了时
    有关函数返回值的问题
    有关函数返回值的问题
    求助大神们,这个程序中有return返回值,但为什么有这个“ warning: return-statement
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表