云天 发表于 2020-4-4 17:57:52

【掌控小度】小度智能音箱与掌控板+OneNET物联网“智控”

https://mc.dfrobot.com.cn/data/attachment/forum/202003/23/172112guvouox1ocmuzfx1.png

一、基本信息
作品名称小度智能音箱与掌控板+OneNET物联网“智控”
作者姓名宋秀双
作者单位河北省涿鹿县涿鹿中学

教材名称《万物智控》
教材类型自编教材
教材简介高中信息技术人工智能、编程设计
执教年级高二
课时长度2课时
涉及器材小度智能音箱、掌控板
涉及软件小度技能开放平台、mPython X软件、Easy lot物联网
文件清单教学设计、教学课件、演示视频、任务单、评价表、配套代码

二、作品内容小度智能音箱与掌控板+OneNET物联网“智控”
【硬件搭建】
掌控板连接扩展板,电磁继电器接在P1口。小度智能音箱按使用说明配置好。注意:登录小度音箱的帐号与登录小度音箱开发平台的帐号为同一个,进行调试。
【作品功能】
实现通过小度智能音箱控制台灯(220V)的亮与灭。结合“【掌控小度】开启小度智能音箱与掌控板“智控”之旅”课堂,学习OneNET物联网的使用。


【教学内容】
本课主要内容是设计小度智能音箱控制掌控板开关台灯,目的是让学生通过小度音箱开发平台对Python编程实现简单应用,通过mPython X实现WIFI连接,OneNET物联网使用,电磁继电器的使用。
【学情分析】
高二年级学生,对编程及网络使用已经有一定的基础,先通过TinyWebDB微数据库进行小度音箱与控掌控板简单连接,逐步过渡到使用MQTT物理网进行连接,先控制彩灯,再到电机、舵机、电磁继电器……,从此开启智控万物。
让学生亲身体验人工智能技术的应用给我们的生活带来的方便,并尽量通过讨论、实践与想象设计,发挥学生的能动性,使全体学生都能自主探索并获取新知。
【教学目标与要求】1. 知识与技能学习小度智能音箱开放平台使用,Python编程简单应用,OneNET物联网使用,mPython X实现WIFI连接。2. 过程与方法(1)通过视频展示、亲自实践、创意设计等环节,提高对语音智能控制及其应用的认识;(2)通过对实验器材LED灯、电机、舵机、电磁继电器等的实践,了解OneNET物联网使用,并设计相关的语音人工智能控制实际应用。
3. 情感、态度与价值观(1)在体验与实践相结合的过程中感受语音人工智能控制的应用,产生并保持学习的兴趣;(2)通过分组讨论、小组合作等方式开展多种形式的团队合作,培养学生的动手能力、解决实际问题的能力,提高团队协作能力;(3)通过对创意设计的交流与展示,培养学生的创新能力与语言表达能力;(4)能辩证地认识语音人工智能控制对社会发展、科技进步和日常生活产生的影响。
【教学重点与难点】重点:小度智能音箱控制掌控板的设计与应用。难点:OneNET物联网的原理及使用方法。
【教学方法与手段】体验式教学。通过制作一个小度智能音箱控制掌控板来了解其语音控制技术,对OneNET物联网进行全面的剖析。
【教学准备】1、准备百度帐号:https://dueros.baidu.com/open,小度智能音箱开放平台(DuerOS智能设备开放平台)。2、准备OneNET物联网帐号:https://open.iot.10086.cn/3、小度音箱、掌控板、扩展板、电磁继电器、旧台灯(220V)【教学过程】一、演示小度智能控制台灯(课前)教师活动:演示小度智能控制台灯220V,通过OneNet物联网http://v.youku.com/v_show/id_XNDYxODkyMDU0OA==.html?x&sharefrom=android&sharekey=928847c2cc12a23d2d5cfbcfa5f3614c0虽然演示的过程和效果与之前的差不多,但它是通过OneNet物联网实现的小度与掌控的沟通。学生活动:思考、讨论。
二、OneNET物联网——工作原理讲解
OneNET物联网平台OneNET定位为PaaS服务,即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台:面向设备,适配多种网络环境和常见传输协议,提供各类硬件终端的快速接入方案和设备管理服务;面向应用层,提供丰富的API和数据分发能力以满足各类行业应用系统的开发需求,使物联网企业可以更加专注于自身应用的开发,而不用将工作重心放在设备接入层的环境搭建上,从而缩短物联网系统的形成周期,降低企业研发、运营和运维成本。OneNET与Easy IoT比较OneNet平台和Easy IoT之间最大的不同在于它可以支持多个设备同时订阅。也就是说,可以用一个掌控板来控制其他的掌控板。我这里仅用了一块掌控板来与小度进行通信。
https://upfiles.heclouds.com/other_files/smart_city.mp4
用前须知
OneNet平台新增了新版的物联网接入协议,以下教程仅支持旧版协议(mPython X 不知是否支持新版协议接入?)。因此,我一直用mPython X 与使用旧版协议创建产品。1、OneNet物联注册MQTT(旧版)”协议页面下,点击“添加产品”填写完产品信息,点击“确定”之后,可以看到我们的产品创建完成。
https://mc.dfrobot.com.cn/data/attachment/forum/201911/11/194115tnzxvuyqxczn11uw.png



