mqtt问题之STM32F103GPRS模组如何接入物理网平台

简介: MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。

问题一:python 如何 实现 mqtt 接入阿里


环境:

测试地点: 北京

测试主机: 公网测试主机

语言: python

目标:

计划用 python 实现 mqtt 接入

前期准备:

1. 参考: 建立 topic 相关资源

1. 已经可以通过 web 控制台, 创建 topic

1. 文档有 java/.net/c++ 的样例, 但是没有 python 的样例程序, 自己测试

问题:

在控制台无法看到 任何 消费者/生产者 连接

测试输出:

1. 消费者输出

Connected with result code 0

1. 生产者输出

Connection returned 0
    publish success, msg = 2016-11-12 14:58:43.454239

测试:

下面是我写的测试连接程序

订阅

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import paho.mqtt.client as mqtt
user = "user0001"
pwd = "user0001password"
mqtt_svr = "mqtt-test.cn-qingdao.aliyuncs.com"
port = 1883  # endpoint端口
topic = "testtopic"  # 订阅的主题内容
def on_connect(client, userdata, flags, rc): 
    print("Connected with result code " + str(rc))
    client.subscribe(topic, qos=0) 
def on_message(client, userdata, msg):
    print("topic:" + msg.topic + " Message:" + str(msg.payload))
client = mqtt.Client(
    client_id="CID_test0001",
    clean_session=True,
    userdata=None,
    protocol='MQTTv31'
)
client.username_pw_set(user, pwd)  
client.on_connect = on_connect  
client.on_message = on_message  
client.connect(mqtt_svr, port, 60)
client.loop_forever()

发布

import time
import paho.mqtt.client as mqtt
import datetime
def on_publish(msg, rc):  # 成功发布消息的操作
    if rc == 0:
        print("publish success, msg = " + msg)
def on_connect(client, userdata, flags, rc):  # 连接后的操作 0为成功
    print("Connection returned " + str(rc))
client = mqtt.Client(
    client_id="PID_test0001",
    clean_session=True,
    userdata=None,
    protocol='MQTTv311'
)
user = "user0001"
pwd = "user0001password"
mqtt_svr = "mqtt-test.cn-qingdao.aliyuncs.com"
port = 1883 
topic = "testtopic"  
client.username_pw_set(user, pwd)  
client.connect(endpoint, port, 60)  
client.on_connect = on_connect  
client.loop_start()
time.sleep(2)
count = 0
while count < 1:  
    count = count + 1
    msg = str(datetime.datetime.now())
    rc, mid = client.publish(topic, payload=msg, qos=0)  
    on_publish(msg, rc)
    time.sleep(1)


参考回答:

可能是签名相关的错误,参考这里https://help.aliyun.com/document_detail/54274.html?spm=5176.doc54225.6.630.Hzvyqq


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/95631?spm=5176.28261954.J_7341193060.643.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@95631._.ID_95631-RL_mqtt%E6%8E%A5%E5%85%A5-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_11


问题二:SIM7020 MQTT接入aliyun时设置参数错误


按SIMCOM AT指令顺序来,第一条连接成功(AT+CMQNEW),返回0(MQTT-ID)。

接着开始设置参数, AT+CMQALICFG=0,"productKey","deviceName","deviceSecret" ,就是这一条不行。

image.png

关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/136600?spm=5176.28261954.J_7341193060.651.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@136600._.ID_136600-RL_mqtt%E6%8E%A5%E5%85%A5-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_12


问题三:SDK移植到设备时采用MQTT接入是否必须实现SSL接口


SDK移植到mcu环境,使用MQTT接入,是否必须实现SSL接口才可以使用?接口实现起来比较麻烦


如下接口:

HAL_SSL_Destroy

HAL_SSL_Establish

HAL_SSL_Read

HAL_SSL_Write


参考回答:

官方的demo程序有虚拟的实现例子,可以参考.只要移植到对应类型的mcu就可以了.


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/211985?spm=5176.28261954.J_7341193060.655.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@211985._.ID_211985-RL_mqtt%E6%8E%A5%E5%85%A5-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_13


问题四:STM32F103GPRS模组如何通过mqtt接入物理网平台


如题,现在了解到2种方案 1,通过Linux的C-SDK编译 进行平台移植  ;2 ,通过Alink协议进行mqtt直连。请问哪种方案比较合适我这边的设备平台。希望大家讨论讨论,拜谢


参考回答:

ReSTM32F103GPRS模组如何通过mqtt接入物理网平台

我就是用的方案2,也是STM32F103芯片方案


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/232645?spm=5176.28261954.J_7341193060.662.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@232645._.ID_232645-RL_mqtt%E6%8E%A5%E5%85%A5-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_14


问题五:使用自由协议MQTT接入IOT平台,想动态注册,在登录完成后,订阅/ext/register订阅不上


如上是程序订阅部分的截图,下面的截图是这两个的打印,

下图是mqtt动态注册的流程图,按照流程图我需要完成登录动作之后,再订阅这个topic拿到返回的设备秘钥,但是这个topic总是订阅不了,求解答,谢谢!


参考回答:

agentLite 证书校验失败,请检查证书是否配置正确,证书一般是放置在demo中的conf目录下的rootcert.pem 文件,如果该目录下已经存在证书文件,请点击下载更换证书


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/313371?spm=5176.28261954.J_7341193060.667.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@313371._.ID_313371-RL_mqtt%E6%8E%A5%E5%85%A5-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_15


相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
2月前
|
消息中间件 Kubernetes Docker
KubeSphere 核心实战之三【在kubesphere平台上部署ElasticSearch、应用商店部署RabbitMQ和应用市场部署Zookeeper】(实操篇 3/4)
KubeSphere 核心实战之三【在kubesphere平台上部署ElasticSearch、应用商店部署RabbitMQ和应用市场部署Zookeeper】(实操篇 3/4)
41 0
|
8月前
|
传感器 物联网 芯片
超轻量级网红软件定时器multi_timer(51+stm32双平台实战)
超轻量级网红软件定时器multi_timer(51+stm32双平台实战)
266 0
|
10月前
|
传感器 监控 网络协议
STM32配合W5500网卡连接MQTT服务器
W5500是一种基于TCP/IP协议的网络通讯芯片,可以提供网络连接功能,相当于是一种嵌入式以太网控制器,具有低功耗、高速传输、易于集成等特点。
534 1
|
10月前
|
传感器 网络架构 智能硬件
STM32通过esp8266连接WiFi接入MQTT服务器
STM32通过esp8266连接WiFi接入MQTT服务器
561 1
|
12月前
|
消息中间件 移动开发 运维
《2023云原生实战案例集》——04 互联网——小七手游 MQTT构筑运营平台与游戏端的交互通道
《2023云原生实战案例集》——04 互联网——小七手游 MQTT构筑运营平台与游戏端的交互通道
|
消息中间件 RocketMQ
RocketMQ平台的消息灰度方案(3)
RocketMQ平台的消息灰度方案
208 0
|
存储 消息中间件 数据库
RocketMQ平台的消息灰度方案(2)
RocketMQ平台的消息灰度方案
404 0
RocketMQ平台的消息灰度方案(2)
|
存储 消息中间件 算法
RocketMQ平台的消息灰度方案(1)
RocketMQ平台的消息灰度方案
452 0
|
29天前
【STM32】基于HAL库的360度编码器、摇杆代码编写
【STM32】基于HAL库的360度编码器、摇杆代码编写
|
3月前
|
C++ 芯片 编译器
STM32F103标准外设库—— 新建工程与库函数(四)
STM32F103标准外设库—— 新建工程与库函数(四)
44 0
STM32F103标准外设库—— 新建工程与库函数(四)