透传与AT命令的对比分析

随着移动互联网的发展和物联网的兴起,越来越多的智能设备如雨后春笋般疯狂涌现,智能插座、智能空气净化器、体脂称、WiFi摄像头、智能扫地机器人等等,纷纷摆出强大的阵容和十足的噱头,上演着一出出不抢占梁山绝不回头的铮铮好戏,看的大家好激动的说。

但这次瑞哥不说这些最出风头的产品,来谈谈它们内部的一个关键部件,只要掌握了它,其实你也可以开发出极具潜力的智能硬件产品!

智能硬件的关键——WiFi模组

现在市面上流行的智能设备都有一个共同点——内嵌WiFi模组。借助WiFi模组,智能硬件便可借助网络与服务器相连,真正实现产品与用户手机的互通互联。

WiFi模组现在的产品分类十分多,RAK从最基本的WiFi模组,也就是嵌入式WiFi串口模组谈起。嵌入式WiFi串口模组主要分为两类:透传WiFi模组以及AT命令WiFi模组。

安静的使者——透传WiFi模组

透传就是透明传输的简称。顾名思义,透明传输就是指在传输过程中,对外界完全透明,不需要关系传输过程以及传输协议,最终目的是要把传输的内容原封不动的传递给被接受端,发送和接收的内容完全一致。

这就相当于把信息直接扔给你想要传输的人,只需要扔(也就是传输)这一个步骤,不需要其他的内容安排。

透传WiFi模组上手容易、操作简单,可以快速让模组完成通信使命。一般,透传WiFi模组都会连接固定的服务器和端口,通过外部的MCU把数据传给模组并上传至服务器。

为方便理解,我们用RAK415 WiFi模组为例为大家讲解:

  • 在给RAK415开发板上电之后,power和status两个LED灯会常亮,这时你就可以发现一个名为RAK415_AP_XXXXXXX的热点,这说明模组已经可以正常工作了;
  • 按下Easy Config键,LINK LED灯会规律性地闪烁,配合手机App Easy Config,只要输入手机所在网络的密码,模组就会自动连接到网络中;
  • 之后,我们可以用App发现本地设备,并对模组进行相关的配置,例如socket的连接类型、目标URL、远端端口等等。配置好之后,只要通过UART接口上传数据,你就可以在服务器端收到相应的内容。

目前很多智能插座、空气净化器等产品,都是使用透传模组来设计的。在开发过程中,只要写好固定的域名,就可以建立一个TCP长连接,实现实时地上传相关信息。外部的MCU也不需要通过额外的指令来控制模组,模组内部已经有一套完善的重连、重启机制。

这样的效果好在,它可以让用户在毫无察觉的情况下处理多种异常问题,保证模组正常工作。这种静静悄悄的处理也会提升用户的体验感受。

简单、易用性:★★★★★

灵活性:★★★☆

配套软件支持:★★★★★

大招颇多——AT命令WiFi模组

AT命令WiFi模组,是需要外部通过以AT开头的固定指令来操作的一种WiFi模组。每个AT指令都有其特定的含义,需要一定的逻辑顺序才能正确使用模组。虽然命令操作复杂,却也恰恰给开发工程师提供了更为广阔的想象空间,所以它的可操作性更强,能够适应更加多变的环境。

对应透传WiFi模组把信息直接扔给对方,AT命令WiFi模组更像是去邮局将信息邮寄给对方,你的需求不同,你所选择的快递单也会有区别,这时你已经对你想要传递的信息进行了安排和加工(也就是输入AT命令)。

为方便说明,我们使用RAK413模组为例,为大家介绍一下。从常规配置WiFi模组的角度来看,一共只需要6条AT指令就可以使用WiFi模组向指定地址发送数据:

从接入WiFi的描述来看,AT命令WiFi模组也并非如传说中那样样难以驾驭。但事实上,上面的AT命令是最简单的配置命令,也是我们认为的最理想的使用环境。

实际上到目前为止,我们研究的AT指令集已经有44条之多,这其中还不包括那些舍弃的很多在实际操作过程中没有太多用处,或者和本身的使用中有逻辑重复的指令。

从这个角度看,AT命令WiFi模组的使用还是比较复杂的,需要缜密的逻辑和强大的纠错机制,才能完成优质的开发。

但从另一方面讲,AT命令WiFi模组可以造就更多的产品功能和产品设计,就我们自己的研发而言,可以提供:

  • at easy_config指令,实现一键配置;
  • at http_get/at http_post指令,实现在HTTP服务器下get和post数据;
  • at auto_connect指令,实现自动连接;

也正是因为这些命令,开发人员可以在整个产品的功能和设计上,实现自己更加饱满、具有创意的思路和想法。

但是,既然我们有了简单易用、上手容易的透传WiFi模组,为什么还要用复杂的AT命令WiFi模组来做产品设计呢?

实际上在RAK多年的开发经历中,应用场景的问题一直都不可忽略,我们在日常工作中会遇到很多的场景,仅仅凭借单一的透传WiFi模组很难满足,至于实现你真正的思路更是难上加难了:

  • 如果你要用负载均衡的服务器来分担压力,就需要通过AT命令来频繁修改socket参数;
  • 如果你要连接服务器需要加密认证,就需要通过AT命令来实现认证机制;
  • 如果你需要低功耗模组,并能够快速从低功耗切换到正常工作模式时,就需要通过AT命令来配置;

通过上面的举例就会发现,AT命令WiFi模组可以适应更多的场景,虽然使用复杂,但却能够更加灵活的掌握模组的动态,了解WiFi模组的状态,实现产品更优质的发展。

简单、易用性:★★★

灵活性:★★★★★

配套软件支持:★★★★★

猜你喜欢

转载自blog.csdn.net/wangweizhaoxin/article/details/85334300