欢迎访问ic37.com |
会员登录 免费注册
发布采购
IC37首页 > 元器件 > eof > 深圳市天宇豪科技有限公司

深圳市天宇豪科技有限公司

公司名称:
深圳市天宇豪科技有限公司
价  格:
11.00
订货量:
(PCS):>=1
发货地点:
广东省/深圳
产品类别:
eof
更新时间:
2016-11-7

商品详情

STM32+W5500连接YEELINK,网页控制LED

国庆前无意中通过某种途径获取了两块W5500板子,想着闲着没事,就做个TCP/IP的数据传输吧,于是本着还没有忘记计算机网络老师教的那点知识,开始折腾起来,从WIZNET的官网上下载下来文档和资料,不过本人是本着关于W5500的资料一律下载下来,反正就那么一点点东西,先下载下来再说,还好觉得自己记忆力还行,还知道关于计算机网络那些知识,当然和坛子里的那些个移植UIP和LwIP的大神来说我也就是一个菜鸟,想着第一步把ping通了再说。
   然后就是去百度了一番,果然发现了有一篇程序写的不错,感觉还是有可取之处的,就下载下来,更好的是发现接口和我都是用的SPI1,此举感情定是极好的,另外那篇程序是实现了UDP功能,我下载进去,一下就可以了,心情感觉很舒畅,于是就去看程序究竟是怎么写的,其中寄存器名字什么的都是直接抄的,这一点不能算移植。
   不过移植好了发现我同样的程序别人的可以用,为啥我的就不能用,就想到了是不是哪里敲错了什么的,于是就开始在线仿真,终于经历了一番折腾,发现是一个SPI空的读取,具体什么原因我现在都不晓得为啥加上个空的读取就行,不加就会ping不通,然后我就加上去了,发先还是不行,接着呢我就想有可能是这个空的读取被编译器给我优化掉的缘故,更改编译器优化级别,发现果然可以了,我就捉摸着,这可不行呀,这风险有点大呀,并且假如我以后要加其他程序的时候万一出BUG怎么办,我的原则是写出来的程序至少要经过优化级别为2的考验,思索良久,晚上在床上辗转反侧,难以入睡,想到了是底层的问题,参考以前读取SPI FLASH的程序,里面的那个就觉得挺不错的,觉得可以从这个方面入手。
   到了第二天睡醒了,动手,不用别人的底层了,用我自己以前经常用的(实际上还是抄别人的底层,坛友们别喷我),忙活了一阵,下载进去,果然可以ping通了,并且还能够直接使用UDP数据传输了,心情大好,当然这之前都是各种折腾。
   接着就是我觉得W5500这个芯片比较厉害的一方面,UDP折腾完了以后,对于TCP Client 和TCP Service 简直是信手拈来,更改了初始设置即可,果然是神器也!!!然后想着这折腾出来了还应该做点有价值的东西,无意中发现了Yeelink这个平台,感觉很新颖,也有一定的使用价值,不晓得哪里听过一句话,“互联网后面的时代就是物联网”,感觉还是有一定道理的。
   剩下就是看Yeelink的各种API,什么JSON我也顺便瞅了瞅,不过发现实用价值不大,干脆不看API了,直接看别人写好的程序吧,终于从Arduino的字里行间看到了里面在“传输层”究竟发的是什么数据——用的是TCP Client 向服务器发送一串特定的指令,然后我就仿着别人的指令自己用工具一点点摸索,具体的摸索过程就不说了,很傻逼,反正连Wireshark都用上了,也没发现个啥,不过最后发现了可以提交数据了,也有了返回的数据,剩下的就是移植到STM32上。移植完成后发现程序会卡到那里,这是我用板子和电脑模拟数据发送发现的问题,接着又是Debug,查看返回的数据,得到的结果是返回的数据有可能不是都在一帧里面,有可能是从中间某个地方分开,成了两帧数据发送,然后就小小的把数据接收给修改了下,发现可以获取到数据了,算是大功告成了,当时测试的时候还发现了只能获取一次,这是因为Yeelink的服务器端口在你获取完后会自动给你断开连接,所以每次进行数据传输都需要把连接给重新建立了,把这个问题解决了就可以了。
   最后就是下面的资料、源码和视频。视频很撇,就是个网页上开关控制LED灯,因为Yeelink说是10秒钟请求一次,所以对LED灯的响应要慢点,最多10秒,最低的话刚好,这个莫怪。听说Yeelink还有个手机端的软件,可以加进来,这样感觉还是有一定价值的。

供应商信息

  • 公司:深圳市天宇豪科技有限公司
  • 联系人:张宏
  • 电话:0755-82527119
  • 手机:18566258128 微信同号
  • 传真:0755-82524108
  • Email:2881525472@qq.com
  • QQ:2881525472
  • 地址:深圳市龙岗区坂田街道坂田集团商务中心513室