请选择 进入手机版 | 继续访问电脑版
搜索
查看: 8345|回复: 13

[Lora] 【LoRa模块_E32-TTL-100】+PC端代码实现

[复制链接]

该用户从未签到

32

主题

1829

帖子

177

蝴蝶豆

论坛元老

最后登录
2021-5-11
发表于 2018-4-16 23:17:04 | 显示全部楼层 |阅读模式
之前跟朋友聊天,聊到了现代农业蔬菜大棚的智能化问题,朋友希望我能够给一个建议,如何实现智能化管理和监控,我的大概思路是控制节点上安装传感器和执行器,节点间通过485总线将节点信息汇集到网关,网关通过4G网络上送到云,在监控端网络连接到云进行控制。之后了解到用户的监控和节点端的距离通常不会超过3000米,而且两者中间通常没有高大建筑物阻挡,于是考虑是否可以使用LoRa方案实现,正好社区有LoRa模块的使用机会,于是果断下手,幸运的是获得了这次试用的机会,于是果断修改方案。
完整方案的大致思路如下图所示:
0001.png
考虑到目前使用只有一对LoRa模块,暂时先实现如下图所示简易版功能:
0002.png
两个LoRa模块分别位于PC端和节点端。PC端使用STM32F103C8T6最小系统板,串口接LoRa模块,USB端连接PC,开发板实现USB CDC设备,使得连接LoRa的串口和USB CDC串口之间实现透传(串口接收到任何数据,直接由USB CDC发送给PC机;接收到PC机任何数据,直接通过串口转发给LoRa模块),波特率全部采用9600。
PC端STM32F103C8T6最小系统板的原理图如下:
0003.png
PA0、PA1分别接LoRa模块的M0和M1,PA2和PA3作为串口连接LoRa模块串口,模块电源同样取自系统板。硬件连接图如下所示:
0004.jpg
STM32CubeMX实现管脚配置和生成工程:
0005.png
在IAR中编写代码后使用ST-Link下载到最小系统板。
最小系统板连接LoRa模块和PC机,PC机上使用串口工具发送数据和接收数据。另一个LoRa使用JlinkOB做同样的事情。
0006.png
经测试,STM32F103C8T6最小系统板实现了串口与USB CDC串口之间的透传功能,PC端开发板项目完成。
附:源代码简单分析
STM32CubeMX设置好并生成IAR工程后,程序框架已经实现了所需要的大部分工作,只需要修改很少的地方就可以完成了。
0011.png
工程只需修改5处,第一处是在USB的中断文件usbd_cdc_if.c中,包含串口头文件,因为需要在USB中断中调用串口发送函数。
0012.png
第二处依然是在USB的中断文件usbd_cdc_if.c中,USB CDC接收回调函数中调用串口发送函数,把接收到的数据发送出去。
0013.png
第三处是修改main.c文件,包含USB CDC的头文件,同时定义串口的接收和发送缓冲区。
0014.png
在主函数main中初始化SX1278的M0和M1为低电平,开启串口接收中断。
0015.png
实现串口中断回调函数,在函数中把串口接收到的数据通过USB发送出去。


源代码: LoRaGetway.zip (1.64 MB, 下载次数: 256)
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    1182

    主题

    4967

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2020-3-17
    发表于 2018-4-17 14:50:42 | 显示全部楼层
    感谢分享,请汇总到4月技术原创
    https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    14

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2018-5-17
    发表于 2018-4-19 11:20:17 | 显示全部楼层
    很棒~我的毕设就是用32来控制lora模块互相收发信息,但是导师给我的板子是广州朗威公司开发的,感觉和您的完全不一样,我的那个LoRa模块完全没有M0,M1这些接口,只有一个USB接口,目前我只能人工发送AT指令实现两个模块的PMAC、透转模式的传播、。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    61

    帖子

    0

    蝴蝶豆

    中级会员

    最后登录
    2021-4-13
    发表于 2018-5-13 23:44:25 | 显示全部楼层
    学习了
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    456

    帖子

    2

    蝴蝶豆

    金牌会员

    最后登录
    2019-5-7
    发表于 2018-5-14 05:33:10 | 显示全部楼层
    学习了学习了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2018-6-25
    发表于 2018-6-2 16:06:57 | 显示全部楼层
    为什么我我用IAR打开了代码,显示project 没有工具STLINK_ID
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32

    主题

    1829

    帖子

    177

    蝴蝶豆

    论坛元老

    最后登录
    2021-5-11
     楼主| 发表于 2018-6-3 08:00:55 | 显示全部楼层
    cccjr 发表于 2018-6-2 16:06
    为什么我我用IAR打开了代码,显示project 没有工具STLINK_ID

    用STM32CubeMX重新生成一下代码在试试。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2018-6-25
    发表于 2018-6-3 10:20:40 | 显示全部楼层
    好的,我试试。
    打开工程的时候提示The project contains the unknown tool "NULINK_ID"
    然后工程里面提示
    LOAD: Configuration 'LoRaNode' in the project 'LoRaNode' contains broken options for tool 'STLINK_ID':
    The format of this file is not supported by this version of the workbench. It appears to have been written by a newer version of the workbench.
    Diagnostics: 'Settings 'STLINK_ID': unsupported version - 5'.
    Options for 'STLINK_ID' will be set to default.
    Creating backup of original project file.

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2018-6-25
    发表于 2018-6-3 12:02:23 | 显示全部楼层
    已经解决 iar版本不对  ==
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    蝴蝶豆

    新手上路

    最后登录
    2019-5-11
    发表于 2019-5-11 00:23:00 | 显示全部楼层
    求教,找不到stm32f1xx.h编译出错显示cannot open source file“stm32f1xx.h”,请问怎么解决
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-3-29 15:06 , Processed in 1.200132 second(s), 46 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表