开源项目搭建私有物联网智能家居接入天猫精灵控制


最近几年随着物联网的高速发展,众多智能硬件厂商都开发出自己的智能家居产品,都想在物联网智能家居市场上占有自己的一席之地,而随着众多智能音箱的问世,智能家居行业又翻涌起一股新的浪潮,今天我就带大家利用开源项目搭建属于自己的物联网服务器并对接天猫精灵。
首先要介绍下两个重要的开源项目,一个是emqtt,一个是Domoticz,emqtt为国人开发的mqtt项目,是基于Erlang/OTP语言平台开发,为百万级分布式开源物联网MQTT消息服务器,Domoticz是一个开源的智能家居系统,通过它你可以监测和控制各种设备。

1. 整体框架

完全物联网开源框架 物联网开源平台搭建_完全物联网开源框架

2. 搭建过程


2.1 服务器部署

在这里我们选择阿里云的ECS服务器,也可以用虚拟机搭建,内网穿透,购买过程不详细介绍了,这里注意我们选择ubuntu16.04的系统镜像就行了。

完全物联网开源框架 物联网开源平台搭建_物联网_02


点击远程连接

完全物联网开源框架 物联网开源平台搭建_物联网_03


输入远程连接密码及服务器用户名称密码进入系统

先更新下系统,终端输入:

$sudo apt update
$sudo apt dist-upgrade

云服务器上阿里的源一般是比较快的,几分钟便可以完成,若是本地虚拟机搭建,建议更换源。

2.2 安装Domoticz
有两种方式,
第一种是安装稳定版,第二种是源码编译最新版,本次仅讲解第一种,如果有对第二种感兴趣的可以参考linux源码编译Domoticz
第一种如下,终端输入:

$curl -L install.domoticz.com|sudo bash

会出现一些安装界面,默认选择即可

浏览器输入服务器IP+8080端口即可访问Domoticz控制界面

完全物联网开源框架 物联网开源平台搭建_domoticz_04

2.3 安装emqtt
下载emqtt,终端输入:

wget http://emqtt.com/static/brokers/emqttd-ubuntu16.04-v2.3.11.zip

安装unzip

sudo apt-get install unzip

解压缩emqtt压缩包

unzip emqttd-ubuntu16.04-v2.3.11.zip

console模式下启动emqtt

cd emqttd && ./bin/emqttd console

ctrol+C退出console模式
启动emqtt

./bin/emqttd start

浏览器访问http://主机ip地址:18083 进入炫酷的控制界面

完全物联网开源框架 物联网开源平台搭建_智能家居_05


完全物联网开源框架 物联网开源平台搭建_domoticz_06

2.4 domoticz配置


进入domoticz,设置-硬件
名称随意填写,类型填写MQTT Clint Gateway with LAN interface
远端地址写刚刚搭建的mqtt的服务器地址,端口写1883,用户名admin,密码public
publish topic选out+/
点击增加

完全物联网开源框架 物联网开源平台搭建_domoticz_07


可以看到顶部列表中多了一个硬件

再次来到添加硬件界面,所添加的设备如下,点击增加。

完全物联网开源框架 物联网开源平台搭建_物联网_08


点击创建虚拟传感器,名字随意,类型选择开关

完全物联网开源框架 物联网开源平台搭建_esp8266_09


完全物联网开源框架 物联网开源平台搭建_完全物联网开源框架_10

3 硬件配置

esp8266刷入ESPEasy_mega下载地址espeasy下载地址

下载完解压选择

完全物联网开源框架 物联网开源平台搭建_完全物联网开源框架_11


填写对应端口选择图中bin文件

完全物联网开源框架 物联网开源平台搭建_物联网_12


手机搜索WiFi esp_easy连接

完全物联网开源框架 物联网开源平台搭建_完全物联网开源框架_13


访问192.168.4.1

选择你的WiFi,填入密码

点击connect

秒数读完后会出现一串ip

完全物联网开源框架 物联网开源平台搭建_domoticz_14


重启esp8266,使手机和esp8266处于同一WiFi环境下,访问刚才显示的IP地址,来到配置页面。

- 点击controllers,选择domoticz mqtt

完全物联网开源框架 物联网开源平台搭建_完全物联网开源框架_15


Controller IP:填写刚刚搭建的mqtt服务器ip地址

Controller Port:1883

user:admin

password:public

其他默认,点击submit

完全物联网开源框架 物联网开源平台搭建_物联网_16

  • 来到device

    选择p001 Switch input - Switch


    idx选择与domoticz里对应的也就是1,点击submit
    由于mqtt所传输的数据只有Svalue有变化
    所以我们在硬件端要添加rules
  • 添加rules
    点击Tool-advanced中rule打钩,点击submit
    刷新界面我们可以看到顶部出现了Rules
  • 编辑Rules
on ceshi#Svalue do
 if [ceshi#Svalue]=1
   gpio,15,1
 else
  gpio,15,0
 endif
endon

ceshi为esp_easy中所设置名字,找到你对应的填上。

找一个灯珠接到D8接口上,开关domoticz的设备便可以看到灯珠的变化。

完全物联网开源框架 物联网开源平台搭建_esp8266_17


完全物联网开源框架 物联网开源平台搭建_完全物联网开源框架_18


完全物联网开源框架 物联网开源平台搭建_完全物联网开源框架_19

4. 天猫精灵对接


大体步骤
- 在Domoticz中增加一个用户,权限选择普通用户,启用菜单中勾选开关,其它默认。Domoticz用户密码强烈建议使用密码生成器生成复杂密码,此密码无需记忆。
- 访问ali.domoticz.cn,注册帐号后填入Domoticz的连接信息。
- 天猫精灵APP中增加智能家居设备,选择Domali,用第三部注册的帐号登录后授权访问。
- 现在Domoticz平台中已收藏的开关就会展示在天猫精灵的设备列表中。
- 最后为每个开关配置位置及名称,就可以进行语音控制了。
参考domoticz对接天猫精灵