论文部分内容阅读
创客空间应该是一个充满个性的地方,各种奇思妙想都能在这里得到实现。当我校的创客空间全新装修好后,我和学生总觉得还不够个性化,科技感也不强。创客空间里的细节布置肯定要自己来设计并且实现。于是,我们把目光投向了照明系统,即灯光。
要让照明系统体现个性,自然要买支持物联网控制的灯泡,如小米、华为和Yeelight的智能灯泡(如图1)。这些灯泡往往具有可调光、支持手机远程控制等特点,也称为智能情景照明灯。但我们不满足于用企业开发的APP来控制灯光,而是希望能够自己编程对灯泡进行个性化控制,如定时开灯和关灯,或者结合一些创客空间的传感器实现真正的智能控制。
原理分析
支持手机APP控制的智能灯泡很多,但是能够让用户自行编程控制的却寥寥无几。研究了市场上常见的开放接口的智能灯泡,总结出自定义编程大致有两种方式:一是智能灯泡的物联网网关支持第三方认证接入,如天猫精灵;二是智能灯泡同时支持局域网内部的控制,如Yeelight。
默认情况下,Yeelight智能灯泡与物联网网关建立联系,然后手机APP通过网关发送控制指令给灯泡,每一个智能灯泡都是一个智能终端。但是,Yeelight智能灯泡如果开启了“局域网控制”功能,那么就可以同时响应来自局域网任一智能设备的控制指令了,发送控制指令的设备可以是电脑、手机,也可以是任何一个支持网络功能的MCU,如掌控板、虚谷号和树莓派等,具体过程如图2所示。
智能灯泡的编程控制实验
虽然任何一种支持网络的编程语言都可以给Yeelight智能灯泡设备进行编程,但考虑到学习难度,我们选择了Python语言。因为Yeelight官方提供了一个库,在这个库的支持下,编程会更加容易。
1.准备工作
(1)智能灯泡和电脑或者其他可编程智能设备要处于同一个局域网。我们使用的是最新的虚谷号(如上页图3),它是一款面向人工智能教学和Python编程学习而开发的开源硬件平台,自带了Wi-Fi,接上鼠标键盘和显示器,就是一台电脑。它也可以像U盘一样,插入普通电脑进行编程。
(2)打开智能灯泡的局域网控制功能,具体操作如图4所示。
(3)安裝好Python3环境。虚谷号已经内置了Python3.5,并且已经安装了一些常见的库。
2.实验过程
步骤1:安装Yeelight库。
在命令行中输入pip install yeelight,通过网络安装Yeelight库,安装速度很快。
步骤2:打开Python IED进行编程测试。
(1)寻找设备。输入如表1代码。
屏幕打印出这个局域网中找到的智能灯泡设备数量。变量ledlist的数据类型为“列表”,用print(ledlist)语句打印出来,会看到如表2的内容。
这些信息描述了这个智能灯泡的关键信息,其中192.168.199.184和192.168.199.142就是智能灯泡的IP地址,这说明局域网中有两个智能灯泡设备。
(2)控制智能灯泡的开关状态。
使用Bulb对象指定一个设备的IP地址,用“bulb.turn_on()”和“bulb.turn_off()”就可以控制灯泡的开关状态。参考代码如表3。
除了用“bulb.turn_on()”和“bulb.turn_off()”,Yeelight还提供了一个“bulb.toggle()”的方法直接让设备切换状态。
(3)控制一个设备的色彩。
Yeelight支持多方式控制灯光色彩,如RGB、HSV和色温控制等方式。表4的代码实现了RGB方式控制。
如果要实现更多功能,可以查看Yeelight库的文档介绍。Yeelight库文档的地址为:https://yeelight.readthedocs.io/en/latest/。
更多创意示例
一旦实现了局域网控制后,这个智能灯泡就变得更加好玩了,也能支持我们的各种奇思妙想。我和学生们讨论了几种创意方案。
创意1:根据天气预报自动变换灯泡的色彩
用Python代码定时获取当前的天气预报,然后显示不同的灯泡色彩。晴天就柔和一点,下雨天则要亮一些。学生说如果是刮风天气,灯光要闪烁,如同被大风吹过,确实是脑洞大开。
创意2:设计一个大型的LED灯带
在创客空间前面的走廊,我们准备装一排8个以上的智能灯泡,这样就形成了一个大型的“LED灯带”,可以实现彩虹灯、流水灯之类的效果,也可以根据音乐旋律来显示一些闪烁的舞台灯光效果。
创意3:设计一个大型的LED阵列
如果在创客空间的天花板上,装上25(5*5)个智能灯泡,可以做一个和micro:bit的点阵屏差不多的大型“LED阵列”,用来显示特定的图案,如笑脸、字母等,和micro:bit不同的是,这个LED阵列还是全彩的呢。
还有远程开灯、刷脸开灯等,因为虚谷号支持各种Arduino传感器模块,也支持摄像头,从简单互动到人工智能,学生的创意想法越来越多,不再一一列举了。
盘点这些年学校创客空间中做的各种作品,往往局限于LED、舵机、直流电机之类的电子模块,很少有人去直接控制家用电器,这是因为家用电器使用的是220V的电路,比较危险。现在,有了支持物联网功能的电器后,一种新的玩法也出现了。创客空间里的学生会发现,编程并不是虚拟世界中的游戏,而是能真正作用于真实世界的。当然,要方便自如地控制这些智能灯泡,虚谷号是一个很好的工具。
基金项目:本文是江苏省教育科学“十三五”规划专项课题“江苏省高中STEM教育基地实验项目的设计与实践研究”阶段性成果,课题批准文号:C-a/2018/02/19。
要让照明系统体现个性,自然要买支持物联网控制的灯泡,如小米、华为和Yeelight的智能灯泡(如图1)。这些灯泡往往具有可调光、支持手机远程控制等特点,也称为智能情景照明灯。但我们不满足于用企业开发的APP来控制灯光,而是希望能够自己编程对灯泡进行个性化控制,如定时开灯和关灯,或者结合一些创客空间的传感器实现真正的智能控制。
原理分析
支持手机APP控制的智能灯泡很多,但是能够让用户自行编程控制的却寥寥无几。研究了市场上常见的开放接口的智能灯泡,总结出自定义编程大致有两种方式:一是智能灯泡的物联网网关支持第三方认证接入,如天猫精灵;二是智能灯泡同时支持局域网内部的控制,如Yeelight。
默认情况下,Yeelight智能灯泡与物联网网关建立联系,然后手机APP通过网关发送控制指令给灯泡,每一个智能灯泡都是一个智能终端。但是,Yeelight智能灯泡如果开启了“局域网控制”功能,那么就可以同时响应来自局域网任一智能设备的控制指令了,发送控制指令的设备可以是电脑、手机,也可以是任何一个支持网络功能的MCU,如掌控板、虚谷号和树莓派等,具体过程如图2所示。
智能灯泡的编程控制实验
虽然任何一种支持网络的编程语言都可以给Yeelight智能灯泡设备进行编程,但考虑到学习难度,我们选择了Python语言。因为Yeelight官方提供了一个库,在这个库的支持下,编程会更加容易。
1.准备工作
(1)智能灯泡和电脑或者其他可编程智能设备要处于同一个局域网。我们使用的是最新的虚谷号(如上页图3),它是一款面向人工智能教学和Python编程学习而开发的开源硬件平台,自带了Wi-Fi,接上鼠标键盘和显示器,就是一台电脑。它也可以像U盘一样,插入普通电脑进行编程。
(2)打开智能灯泡的局域网控制功能,具体操作如图4所示。
(3)安裝好Python3环境。虚谷号已经内置了Python3.5,并且已经安装了一些常见的库。
2.实验过程
步骤1:安装Yeelight库。
在命令行中输入pip install yeelight,通过网络安装Yeelight库,安装速度很快。
步骤2:打开Python IED进行编程测试。
(1)寻找设备。输入如表1代码。
屏幕打印出这个局域网中找到的智能灯泡设备数量。变量ledlist的数据类型为“列表”,用print(ledlist)语句打印出来,会看到如表2的内容。
这些信息描述了这个智能灯泡的关键信息,其中192.168.199.184和192.168.199.142就是智能灯泡的IP地址,这说明局域网中有两个智能灯泡设备。
(2)控制智能灯泡的开关状态。
使用Bulb对象指定一个设备的IP地址,用“bulb.turn_on()”和“bulb.turn_off()”就可以控制灯泡的开关状态。参考代码如表3。
除了用“bulb.turn_on()”和“bulb.turn_off()”,Yeelight还提供了一个“bulb.toggle()”的方法直接让设备切换状态。
(3)控制一个设备的色彩。
Yeelight支持多方式控制灯光色彩,如RGB、HSV和色温控制等方式。表4的代码实现了RGB方式控制。
如果要实现更多功能,可以查看Yeelight库的文档介绍。Yeelight库文档的地址为:https://yeelight.readthedocs.io/en/latest/。
更多创意示例
一旦实现了局域网控制后,这个智能灯泡就变得更加好玩了,也能支持我们的各种奇思妙想。我和学生们讨论了几种创意方案。
创意1:根据天气预报自动变换灯泡的色彩
用Python代码定时获取当前的天气预报,然后显示不同的灯泡色彩。晴天就柔和一点,下雨天则要亮一些。学生说如果是刮风天气,灯光要闪烁,如同被大风吹过,确实是脑洞大开。
创意2:设计一个大型的LED灯带
在创客空间前面的走廊,我们准备装一排8个以上的智能灯泡,这样就形成了一个大型的“LED灯带”,可以实现彩虹灯、流水灯之类的效果,也可以根据音乐旋律来显示一些闪烁的舞台灯光效果。
创意3:设计一个大型的LED阵列
如果在创客空间的天花板上,装上25(5*5)个智能灯泡,可以做一个和micro:bit的点阵屏差不多的大型“LED阵列”,用来显示特定的图案,如笑脸、字母等,和micro:bit不同的是,这个LED阵列还是全彩的呢。
还有远程开灯、刷脸开灯等,因为虚谷号支持各种Arduino传感器模块,也支持摄像头,从简单互动到人工智能,学生的创意想法越来越多,不再一一列举了。
盘点这些年学校创客空间中做的各种作品,往往局限于LED、舵机、直流电机之类的电子模块,很少有人去直接控制家用电器,这是因为家用电器使用的是220V的电路,比较危险。现在,有了支持物联网功能的电器后,一种新的玩法也出现了。创客空间里的学生会发现,编程并不是虚拟世界中的游戏,而是能真正作用于真实世界的。当然,要方便自如地控制这些智能灯泡,虚谷号是一个很好的工具。
基金项目:本文是江苏省教育科学“十三五”规划专项课题“江苏省高中STEM教育基地实验项目的设计与实践研究”阶段性成果,课题批准文号:C-a/2018/02/19。