移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第1张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第2张图片

usb转tdl  

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第3张图片

 ath 挂断

22点评,要接转送帽

AT+QGPSLOC? gps定位

AT+QGPS=1通过命令启动 启动好之后 505还没有启动 516 还没有定位好,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第4张图片

 新版本数据模块,带电瓶转换芯片 效果会更好一些,专用的di芯片,单独把他tdl 1.8v转换成3.3v或者5.5v 供外部单片机接线

硬件测试,需要把数据模块卡插好,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第5张图片

识别三个窜口, at口 拨号口  tps口?

at口

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第6张图片

ati 打印版本信息

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第7张图片

 所有的模块都要看两件事情,一个是卡状态,一个是信号质量满格是31,AT+CREG? 注册状态 注册到基站,注册到基站之后模块与附近的基站进行连接进行  

ATD88206255 拨号,ATH挂断

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第8张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第9张图片

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第10张图片

发短信测试

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第11张图片

发短信   1A 16进制发送

中文短信, 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第12张图片

长度为23字节的短信, 

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第13张图片

手机号码,默认补一个F  两两颠倒的 如果你要发短信,就把这个改成自己的就可以了,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第14张图片

 不要发送新行 不要HEX发送,要求非常严格,多一个字节少一个字节 多一个字符少一个字符,都会错的发送过去 发1A不需要回车 打勾HEX发送,因为这个时候是16进制

 他是一个gbo的编码8个字节,8个16进制,表示4个汉字

2g 3g 4g 5g都是一样的 没什么差别 默认只支持英文,如果你想支持中文,需要521b表示‘ 创’字

2个16进制 2个字节来表示 一个汉字

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第15张图片

收短信,  0没短信 1没短信,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第16张图片

配置一下,收到短信直接把短信输出, 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第17张图片

会直接把短信输出出来,我们这个 中文短信 gbo的编码

要切换到英文模式

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第18张图片

再发一条, 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第19张图片

 也可以给这个模块拨打电话测试,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第20张图片

来电显示 配置 输出手机号码 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第21张图片

 删除短信,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第22张图片

 把数据发送服务器,还可以做定位移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第23张图片

 切换到29接收移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第24张图片

 GPRMC 注释 讲解 也可以通过串口com30 来获取gps的信息移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第25张图片

 gps定位29发送, 可以通过30口获取信息,也是串口获取的一个方式,时间 经度 维度信息 

通过耳机可以听得到,读取文字信息,只会朗读

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第26张图片

 直接返回了错误,一会用电信卡来测试一下,因为他需要查询到他的基站库,

选lte

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第27张图片

 gprs的收发,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第28张图片

 配置完之后就可以打电话了,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第29张图片

我们就可以识别到 能收到电话  按键1 -49 按键2 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第30张图片

 每一个编码他都有  输出的是10进制移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第31张图片

gprs可以把数据进行透传模式,通过一条命令就可以了,因为他通过测试的时候,一定要注意卡的信号质量,一定是ok的,才可以做这个步骤,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第32张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第33张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第34张图片

他是阿里云,创建一个tcp server  可以发送命令建立一个连接,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第35张图片

 连接上之后就可以发送数据了,发1234  这样的话,这个板子就跟我们的服务器建立了一个叫tcp的一个连接 他用的是第一个通道 AT+QIOPEN=1 ,0

退出移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第36张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第37张图片

再发ATI就可以了, 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第38张图片

关闭tcp通道=0就关闭了, 如果你退出了以后,你还要建立连接,你好要给他发关闭  刚刚你只是退出了一个tcp 你要给他关闭 不然他里面的通道还在,你只是模块退出了,没有给他关闭也不行,所以要给他关闭tcp通道=0就关闭了 关闭了之后你还可以做下一个操作,当然也可以给他,如果模块要重启的话,也可以通过这个命令来给他重启AT+QPOWD 

还可以再进行建立一个连接,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第39张图片

