4G模块(EC600N)通过MQTT连接华为云

目录

一、前言

二、EC600N模块使用

1.透传模式

2.非透传模式

3、华为云的MQTT使用教程:

三、具体连接步骤

1、初始化检测

2、打开MQTT客户端网络

3、创建产品

4、创建模型

5、注册设备

6、连接客户端到MQTT服务器

7、发布主题消息

8、发送消息

9、断开与MQTT服务器的连接

四、stm32处理串口数据


一、前言

最近在做一个小项目——宠物/儿童智能穿戴防丢失设备,这个项目主要是通过stm32单片机实时接收处理GPS模块(ATGM332D定位模组)数据信号,并且能够通过蓝牙接收相关信息,并且丢失后,能够通过4G模块或者短信模块将GPS的定位数据发送到华为云,当然也可以发送到其他云平台。

这篇文章是4G模块连接华为云,之前我写过一篇WIFI模块连接华为云的文章,链接如下,讲解的更加详细,重复的部分我就不写了。

esp8266WiFi模块通过MQTT连接华为云_esp mqtt 透传_洲洲不是州州的博客-CSDN博客

        做这个项目的时候,让我联想到了以前在网上看到别人做的——基于4G模块取快递的小车,可以实现在家操控小车超远距离控制小车,其实只要解决了4G模块的通信问题,好像我也可以复现试一试,后面有时间了我再做一个这个项目。

这里我有个疑问?刚开始我尝试过,在这个4G模块可以插上流量卡和SIM电话卡进行与基站的通信,我用的这个4G模块好像不能发送短信?很奇怪,为什么现在有的4G模块既可以进行4G网络通信也可以发送短信,我看了一下这个模块手册,我这个模块好像只能进行网络通信。有明白的读者可以帮我解答一下。

        因为这篇文章重点是解决4G模块连接华为云的问题,什么GPS通信、蓝牙模块什么的我这里就不写了,反正都是串口通信很简单,没必要浪费时间写这些,这里着重讲一下我调试4G模块的过程。

        由于是4G模块,肯定需要访问公网,不像我前面写的一篇文章中esp8266 WIFI模块既可以连接公网又可以连接私有网络(在同一个局域网下面),因为以前我在使用WIFI模块时,经常在同一个局域网下面,用网络调试助手就能查看接收到的数据。      所以刚开始,我尝试将底层数据通过4G模块上传到公网ip上,然后又去下载花生壳,尝试进行内网穿透,虽然后面也调试成功了,但是太麻烦了。刚开始没想起来还有各种各样云平台,简直是太方便了。

最终将数据上传到云端之后,想着能在手机端APP上实时发送和接收来自云端的信息,准备在微信小程序里或者APP上查看数据,奈何博主不会Java程序,不会自己做界面,还是太菜了,唉,所以就放弃了做APP界面的想法。

二、EC600N模块使用

模块支持透传模式和非透传模式。下面对两种模式分别进行说明。

1.透传模式

在透传模式下, AT 指令失效,用户给模块发 AT 指令或数据模块都会识别成数据
发给公网服务器。模块收到公网服务器的数据后自动将数据转发给用户。发送“+++”即可退出透传
模式。

2.非透传模式

非透传模式又称 AT 指令模式,在非透传模式下, AT 指令有效,用户给模块发
的所有数据模块都会当做 AT 指令处理。用户需要发送数据给公网服务器时,必须先发送数据发送指 令,发送完成后等收到正确返回消息才能发送数据,数据发送结束后模块将继续工作在 AT 指令模式。 模块收到公网服务器的数据后会将数据直接转发给用户或者给用户发送提示信息,等待用户使用 AT 指令读取模块收到的服务器发送过来的数据。
本次文章我采用的是:STM32+4G+非透传模式+华为云
注意:
1、核心板只能与公网服务器进行通信
2、建议先使用网络调试助手连接公网服务器,确保服务器与客户端数据交互正常

3、华为云的MQTT使用教程:

MQTT使用指导_设备接入 IoTDA_开发指南_设备侧开发_使用MQTT Demo接入_华为云 (huaweicloud.com)

三、具体连接步骤

1、初始化检测

握手测试  正常返回:OK
AT

查询信号质量    正常返回:+CSQ:2-30,99  OK
AT+CSQ

检测SIM卡是否插入   正常返回:+CPIN: READY  OK
AT+CPIN?

查询网络的注册状态    正常返回: +CREG: 1,1  OK
AT+CREG?

查询网络附着状态    正常返回: +CGATT: 1  OK
AT+CGATT?

查询模块IMEI
AT+GSN

查询卡号ICCID
AT+QCCID

