RT-Thread studio STM32F407+RW007模块+物联网软件包-阿里云-onenet云平台

文章目录

一、STM32+RW007

代码300-STM32F407-RW007

(一)基于芯片创建工程

1、创建工程

2、编译程序修改报错

(二)stm32cubemx配置

1、打开stm32cubemx配置RCC选择外部晶振

2、设置SYS

3、使能串口1-打印调试串口(打开cubemx生成代码后如果此处不设置会有问题)

4、配置SPI-RW007

需要根据实际引脚做出修改,SPI2_CLK与默认引脚不一致

PC2--SPI2_MISO

PC3--SPI2_MOSI

PB13--SPI2_CLK

5、配置时钟,外部晶振设置8MHZ,主频最大设置168MHZ,配置完毕后生成代码,关闭cubemx

(三)生成代码修改

1、打开cubemx生成的代码文件

2、复制相关初始化函数到board.c文件末尾,原来的初始化函数全部注释掉

(1)void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)

(2)void HAL_UART_MspInit(UART_HandleTypeDef* huart)

例如:被注释掉文件函数如下所示

board.c文件中的函数

3、打开board.h将SPI2使能打开

改为外部高速时钟

打开使能

4、将SPI驱动模块使能打开

(四)添加RW007驱动包

1、修改对应引脚编号

使能驱动包-进行相关引脚配置,如果不知道对应的引脚编号,可以使用串口打印对应的引脚编号,得到编号后再对应填写,例如使用GET_PIN(C,2)获取PC2引脚对应的编号

2、保存编译代码-双击找到报错位置

该函数实际需要传递4个参数,该处只传递了3个参数

SPI片选引脚是PF10

修改代码后编译程序

(五)编译程序进行下载调试

1、编译下载程序

2、输入指令 搜索wifi列表:wifi scan

3、输入连接wifi指令:wifi join "热点名" "热点密码"

复制代码
wifi join study_test1 esp8266test

输入指令连接wifi热点,提示获取到IP地址:192.168.244.148

4、输入指令进行测试:ping www.baidu.com

二、物联网软件包测试

Ping命令,NTP同步网络时间,IPerf带宽性能测试,操作中轻量级的文件传输TFTP和远程访问telnet以及基于lwip的网络抓包工具tcpdump

(一)netutils软件包

NTP客户端要求使用RTC(使用外部低速时钟),TFTP文件传输需要使用文件系统(dfs和fatfs),tcpdump要求使用opsparse软件包,ping和tftp依赖于lwip

保存编译下载

下载程序后链接wifi提示需要使能RTC

使能RTC后重新下载连接wifi

编译程序重新下载:

复制代码
//首先输入连接wifi指令,获取到ip地址后,输入指令开启telnet服务
wifi join study_test1 esp8266test
telnet_server

打开telnet远程工具配合测试

(二)telnet远程工具使用

PC端打开SecureCRT软件进行telnet远程测试

注意注意:电脑和rw007的IP地址要属于同一网段,否则会链接失败!!!

1、新建telnet会话

2、设置主机名:即输入RW007的IP地址

3、双击新建的会话

4、输入指令进行远程测试

在远程服务端输入相关指令即可实现远程测试

远程断开后也会有断开连接提示

5、完整操作步骤

(1)输入连接wifi指令后会提示获取到IP地址

(2)获取到IP地址后会打印时间

(3)获取到时间之后,输入telnet服务启动指令

(4)PC端打开软件设置参数进行远程连接(PC端与RW007网段一致,此处测试,电脑连接study_test1热点)

(三)Iperf网络测试工具(客户端和服务器模式)

1、服务器测试:

开发板msh命令输入:iperf -s -p 5001 启动(作为服务器启动,监听xxx端口)

2、到相关路径下找到jperf.rar压缩包

3、运行解压包里的"jperf.bat"文件,双击打开即可

4、设置RW007获取到的IP地址(可以输入ifconfig查看)

客户端模式

1、打开软件设置server模式,设置参数

2、在 RT-Thread 上启动 Iperf 客户端需要执行如下命令

IP地址使用电脑IP地址(电脑与RW007是同一个网段)

复制代码
iperf -c 192.168.244.128 -p 5001

Msh端输入指令前需要先停止上次的服务器模式

根据提示输入iperf --stop

随后再启动客户端(要连接的服务器ip地址是电脑的ip地址)