这是0通道, 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第40张图片

 他就会关闭这个通道 这个时候就可以循环进行对模块的操作 可以切换透传 对AT命令的一个切换

Http必须要保证信号质量,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第41张图片

卡状态,就是说你做 什么操作都要查询他的卡状态 at+cpin?然后设置一下环境的PDP 

然后设置http反馈头信息,然后查询激活状态

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第42张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第43张图片

 如果激活了,我们就发完成激活就好了,如果没激活的话就发AT+QLACTY? 激活状态=1

连接完之后就可以发网址了,需要21个字节 url长度移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第44张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第45张图片

发过去网址之后, 我们就可以给他读取,获取网页状态

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第46张图片

 超时是80秒,能获取的话 返回是一个200

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第47张图片

 这是一个作为网页的一个get一个方式,就是能把数据提交到服务器的一个方式,我们推荐的方法是做一个tcp 的数据传输,

我们get以后没有给他read  那我们read一下

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第48张图片

 就可以把网页的信息给他读取下来,

发送命令需要加回车 发送新行  其他的不用

这样就可以实现get的一个提交 比如说

这样一个http网页的一个数据 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第49张图片

 ip138限制比较少,基本上给他读取出来了,百度做的比较严格,防止灌入被人入侵,所以做的比较严格

再看一下我们电信卡,

先看卡状态,必须ok移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第50张图片

 第二步注册到基站如果没有注册基站 你的板子相当于砖块 所以没有用,不能通讯,0,1   0,5 或者1,1  1,5

 

看他的信号,如果你的信号质量太差的话,他有可能会做一些一系列的失败,比如说信号很差的情况下,不能打电话,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第51张图片

 看一下基站定位,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第52张图片说明我们电信可以做基站定位的,因为电信的每一个基站都纳入了基站定位的定位库里面,所以的话,他就可以做基站定位移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第53张图片

USB口跟串口的切换,在接串口的时候, 有些功能 他串口是没有的,首先板子现在是usb口,那我们先拔掉,换成串口,需要做USB口跟串口的转换,通过这个把他切换到串口上去

232 httl都可以 上电 先换移动卡,我知道他的号码,我们在我的电脑看一下串口,是串口5

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第54张图片

 打开串口调试工具,

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第55张图片

比如说我们打电话过去, 首先要看sim卡状态 和信号质量  拨号  拨通后串口没有反应,那usb有反应,所以我们需要把串口的功能通过命令进行配置,命令就可以把他转换过来,是三个 串口1,usbat usbmodem 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第56张图片

先查询一下, 

这个查询不了,因为没有在usb上做操作, 

配置成功后我们在打电话看一下 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第57张图片

4g模块的拨号测试,可以接入电脑做拨号测试,也可以接入嵌入式系统,比如说我们的Android,liunx win 7 8  win10 xp wce系统,都是可以做一个tcp的拨号测试

首先拔掉网线,想把设备做成无线模块,来带动我们的pc上网  插卡之后看卡状态和信号质量,

注册状态, 

信号质量 

打开网络中心 设置新的连接 拨号连接 

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第58张图片

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第59张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第60张图片

 

 com31 波特率115200

linux的拨号,嵌入式的一个拨号,他usb主要看他usb 是串口的,他usb 虚拟出的串口本身做一个调试,他有两种接口,一种是usb 转串口,一种是qmi的一个单纯的usb的一个通讯 这个速度是非常高的 上网速度跟手机一样

4g模块,通过外部的单片机驱动4g模块来通过4g模块把数据上传到服务器,和接收服务器的一个数据

那我们准备一个单片机的对角系统,这就是一个stm32的单片机,他就是对角系统的,无非是把排针排座引出来 ,这边是4g模块,我们要把4g模块接入到

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第61张图片

这里,这里M_T 和M_R是本身模块的dtl,是默认的dtl,模块引出来的dtl,模块V_T和 V_R是经过传化的dtl 一般用于5v的单片机  