https://mc.dfrobot.com.cn/data/attachment/forum/201911/11/194320aq2ha42vb4s6u3mh.png




接下来,我们进入MQTT这个产品里,可看到一些产品信息。
需要记下:产品ID,Master-APIkey
https://mc.dfrobot.com.cn/data/attachment/forum/201911/12/092945ee8vvo8e8vpjpr8w.png





https://mc.dfrobot.com.cn/data/attachment/forum/201911/12/093843p1ltk5vkbsbivssl.png



添加设备,我们再给这个产品添加设备,进入添加设备界面(记下设备ID)
https://mc.dfrobot.com.cn/data/attachment/forum/201911/12/093617ddbhbgb4hb66iuc6.png



三、学思践悟——走近小度智能音箱教师活动:指导学生登陆开放平台https://dueros.baidu.com/open

1、配置服务中选择“使用代码编辑”



以下代码为Python2.7
#!/usr/bin/env python2
# -*- encoding=utf-8 -*-
import sys
from dueros.Bot import Bot
from dueros.card.TextCard import TextCard
import urllib2,json

reload(sys)
sys.setdefaultencoding('utf8')

class DuerOSBot(Bot):

    def launch_request(self):
      """
      打开技能
      """
      headers = {'api-key': 'MXra=xLLCcJi=W6RmLze4sE2yLQ='}
      url="http://api.heclouds.com/cmds?device_id=590662143"
      req=urllib2.Request(url=url,data='K', headers=headers)
      urllib2.urlopen(req)
      self.wait_answer()
      card = TextCard('为您开灯')
      return {
            'card': card,
            'outputSpeech': r'为您开灯'
      }

    def ended_request(self):
      """
      关闭技能
      """
      headers = {'api-key': 'MXra=xLLCcJi=W6RmLze4sE2yLQ='}
      url="http://api.heclouds.com/cmds?device_id=590662143"
      req=urllib2.Request(url=url,data='G',headers=headers)
      urllib2.urlopen(req)
      self.wait_answer()
      return {
            'outputSpeech': r'为您开灯'
      }

    def __init__(self, request_data):
      super(DuerOSBot, self).__init__(request_data)
      self.add_launch_handler(self.launch_request)
      self.add_session_ended_handler(self.ended_request)

def handler(event, context):

    bot = DuerOSBot(event)
    result = bot.run()
    return result

四、自学探究
学生活动:自学以下两个内容,修改Python2.7相应代码
OneNet发送命令"API鉴权"https://open.iot.10086.cn/doc/multiprotocol/book/develop/mqtt/api/api-usage.htmlOneNet发送命令API
https://open.iot.10086.cn/doc/multiprotocol/book/develop/mqtt/api/%E5%8F%91%E9%80%81%E5%91%BD%E4%BB%A4.html
引导学习不断测试,发现问题。

五、mPython X程序设计
1、mPython X连接OneNet物联网

六、进行测试
1、模拟测试
2、真机测试
3、测试时使用命令“K”代表开灯,“G”代表关灯

OneNet实时显示的命令数据
七、发布上线
八、总结提升——憧憬未来
能使用物联网,就可以开启智联万物了。同学们可以结合之前的学习内容,说说我们能不能继续完善,解决这节课存在的问题。



rzyzzxw 发表于 2020-4-4 18:04:04

特别厉害啊{:7_219:}

DFrJ5KYVQaH 发表于 2020-4-4 18:26:06

太棒了,非常喜欢

Forgotten 发表于 2020-4-7 21:40:49

勘误:

二、OneNET物联网——工作原理讲解
OneNET与Easy IoT比较
OneNet平台和Easy IoT之间最大的不同在于它可以支持多个设备同时订阅。也就是说,可以用一个掌控板来控制其他的掌控板。我这里仅用了一块掌控板来与小度进行通信。”

MQTT都支持多个设备同时订阅,都可以用一个掌控板控制另外一个掌控板,所以正文这句话是不对的。
onenet适合工业和消费者,界面及功能更新速度快。EasyIot专为教育开发,界面简单不会频繁更新。

刘琦 发表于 2021-5-15 00:22:31

老师关于小度与OneNet的对接 我按你的教程来始终无法实现点亮LED灯的效果能否帮我看看啊
页: [1]
查看完整版本: 【掌控小度】小度智能音箱与掌控板+OneNET物联网“智控”