查看: 1910|回复: 0
打印 上一主题 下一主题

零基础到搭建嵌入式MQTT发布者

[复制链接]
跳转到指定楼层
沙发
发表于 2016-6-10 11:05:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[size=13.3333px]今天大家都在水积分,写这种博文不容易,这可是我工作之余断断续续做项目的心得,这些可能会给来的路上的朋友少走一些弯路,并且资料齐全,多顶顶或是打赏点莫元吧。虽然我在个人在签名档留了QQ,但是各位如果是问问题还是在下面留言好了,我会的都会回你的,后面加到我烦,除非你有项目给我做咯。正文开始。
[size=13.3333px]题目的零基础是说你的嵌入式网络的基础,开始可能有点啰嗦,其实小弟也是刚刚踏入嵌入式网络的大门。

[size=13.3333px]1、网络搭建
[size=13.3333px]我项目的网络硬件是芯片内部集成的MAC加PHY芯片——DP83848,一般的主控MCU很少说集成PHY,好像是因为PHY是模拟信号的,这种是驱动程序看起来好像
[size=13.3333px]有点复杂的方案,其实这种反而更简单,因为MAC的管脚和内部配置都是一样的,而且一般都找得到例程,例程一上,稍微修改下就可以,我的程序就是在论坛
[size=13.3333px]上面找到的,对比电路原理图,发现只有RST管教不同,配置下这个管脚,在原来工程配置PHY芯片之前设置复位管脚即可;还可能会有MAC+PHY的芯片——比
[size=13.3333px]如EN28J60,野火的就是用这种方案,你通过其SPI接口就可以进行配置和传输数据;另外一种是将网络协议也集成在网络芯片中,这种使用起来会更加简单,后
[size=13.3333px]面也不用再移植LwIP的网络协议栈,具体的移植方式参见网上众多教程,弄好之后,首先你要ping下看网络通不通,具体过程如下我跟另外一位小白聊天记录。
嵌入式网络 扫描仪 11:47:54

这边IP昨天你是怎么设置通的
所谓 11:48:15

哪个?
嵌入式网络 扫描仪 11:48:51

直接用网线连接开发板后,直接用网络调试助手客户端输入开发板IP连接不上
所谓 14:55:40

1、你的板子ping得通吗?2、你要将你的板子设置在listen状态
所谓 14:55:47

服务器就要进行监听
嵌入式网络 扫描仪 14:59:55

不通
所谓 15:00:16

你网线是怎么连的
所谓 15:00:34

要连到路由器
嵌入式网络 扫描仪 15:00:39

直接电脑和开发版相连
嵌入式网络 扫描仪 15:00:58

直接连应该没问题啊
所谓 15:01:04

好像要用到交叉线
所谓 15:01:14

不然两个都tx-tx,rx-rx
嵌入式网络 扫描仪 15:01:26

对哦,我去
嵌入式网络 扫描仪 15:01:37

交换机也可以吧
所谓 15:02:08

但是我的是可以的,因为我用的是交叉线,不要问我什么是交叉线,反正我的网线就是可以
所谓 15:02:12

交换机也可以
嵌入式网络 扫描仪 15:02:42


所谓 15:03:12

先ping通再说,不然都是扯淡
所谓 15:03:27

步子迈太大
嵌入式网络 扫描仪 15:07:08

适配器中Ip地址,子网奄码这些要改么
所谓 15:07:25

当然要啊
嵌入式网络 扫描仪 15:12:55

嗯嗯
嵌入式网络 扫描仪 15:33:24



嵌入式网络 扫描仪 15:33:51



所谓 15:34:21

不对
嵌入式网络 扫描仪 15:34:45

na
嵌入式网络 扫描仪 15:34:54

哪里
所谓 15:35:15

你的电脑跟你的板子是不同设备啊,你干嘛给他们弄个相同的IP地址?
嵌入式网络 扫描仪 15:36:00

对哦
嵌入式网络 扫描仪 15:36:05

自动IP?
所谓 15:37:02

自己写一个符合规则的IP地址
所谓 15:37:09

符合子网掩码
嵌入式网络 扫描仪 15:37:50

为什么不可以自动IP?
所谓 15:38:22

我没有试过,只要你开心,怎么做都可以



嵌入式网络 扫描仪 15:42:12

ping通了
所谓 15:42:21

祝贺
嵌入式网络 扫描仪 15:42:43

然而调试助手连接不上
所谓 15:43:11

呵呵

2、接着调通TCP协议,用网络调试助手看能不能进行收发,如果不行,还可以用抓包工具具体分析下。
前面这两个如果做不好,步子还是不要迈太大,容易扯着蛋。
这里顺便跟大家说下不要用uTCP/IP,资料很少,出来问题不知道怎么弄,LWIP最好了,要用可以去支持下老衲五木的书籍。

3、了解下MQTT。
MQTT基于TCP协议,主要有三个角色,代理器、发布者、订阅者,我们这里板子是发布者,将传感器数据发送给代理器,代理器再将数据发送给订阅者。
其实本文要你们顶顶或者是给点莫元并不过分,因为代理器和订阅者这两者如果你找不到的话真的是很无奈,当然如果你有自己弄好的MQTT服务器那就更佳。
代理器IP地址:www.embed-net.com ——"115.29.225.215",端口1883
订阅端是一个APP:,如果你发布的数据是对的话,APP上会显示你发送上来的数据。
对应的发布者的程序(由于要积分,我上去水了好久才下载得了,最好还是不要声张,原作者也在此论坛上,也希望原作者可以手下留情,毕竟大家找个东西来调试也不容易):


上面的过程弄好了之后,你要弄到自己的服务器,要弄一个订阅端怎么搞?:
这是后面我们团队弄的服务器后我发送消息上去,订阅端订阅到的,刚才试了下,还可以一边发布一边接受,可以用来测试代理器。


4、跟着论坛上的ebox大神一起移植下MQTT协议,确实非常简单, 把TCP的new、connec、send、close移植进去就可以了。
http://www.amobbs.com/thread-5637884-1-1.html

5、祝大家成功!!

再附上一些资料:
http://www.embed-net.com/thread-230-1-1.html

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表