首先我需要把代码下载到板子里面去,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第62张图片

打开代码 

串口1uart_init是给电脑进行通讯的 看他的调试信息  串口2是接我们4g模块的 串口3是给客户用的

插入缓存器,比如说我们先把我们的ip地址 修改一下我们的ip地址和端口号 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第63张图片

也就是说我们发送到我们的电脑上面来, 电脑ip地址是 125.77.81.253

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第64张图片

先建立好连接,然后下载

看一下缓存器的配置

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第65张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第66张图片移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第67张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第68张图片

 下载,上电 stm32在上电的状态下才会进行下载 板子进行上电 上电完看一下我们下载的代码是否是ok的,第一步看串口1的输出信息是什么?默认单片机的串口是com3

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第69张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第70张图片

我们先调单片机 单片机要确保他是ok的 我们看一下他的输出信息,这是单片机的调试口 串口1 他有信息 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第71张图片

 接下来看这个模块的串口,我们把信息下载完了之后就可以拔掉了 通过我们这个usb的dtl的三根线 比如说我们  收 和发 和tnd 接到我们的串口2,这个是板子的串口2移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第72张图片

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第73张图片

接入到我们的 gnd 绿色的,收和发发和收两两接入一下接到我们的usb的tdl

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第74张图片

单片机复位一下看是否有信息 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第75张图片

单片机的两个串口 串口1是用来调试的,串口2是用来跟电脑进行 串口1 串口2 都有信息,当然串口3也有信息,但是我们没有用到串口3 这样确保我们单片机是ok的 输出正确的字符串,

首先串口3是接到电脑上,他打印是单片机初始化成功, 串口2输出atd信息,不是乱码 所以这个单片机调试就ok了 调试单片机成功后 我们来调试4g模块

4g模块也是接到这里来,首先我们要保证4g模块灯闪烁,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第76张图片

我们先接d是6角  v_t v_r 接第6角和3 4角  jnd接黄线 只要d接错了,其他的两根线随意接 如果没信息的话就返接一下就可以了,我们调试一下模块看一下是否有信息,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第77张图片

命令模块有信息反馈, 黄色的是jnd,蓝色的是tx-d接到板子的r 绿色的是rx-d tdxi去usb上的tbxi rx-d接到板子上的t接好之后,我们要看模块哪几个信息呢?首先看他的卡状态,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第78张图片卡状态ok的话 模块成功一半,再看一下注册状态移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第79张图片

再看一下信号质量 

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第80张图片

都非常的好  首先保证了这个单片机的串口通的,保证模块的串口通的 卡状态 信号质量都是ok也是通的 我们可以接到单片机,也就是默认的他的串口,先测试一下移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第81张图片

无非就是往上挪一排  移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第82张图片

看他的信号质量,也是注册的非常成功, 直接接到模块的tdl口。注意模块要先启动 黄灯闪烁代表启动 那我们做了测试时候 我们就可以进行连接了 通过单片机的tdl 串口来接到我们的这个板子的4g模块的串口,那我们就可以巴在这个短路骂了 巴在这个串口线,然后我们就可以对他进行接线

首先我们绿色的是gnb

这两根我给他顺便接上移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第83张图片

 还有一个线可以接也可以不接 这个vccmcu他是外部的单片机的一个参考电平 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第84张图片

可以接 也可以不接, vcc 3.3v 给单片机上电,单片机要接到usb转串口这边来 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第85张图片

com7关掉, 看一下单片机的串口信息,我们给单片机板子复位  单片机初始化成功,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第86张图片

 这个时候表明他们之间通讯是没有成功的,你看单片机发送AT没有返回ok 发送ATE0过去也没有返回ok 那我们有可能这两根线接错了,这个单片机的收和发接错了 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第87张图片

 黄色和橙红色对调一下  单片机的收和发接错了 3和4角对调试一下 复位一下模块试一下 他是成功的,他就一直在服务器进行发数据

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第88张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第89张图片

