domoticz 使用esp8266通过mqtt控制灯开关
使用Domoticz通过mqtt来控制灯的开关。
在orangepi zero上跑的debian,然后安装的domoticz。
硬件用的是esp82266,开发环境用的是Visual studio code加PlatformIO,使用arduino开发。
domoticz关于mqtt的文档如下:
https://www.domoticz.com/wiki/MQTT
传送的格式为json的,然后在arduino上使用了PubSubClient和ArduinoJson的库。Pubsubclient问mqtt的库,arduinojson为解析json格式数据的库。
调试mqtt使用了simulate-device.exe这个调试软件工具,后面我把源码文件和用到的调试工具都放在云盘里面,做个链接,大家看了多多纠正。源码文件直接用visual studio code开发环境直接打开下载下来的文件夹就可以了,库文件都放在里面了。
Mqtt服务器直接使用sudo apt-get install mosquitto命令安装的,然后也没有配置什么,直接在1883这个端口上连接,就可以使用了,先跑起来再说,先看到效果,这样也有继续玩下去的信心。再说了,什么密码、安全之类的,如果家里的路由器已经被别人破解了,那其他的什么东西都可以被别人控制了。
记录一下在测试过程中的记录:
domoticz在mqtt上,发布的主题为:domoticz/out;订阅的主题为:domoticz/in。我的理解,domoticz如果要往外输出数据,则通过发布domoticz/out主题,将数据发送出去,例如:给开关发数据。如果要获得数据,则通过订阅domoticz/in主题,得到数据,例如:温湿度传感器的数据。
以下为使用mqtt软件调试工具得到的数据:
调试工具通过订阅domoticz/out主题,到domoticz的灯打开时,接收到:
{
"Battery" : 255,
"RSSI" : 12,
"description" : "",
"dtype" : "Light/Switch",
"id" : "00014051",
"idx" : 1,
"name" : "light2",
"nvalue" : 1,
"stype" : "Switch",
"svalue1" : "0",
"switchType" : "On/Off",
"unit" : 1
}
灯关闭时,接收到:
{
"Battery" : 255,
"RSSI" : 12,
"description" : "",
"dtype" : "Light/Switch",
"id" : "00014051",
"idx" : 1,
"name" : "light2",
"nvalue" : 0,
"stype" : "Switch",
"svalue1" : "0",
"switchType" : "On/Off",
"unit" : 1
}
就是:nvalue这个值在变化。我把这个值提出来,做个判断就可以了。然后idx是这个设备的标签,这个需要一一对应,是自己的,才能接收数据做动作,不是自己的就不要动作,不然就乱了。
代码和调试工具下载链接:
https://pan.baidu.com/s/1mIiWq-wPjAs95pbNKzpcvw
domoticz 使用esp8266通过mqtt控制灯开关相关推荐
- 基于Domoticz智能家居系统(十四)用ESP8266做MQTT客户端实验
基于Domoticz智能家居系统(十四)用ESP8266做MQTT客户端实验 用ESP8266做MQTT客户端 一些前期的准备 第一步 设置ESP8266开发板的BSP的搜索引擎链接 第二步 下载安装 ...
- 手机控制的esp8266利用mqtt协议接入百度云智能插座
手机控制的esp8266利用mqtt协议接入百度云智能插座 19年的春节,相信大家和我一样都待在家里,利用在家的时间现学现卖,制作了一款手机控制的智能插座,网上资料很多,我在查询资料中发现,esp82 ...
- 合宙NB-IOT模块Air302连接Tlink云平台,APP和微信控制灯开关
先注册Tlink云平台账号(网址),注册成功后找到开发者中心,查看Tlink云平台的MQTT协议说明.添加一个设备,把模块的电压,信号强度和灯状态上传云平台,Tlink提供的APP和微信控制灯开关,连 ...
- ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)
前言 MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分. ESP8266是一款物美价廉的Wi-Fi芯片,集成Ten ...
- esp8266原理图_ESP32/ESP8266使用MicroPython控制DHT11/DHT22
背景知识视频教程 高级ESP32 - 国外课栈viadean.com 使用NodeMCU(由ESP8266支持),MicroPython和PyCharm进行物联网 - 国外课栈viadean.co ...
- MQTT 控制报文类型、功能及格式(报文结构) - 第2章
目录 2.1 MQTT 控制报文的结构 2.2 固定报头 2.2.1 控制报文的类型 2.2.2 控制报文类型的标志位 2.2.3 剩余长度 2.3 可变报头 2.4 有效载荷 2.1 MQTT 控制 ...
- 用米思齐mixly和APP INVENTOR 2通过MQTT控制灯亮和熄
用米思齐mixly和APP INVENTOR 2通过MQTT控制灯亮和熄,如下图所示:
- 【ESP8266】ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)
前言 MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分. ESP8266是一款物美价廉的Wi-Fi芯片,集成Ten ...
- MQTT协议详解 三、MQTT控制包(CONNECT)
文章目录 系列文章目录 前言 CONNECT(客户端请求连接服务端) 一.固定包头(2字节) 二.可变包头(10字节) 协议名字(6字节) 协议等级(1字节) 连接标识(1字节) Clean Sess ...
最新文章
- CSS控制字体在一行内显示不换行
- IOS中类和对象还有,nil/Nil/NULL的区别
- python 统计2^2^2^2^2的各数字出现次数
- Android中的常量 DEFAULT_KEYS_SHORTCUT
- PHP获取MySQL执行sql语句的查询时间
- RecyclerView高级控件-附实例【android专题】
- HTTP简介,http是一个属于应用层的面向对象的协议
- 干货|对某杀猪盘的渗透测试
- 从一个点云里面创建一个深度图
- android intent-filter category,android intent-filter category.DEFAULT
- (转)编码剖析Spring管理Bean的原理
- 微信公众号的文章中添加历史文章链接
- c++拷贝构造之深拷贝
- 亲密关系-【沟通目标】如何建立有效的谈话目标
- 前端js获取本项目的项目根地址
- Python 之 异常检测/异常点搜索
- 测试方案包含哪些内容?
- 服务架构演变~超详细
- 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
- java的h2是什么_什么是H2数据库
热门文章
- 【方法】Chrome如何下载视频
- cad2017单段线_CAD将线段分成多段线的方法步骤
- MYSQL 金额转大写中文
- 《长安十二时辰》,作为程序员,看完我震惊了!涉及通信、云计算、大数据等!...
- Kubernetes集群容器运行日志收集
- 汽车智造(一)| 移动机器人(AGV AMR)如何赋能汽车行业制造升级
- windows下的虚拟化
- HBase【付诸实践 01】hbase shell 常用命令详解(表操作+数据增删改查+2种查询操作)(hbase-2.4.5 单机版standalone模式)
- 【算法专题】数独问题详解
- 2019年,你必须知道的7个企业服务趋势