社区导航

 
查看: 588|回复: 1

[原创] mtk7688之op mqtt应用篇

[复制链接]

3539

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2018-3-29 09:44:33 | 显示全部楼层 |阅读模式
本帖最后由 wateras1 于 2018-3-29 16:42 编辑

                                                                  mtk7688之op mqtt应用篇
       mtk7688本身就是一款路由器方案,不过我们也可以用来做物联网网关,虽然有点奢侈了(核心模块网上看了下五六十左右(FLASH 16M,DD 128M),价格还好,如果能做到三十块左右,那就完美了),不过做项目还是不错,毕竟上Linux,很多网络资源可以使用,性价比还是蛮高的。
      在网上看了很多mqtt的方案,最终还是选择了mosquitto,毕竟这块资料也多些,不过都感觉比较乱,基于linux下,需要自己移植配置,其实openwrt要安装mosquitto还是比较方便的,可以在make menuconfig里面选择编译,也可以通过opkg安装。我选择的是opkg安装。
1.opkg update2.opkg install mosquitto mosquitto-client libmosquitto


就上面两步就可以在op上面实现mqtt功能我们要熟悉的就两个命令mqtt的发布和订阅,如果做代理服务器的时候还需要了解一个配置文件,其他不需要怎么了解。我先把网上的关于这两个命令的介绍粘贴下。


mosquitto_pub 命令参数说明

1. -d  打印debug信息


2. -f  将指定文件的内容作为发送消息的内容


3. -h  指定要连接的域名  默认为localhost


4. -i  指定要给哪个clientId的用户发送消息


5. -I  指定给哪个clientId前缀的用户发送消息


6. -m  消息内容


7. -n  发送一个空(null)消息


8. -p  连接端口号


9. -q  指定QoS的值(0,1,2)


10. -t  指定topic


11. -u  指定broker访问用户


12. -P  指定broker访问密码


13. -V  指定MQTT协议版本


14. --will-payload  指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用


15. --will-qos  Will的QoS值。该参数需要与--will-topic一起使用


16. --will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使用


17. --will-topic  用户发送Will消息的topic




mosquitto_sub 命令参数说明


1. -c  设定‘clean session’为无效状态,这样一直保持订阅状态,即便是已经失去连接,如果再次连接仍旧能够接收的断开期间发送的消息。


2. -d  打印debug信息


3. -h  指定要连接的域名  默认为localhost


4. -i 指定clientId


5. -I 指定clientId前缀


6. -k keepalive 每隔一段时间,发PING消息通知broker,仍处于连接状态。 默认为60秒。


7. -q 指定希望接收到QoS为什么的消息  默认QoS为0


8. -R 不显示陈旧的消息


9. -t 订阅topic


10. -v 打印消息


11. --will-payload  指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用


12. --will-qos  Will的QoS值。该参数需要与--will-topic一起使用


13. --will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使用


14. --will-topic  用户发送Will消息的topic
1.OP配置的MQTT客户端连接外网服务器实验做这个实验,我们还需要一个代理服务器,其实也可以用op做服务器,只要指定路由器的IP就OK了,我也尝试了没问题,我做一个远程服务器测试,找一个免费的broker,域名api.easylink.io。做这个实验要确保op已经连接到了外网,命令使用上面已经说明了,我找了一个MQTT客户端软件来配合调试。 33894711731036efaa50cbf1cd97fdc.png 2.将OP作为broker,其他MQTT客户端内网交互
    首先开五个MQTT客户端都连接OP上的broker,ip是路由器的IP,四个作为订阅,一个作为发布,具体个数不限制。

   1522287486(1).jpg

对于这个OP可以支持多少个mqtt客户端,可以用一个脚本简单测试,不过个人觉得几百个应该是没有问题(如果不存储数据的话),下一篇我搞个脚本简单测试下这个连接数,当然用来测试公司服务器连接数的,当时测试了公司服务器一百多万
=================================================================
刚用脚本测试了1K设备连接OP,之后一直发送数据,运行很稳定,查看broker CPU占有率才10%,ram才3%
1522312804(1).jpg


1522312927(1).jpg
此内容由EEWORLD论坛网友wateras1原创,如需转载或用于商业用途需征得作者同意并注明出处





此帖出自RF/无线论坛
淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目


回复

使用道具 举报

1469

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-3-29 09:52:23 | 显示全部楼层
学习


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-9-19 23:23 , Processed in 0.076640 second(s), 18 queries , Gzip On, Redis On.

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