查看: 15201|回复: 31
打印 上一主题 下一主题

[使用文档] [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 
    
    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);? ? 
    ? ? BLINKER_DEBUG.stream(Serial);
    ? ? // 初始化有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 ??
    
    void setup() {??
    ? ? Blinker.begin();??
    }

    WiFi接入

    #define BLINKER_WIFI??
    #include ??
    
    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运行时

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

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

    开启调试信息

    你可以在setup中添加以下语句,以查看调试信息

    BLINKER_DEBUG.stream(Serial);

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

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

    BLINKER_DEBUG.debugAll();

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








    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    沙发
    发表于 2019-3-1 17:12 | 只看该作者
    请问怎么做一个显示灯是否打开的提示按键呢
  • TA的每日心情
    奋斗
    2019-5-22 11:39
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    板凳
    发表于 2019-3-7 21:56 | 只看该作者
    您好,我现在没法控制开关灯,不知道为什么,能否帮忙看下
    这是我的帖子地址
    https://www.arduino.cn/forum.php?mod=viewthread&tid=84637&page=1&extra=#pid452641

  • TA的每日心情

    2019-6-11 08:03
  • 签到天数: 134 天

    [LV.7]常住居民III

    地板
    发表于 2019-3-27 19:34 | 只看该作者
    先码一下,今晚开始研究wifiduino
  • TA的每日心情
    郁闷
    2019-4-1 00:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2019-3-31 18:34 | 只看该作者
    问个问题,按照你说的编译后上传出现了错误,
    C:\Users\nagin\Documents\Arduino\libraries\blinker-library-master\src/Blinker.h:239:6: error: #error Please set a mode BLINKER_BLE/BLINKER_WIFI/BLINKER_MQTT ! Please check your mode setting.

    ? ???#error Please set a mode BLINKER_BLE/BLINKER_WIFI/BLINKER_MQTT ! Please check your mode setting.

    exit status 1
    为开发板 Arduino/Genuino Uno 编译时出错。

    点评

    其实你可以百度翻译下这句英文:“请检查你的模式设置” 请看上面例程,例程第一行都设置了连接模式? 详情 回复 发表于 2019-3-31 20:01
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    6#
    ?楼主| 发表于 2019-3-31 20:01 | 只看该作者
    ockggy 发表于 2019-3-31 18:34
    问个问题,按照你说的编译后上传出现了错误,
    C:%users\nagin\Documents\Arduino\libraries\blinker-librar ...

    其实你可以百度翻译下这句英文:“请检查你的模式设置”
    请看上面例程,例程第一行都设置了连接模式
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    7#
    发表于 2019-4-2 20:09 | 只看该作者
    请问BLINKER的WIFI模式是AP+STA模式吗?我想在使用BLINKER的同时再开启一个热点接受其它站点的信息再上传,可行吗?

    点评

    仅仅是STA模式,我认为是不行的,8266貌似不能同时AP+STA? 详情 回复 发表于 2019-4-2 23:52
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    8#
    ?楼主| 发表于 2019-4-2 23:52 | 只看该作者
    s1113408363 发表于 2019-4-2 20:09
    请问BLINKER的WIFI模式是AP+STA模式吗?我想在使用BLINKER的同时再开启一个热点接受其它站点的信息再上传, ...

    仅仅是STA模式,我认为是不行的,8266貌似不能同时AP+STA
    如果以上内容对你有帮助,你可以通过打赏支持作者
  • TA的每日心情
    擦汗
    2019-4-11 23:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    9#
    发表于 2019-4-9 09:04 | 只看该作者
    ockggy 发表于 2019-3-31 18:34
    问个问题,按照你说的编译后上传出现了错误,
    C:%users\nagin\Documents\Arduino\libraries\blinker-librar ...

    我的也是,后来发现是#define BLINKER_WIFI 语句前的#复制掉了!
  • TA的每日心情
    擦汗
    2019-4-11 23:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    10#
    发表于 2019-4-9 09:05 | 只看该作者
    另外问问,此例程编译出来大约有527k,那么是不是无法在arduino UNO和2560上运行了?

    点评

    不同板子编译出来的大小不一样? 详情 回复 发表于 2019-4-9 09:39
    您需要登录后才可以回帖 登录 | 立即注册 ?

    本版积分规则

    热门推荐

    关于温湿度传感器在LCD显示上的问题
    关于温湿度传感器在LCD显
    我建立了一个程序,想要将dht11传感器得到的数据显示在LCD1602上,但是LCD显的都是乱
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    【Arduino】108种传感器模块系列实验(74)--- 4位LED数码管模块
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    (开源)ESP8266改装小风扇,app远程控制+天猫精灵控制
    (开源)ESP8266改装小风
    材料准备 [*]USB风扇一个 [*]ESP8266一块 [*]3.3继电器一块 拆解风扇 第一次,没有
    基于机器视觉的智能分拣机械臂
    基于机器视觉的智能分拣机
    本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
    Copyright ???2015-2016??Arduino中文社区??Powered by?Discuz! ??( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表