MQTT+ONENET+STM32+LWIP驱动

2024-03-13 05:52
文章标签 驱动 stm32 mqtt lwip onenet

本文主要是介绍MQTT+ONENET+STM32+LWIP驱动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

近段时间由于项目需求,需要将原来的项目增加应用层的MQTT协议,由于不懂MQTT所以从B站学习了正点原子的lwip课程,看完后需要进行实践,所以选择了ONENET平台来作为学习的时间的平台。

1、学习准备

先下载工具:

MQTT X 是一款开源 5.0 桌面测试客户端,它支持在 macOS,Linux,Windows 操作系统上运行。

MQTT X 支持创建多个同时在线的 MQTT 客户端,方便用户快速测试 MQTT/TCP、MQTT/TLS 、MQTT/WebSocket 的连接/发布/订阅功能及其他 MQTT 协议特性。

EMQ官网下载:免费下载、试用 EMQ 产品

先下载进行安装

2、ONENET平台

1)注册账号 这里手机号注册就可以,不多说了

2)创建产品

产品开发->创建产品

 产品分类->选择一个合适的(选哪个其实不是很重要),我选择了如下图

选择WIFI\以太网都没差别,非*我们可以不填,最后电机确定完成产品创建

3)创建产品的功能点

点击产品开发

 点击设置物模型

添加自定义功能点

 下图是我自己自定义添加的(注由于我们产品注册温湿度传感器,系统默认会有创建好了的功能点),只是我不想用系统创建,便自己创建

定义好产品的功能点,我们就可以添加设备。

4)添加设备

这里设备相当于要就行MQTT通讯的设备,有几台参与,就创建几个设备;比如我有一个开发板,也有一个APP获取数据,那么这里就需要创建两个设备。这么理解。

 

 下图就是我创建好的两个设备,想创建几个由你定义

3、学习使用MQTTX客户端与ONENET平台数据通讯

我们学习使用MQTT最后都是为了移植MQTT进行项目开发,这里我们先不进行程序移植,我们先使用便捷的客户端先进行通讯,尝试学习使用发布和订阅的相关指令,这样才能更好掌握,避免从零直接弄程序,来一堆问题,先确保我们能正常通讯。

1)MQTTX已经下载好了

2)准备ONENET平台的一个工具,叫做 Token生成工具 

网址:https://open.iot.10086.cn/doc/iot_platform/images/tools/token.exe

3)打开MQTT X客户端,进入客户端配置页面,先把语言改成中文

配置连接

产品ID:

ONENET服务器地址:

但是如果地址使用官网提供的地址:studio-mqtt.heclouds.com,我连接不上

得使用: 183.230.40.96地址,才连接的上,你们回头可以试下。

密码:

最后生成的,复制粘贴到MQTTX的密码那行。 

时间戳:只要这个时间戳时间大于当前时间,所以我们可以填写时间大一些

设备钥匙:

4)点击连接,链接成功后入下图,设备也会在ONENET平台显示在线

 5)要进行通讯之前,我们先了解ONENET平台规定的 订阅与发布相关指令

1)设备上报信息(在ONENET属性即数据点),官网叫发布属性上报

$sys/{pid}/{device-name}/thing/property/post

2)设备订阅响应信息(我们上报了信息,订阅这条就可以收到服务器返回的是否成功信息)

$sys/{pid}/{device-name}/thing/property/post/reply

3)接收服务器推送消息,就要订阅这条命令

$sys/{pid}/{device-name}/thing/property/set

4)设备收到服务器推送消息,要返回成功给他,就要发布这条命令

$sys/{pid}/{device-name}/thing/property/set_reply

了解完命令后,我们先进行数据属性发布

6)在发布前,先订阅服务器响应,不订阅这条,就是我们发布完消息,不知道服务器是否收到数据,订阅了,我们发布完消息,就可以收到服务器的返回信息。

6.1)订阅

$sys/x818hiMIU0/DHT11/thing/property/post/reply

发布消息:

 $sys/x818hiMIU0/DHT11/thing/property/post

{

    "id": "123",

    "version": "1.0",

    "params": {

        "CurrentTemperature": {

            "value": 2.6

        },

        "CurrentVoltage": {

            "value": 2

        }   

    }

}

这篇关于MQTT+ONENET+STM32+LWIP驱动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/803834

相关文章

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

驱动安装注册表指令

HKCR: HKEY_CLASSES_ROOT HKCU: HKEY_CURRENT_USER HKLM: HKEY_LOCAL_MACHINE HKU: HEKY_USER HER: 相对根键

UMDF驱动安装

VS2013 + WDF8.1,UMDF驱动选择User Mode Driver,不要选User Mode Driver 2.0,否则Win7安装有问题,如图 另外,在驱动安装时不要忘记WUDFUpdate_<主版本号><次版本号>.dll文件,具体文件名在INF中查找。此文件可在WDF的安装目录中找到。注意:在WDF的安装目录中会有3个WUDFUpdate_xxx.dll文件,x86,x6