糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > STM32+LORA芯片调试

STM32+LORA芯片调试

时间:2021-11-20 23:08:15

相关推荐

STM32+LORA芯片调试

最近接手一个新项目,主要是用stm32做控制芯片,然后利用lora通信,实现相关功能。

项目概述硬件设备项目流程LORA介绍理论知识调试流程调试中的问题个人反思

整个项目由3个同学协作完成,我主要负责通信部分的调试。

1.项目概述:通过单片机控制lora节点,发送数据给“lora数据集中器”,数据集中器将数据上发给指定服务器,进行软件端的开发。

2.硬件设备:“lora节点”*10, “lora数据集中器”*1,单片机型号为:stm32f103c8t6(自己设计的PCB);

若干USB-TTL模块,lora节点配套底板一块,吸盘天线若干。

3.项目流程:首先确定整个项目所要实现的功能,根据功能背后的硬性要求,寻找对应的硬件设备,制作选型文档,从多维度进行考虑,缩小目标设备的选择范围,先确定几个大概选型,咨询相关技术客服,了解实际的产品型号,最后再下单购买。

4.lora是一种远距离、低功耗通信技术,全称是:Long Range。

找了两个简单的介绍文档,可以留作参考http://www.four-//industry_0828/683.html (附有各种通信方式特点对照表)/Ttian6/article/details/94215277。

LORA的通信距离不等,我选择的芯片支持通信距离为2KM左右,且通信距离可调,芯片功耗很低。lora模块很多,需要慎重选择。

5.理论知识

介绍一下这套通讯设备之间的关系:单片机控制节点,节点发送数据给数据集中器,集中器将数据上传至服务器。但是,这是在应用时的工作逻辑关系,如何调试这套设备呢?必须先熟悉几个软件以及知识点。

网络调试助手:一共分为串口和网口两个调试端口。一般是将电脑当作本地服务器,通过串口给一端(LORA芯片)发送信息,然后网口一端显示服务器(本地服务器的地址就是电脑的IP地址)接收到的数据(这里的数据是由集中器所上传)。

LORA的通信方式:lora节点与lora数据集中器之间通信,是依靠各自的lora吸盘天线,与网络,基站等等无关;

MQTT协议:/anxianfeng55555/article/details/80908795

TCP/TP协议:就是简单的通信协议啦,我在前几篇博客中都有过详细介绍。

服务器端口号:每一个服务器都可以设定几个特定的端口号供自己使用

本地端口号:就是当前设备的端口号

服务器端口号:服务器或者网关开启接口给除它之外的IP连接;本地端口:供其他服务器或者设备连接的接口编号。所以在此处,网络调试助手与集中器之间,关系就应该是:网络调试助手,端口号填写集中器的服务器端口号,集中器端口号与之相反。

6.调试流程:

(1)基于配套底板调试LORA节点,进入AT指令,设置一些主要参数。购买配套底板是为了防止自己画的板子出问题,用作对照实验,且可以极大提升开发效率。小编

(2)调试集中器:成功配置集中器之后,就可以进行简单的连接,以及与配套的透传云实现数据收发。

(3)基于自己设计的PCB板调试LORA节点,也就是通过单片机发送指令,实现AT指令的收发。

(4)实际通信有效距离测试。

最后,也是最重要的一点,一定要学会看芯片使用手册!!!!!!!

小编的调试步骤:

(1)查看芯片快速入门手册以及配套底板的硬件说明,将芯片与配套底板焊接,通过USB-TTL模块连接电脑与底板(已知采用串口通信),打开串口助手,发送指令快速进入AT模式,分别看各个参数的作用,并设置参数。

(2)为数据集中器供电(集中器的天线分别安上),并且电脑连接集中器的WIFI,登陆指定网页:192.168.1.1,账号密码都是:root,然后进入集中器设置界面(如下)。服务器设置:指定集中器数据上传的服务器。基本设置:设定与节点连接的相关参数。通道:就是数据传输的通道,彼此间参数各不相同(主要是频率这部分),防止数据冲突。

