【万物物联】Siri+快捷指令+onenet控制掌控板

一、前言

最近在和学生准备一场比赛,其中一个功能需要手机语音助手来控制掌控板开关灯,那么如何实现Siri和掌控板之间的通讯呢?看了铁熊的一篇文章:【掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!】看了教程后直接被劝退!这让初中生实现起来也不切实际啊,有没有更加便捷的方法呢?
百度了一下,最终在一篇文章:【“玩板”+siri+快捷指令+XCC3200(MQTT)来控制】中找到了方法,那就是通过苹果系统中的快捷指令来实现。好了,废话不多说,就让我们开始本次的教程吧。

二、准备阶段

2.1 注册onenet账号

首先打开onenet物联网平台,点击右上角的注册按钮,来到注册界面,开启注册。(我这里已经注册过了,就不再一一描述了)

注册完毕后,我们登录我们的账号,点击右上角的控制台按钮。

选择切换至旧版。(因为数据与旧版不互通,管理产品历史请返回旧版开发者中心)

进入旧版后,选择多协议接入。

在MQTT旧版下,选择添加产品。

新建我們的产品(名称、行业、类别…等)

添加产品成功后,开始给我们的产品添加设备。

选择添加设备按钮

填写好设备相关信息(设备名、鉴权信息等这些信息不唯一。)后点击添加。

这时候出现一个刚我们刚才新建的设备。(可以看到这个设备是处于离线状态。)然后我们点击详细进行apikey值的配置


选择添加APIKey(這個只隨便填寫)

这个时候我们需要记一下【设备ID,APIKey的值】以及该产品的产品ID值,后面会用到。

2.2 创建快捷指令

打开快捷指令APP,点击上方的加号,开始添加我们的快捷指令。

点击网页组件。

选择获取URL网页内容

填写我们需要请求的网页地址及相关信息。

1 “获取URL内容”:http:api.hecoluds.com/cmds?device_id=xxxxxxxxxx
填写的是设备ID
2 “方式”:POST 请求方式
3 头部:“api-key” ,“xxxxxxxxxxxxxxxx”在MQTT服务器上信息APIKey
4 请求体JSON:这里的内容就是掌控板里面接收到判断输出的信息,比如"speed,1"  功能打开灯。"speed,0"  功能关闭灯


配置好后,给我们的指令命名【开灯】

这样就创建好了一个快捷指令,复制这个指令把它重新命名【关灯】,json中的值由原来的1变成0即可。

三、程序编写

打开mpython,添加onenet扩展,然后进行程序的编写。
这里的设备ID、产品ID、产品APikey都是我们之前需要记得。

from mpython import *import networkmy_wifi = wifi()my_wifi.connectWiFi('Erised', 'yiruosi88')import ntptimefrom umqtt.simple import MQTTClientfrom machine import Timerimport machineimport ubinasciidef OneNET_recv(_msg):pass
_OneNET_msg_list = []
def OneNET_callback(_topic, _msg):global _OneNET_msg_listtry: _msg = _msg.decode('utf-8', 'ignore')except: print(_msg);returnOneNET_recv(_msg)if _msg in _OneNET_msg_list:eval('OneNET_recv_' + bytes.decode(ubinascii.hexlify(_msg)) + '()')tim14 = Timer(14)_iot_count = 0
def timer14_tick(_):global _iot, _iot_count_iot_count = _iot_count + 1if _iot_count == 1000: _iot.ping(); _iot_count = 0try: _iot.check_msg()except: machine.reset()_iot = None
def OneNET_setup():global _iot_iot = MQTTClient('408137', '183.230.40.39', 6002, '692155207', 'CoOilgoe0bL3oACmQqFj8VZPgB8=', keepalive=300)_iot.set_callback(OneNET_callback)if 1 == _iot.connect(): print('Successfully connected to MQTT server.')tim14.init(period=200, mode=Timer.PERIODIC, callback=timer14_tick)import jsondef pubdata(_dic):print(_dic)_list = []for _key in list(_dic.keys()):_d = {'id':_key,'datapoints':[{'value':_dic[_key]}]}_list.append(_d)_data = {'datastreams': _list}j_d = json.dumps(_data)j_l = len(j_d)arr = bytearray(j_l + 3)arr[0] = 1arr[1] = int(j_l / 256)arr[2] = j_l % 256arr[3:] = j_d.encode('ascii')return arrimport ujsonimport timedef OneNET_recv(_msg):global x, j, i, p_state, y_state, w1, t_state, w2, h_sate, w3, o_state, tempoure, my_dict, tempmy_dict = ujson.loads(_msg)temp = my_dict.get('speed')print(temp)if temp == 0:rgb.fill( (0, 0, 0) )rgb.write()time.sleep_ms(1)elif temp == 1:rgb.fill((int(255), int(0), int(0)))rgb.write()time.sleep_ms(1)
ntptime.settime(8, "time.windows.com")
OneNET_setup()
_iot.publish('$dp', pubdata({'speed':1}))
while True:pass

