Posted on

Smartline的MQTT服务架构简介

Smartline的MQTT服务实现了Web端对硬件、硬件对硬件和移动端对硬件正向以及反向的通信,基本上完成了硬件数据及硬件能力在各个终端的表现,这种表现建立在服务器的三端接口上(HTTP接口,Websocket接口和MQTT接口),这里主要介绍一下MQTT服务的架构。

首先解释一下设备实例,设备实例是指在同一个设备模型下实例化的具有实际功能的硬件

比如,通过智能灯泡模型实例化的100个灯泡,理论上应该具备智能灯泡模型的所有功能,当模型进行功能升级时,其全部实例也将同时产生变化。(实例是否具备模型的功能由设备上的固件决定,但每个实例都具备模型功能的潜质;模型的升级会直接影响这种潜质)。 Continue reading Smartline的MQTT服务架构简介

Posted on

Smartline的MQTT接口调整说明

为了统一和规范MQTT连接,Smartline对接入MQTT的客户端做了如下要求:

  1. MQTT连接必须使用用户名和密码进行鉴权;
  2. MQTT连接的client_id必须与用户名保持一致;
  3. 客户端在由网络引起掉线后应主动进行重连

这里主要解释一下第2点,在之前的版本中,只对连接MQTT的客户端进行了用户名和密码鉴权,但是没有对client_id进行检查,导致有一定的概率会产生相同的client_id,这样会使客户端无法连接服务,所以为了规范起见,所有的client_id将强制与username保持一致,如果不一致,服务器将直接拒绝连接。 Continue reading Smartline的MQTT接口调整说明

Posted on

Smartline的WebSocket的接口使用介绍

这两天完成了Smartline对WecSocket接口的支持,后续使用WebAPP进行应用开发将根据业务类型选择HTTP接口或WebSocket接口。WebSocket接口实现了更快速,更实时的接口访问,对实时性要求较高的场景下建议使用。

在Web端使用WebSocket进行Smartline的接口访问建议使用socket.io进行开发,这样可以很好的兼容socket事件机制。SmartlineWebSocket连接地址为:

http://ws.api.smartline.cc

Continue reading Smartline的WebSocket的接口使用介绍

Posted on

DIY睡眠监测器,从此抛弃小米手环

对于睡眠的监测,我使用的第一款产品是小米手环,每晚佩戴手环睡觉,第二天打开APP可以同步出前一晚的睡眠数据,看到深睡和浅睡时长等数据。

就原理而言,小米手环使用了三轴加速度计,在实现计步的情况下也可以完成睡眠的监测,所以从原理上讲,睡眠的监测和计步是一样的,可能从某种程度上来说睡眠比计步更加简单。 Continue reading DIY睡眠监测器,从此抛弃小米手环

Posted on

使用Smartline接口制作实物版网易云音响

做这个网易云音响的初衷,还是因为豆瓣FM不好用了,之前也写过一篇使用node-webkit开发豆瓣FM的Mac客户端的文章,可以查看《node-webkit初探,重新设计豆瓣电台一枚》。用了网易云音乐之后,被这最良心的音乐播发器征服了,简直好用,于是就开始写实物版的网易云音乐,希望最终可以实现线下的私人FM音乐播放的基本功能。

这个版本的网易云音响使用了Nodejs进行开发,硬件使用的是NanoPi M1。首先需要在NanoPi上安装Debian系统,这个可以在官方的WIKI中下载《NanoPi M1/zh》。安装完系统以后,需要安装nodejs支持,有关Nodejs的安装,可以查看博文《debian安装最新nodejs,树莓派NanoPi和OrangePi均可用》Continue reading 使用Smartline接口制作实物版网易云音响