本文是为《新国标五孔计量插座10A》https://oshwhub.com/oldfox126/xin-guo-biao-wu-kong-ji-liang-cha-zuo-10a 项目配套的手机APP安装及设置说明。
APP安装
从该项目的工程附件中下载 IoT MQTT Panel_0.45.18_Apkpure.apk,传到安卓手机上安装APP。
这个APP有不少优点:首先界面还过得去,虽然也不是很好看,但总比那些黑乎乎的一坨强多了;其次功能比较完善,也支持JSON之类的显示,对我够用了。它不好的地方主要是有广告。
如果有更好的APP,欢迎在评论区留言。
1.老规矩,首先放一张完整的设备控制板图片。
2.这个APP进来以后是这个MQTT服务器列表界面
3.如果不是的话,也可以从这里,点All Connections进来。
4.在MQTT服务器列表界面点右下角的+号,添加一个MQTT服务器。类似这样
5.创建好以后在列表界面点刚创建的MQTT服务器名字,进去设备界面。
6.设备界面现在是空白的,不要慌,问题不大。先点右上角3个点,再点Dashboard configurati.
7.进来主要把topic给填进去再点SAVE。这个APP好就好在,这么长的topic只用填这一次。
8.回到设备,新增一个LED面板。
9.保存好以后看到LED面板已经亮了,说明设备在线。
10.这个LED面板 在线状态 只是很单纯的获取数据,再来创建一个只单纯提交数据的按钮 在线升级。
11.提交JSON数据格式:{"m":"ota","v":"<payload>"},不要复制错了。
12.保存以后是这样:
13.刚才创建了一个只获取数据的LED面板 在线状态,也创建了一个只提交数据的按钮面板 在线升级,最后再创建一个既可以获取数据又可以提交数据的切换开关,名字就叫开关。
14.发送JSON数据格式:{"m":"on","v":"<payload>"}
15.保存以后是这样
16.几个常用的功能。
17.最后,所有的面板参数都列在下面:
通过新建、复制、修改、删除等各种骚操作,最终就可以得到一个完整的设备操作界面。
少年,我看好你,加油!(没错,我就是懒!你自己慢慢玩吧)
---------------------------------------------------------------------------------------------------------------------
所有的面板
topic: 数据进来的topic都是 /stat ,提交上去的topic 都是 /in ,以下不再赘述。
接收和发送都是JSON格式
QOS:提交上去的QOS所有都是2,进来看情况一般(不写)都是0,重要的才是2.
Payload ON为1,OFF为0
注意:面板顺序不能颠倒了,万一位置不对就只能删掉重来。(因为这个APP面板不能变换位置,比较蛋疼)
感谢评论区@liang_work 的提醒,面板可以变换位置,已更新使用方法。
1.新建
类型:LED
名字:设备是否在线
JsonPath: $.state
QOS: 2
(说明,不需要填进去,下同:显示设备是否在线,亮了就在线,黑了不在线)
2.新建
类型:Switch
名字:开关
JsonPath: $.on
JSON pattern for publish: {"m":"on","v":"<payload>"}
Confirm before publish:是
Confirmation message:确定吗?
QOS: 2
(说明:插座的开关,开启以后插在插座上的电器就通电了。反之则不通电。)
3.新建
类型:Text Log
名字:当前时间
Single payload mode:是
Hide topic:是
JsonPath: $.time
(说明:显示当前时间)
4.复制 当前时间
名字:电压/电流/功率/电量
JsonPath: $.pows
(说明:显示当前的电压/电流/功率/电量)
5.新建
类型:Slider
名字:倒计时
payload min:1,max:100,step:1 factor:1
Unit:分
Slider Orientation:Horizontal
JsonPath: $.countdown
JSON pattern for publish: {"m":"countdown","v":"<payload>"}
Confirm before publish:是
Confirmation message:确定吗?
QOS: 2
(说明:单位是分钟,归零就会自动反转开关状态,开->关,关->开。)
6.复制 开关
名字:定时器开关
JsonPath: $.timer
JSON pattern for publish: {"m":"timer","v":"<payload>"}
(说明:只有开启了,下面的定时器设置才起作用)
7.复制 当前时间
名字:定时器开时
JsonPath: $.starttime
(说明:定时器开关开启以后,到定时器开时,开关打开。)
8.复制 当前时间
名字:定时器关时
JsonPath: $.endtime
(说明:定时器开关开启以后,到定时器关时,开关关闭。)
9.新建
类型:Text Input
名字:开启时间
Clear text on publish:是
JSON pattern for publish: {"m":"starttime","v":"<payload>"}
QOS: 2
(说明:用来设置上面的定时器开时,中间可以用英文逗号分隔开设定多个时间。类似于"01:01,01:03"。)
10.复制 开启时间
名字:关闭时间
JSON pattern for publish: {"m":"endtime","v":"<payload>"}
(说明:用来设置上面的定时器关时,中间可以用英文逗号分隔开设定多个时间。类似于"01:00,01:02"。比如,定时器开时"01:01,01:03",定时器关时"01:00,01:02",在定时器开启的状态下,01:00开关关,01:01开,01:02又关,01:03又开。)
11.复制 当前时间
名字:当前版本
JsonPath: $.version
(说明:显示当前的固件版本。)
12.新建
类型:Button
名字:在线升级
JSON pattern for publish: {"m":"ota","v":"<payload>"}
Confirm before publish:是
Confirmation message:确定要在线升级吗?
QOS: 2
(说明:点击按钮在线升级,前提是OTA固件已经上传好,并设置好了OTA链接。)
到这里就已经结束了,后面多的这些面板用来调试,不是必须的,可以不加。当然加了也无所谓。
---------------------------------------------------------------------------------------------------------------------
13.复制 开关
名字:调试开关
JsonPath: $.debug
JSON pattern for publish: {"m":"debug","v":"<payload>"}
(说明:点击按钮显示更详细的调试信息。)
14.复制 当前时间
名字:调试信息
JsonPath: $.info
(说明:显示调试信息。)
15.复制 开启时间
名字:电压校正
JSON pattern for publish: {"m":"vrate","v":"<payload>"}
(说明:取值范围:0.1-2。因为PCB设计、线路走线、元器件参数的变化等原因,造成测量出的电压可能跟真实电压有差异,此时用测量出的电压乘以一个校正参数可以得到正确的电压,这个校正参数就是电压校正。怎么计算这个参数呢?你可以先把这个参数设置1,此时它显示的就是本插座的测量电压。然后把本插座插到一个功率计上。如功率计显示真实电压220V,本插座显示250V,那么电压校正参数就是220/250=0.88)
16.复制 开启时间
名字:电流校正
JSON pattern for publish: {"m":"crate","v":"<payload>"}
(说明:取值范围:0.1-2。用测量出的电流乘以一个校正参数可以得到正确的电流,这个校正参数就是电流校正。校正参数计算方法参考上面电压校正。)
17.复制 开启时间
名字:功率校正
JSON pattern for publish: {"m":"prate","v":"<payload>"}
(说明:取值范围:0.1-2。用测量出的功率乘以一个校正参数可以得到正确的功率,这个校正参数就是功率校正。校正参数计算方法参考上面电压校正。)
18.复制 开启时间
名字:OTA链接
JSON pattern for publish: {"m":"otaurl","v":"<payload>"}
(说明:OTA固件的网址,类似于:http://x.x.x.x/data/esp12s.bin 。将编译好的固件上传到一个HTTP地址,可以是网站或者是你的本地路由器。上传好以后一定要打开浏览器实际测试一下,看看这个地址是不是能正常下载。)
(完)