1.对于协议的选择
不知道大家还记不记得这张图,我让你们选择协议的时候,选择TCP协议。
这里的协议比较多,对于后面的几个协议我也不太懂,这里说一下http协议。
2.HTTP协议初探
在Tlink平台的官网帮助中心,这里放了很多API的开放接口,下面也有在线测试的工具。
这里我们做一个测试。
使用这条post请求对传感器数据进行写入。
我们测试全部正确。如果这里的序列号是你自己的,可以看到平台的你建立的设备数据会更新。
3.万事具备,只欠东风
对于TCP协议,让你自己定义5个传感器,还要定义协议,看到http协议,是不是觉得很简单,在POST语句中间,可以一次把数据全部传输上去,对我当时就这么想,用一下HTTP协议试一下。
问题来了: 用单片机发送给WIFI的http协议是要分成POST请求,数据头,数据长度,数据type,数据内容,而且还需要去JSON的数据。(有的可以不需要)
于是就花了很大的力气去改写这个POST请求,
格式一:
格式二:
格式三:
反正改写这些东西花了一下午。然后一直觉得那里不对劲,就去吃饭了。吃饭的路上,突然想到,我可以给Tlink的工作人员打个电话问一下呀。哈哈,吃完饭回来就打了电话,当时那边的工程师态度很好,很耐心的帮我解释,解释TCP协议怎么用,http协议怎么用。
最后大家谁也猜不到问题的答案是什么?
因为Tlink平台的人员自己使用过HTTP协议感觉非常复杂,所以现在的Tlink平台上的API接口不是给我们用WIFI传输数据用的,而是人家使用APP调用的接口。所以使用TCP/UDP工具模仿HTTP协议通信的时候,不管怎么样改写都是错误的。
4.调试工具
我最开始对这些协议是一脸懵逼,怎么改写,什么意思都不清楚。
推荐两个工具:
在线HTTP接口测试
https://www.sojson.com/httpRequest/
在线JSON校验格式化工具
http://www.bejson.com/
5.总结
这篇帖子解释了为什么选择TCP协议而不选择HTTP协议作为我们传输数据的协议。
其中穿插了对HTTP协议的测试,TCP/UDP工具的模仿,POST请求的改写,等等内容。最后的两个工具在调试HTTP协议的时候,经常可以用到。
对了必须提醒你一点,在传输数据到Tlink云平台的时候,每一次刷新的时间至少要超过1s,用500ms好像刚刚好,但是还有点问题,1s以上都是没问题的。但是你知道低于500ms会出现什么问题吗?