摘要:本文介绍FS704U模块的设置方法,实现云端属性的设置。FS704U是一种DTU,断电之后数据不丢失,不用重复设置三元组数据,而且发送的异常指令会自动过滤,因此用单片机等硬件设备要想连接物联网云平台,使用它可以省去很多的麻烦。此外,本文还提到了5V到3.3V的电平转换。
FS704U和EC600的最大区别是:
EC600没有参数保存功能,因此断电后,需要重新一步步地设置云端的参数。 而这些参数其实完全可以固化到模块内部,毕竟设备完成后,不会再频繁更换云端参数。
可以参考文章进行对比
EC600模块通过AT指令接入阿里云物联网平台并发布属性_ec600m 阿里云-CSDN博客
那么FS704U就方便很多了,可以将这些参数通过专用的软件进行配置
重要提示:本文中的图片,有的是来自网络,有的是自己用wps绘制的框图,有的是DTU设置软件截屏,有的是阿里云物联网平台网站截屏。适合具备有关基础知识的同学。
1.电脑和FS704U的硬件连接
实物图
实际用的时候,比如单片机,可以考虑不插接收线,只发送指令。有点像是UDP通信协议。
如果您的单片机是5V的,那么就需要考虑电平转换。
千万不要以为,使用两个电阻串联一下分压就能实现电平匹配了。不可能!!!!!不信您自己做实验试试看!
本文推荐使用专门的芯片TXS0108。
这个芯片做出来的波形非常完美。
2.使用 YunDTU Config Tool软件进行配置
相比没有专门控制软件的配置方式而言,这种图形化的界面更加适合操作。下图是它的界面。
打开串口,模块默认波特率是115200,首先配置串口波特率,由于我的单片机是9600波特率,所以在这里也使用9600。
然后选择设置所有参数,此时模块的波特率就变成了9600.如果想设置阿里云参数,那么需要断开串口连接,然后以9600重新连接模块才行。
新的波特率
然后配置socket参数,默认这个选项是“不启用”,也就是它不会连接网络上的任何服务器。
勾选“启用”,界面如下图所示。工作模式是TCP/UDP,如果你有自己的服务器,那么完全可以让它和自己的服务器进行连接。
当然也可以连接其他商业云平台,例如阿里云、移动云、百度云、腾讯云和华为云。
物联网平台底层协议一般都是MQTT,只不过外面有层层的安全验证机制确保安全,所以会有复杂的数字签名步骤,可以通过下面的文章进行了解。
物联网APP:使用android studio实现阿里云物联网平台数字签名(Signature)(附源代码)
数字签名非常复杂,因此产生了一些专门用来计算数字签名的网站,来生成MQTT连接参数。不过现在还好,网站一般会提供已经计算好的连接参数。而与之配套的DTU厂家,也将复杂的加密认证参数的计算内置到自己的设备中。FS704U就是这样的,例如它可以直接输入阿里云三元组数据,然后模块自己就能将那些参数计算出来。
DTU设备其实就是将自己作为一个MQTT的client而已。MQTT的通信结构可以参考文章来了解。
ubuntu系统下搭建本地物联网mqtt服务器的步骤_ubuntu搭建mqtt服务器-CSDN博客
现在阿里云网站已经支持在线生成这些参数了
由于FS704U模块硬件已经内置了这个功能了。只需要将三元组数据复制过来,那个MQTT连接参数暂时不用。在您用ESP32的MQTT程序开发时,这些参数才会用到。
我们当前需要用到的时下图这个三元组数据
填入YunDTU软件。然后设置参数(最后填写也可以,只不过建议随时保存,万一误点关闭,这些参数已经写入模块了,不会丢失,也可以“读取所有参数”,在软件上自动显示)。
接下来该填写订阅和发布主题了。如果您只需要单片机将开关、温度、电压等上传到云端,那么只需要发布即可,订阅的不需要。如果还需要单片机对云端的一些内容做出响应,那么需要订阅。不是说必须两个都填。
订阅的主题如下所示,其中gcXXXXXXXX替换成为您自己的ProductKey,light001替换成为您自己的DeviceName。
/sys/gcXXXXXXXX/light001/thing/event/property/post
发布的主题如下.请将gcXXXXXXXX替换成为您自己的ProductKey,light001替换成为您自己的DeviceName。
/sys/gcXXXXXXXX/light001/thing/service/property/set
订阅的是service,发布的是event。这是区别。
最后点击“设置所有参数完成设置。
3.测试效果
首先要知道单片机或者USB串口要向FS704U的DTU发送什么数据格式。
然后通过电脑来模拟,如下图连接。
可以使用YunDTU软件自带的串口助理发送{"params":{"LightSwitch":0}}
{"params":{"LightSwitch":0}}
具体发送1还是0,要看您自己在云平台上是如何定义的。根据实际来即可。
还可以通过云平台查看日志
设备到云的日志,可以看到,发送的topic就是DTU上设置的那个topic。内容也正是串口发送的字符串。
云到设备的日志。可以看到这个就复杂多了。而且topic不是service。这是为什么呢?请读者自己分析。小提示:消息是json格式的,但是里面没有说设置哪个属性为0或者1.
云平台显示效果如下图所示