他就一直发送数据过来了, 服务器发数据给板子,板子也可以发数据给服务器 首先我们关闭掉板子 4g模块,vcc给他拔掉,直接三根线 一个是tx rx jnd 接到单片机上面来,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第90张图片

 三根线分别供电 接下来给4g模块直接上电,这个时候单片机发送数据是没有返回ok的,这个时候我们等待4g模块启动,等他启动了,已经启动了,我们就可以对他进行控制了 已经连接到服务器 数据发送过来了

他是不断的发送我们这个网址移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第91张图片

 也可以用默认的串口,比如说我拔掉这个线,拔掉 3和4 我们重新给板子上电,我们要等 这个板子给他启动 黄灯闪烁 黄灯闪烁了 那么我给他接好线,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第92张图片

板子一样的给他进行 复位,这个是模块默认的串口,一样的他服务器也会过来, 双向进行数据的传输  1.单片机调试  串口的调试 2模块的调试 tdl电平的调试 3.将两个板子连接起来 通过三根线 通过串口的收 发 和jnd给他连接起来,然后把代码下进去 实现服务器的收发数据

单片机来驱动4g模块 单片机用的是瑞桥系统,比如说PA3他是串口2  PA3和PA2 他是那个stm32的一个串口2 来接到我们的4g模块上面去,

比如说改一个发送内容,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第93张图片

 比如说改一个ip地址  端口号改成55555移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第94张图片

 编译 下载一下,我们接到单片机上面来 接入到单片机 然后进行下载,

下载完后,板子上电,灯闪烁表明  模块已经启动了,接线

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第95张图片

 启动好一个端口,tcp是55555

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第96张图片

 单片机给他复位一下,看一下单片机的串口信息

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第97张图片

 模块断电 上电,清除窗口,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第98张图片

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第99张图片

 这就是我们4g单片机的驱动,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第100张图片

代码有:主文件main   按键文件 key  led驱动文件   串口2 usart2   串口3 usart3 和5110液晶显示的一个文件,我们没有用到  led, key也没有用到,客户都可以自己根据情况使用,

delay是一个延时函数, sys是系统的一个输出函数, usart是串口1函数,串口3没有用到  串口2用到了,串口1用到了,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第101张图片

默认为库函数 

 ec20收发命令的函数 通过串口2 跟模块进行收发数据 通过模块发送数据,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第102张图片

首先我们给板子初始化数据, NTVTC  Seafiguration初始化板子   delay init初始化延时函数

初始化串口1 串口2  串口3 ,串口3没有用到,客户可以自己进行使用,波特率随便自己设置就可以了,9600 和115200都可以

LCD5110_Init的一个显示函数,这个我们没有接,看串口信息,看调试信息就可以了,

接下来,比如说串口的一个,液晶屏的初始化,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第103张图片

下面是 串口1  串口2 串口3 分别给他打印调试信息, 来检测我们单片机是否是正常的一个状态,只要单片机 只要串口1 串口2分别有信息打印出来,那我们单片机的调试就完成了

模块调试我们直接接到tiuctpl直接接到我们tdl电平,给他发送at命令,然后返回ok,比如说卡状态,信号质量ok的话, 我们模块就调试成功了,这个一定要去调试,不然的话,你的模块和单片机里面到底是什么状态,

接下来是模块的初始化,模块比如说给他发送AT他返回OK 我们表明连接成功, ATEO关闭回显, 查询卡状态 查询 注册状态,反馈0,1 表明我们确定我们跟基站信息做了一个连接,判断我们查询状态之后 判断激活状态,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第104张图片

我们需要给模块做一个激活,如果反馈1 表明模块终端入网移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第105张图片

接下来查询一下激活后的模块的ip地址

等待模块启动成功,反馈的是终端入网成功 +CGATT:1, 反馈的TT:1

我们可以单独发送给模块,