2、打开MQTT客户端网络

        当上一步初始化检测通过后,然后注册好华为云之后,4G模块就可以连接云平台了。

具体命令如下:

格式:
AT+QMTOPEN=0,"自己的云地址",接入端口号

示例:
AT+QMTOPEN=0,"5asddf42f3ad.st1.iotda-device.cn-north-4.myhuaweicloud.com",1883
这里的1883表示是MQTT

要查询自己的地址可以参考如下:

3、创建产品

4、创建模型

        当注册好产品后,就创建该产品的模型,在模型里面添加服务,每个服务下面新增属性,这个属性就是后面我们上传的数据了,后面我们上传数据时格式,要根据这个属性格式来。

5、注册设备

        上一步模型创建成功后,就可以注册自己实际设备了

6、连接客户端到MQTT服务器

        这一步特别容易出现连接不成功的现象,博主在自己连接过程中,因为各种原因导致连接失败,这时候需要检查自己云平台是否在运行状态,还需要仔细检查连接命令参数是否有误。

        上一步注册设备完成后,进入设备查看MQTT连接的参数

具体命令如下:

格式:
AT+QMTCONN=0,"ClientId","Username","Password"

示例:
AT+QMTCONN=0,"65681c99e585c81787ad402c1_ec600n_device_0_0_2023112512","67856c99e585c81787ad402c1_ec600n_device","855262821333124bf520f4674ae18d4dd2709239dddfda27c60e12c71725d90f"

7、发布主题消息

这一步可以参考我之前写过的这篇文章:esp8266WiFi模块通过MQTT连接华为云_esp mqtt 透传_洲洲不是州州的博客-CSDN博客

具体命令如下:

格式:
AT+QMTPUB=0,0,0,0,"$oc/devices/设备ID/sys/properties/report"
示例:
AT+QMTPUB=0,0,0,0,"$oc/devices/6561c99e585c81787ad402c1_ec600n_device/sys/properties/report"

如果返回 “>” ,就可以开始发送我们自己的数据了。

8、发送消息

这里消息格式的json格式的,这个是我们之前创建设备时自己选择的。

具体命令如下:

格式:
{"services": [{"service_id": "之前创建的服务名称","properties": {"服务的属性1": 57,"服务的属性2": 60},"event_time":"20211112T120000Z"}]}

示例:
{"services": [{"service_id": "Data","properties": {"value1": 57,"value2": 60},"event_time":"20211112T120000Z"}]}

注意:发送完消息之后,一定要发送内容结束符1A ,否则云平台显示不了上传的数据。

9、断开与MQTT服务器的连接

命令如下:

AT+QMTDISC=0

四、stm32处理串口数据

        这里就不用写太多了,主要想法是采用串口空闲中断+结构体处理数据,具体项目源码可私信我获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/190674.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023-11-26 事业-代号s-跨境物流-记录

摘要: 2023-11-26 事业-代号s-跨境物流-记录 跨境物流: 【结论】 中小卖家(最低适合1个人经营的卖家)首选以下两种物流,目前已知的是以下两种,后续有新的发现再更新。 1、云途物流(YunExpress)&#xff…

2016年五一杯数学建模A题购房中的数学问题解题全过程文档及程序(采光与房款)

2016年五一杯数学建模 A题 购房中的数学问题 原题再现 随着现代社会经济的快速发展,房地产成为国家经济发展中重要的经济增长点之一。为了充分利用楼房建设的土地面积,开发商经常会选择建筑高层住宅。在购买住房时,影响消费者选择购房的因素…

企业文档文件管理软件推荐:提升管理效率与数据安全性

Zoho WorkDrive企业网盘是一种高效的文件管理工具,它不仅可以为组织搭建统一、高效、安全、智能的内容管理体系,还能够提供大规模支撑、海量数据处理、非结构化数据治理、智能挖掘与洞察等服务能力。通过这些服务,企业可以更好地管理和利用其…

Linux 面试题(一)

目录 1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 2、怎么查看当前进程?怎么执行退出?怎么查看当前路径? 3、怎么清屏?怎么退出当前命…

更改MacBook壁纸,有时可以带来不一样的感觉,特别是动态壁纸

在我看来,买一台新的MacBook最棒的部分就是挑选一张完美的桌面壁纸,为我的新工作伙伴定下基调。有时,在真正更换壁纸之前,我会花一整天的时间,仔细决定我的新笔记本电脑到底是什么样子,而且由于Macbook如此…

使用项目管理工具进行新媒体运营管理的策略与方法

使用Zoho Projects项目管理工具,新媒体运营可轻松驾驭从策划选题、撰写到排期发布的全流程。运用项目管理工具对新媒体运营进行精细化管理,助力团队更高效地规划、执行和追踪各项任务与活动。 以下是运用项目管理工具管理新媒体运营的妙招: 1…

