下面我就来讲讲软件部分的制作。

分为两个部分,一个是机智云的云端设置,还有一个就是固件的修改。

我们可以来先看看云端的设置,先登入机智云的开发者中心

然后创建一个设备,我们这里就叫排插吧。下面就按照实际情况填上。

然后就会要求创建数据点。

我们这里是五个插孔,所以创建五个排插。

当初我做的时候已经有个模板保存住了,所以这里直接使用即可,

导入了。

然后我们继续,就会得到这样一个文档,下载下来

这里我们先来看看这个文档,

看到这一部分。

还有这一部分

这两部分分别是上报数据点状态和下发控制命令的说明。

先说上报,上报就是将设备目前的状态上报给云端,有两种情况需要进行上报操作,一种是隔了一段时间(比如 10 秒)之后,就会进行一次例行上报,还有一种就是在执行完下发的命令之后,也要进行上报。

这里也顺带解释一下这些数据点的意义,看到 byte ,这个是单字节,我们都知道一个字节为八位,而我的插座对于一个插孔来说,只有两个状态,即开和关,所以只需要一位即可完整地表达一个插孔的状态,而温度和插座只是证书,完整地表达需要占用满完整的一个字节,即一个字节可以表达 00000000B (0) ~ 11111111 (255) 这个范围的数,所以对于温度和湿度来说足够了。

下面的下发也是基本一样的,这里不再赘述,在后面改固件的时候,再做详述。

然后就是固件和 APP 部分,APP 的话我这里就直接用 IOE demo 了,反正可以直接用,这里重点讲述固件部分的修改。

机智云官方一共提供了两种 MCU 的固件,一个是 Arduino ,一个是 STM32.

而我这里为了开发方便,就选用 Arduino 了,不过请注意,Arduino 的 MCU 基本上都很羸弱,所以,我们要阉割蛮多东西去。

好,先自己安装好 Arduino 的开发环境吧。

然后,到 github 拖代码。

https://github.com/gizwits/GoKit-Arduino-MCU.git

自己想办法拖到本地。

然后,按照 Readme.txt (居然不是 md= =~)里的提示安装好。

安装好了之后,打开吧。

打开之后,要求移动,移动吧。

https://www.zhaojin97.cn/wp-content/uploads/2015/12/微信截图_20151220170815.png

然后就是开始修改了,首先要去掉液晶屏的支持,这里,直接把

给去掉,然后,编译吧,没错,编译,这样就根据错误提示,把液晶屏的支持一个个删掉,不删掉,卡出翔。

哦,差点忘记了,这几个要移动到这个文件夹内。

再次打开 Arduino IDE ,继续删支持。

删完,建议用 Git 进行版本控制。

我这里删完是这样的。

https://git.zhaojin97.cn/glzjin/GoSwitch/commit/adc7622b7a7164f844981698d9e1015ae3703f04

然后继续,我们来修改数据点,这里

protool.h 里的 _status_writable & _status_readonly

我这里修改成这样,记得顺序一定要正确,且 writeable (可写) 在前,readonly (只读在后)。

同样地,编译,然后根据错误提示进行修改。

提交记录在这:https://git.zhaojin97.cn/glzjin/GoSwitch/commit/18619e9d820820854a7ece7b5f2724d77ffb0d9f

然后是添加数据点使能,当然我们要先定义好 IO 接口,我这里是用了 A1-A5 5个接口来作为输出口,先在 Gokit_2.ino 里定义好

然后是使能部分,主要在 protocol.cpp 里,找到

修改成这样,就可以了,

提交历史:https://git.zhaojin97.cn/glzjin/GoSwitch/commit/222a089e6a877d5f25e2331553d46461ecc71e2a

然后编译,烧写进 Arduino ,然后用 APP 绑定即可使用,

源码地址:https://git.zhaojin97.cn/glzjin/GoSwitch/

有任何疑问欢迎在评论区和我交流。