900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Arduino使用点灯科技+小爱同学+WIFI 实现一个设备区分控制多个舵机/电灯

Arduino使用点灯科技+小爱同学+WIFI 实现一个设备区分控制多个舵机/电灯

时间:2020-11-25 02:21:11

相关推荐

Arduino使用点灯科技+小爱同学+WIFI 实现一个设备区分控制多个舵机/电灯

相较于一个Arduino只能作为小爱同学的一个执行器

多个区分控制需要更改电灯科技提供的设备类型

#define BLINKER_MIOT_MULTI_OUTLET

通过这个定义,将设备定义为一个具有四个口的插座

对应事件处理的代码

//在这里使用了四个电动机作为示例WriteMotor1-4void miotPowerState(const String & state, uint8_t num) {BLINKER_LOG("need set outlet: ", num, ", power state: ", state); if (num == 1) //第几号插口{if (state == BLINKER_CMD_ON)//收到开的指令{ BlinkerMIOT.powerState("on", num); //如果小爱同学老是提醒检查设备BlinkerMIOT.print(); //需要操作后返回设备状态,小爱说完成了WriteMotor1(true);}if (state == BLINKER_CMD_OFF)//收到关的指令{BlinkerMIOT.powerState("off", num);BlinkerMIOT.print(); WriteMotor1(false);}}if (num == 2){if (state == BLINKER_CMD_ON) {BlinkerMIOT.powerState("on", num);BlinkerMIOT.print(); WriteMotor2(true);}if (state == BLINKER_CMD_OFF) {BlinkerMIOT.powerState("off", num);BlinkerMIOT.print();WriteMotor2(false); }}if (num == 3){if (state == BLINKER_CMD_ON) {BlinkerMIOT.powerState("on", num);BlinkerMIOT.print();RemoteMotor3(true);}if (state == BLINKER_CMD_OFF) {BlinkerMIOT.powerState("off", num);BlinkerMIOT.print(); RemoteMotor3(false);}}if (num == 4){if (state == BLINKER_CMD_ON) {BlinkerMIOT.powerState("on", num);BlinkerMIOT.print();RemoteMotor4(true);}if (state == BLINKER_CMD_OFF) {BlinkerMIOT.powerState("off", num);BlinkerMIOT.print();RemoteMotor4(false);}}if(num == 0) //零号为整个插排的开关关闭{if (state == BLINKER_CMD_ON) {BlinkerMIOT.powerState("on", 0);BlinkerMIOT.print();WriteMotor1(true);WriteMotor2(true);RemoteMotor3(true);RemoteMotor4(true);}if (state == BLINKER_CMD_OFF) {BlinkerMIOT.powerState("off", 0);BlinkerMIOT.print();WriteMotor1(false);WriteMotor2(false);RemoteMotor3(false);RemoteMotor4(false);}}}

对应状态查询的代码

void miotQuery(int32_t queryCode, uint8_t num){BLINKER_LOG("Query outlet: ", num,", codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER :BLINKER_LOG("MIOT Query All"); /*相对于单个控制,需要根据特定的num返回对应num号接口的状态*/BlinkerMIOT.powerState(MState[num] ? "on" : "off", num);BlinkerMIOT.print();break;case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :BLINKER_LOG("MIOT Query Power State");BlinkerMIOT.powerState(MState[num] ? "on" : "off", num);BlinkerMIOT.print();break;default :BlinkerMIOT.powerState(MState[num] ? "on" : "off", num);BlinkerMIOT.print();break;}}

其余部分可以参考普通的单个开关控制器。

接下来操作小爱同学的部分

小爱-个人中心-我的设备-智能家居,中应该可以看到5个插排设备,

这五个设备分别对应1-4和0(总控)

接下来添加训练即可

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。