AT+QICLOSE=O 表明是要关闭通道,比如说我们之前有过一个连接我们要对他进行关闭 关闭我们的通道,比如通道0 我们就关闭通道0 他的状态 不然的话,下次你再连接的时候就会失败,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第106张图片

85行这个是客户需要改动的, 一个是ip地址,注意他的双引号 是以\结束,端口比如说是55555 注意逗号 隔开来,不要多一个少一个,就会出现问题,

进行连接成功之后,我们反馈我们连接状态,反馈我们连接到服务器,连接到服务器的时候我们就不断的发送心跳 网址

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第107张图片

 给服务器,服务器如果下发数据 我们收到下发数据的话,我们就给他打印出来 所以我们把数据发送到服务器,服务器可以把数据下发到我们的板子,我们板子通过串口 stm32板子通过串口给他打印出来

4G模块MQTT阿里云物联网平台搭建和调试

ip地址可以用阿里云的ip地址 通过 tcp跟服务器做透平传输 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第108张图片

 编译完之后可以通过j-link下载到单片机里面去,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第109张图片

可以看到 有这个  就可以下载了

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第110张图片

这样 单片机串口1 就可以输出调试信息,串口2 可以用来接我们的4g模块,我们用单片机的stm32 s103 串口2 来接4g模块,可以看里面的串口输出信息,串口来接到我们电脑里面可以看一下他的调试信息,这样通过usb转tdl 接到我们电脑里面, 我们在设备管理器里面看到有com3

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第111张图片

 就是我们usb转tdl 单片机 串口1的输出信息,我们可以复位一下看一下他的串口信息,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第112张图片

这就是我们单片机已经灌好程序了, 

接下来 单片机与模块进行连接 单片机的串口2 三根线,

链接移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第113张图片

的话把 这个拔掉后,首先有个绿色的他是jmd  黄色的是单片机的rx 接到模块的tx 红色的是单片机的tx 接到模块的rx

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第114张图片

接好之后,我们看一下输出信息, 复位一下我们单片机,这样就连上了,连上之后 服务器还没创建,所以他就失败了,我们登录到服务器

建立一个端口为1001的服务器

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第115张图片

 这个时候再次复位一下,这个时候服务器连上了,数据就一直发过来

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第116张图片

这就是阿里云服务器,通过这个 单片机来采集数据,然后通过这个4g模块,通过串口接到这个4g模块,无线的把这个数据发送到这个服务器上,

接下来,你可能没有这个服务器,需要弄成网页的这种形式,就是说当你数据量很多的时候,你可能需要一台服务器,然后搭建一个自己的网页平台 就是物联网的一个平台,然后把数据存放到自己的服务器,这样你就不会因为别人的平台的因素干扰来导致 不会因为别人的干扰,比如说别人平台没有用的导致数据丢失,如果说你数据量不是很大的话呢,你完全可以用别人现成的平台,比如说别人做好的网页平台,把这个数据给存进去,

接下来我们讲另一个平台阿里云物联网开发平台 打开我们浏览器 输入阿里云物联网平台网址 登录

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第117张图片

登录到阿里云物联网平台,可以看到 阿里云物联网平台,说白了 我们就不用刚刚那个服务器了,服务器主要走的是tcp udp  http mqtt 主要走这些协议 相当于后台的一个系统,相当于自己搭建的一个服务器,那这个相当于别人已经做好的一个网页平台 你只要把数据存放到他的网页就可以了,说白了他是数据库的一个形式,比如说你有台灯 是一个产品, 风扇是一个产品, 设备的话呢

比如说 你有红台灯  白台灯 蓝台灯   产品有空调 风扇 电冰箱,

比如说我们现在做一款 环境采集数据的产品,我们可以创建一个产品,比如说我们创建一个产品叫

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第118张图片

 建立添加设备,选择我们产品,添加设备,点击设备 属于环境这个产品,环境比如说是水务管理,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第119张图片

 添加一个设备,他就会产生产品的密钥 ,产品名称 和设备密钥

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第120张图片

 这个要复制下来,后面要用到

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第121张图片