软件测试面试题之如何进行项目介绍

邯郸网上银行系统旨在为企业搭建安全便捷的账户管理,资金汇化及投资服务通道,提升企业财富与价值增值它主要包含首页、我的账户、信用卡、邮储业务、投资理财、转账汇款、个人贷款等模块。 个人贷款一般有抵押贷款,和信用贷等,房…

【算法萌新闯力扣】:回文链表

力扣题目:回文链表 开篇 今天是备战蓝桥杯的第23天。我加入的编程导航算法通关村也在今天开营啦!那从现在起,我的算法题更新会按照算法村的给的路线更新,更加系统。大家也可以关注我新开的专栏“算法通关村”。里面会有更全面的知…

IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8?(已解决)

文章目录 前言分析解决方案一:替换创建项目的源方案二:升级JDK版本 参考文献 前言 起因 想创建一个springboot的项目,本地安装的是1.8,但是在使用Spring Initializr创建项目时,发现版本只有17和21。 在JDK为1.8的情况下…

岁月随笔-穿拖鞋的汉子

时间如白驹过隙般,转眼间2023年也只剩下最后的40天。汉子我拿出年初自己定的目标,立下的Flag,恍恍惚若昨天发生,不禁让人感慨万千。 其实最近自己遇到了很大的困惑,也导致了断更了一个月。自己逐渐摸不清自己的定位啦…

由走“贸工技”的联想联想到传统OEM,带给了自己那些思考?

2022年1月16日,自己来到魔都的第1597天,这城市还是保持着相似的容颜,而自己却悄悄的起了变化。 以前对时间概念其实不是特别敏感,感觉自己有大把的时光可以浪费(虽然知道死亡是个永远无法逃避的话题)&#…

Flink-简介与基础

Flink-简介与基础 一、Flink起源二、Flink数据处理模式1.批处理2.流处理3.Flink流批一体处理 三、Flink架构1.Flink集群2.Flink Program3.JobManager4.TaskManager 四、Flink应用程序五、Flink高级特性1.时间流(Time)和窗口(Window&#xff0…

Oracle 中的操作符

1.union:对两个结果集进行并集操作&#xff0c;不包括重复行&#xff0c;同时进行默认规则的排序&#xff1b; SELECT * FROM emp WHERE sal < 1500 UNION SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2000 order by 1 2.union All&#xff1a;对两个结果集进行并集操…

WebSocket协议测试实战

当涉及到WebSocket协议测试时&#xff0c;有几个关键方面需要考虑。在本文中&#xff0c;我们将探讨如何使用Python编写WebSocket测试&#xff0c;并使用一些常见的工具和库来简化测试过程。 1、什么是WebSocket协议&#xff1f; WebSocket是一种在客户端和服务器之间提供双向…

Prove that exponential function f(x)=e^x is not Lipschitz on R

https://math.stackexchange.com/questions/3980014/prove-that-ex-is-not-lipschitz-on-r https://math.ucr.edu/~res/math205A-2014/lipschitz2.pdf

大模型三阶段训练

为了训练专有领域模型&#xff0c;选择LLaMA2-7B作为基座模型&#xff0c;由于LLaMA模型中文词表有限&#xff0c;因此首先进行中文词表的扩展&#xff0c;然后进行三阶段训练&#xff08;增量预训练&#xff0c;有监督微调&#xff0c;强化学习&#xff09;。 代码将全部上传…

从0到1建立前端规范

本文适合打算建立前端规范的小伙伴阅读 一、为什么需要规范 规范能给我们带来什么好处&#xff0c;如果没有规范会造成什么后果&#xff1f;这里主要拿代码规范来说。 统一代码规范的好处&#xff1a; 提高代码整体的可读性、可维护性、可复用性、可移植性和可靠性&#xf…

计算机系统的层次结构与性能指标

目录 一. 计算机系统的层次结构二. 计算机性能指标2.1. 存储器的性能指标2.2 CPU的性能指标2.3 系统整体的性能指标2.4 系统整体的性能指标(动态测试) \quad 一. 计算机系统的层次结构 \quad \quad 虚拟机器的意思是看起来像是机器直接就能执行程序员所写的代码, 其实是需要通过…

[Matlab有限元分析] 2.杆单元有限元分析

1. 一维杆单元有限元分析程序 一维刚单元的局部坐标系&#xff08;单元坐标系&#xff09;与全局坐标系相同。 1.1 线性杆单元 如图所示是一个杆单元&#xff0c;由两个节点i和j&#xff0c;局部坐标系的X轴沿着杆的方向&#xff0c;由i节点指向j节点&#xff0c;每个节点有…