使用广和通L610模块搭配RT-Thread操作系统连接onenet云
文章目录
- 一、相关介绍
- 1.广和通
- 2.RT-Thread
- 3.onenet云
- 二、项目简介
- 1.项目简介
- 三、硬件相关
- 1.L610模块
- (1)原理图
- (2)使用说明
- 2.stm32和l610以及其他相关硬件的连接
- 四、软件相关
- 1.配置onenet云
- 2.使用RT-Thread Studio软件编写代码
- (1)准备工作
- (2)添加AT_Device-L610支持包
- (3)添加onenet软件包
- 3.互联操作
一、相关介绍
提示:介绍广和通、RT-Thread和onenet云,已了解的可跳过
1.广和通
广和通是当前全球领先的物联网无线通信解决方案和无线模组供应商,也是中国首家A股上市的无线模组企业。主要为电信运营商、物联网设备厂商、物联网系统集成商提供端到端物联网无线通信解决方案。其可提供技术领先的5G/4G/LTE Cat 1/3G/2G/NB-IoT/LTE Cat M/安卓智能/车规级无线通信模组。
本次使用的L610模块就是一个LTE Cat 1模组,产品支持LTE、GSM双模通信。
广和通官网:https://www.fibocom.com/
2.RT-Thread
一般认为RT-Thread 是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。但是RT-Thread严格来说不只是一个操作系统,而是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台。是由熊谱翔先生带领并集合开源社区力量开发而成,是一款真正的国产嵌入式物联网操作系统。经过11年的累积发展,RT-Thread 已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过 6亿 台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。
RT-Thread官网:https://www.rt-thread.org/
3.onenet云
onenet又称中国移动物联网开放平台,是由中移物联网有限公司基于物联网技术和产业特点打造的开放平台和生态环境,适配各种网络环境和协议类型,支持各类传感器和智能硬件的快速接入和大数据服务,提供丰富的API和应用模板以支持各类行业应用和智能硬件的开发,能够有效降低物联网应用开发和部署成本,满足物联网领域设备连接、协议适配、数据存储、数据安全、大数据分析等平台级服务需求。
onenet官网:https://open.iot.10086.cn/
二、项目简介
1.项目简介
本项目会全程使用RT-Thread Studio开发,使用版本: 1.1.5。
项目预期目标和步骤:
1.实现RT-Thread在stm32f411ce最小系统板上运行;
2.在RT-Thread上添加支持L610模块的AT设备软件包;
3.在RT-Thread上添加支持onenet云的软件包;
4.使stm32可以通过L610模块连接至onenet云,并可以上传和接收数据。
使用到的硬件如下:
三、硬件相关
1.L610模块
(1)原理图
L610 MINI DS模块原理图:[点击图片查看高清图]
L610模块扩展底板的原理图:[点击图片查看高清图]
(2)使用说明
L610模块功能非常丰富,在模块SIM卡槽插入可以正常使用的手机卡,可以连接网络进行数据传输、拨打/接听电话、发送/接受短信等功能,详细功能可以查看其相应手册,本项目只使用模块的网络数据传输功能。
根据以上两个原理图可以发现,扩展板搭建好了L610模块需要的电源、状态指示灯和SIM卡座接口等基础实验环境。在使用时,开发者仅需要注意以下几个部分:
①扩展板上有很多按照arduino接口排列的排针座,是为了兼容具有arduino接口的开发板用的。这个扩展板,实际上是官方的一个iot开发套件上的,用来配合一块STM32G070的NUCLEO开发板。所以实际上arduino接口排列的排针座仅仅有几个与L610模块关键引脚相连。
相连的接口有:
L610引脚 | 扩展板丝印 | 说明 |
---|---|---|
67脚:TXD | RXD | L610模块串口发送端 |
68脚:RXD | TXD | L610模块串口接收端 |
21脚:PWRKEY | POWER_ON | L610模块开/关机引脚 |
20脚:RESET_N | RESET_CON | L610模块复位引脚 |
GND | GND | 电源地 |
其中,扩展板上的TXD和RXD是指与其相连的单片机的实际引脚功能。
【注意这些接口中没有VCC电源】
特殊连接:
L610引脚 | 扩展板资源 | 说明 |
---|---|---|
70脚:USB_DM | Micro USB to module | L610的USB功能 |
69脚:USB_DP | Micro USB to module | L610的USB功能 |
67脚:TXD | Micro USB to serial port | L610的AT串口 |
68脚:RXD | Micro USB to serial port | L610的AT串口 |
这是扩展板上的两个Micro USB接口,每个都可用于供电,但是一个连接了USB转串口模块,可以直接连接电脑使用AT指令控制模块;另一个连接了L610模块的USB接口,用于USB功能。
②电源问题
因为L610模块使用的是3.8V电源,所以扩展板上已经搭载了DC-DC电路,将通过两个Micro USB输入的5V转为3.8V,并且没有将5V输入点提供单独引脚供开发者使用,所以使用时请通过两个Micro USB经过扩展板上的DC-DC电路进行供电。
③控制引脚问题
虽然L610模块使用的是3.8V电源,但是其引脚的数字逻辑电平为1.8V,所以其引脚也不要直接连接高于1.8V的其他芯片引脚。在扩展板上可以使用的这几个引脚都已经经过 OC/OD电路和电平转换电路进行了处理,所以3.3V芯片可以直接相连进行控制。
扩展板上POWER_ON引脚的使用:模块上电时默认关机状态,需要控制此引脚进行开机,方可正常使用L610模块。L610模块的开机和关机都是通过给芯片21脚[PWRKEY]低电平来触发,对应到扩展板POWER_ON引脚就是给高电平触发。不同的是,开机时要求给的高电平至少2S,关机时给的高电平至少3.1S。开关机电路和时序如下:[点击图片查看高清图]
【注意:当模块正常工作时,不要立即切断模块电源,以避免损坏模块内部的Flash。强烈建议先通过PWRKEY或者 AT 命令关闭模块后,再断开电源。(软件关机:AT+ CPWROFF)】
扩展板上RESET_CON引脚的使用:给L610模块的RESET_N引脚一个100ms的低电平然后拉高,可以使模块复位,对应到扩展板RESET_CON引脚就是给一个100ms的高电平。复位电路和时序如下:[点击图片查看高清图]
当然复位也有软复位,发送AT指令:AT+CFUN=15。
2.stm32和l610以及其他相关硬件的连接
stm32的串口1用于连接USB转TTL模块在连接至电脑,用于打印调试等;stm32的串口2连接扩展板的TXD和RXD用于发送AT指令控制L610模块;因为要控制模块的开机,所以使用stm32的PB1引脚连接扩展板的POWER_ON引脚。对应关系如下:
STM32 | L610扩展板 | USB转TTL | 安卓数据线电源 |
---|---|---|---|
PA9(TXD) | – | RXD | – |
PA10(RXD) | – | TXD | – |
PA2(TXD) | TXD | – | – |
PA3(RXD) | RXD | – | – |
PB1 | POWER_ON | – | – |
3.3V | – | 3.3V | – |
– | Micro USB母头 | – | Micro USB公头 |
GND | GND | GND | GND |
四、软件相关
1.配置onenet云
1.进入onenet官网,选择右上角“登陆”登陆账号后,点击右上角“控制台”,将鼠标移至左上角“全部产品服务”处,会弹出一个小页面窗,选择“基础服务”里的“多协议接入”。
2.点击页面中间偏右侧的“添加产品”按钮,会在页面右侧弹出一个侧边窗,需要向里面填写内容,里面的内容可以随便填,填写完毕点击确定。
3.创建产品完成后,会弹出一个小的引导提示框,点击“立即添加设备”,页面将会跳转至设备页面。
4.点击页面右上侧的“添加设备”按钮,会弹出一个侧边框,在其中填写相应的参数,设备名称和鉴权信息都可以随意填写,不过鉴权信息需要为数字和字母格式。
5.添加一个设备后,会在页面显示设备的信息,如设备ID、设备名称、设备状态以及最后在线时间等参数。点击右侧的“详情”,进入设备详情界面。
6.点击“添加APIKey”,在弹出的右侧边窗口内填写APIkey,可以随便填写,填写完成后点击提交,系统会生成一个APIKey。
7.至此,onenet在本项目的条件下已经完全配置完毕,剩下的最后一步就是把链接onenet云需要的各种参数和密码记录下来。分别记录设备下的:设备ID号,鉴权信息和APIKey;产品下的产品ID和Master-APIkey;其中获取Master-APIkey的时候需要进行验证,如果绑定了手机号和邮箱都可以作为验证手段。
☆☆最好将参数记录到一个文档留作保存,注意:这些参数是非常重要的,千万不可泄漏。☆☆
(为了文章的可读性,将此中的参数已经全部展露出来,但是会在写完本文后删除此文章所创建的产品,所以不必担心)
2.使用RT-Thread Studio软件编写代码
(1)准备工作
1.打开RT-Thread Studio,创建基于STM32F411CE的工程,选择->文件->新建->RT-Thread项目,依次填写对应的信息,点击完成。
2.依次按照项目目录找到main.c并打开,点击编译按钮对项目进行编译,观察控制台输出信息,没有错误没有警告,表示软件环境没有问题。
3.将整个硬件系统连接好,将USB转TTL模块插入电脑USB口,将St-Link插入电脑USB。点击串口终端图标打开USB转TTL提供的串口,在弹出来的对话框设置相应的参数,点击确定,稍微等待几秒,观察终端窗口处有如下类似输出即打开成功。
4.点击程序下载按钮,将程序下载至stm32芯片,观察终端窗口是否有RT-Thread LOG打印以及"Hello RT-Thread!"字符串输出。
5.为了不影响在终端对shell命令的使用,改变main.c文件的内容,使字符串不循环输出。
(2)添加AT_Device-L610支持包
1.双击打开工程配置工具,在工具内单击鼠标左键libc图标打开libc库支持,之后点击软件包中心的立即添加按钮,添加软件包。
2.在搜索栏输入at_device,点击搜索图标进行搜索。
3.点击添加,然后关闭即可。
4.关闭搜索界面后,会留在项目配置工具界面,此时显示已添加at_device软件包,鼠标右键单击该软件包,选择详细配置。进入配置界面,在列表中找到Fibocom L610选项,在后面对其勾选,并将其下的列表全部展开,设置电源引脚为17->对应RT-Thread Pin的PB1,AT客户端名称使用uart2,将接收缓存空间改的大一点4096,以防止接收长数据发生错误。最下方版本后面的对应的选项一定要选择latest即最新版本。设置完毕后,使用ctrl+s对配置进行保存,此时RT-Thread Studio会自动对项目进行更改。
5.设置的L610软件包使用了串口2 uart2,所以接下来要去开启uart2功能。在项目目录找到drvice目录下的board.h文件打开,找到大约70几行的uart1定义处,添加对uart2开启的代码,如图。ctrl+s保存。
6.打开项目目录下的packages->at_device-latest->class->l610内的at_device_l610.c文件,找到第979行,将if内的 && l610->power_status_pin != -1 和代码删除。这是因为,本项目只使用了电源引脚,而未使用电源状态读取引脚,所以L610的此支持包会默认不初始化相关引脚,导致L610模块无法开机。
7.在这个at_device-l610最新版软件包里,有一个小bug,就是第929行处的一个函数误将函数名给写错了,导致编译时报函数未定义错误,实际上函数在文件内已经定义。只要将此函数的首字母大写L改为小写l即可。
8.为了保护l610模块不受非正常关机对其内部flash带来的威胁,在实验结束,或准备给模块断电时,控制l610模块关机后在进行电源断开操作,所以在main.c 文件添加如下代码,作用是关机前按下按键使模块关机,程序停止运行。
(3)添加onenet软件包
1.打开项目配置工具,点击“ADD”按钮,在弹出的软件包中心搜索框输入onenet点击搜索按钮进行搜索。
2.在onenet软件包上点击添加按钮,之后关闭页面。
3.之后界面会留在配置工具,此时可以发现多了很多软件包,这些都是onenet软件包所使用的。找到onenet软件包,鼠标右键点击,选择详细配置。
4.进入onenet软件包的配置界面,看到有很多参数需要填写,不要慌,打开之前配置onenet云后保存下来的参数,依次按照对应填写。要将onenet示例勾选,之后ctrl+s保存配置。
5.点击编译,观察控制台输出,没有错误,有警告先不必理会。点击下载至单片机,查看终端的串口输出,一切正常,但是此时还并没有使用onenet软件包的功能。
6.在终端处按下tab键,会列出支持直接输入执行的指令。在终端处直接输入onenet_mqtt_init命令运行onenet_mqtt_init()函数,进行onenet云连接操作。终端输出相应的提示,此时在onenet云的设备列表处可以看到设备已经在线,证明已连接成功。
3.互联操作
1.将在项目目录packages->onenet-latest->inc下的onenet.h文件打开,在文件内可以看到软件包所支持的所有功能函数。
2.onenet软件包支持的常用功能函数及例程功能。
类型 | 函数名 | 功能 | 文件 |
---|---|---|---|
基础 | onenet_mqtt_init() | OneNET云mqtt初始化 | onenet.c |
基础 | onenet_mqtt_publish_digit() | 向onenet云发送数字数据 | onenet.c |
基础 | onenet_mqtt_publish_string() | 向onenet云发送字符串数据 | onenet.c |
基础 | onenet_set_cmd_rsp_cb() | 设置接收命令响应函数 | onenet.c |
例程 | onenet_upload_cycle() | 循环向onenet上传模拟温度数据 | onenet_sample.c |
例程 | onenet_set_cmd_rsp() | 设置接收命令响应函数 | onenet_sample.c |
其中onenet_set_cmd_rsp()函数是用来设置接收命令响应函数的函数,此响应函数具体内容由开发者自行实现,在有数据传来时,会自动调用此响应函数对onenet发来的数据进行解析或处理等操作。
3.在RT-Thread Studio终端处输入onenet_set_cmd_rsp命令设置接收命令响应函数。再输入onenet_upload_cycle命令循环向onenet上传模拟温度数据,每次上传模拟数据终端都会打印输出,此时在onenet云的设备列表,l610设备后面点击数据流,切换到列表显示模式,即可看到上传的数据。此处可以设置显示数据量和开启实时刷新功能。
4.切换至下发命令部分,点击右侧的下发命令按钮,在弹出来的侧边框里填写格式和命令,点击发送,观看RT-Thread Studio终端部分会输出接收到的命令和长度。
至此,本项目内容全部结束。
最后提供L610相关资料下载:https://gitee.com/chaojiwangba/l610-data
使用广和通L610模块搭配RT-Thread操作系统连接onenet云相关推荐
- 广和通L610 4G模块MQTT连接阿里云物理模型
广和通L610 4G模块MQTT连接阿里云物理模型 我采用的是广和通的L610模块成功连接,先激活设备,最重要的是三元组. AT+CLOUDAUTH="Productkey",&q ...
- 【L610】广和通L610 4G LTE Cat.1模块在树莓派下的联网演示
By Mcuzone 关键词:广和通 L610 4G LTE Cat.1 树莓派 RaspberryPi 3B 4B 联网 蜂窝网络 概述:广和通的L610是低成本的4G全网通Cat. ...
- 广和通L610+阿里云平台+钉钉机器人
文章目录 一.将广和通L610软件版本升级为阿里云版本 1.升级步骤 2.测试升级情况(确认升级是否成功 ) 二.配置阿里云平台 1.物联网平台操作 2.广和通L610连接平台操作 三.实现某一功能( ...
- 【Cat.1模组】 广和通L610 基于OpenCPU的SDK二次开发
目前支持Cat.1网络的芯片平台主要是紫光展锐UIS8910和翱捷ASR1603,基于紫光展锐平台,各大厂商延伸出多款Cat.1模组:广和通L610就是其中之一.本文记录开发过程,供日后参考. 广和通 ...
- 广和通l610二次开发|广和通l610 CAT.1模组opencpu开发《二》cola_os移植
广和通l610 CAT.1模组opencpu开发<二>cola_os移植 在L610模组下实现cola os的移植,cola os使用一个freertos的线程来驱动,这样可以避免资源的竞 ...
- 广和通l610二次开发|广和通l610 CAT.1模组opencpu开发《三》阿里云物联网平台mqtt动态注册
阿里云物联网平台动态注册 使用模组的IMEI作为设备的name,采用动态注册自动在案例云平台上注册设备 文章目录 阿里云物联网平台动态注册 参考文档 一.基本准备 二.平台产品创建 三.动态注册流程 ...
- 广和通l610二次开发|广和通l610 CAT.1模组opencpu开发《一》资源介绍
广和通l610二次开发|广和通l610 CAT.1模组opencpu开发<一>资源介绍 L610 平台简介 L610 及平台支持的基本功能 OpenCPU 开机运行 开发板购买 L610 ...
- 广和通 L610 模组(4G Cat.1 通信模组)AT指令测试 TCP/UDP 通信过程
广和通 L610 4G Cat.1 模组 L610系列是广和通LTECat-1系列工业化模组. L610系列一共有三个版本,全面覆盖亚洲.欧洲以及拉美地区主要运营商网络频段,包含L610-CN/L61 ...
- 华为云IoT智慧物流案例11 | 华为云FOTA升级广和通L610模组
华为云IoT智慧物流案例11 | 华为云FOTA升级广和通L610模组 一. 创建华为云平台L610产品与设备 二.AT指令连接华为云IoT平台且测试 三.IoT平台配置FOTA升级 一. 创建华为云 ...
- 华为云IoT智慧物流案例10 | 广和通L610模组FOTA升级(服务端FileZilla Server客户端FileZilla)
华为云IoT智慧物流案例10 | 广和通L610模组FOTA升级(服务端FileZilla Server客户端FileZilla) 第一章 使用FileZilla Server搭建FTP服务器 第二章 ...
最新文章
- linux多进程条件变量,Linux 多线程条件变量同步
- CoreLocation MKMapView
- TreeView查获节点并选中节点
- 米家扫拖一体机器人重置键_全面升级——米家扫拖机器人1T体验
- WebLogic启动与简单项目配置
- webcast(利用sharepoint Designer 定制 Office SharePoint Server 2007)学习笔记
- C#中is vs as
- (2)PCIE简介(学无止境)
- “达观杯”文本智能处理挑战赛代码示例
- 小米平板android版本,小米平板2发布:分Android和Wind 10两个版本
- 使用python-docx模块解析docx文档
- Android 图文数据JSON解析,金山词霸每日一句API的调用
- 我要偷偷的学Python,然后惊呆所有人(最后一天)
- GIF是什么格式的文件
- 回溯法实现求解子集合和问题
- 联想笔记本e480恢复出厂设置_联想e480恢复【快速学会免费恢复】
- C#操作MicroSoft Word的代码
- 如何用数学课件制作工具奇数等分圆
- Lock-step 锁步核有哪些
- python的字节码(ByteCode)
热门文章
- 计算机英语200心得体会,学英语的心得体会作文200字作文:学习英语的感受的英语作文(100~120词)...
- 我是路人甲,请你为我祝福
- 计算机组成原理rs rd,计算机组成原理五章.ppt
- 前端上传超大文件解决方案
- 剑指Java面试:面试官能问到的问题,都被我收集在这份PDF文档里
- 全球与中国光学光源市场现状及未来发展趋势
- 计算机网络小黑指北-单选题自测
- 基于OLAP的时间维度设计
- POJ-1392-Ouroboros Snake
- MATLAB如何创建新文件夹-mkdir函数,如何进入指定文件夹-cd函数