热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微控制器上的MQTT库

如何解决《微控制器上的MQTT库》经验,为你挑选了2个好方法。

我想使用MQtt协议作为Messing协议.我想用CCS编译器在微控制器TMS470(德州仪器)上移植Mqtt库.由于我是本协议的新手,任何机构都可以建议我如何使用GPRS模块使用此协议.我对MQtt做了一些研究.但我不知道如何开始.打开TCP/IP后,如何发布或订阅数据.通常如何移植库.我会在哪里找到一个图书馆



1> 小智..:

您可以使用Paho嵌入式客户端库:https://eclipse.org/paho/clients/c/embedded .

使用此库,您只需实现从GPRS模块(网络)和时间管理(定时器)写入和读取的逻辑.

作为示例,您可以查看我的Arduino MQTT库:https://github.com/256dpi/arduino-mqtt.Paho嵌入式客户端存储库中还有更多示例.



2> 小智..:

我有类似的问题,我正在使用STM32F405和GPRS模块(Quectell M95).我无法正确接收MQTT包.根据我的经验,通过PAHO嵌入式C库,我可以将测试消息发布到iot.eclipse.org.

本杰明MQTT与CC3200的例子非常好理解概念.观看视频教程.

http://blog.benjamin-cabe.com/2014/08/26/mqtt-on-the-ti-cc3200-launchpad-thanks-to-paho-embedded-client

据我所知,PAHO嵌入式C库序列化MQTT包,您需要将传输方法植入库中.(发送/重放/连接/断开)

这是我的transport_sendPacketBuffer()函数,它只是将缓冲区放到gprs模块中.不要使用printf.因为,MQTT包可以包含0x00或任何类型的数据."buflen"由图书馆计算.

int transport_sendPacketBuffer(int out, char* buf, int buflen)
{
     int i=0;
     for(i=0;i<=buflen;i++){
          put(buf[i]); // Put One char to GPRS modem .
     }
}

在您传输transport_data之前您需要使用AT命令连接套接字,有几种方法可以连接.这取决于您的GSM模块AT +命令/ TCP文档(透明/多重连接)如果您有一个用于GSM模块的库,它也会有所帮助.

这是简单的Quectel M95 TCP套接字连接命令,AT + QIOPEN

int  CONNECT_SERVER_SOC (char *ip,int soc ){

    char bf[128];
    sprintf(bf,"AT+QIOPEN=\"TCP\",\"%s\",%d\r\n",ip,soc); // ip= "198.41.30.241", port:1883
                                                          // iot.eclipse.org
    printf("%s",bf);
}

如果你能处理回复信息,我很乐意听到.


推荐阅读
author-avatar
mmm3310245179
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有