是什么产品 产品底下的哪个设备 ,设备的密钥 你要接入进来你要给我密钥 这三个就完全可以接入到我们的这个阿里云物联网平台

水务设备未激活,表示设备一次都没有连接上,只要连接过一次就会显示在线,离线,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第122张图片

设备topic列表,topic他是 通过接口,比如说通过get方式可以下发数据,可以订阅比如说订阅到SHUIWU/user/get  比如说有数据下发的话,他会通过topic列表来把数据下发下去,比如说设备需要发布数据的时候可以通过第一个topic列表来把数据发上来,比如还有其他的方式 set  post  还有其他的订阅方式,还有update更新的一个方式,还有错误的一个更新,错误的一个检测,主要用到的有第一个 上发,和最后一个下发,运行状态,这边有一些数据库,有一些数据,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第123张图片

pm2.5 声音分贝 光照度 湿度  还可以定义一些新的,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第124张图片

功能定义里面可以添加湿度   地理位置等等这些,可以添加一些新的功能

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第125张图片

 室内温度可以改一下他的值,默认是 -40~55

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第126张图片

 在线调试,刷一下 虚拟设备,数据看他能不能过去 float 2.0 int 发2 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第127张图片

推送成功 会有一串 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第128张图片

 一些标准的协议,然后存到网页的后台,网页后台把数据存到数据库,这个时候有数据他显示在线状态,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第129张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第130张图片

运行状态, 就可以看到我们刚刚发送的数据,这样的话表示我们这个测试,测试表示他是成功的,实时监控我们可以看到这个数据, 日志服务里面可以看到刚刚下发的数据

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第131张图片

 数据分析,把数据进行管理和开发 边缘计算  开发服务,通过iot studio 行业服务  视频服务

8.4G模块通过STM32发送MQTT协议数据到阿里云物联网平台

如何通过板子,通过mqtt协议把数据发送到物联网平台里面,设备里面看到环境这边,水务运行状态,自己发送的数据

测试:打开代码,需要改三个东西,第一个是产品的密钥

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第132张图片

第二个是设备产品的名称,第三个设备的密钥,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第133张图片

 弄好之后,进行编译一下,程序下载到单片机里面,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第134张图片

 通过魔法棒这边,我们的stm32是8m的,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第135张图片

 j-link是128k的 现在有一个问题,问题是板子没有给他供电,通过给板子供电,debug可以看到数字,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第136张图片

 可以下程序,选单片机先看他的串口1   串口2 跟模块进行通讯,通过单片机的串口1,来监测串口发送来的信息,串口2 跟这个模块来进行通讯,单片机串口2 我们接好了,通过三根线,这个绿色的jnd, 黄色的是单片机的rx  红色是单片机的tx接模块的rx 三根线,接串口2, 接下来看单片机的串口 单片机串口 这个时候有个com3 我们看 com的信息输出,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第137张图片

 模块上电,等待模块灯的一个闪烁,表示他启动,启动我们开始检测卡状态,信号质量,这个时候质检成功,准备发数据,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第138张图片

indoortemp室内温度 是2, 运动状态  设备检测到的运行状态,水务这个设备,通过这个串口 发送出来,室内温度  地理位置 这个是上发, 当然也有下发,通过最后一个get方式来发送信息,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第139张图片

 发送111信息,通过板子打印出来,移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第140张图片

 数据通过整理,可以提交外部的手机app,也可以提交到自己的软件开发, 通过设备信息来接入到我们设备里面,接收到服务器来获取我们的数据,也可以通过阿里云的在线开发平台, web可视化平台,移动可视化平台,服务开发

9.4G模块STM32通过MQTT协议发送代码讲解