四、功能演示

Siri+快捷指令+onenet控制掌控板

五、总结

通过本次教程我们就可以简单的实现siri控制掌控板啦,当然也可以是其他连网设备。期待读者等多的项目创新,更多教程请浏览我的个人博客:www.hockel.club!

【万物物联】Siri+快捷指令+onenet控制掌控板相关推荐

  1. appinventor HTML5,用APP Inventor纯图形化编程自制APP,通过WIFI物联网控制掌控板

    本帖最后由 Forgotten 于 2020-6-8 15:22 编辑 感谢社区大神:让小朋友们打造自己的手机APP,通过OBLOQ-IOT联网控制MI... 原帖中的app比较简单,实现了基本功能, ...

  2. 掌控板教程 | 搞定 Siri 语音控制,只要半小时!

    话不多说,先上效果演示视频: 本教程适用于掌控板及其他 ESP32 开发板. # 前言 # 前段时间,我在公众号上面发了一篇文章:掌控板 V1.1 语音识别初体验 在这篇文章中,我使用了还处于测试阶段 ...

  3. 掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!

    话不多说,先看效果演示视频: B 站视频链接:https://www.bilibili.com/video/av63856715/ 腾讯视频链接:https://v.qq.com/x/page/i09 ...

  4. 用Arduino玩转掌控板(ESP32):不到100行代码实现Siri语音控制 → WebServer应用示例...

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  5. 用Arduino玩转掌控板(ESP32):Siri语音识别读取传感器数据→WebServer应用示例2

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  6. 苹果手机智能计算机怎么用,siri快捷指令进阶版,如何用苹果手机NFC控制米家设备...

    siri快捷指令进阶版,如何用苹果手机NFC控制米家设备 2020-08-16 13:05:20 11点赞 94收藏 3评论 上一篇简单说了下用Siri控制米家设备.这篇说一下用NFC控制.需要准备苹 ...

  7. siri快捷指令_入门的最佳Siri快捷方式

    siri快捷指令 The new Shortcuts app that was introduced in iOS 12 lets you create shortcuts to automate a ...

  8. ChatGPT of Siri 快捷指令语音免魔法3.5版+网页版 - TDChat

    ChatGPT for Siri快捷指令语音版+网页版 - TDChat

  9. siri快捷指令_如何使用siri快捷方式来记录警察的遭遇

    siri快捷指令 Have you been pulled over or stopped on the street by the police? Siri can come to your aid ...

最新文章

  1. 【Netty】大白话 Netty 核心组件分析
  2. str_pad函数php,str_pad
  3. 全球及中国生物柴油行业产量规模及市场消费需求预测报告2021-2027年
  4. java webmethod 参数_java详解Spring接收web请求参数的方式
  5. 提高数据库处理查询速度
  6. 基于springboot框架的博客系统
  7. Windows 全新终端 Windows Terminal
  8. fastjson list转json字符串_从fastjson转jackson的血泪史
  9. vue 对象继承_JS面向对象—对象的继承
  10. [Yii][RBAC]Yii中应用RBAC完全指南
  11. 面试官问:Mybatis Plus 是如何实现动态 SQL 语句的?原理你懂吗?
  12. golang tailf日志组件的基本使用
  13. swift 中使用 Alamofire+Moya+ObjectMapper,并做了一些功能封装
  14. VB中Byval和byref的区别
  15. 使用手机APP远程控制51单片机
  16. (转)来自一位作业辅导老师的经验分享
  17. 不要跌入孤独寂寞的陷阱
  18. visual assist 小番茄常用设置
  19. 艾永亮:上汽通用五菱为什么被称之为神车,它将如何打造超级产品
  20. blendShape基础知识与创建方法

热门文章

  1. vpu测试_611bp上的VPU测试
  2. 【编程题】【Scratch四级】2021.03 程序优化
  3. 如何编程软件(编程序入门)
  4. Windows桌面端录屏采集实现
  5. fa常用脚本,资产类表的字段详解
  6. 中秋节后如何留住客户?
  7. 构建一个适合stm32mp157系列开发板的嵌入式Linux系统
  8. .NET-9.乱七八糟的理论笔记(概念,思想)
  9. FITC标记亲和纯化大鼠抗小鼠IgG(H+L)二抗说明书
  10. 【visual studio】visual studio 2022 无法 复制黏贴