(四)NTP

开机联网成功后会自动获取一次时间,随后可以通过测试指令进行

输入date命令查看当前时间,使用ntp_sync同步网络时间()

(五)TFTP文件传输测试-需要额外挂载文件系统再测试

三、SAL组件

(一)tcp_client

1、创建服务器和启动服务器

2、输入"tcpclient 服务器IP地址 服务器端口号"连接创建的TCP服务器

服务器IP地址就是电脑此时的IP地址(需要与rw007保持同一网段,此时电脑连接和rw007一样连接了study_test1热点,自动分配IP地址即为同一网段)

tcp客户端连接服务器之后,服务器端会显示连接的设备IP地址和端口号

服务器发送消息,tcp客户端接收数据后通过串口将数据打印出来

服务器发送"q"或"Q"结束

(二)tcp_server

1、手动输入指令连接wifi热点

2、连接wifi热点成功后输入"tcpserv" 启动 tcp 服务器模式

3、创建TCP客户端设置"目标IP"和"目标端口"

注意:目标IP和端口对应服务器的IP地址(RW007获取到的IP地址)和端口号(5000)

建立连接

TCP客户端发送消息,TCP服务器接收到消息后将其打印出来

TCP客户端发送"q"自动断开连接

四、RW007+aliyun--上传静态数据和订阅数据

在RW007基础上添加阿里云软件包即可

300-STM32F407-RW007-aliyun

(一)rw007+aliyun软件包(并配置相关参数并且开启例程测试)

阿里云创建产品创建设备获取"产品名","产品密钥","设备名","设备密钥","订阅主题","发布主题"过程略

(二)修改相关文件

1、保存编译:将报错的RT_WEAK修改为rt_weak

2、打开samples文件修改订阅主题和发布主题

(1)订阅主题函数修改topic

(2)发布函数修改为发布topic

(3)设置要上传的数据内容payload

3、编译下载:

手动连接wifi热点,然后输入"ali_mqtt_sample"启动案例

发布的数据

订阅到的数据

本地设备数据上云和下云流程打通后,可以自定义上传实时数据和订阅解析数据执行相关的指令

五、RW007-ONENET

在RW007基础上修改

300-STM32F407-RW007-onenet

RT-Thread Settings,点击 OneNet 软件包进行配置

oennet创建产品和设备获取相关参数

(1)设备ID

(2)设备密钥

(3)产品ID

配置软件包

保存编译下载程序,连接热点,初始化输入初始化mqtt指令有问题

2、修改ONENET_INFO_AUTH宏定义的值

该值计算方式参考博客STM32通过RT_Thread连接Onenet云平台

主要参考部分内容如下所示:

得到参数:复制替换"ONENET_INFO_AUTH"宏定义的值

时间戳计算网址timestamp时间戳时间相互转换工具

参考修改内容

代码中实际修改代码:

保存编译程序

(1)输入"wifi join study_test1 esp8266test"连接wifi

(2)输入"onenet_mqtt_init"初始化连接设备

(3)成功建立连接之后,输入命令"onenet_upload_cycle" ,完成数据发送

onenet云平台数据

相关推荐
永栀哇2 小时前
RT-Thread studio W25Q64 SFUD-FAL分区-存储参数+虚拟文件-ulog-RTC存储日志到文件-wifi-导出文件到电脑
wifi·rtthread·rw007·存储参数+日志文件+导出文件
ha_lydms1 天前
Hologres 简介
大数据·hadoop·阿里云·mapreduce·yarn·dataworks·hologres
泡沫冰@2 天前
监控告警与日志服务
阿里云·监控告警·日志服务
别催小唐敲代码2 天前
STM32 MQTT协议详解:从报文地狱到阿里云实战
stm32·嵌入式硬件·阿里云
夫唯不争,故无尤也3 天前
Ubuntu阿里云服务器一键安装RustDesk指南
服务器·ubuntu·阿里云
万亿少女的梦1684 天前
基于STM32、RFID与OneNET的开放性实验室电源节点设计
stm32·物联网·onenet·rfid·esp8266
小鸟你好啊5 天前
搭建基于 Solon AI 的 Streamable MCP 服务并部署至阿里云百炼
人工智能·阿里云·云计算
小鸟你好啊5 天前
基于阿里云RDS SQL Server + 函数计算 + 通义AI构建智能销售分析平台Demo
人工智能·阿里云·云计算