(3)尝试建立连接(采用本地服务器):此时,焊接有芯片的底板通过USB-TTL连接到电脑串口上,电脑连接集中器的WIFI,并且,将集中器的服务器界面,服务器IP地址设置为电脑IP,服务器端口和本地端口设定好,在专门的配置软件(网络串口调试助手)中,也要保持一一对应的关系(类似串口通信的TX-RX,RX-TX),设定好波特率。通过串口发送数据,就可以在集中器端查看发送的数据。 (4)将AT指令配置交由单片机完成(通过单片机发送指令,有2种方式,状态机或者直接延时发送),通过阅读芯片手册,可以知道指令发送的起始信号和退出信号。 (5)测试自己设计的PCB板子,先确定最小系统没问题,然后将外围电路及芯片焊接上,测试LORA芯片是否对单片机发送的指令做出预期回应(单片机串口1发送数据,然后将串口1接受的数据进行存储,通过串口2发送给电脑显示) (6)通过以上步骤,就能够确定硬件大体的功能达到预期要求。传输距离,依靠天线电路。这部分电路设计很重要,我将单独列一章作为介绍(兼顾PCB天线设计以及天线型号选择)。 (7)单独测试传输距离:分别采用改装的吸盘天线以及PCB天线。发现传输速率越低(波长越长),传输距离越远。 注意传输协议,包头包围,发送数据时,注意十进制和十六进制之间的转换,发送字母S,就要通过串口发送S对应的ASCLL码,而且是10进制的。单片机判断数据,也就是判断接收的ASCLL码十进制的值。 (8)软硬件对接,通过网络串口调试助手,可以查看数据。实际场景中,需要将集中器的服务器地址改为指定云服务器的地址,然后由软件后台进行判断。

7.调试中的问题:

(1)始终无法进入AT指令:WH-L101-L-C型号的lora芯片,进入AT指令,需要严格遵循时序要求。此处,就以最简单的延时函数调试单片机进入AT指令模式:(状态机涉及信息众多,延时,简单粗暴,可靠)

if(USART_RX_STA&0x8000)//接受到中断,就执行保存{USART_RX_STA=0;//对数组清零,方便下一次接收len=USART_RX_STA&0x3fff;//取出u16中的低16 位,得到此次接收到的数据长度for(t=0;t<len;t++){USART1->DR=USART_RX_BUF[t];//把每一个数据都在串口打印出来while((USART1->SR&0X40)==0);//等待发送结束}USART_RX_STA=0;//对数组清零,方便下一次接收if(keys==1){printf("%c",j);delay_ms(200);printf("%c",j);delay_ms(100);printf("%c",j);delay_ms(100);}delay_ms(400);printf("%c",M);delay_ms(500);printf("AT+AID=00000001\r\n");delay_ms(400);printf("AT+NID=00013c2d\r\n");delay_ms(400);printf("AT+SPD=1\r\n");delay_ms(400);printf("AT+CH=72\r\n");delay_ms(400);printf("AT+ENTM\r\n");delay_ms(400);printf("AT+ENTM\r\n");LED=!LED;delay_ms(1000);delay_ms(1000);delay_ms(1000);LED=!LED;// printf("AT+AID\r\n");//可以查询设置的数据}

自己调试快一周,几在崩溃边缘徘徊,被同伴一语点破,甚幸甚幸呀。(以前用的通信模块,进入AT指令没有严格要求时序问题,更重要的,是暴露了自己的问题,几次怀疑时序,但却没有付诸行动,导致调试耗时巨大)。使用手册,重要部分,一定要精度。

(2)很短时间就调试成功了数据集中器,但是,如何测试“有人公司”产品的实际传输距离呢?这里就涉及到了网络调试助手,以前一直认为网络调试助手只能在一台电脑上实现“串发网收”。因此在此处困惑许久,直至配置服务器连接**公司透传云,都没能进行数据传输测试。老师花了一分钟,小编就明白了如何测试及原理:一台电脑连接"底板+lora芯片",打开网络调试助手的串口部分,另一台电脑打开网络调试助手的网口部分(同时在集中器上设置好服务器地址位本机IP地址,服务器端口及本地端口),一台电脑移动,发送数据,在数据集中器端的电脑即可在网络端口查看数据。

(3)敢于质疑,在利用AD画图的时候,发现芯片手册上存在问题,前后对照之后,果断问了技术支持,更新了原理图的版本。

(4)自己设计的PCB天线电路(外置天线),但是传输距离只有10~20M远,购买的底板+芯片+吸盘天线,在学校内 传输距离达到了1000+(楼层越多,越密集,传输效果越不稳定,信号越弱),正在改进电路,希望下一版,自己设计的天线可以传输更远的距离。

8.个人反思:接手了比较多的通信、物联网相关项目,但是本次还是遇到了问题,足见自己功底不踏实。正如老师所说:想要快起来,必须先让自己慢下来。并且,对于各种协议的理解,远远未达到清晰明了,依旧停留在了解的阶段。

9.项目拓展,如果有n多个lora芯片需要接入同一个集中器,需要将修改集中器的接入节点数量,并且,在每一个单片机中烧录指定程序(每个单片机对应一个芯片,程序中需要修改单片机AT指令中LORA节点的ID),如果已知产品数量,那么,依旧可以采用状态机来解决重复烧录这个问题。

暂时先总结出这么多,希望对读者能有一定帮助。

我曾许下十年,只为最美的遇见。

如果觉得《STM32+LORA芯片调试》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。