数据一直发送服务器,我们上报数据肯定很快1秒钟一次,一直发送,如果你要下发 需要注意一下,我们一直上发他占用比较多的时间 时序 和系统资源 所以下发的时候,你要多发几次,这一讲我们讲一下他的代码讲解,

mqtt手册,首先他必须第一步首先发送AT+QMTCFG配置命令,如果这个返回ok就可以,如果他不反回ok 表示你的模块不支持,发的时候要注意,不要多发也不要少发,如果发错的话,他也会返回错误,它里面有什么参数?首先 阿里云的一个版本,当然他有其他的一个命令,发送到比如说自己搭建的阿里云服务器 自己搭建的一个mqtt服务器也可以,有人他在自己的系统里面搭建mqtt服务器也可以发过去,那这里我们用他这个阿里云物联网的服务器 第一个参数表示阿里云 然后他的一个id 也就是  他其实mqtt是基于tcp tcp也有这个ip 所以mqtt也有,然后 产品的key  设备名称, 加密钥,这是第一个命令 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第141张图片

 第二个是open命令,open是打开一个连接,那我们代码里面 分别可以看得到,这些其他的我们在上一讲讲过的,比如说一些串口输出移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第142张图片

波特率可以改9600 也可以改115200 这是串口3 

串口2是跟模块通讯,串口1是接到电脑上的一个信息,

MTC29302PWRKEYA控制29302电源,这个我们可以不用,

RESET4G():复位4g电源也可以不用

R5485Send Data(cx,8) 485的一些数据的话呢,这边也可以不用

然后直接进入初始化,初始化完了之后,就是进入到这个 通过这个函数来连接 我们阿里云服务器

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第143张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第144张图片

 刚刚我们说过 我们第一个配置 他的三个信息,

然后就是open 的时候,我们选择阿里云服务器的一个网址 我们id也是0

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第145张图片

第一个也是0,这个也是网址也叫域名, 第二个是端口,端口一般 是1883 一般mqtt是1883

第三个,比如说我们有多次连接,我们可以通过close+他的id,所以一开始我们可以从代码里面可以先给他close 防止多次打开,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第146张图片

接下来还有一个conn 就是连接了,连接这边我们有用到,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第147张图片

前面connid是0,后面是设备名称, 也就是我们连接哪个设备就可以了,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第148张图片

这参数也有, 就是id为这个名称 client clientID username password可以不要 接下来配置 打开连接都做完了之后,就可以配置订阅

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第149张图片

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第150张图片

订阅完 比如上面有数据的话呢, 就会发下来,订阅的话,我们先配置一个id,msgID topic 然后是否有qos1或0,那么我们在代码里面可以看到qos 是0   %s/ %s/user/get 是topic列表,第一个是id 0, 1是msgID, 我们通过topic列表可以下发数据 

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第151张图片

 订阅做好了之后就要发数据了,

发送数据时pub

 发送室内温度IndoorTerpeTature,这个是产品里功能定义有一个IndoorTerpeTature 是一个标识符,

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第152张图片

在配置AAAT+CREG的时候一定要等于0 ,所以我们判断的时候一定要“0,1” 或者 “0,5” 如果是“1,1” 或者 “1,5” 会判断不成功,所以我们所有模块一开始都会检测卡状态,初始状态 和信号质量,如果都成功,可以看他的ip地址的注册信息,如果注册信息有了

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第153张图片

 检测到PDP已经激活了,发送关闭128行 和注销129行  之前的一些命令,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第154张图片

 取消订阅

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第155张图片

例子,比如说配置命令  配置到阿里云aliauth  然后是open  QMTCONN连接,

QMTSUB订阅

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第156张图片

接收数据,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第157张图片

给他关闭

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第158张图片

ssl加密的协议,cfg先配置加密,

 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第159张图片

发送数据,数据,我们通过 val  1-614一直到现在614

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码_第160张图片

 都是通过++一直发送,直到6500等于0,从1开始发,一直发送到阿里云平台,

移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码

你可能感兴趣的:(单片机,嵌入式硬件)