物联网 STM32【源代码形式-使用以太网】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】
物联网(IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器等装置与技术,实时采集并连接任何需要监控、连接、互动的物体或过程,实现对物品和过程的智能化感知、识别和管理。物联网的核心功能包括数据采集与监控、数据互通与集成、智能分析与决策等,其架构分为感知层、网络层和应用层12。
物联网的发展历程
物联网的概念最早可以追溯到20世纪90年代,正式提出则在2005年国际电联(ITU)的“信息社会世界峰会”上。物联网的发展经历了多次技术突破和产业化进程,从早期的传感器技术应用,到5G和人工智能(AI)的深度融合,物联网逐渐成为全球数字化转型的重要驱动力3。
物联网的应用场景
物联网的应用场景非常广泛,涵盖了工业、农业等多个领域。在工业领域,物联网平台通过传感器和智能设备实时监测关键参数,实现设备的智能化互联和数据的高效采集与分析,提升生产效率和设备维护效率4。在农业领域,物联网通过传感器和智能设备实时采集农田环境、作物生长状况等信息,帮助农民进行精准管理和决策5。
物联网的前景
物联网行业在中国受到政府的高度重视和国家产业政策的支持,多项政策鼓励物联网行业的发展与创新。预计未来几年,物联网市场规模将继续保持增长,2025年市场规模预计达到4.55万亿元1。此外,物联网的技术创新亮点包括低功耗广域网(LPWAN)技术和边缘计算与云计算的协同,这些技术将进一步推动物联网的发展和应用2
所以,作为一个嵌入式开发者,应该或者说必须要掌握的一门技术。
物联网使用的协议
物联网(IoT)使用的协议多种多样,每种协议都有其特定的应用场景和优势。以下是几种常见的物联网协议及其特点和应用场景:
- MQTT:MQTT是一种轻量级的消息传输协议,设计用于低带宽和不稳定网络环境下的设备通信。它采用发布/订阅模式,支持松耦合的消息通信方式,适用于物联网设备的远程监控、传感器数据传输等场景。
- CoAP:CoAP是一种专为低功耗、低带宽网络设计的协议,基于REST架构,类似于HTTP。它适合资源受限的设备,适用于智能家居、工业控制等需要简单请求/响应机制的场景。
- HTTP和REST:传统的HTTP协议通过结合REST架构,提供了一种易于实施且广泛应用的服务调用方式。尽管在功耗和带宽效率上不如MQTT和CoAP,但其广泛兼容性和成熟的生态系统使其在云端接口和设备管理中扮演重要角色。
- WebSocket:WebSocket是一种在单个TCP连接上进行全双工通信的协议,适用于实时数据传输。它通过保持连接状态,实现设备间的实时通信。
- ZigBee:ZigBee是一种短距离、低功耗无线网络标准,主要用于家庭自动化和工业控制。它支持自组网、多跳路由及安全性较高的无线通信。
- LoRaWAN:LoRaWAN是低功耗广域网络(LPWAN)的标准之一,适用于远距离、低功耗的传感器网络,如智慧城市和农业监控。
- NB-IoT:NB-IoT是3GPP制定的窄带物联网技术,支持大规模物联网设备连接,适用于需要低功耗和广覆盖的场景。
这些协议各有优缺点,选择合适的协议可以大幅提升系统的性能和可靠性。例如,MQTT因其轻量级和可靠性,适用于需要高效消息传递的场景;而CoAP则因其低功耗和简单性,适用于资源受限的设备。选择合适的协议需要根据具体的应用需求和环境条件来决定。
今天我们要讲的是MQTT协议,虽然市场上有很多模组可以支持MQTT通过AT指令进行联网,但是这样会受限于模组厂家。所以我们使用的是STM32【不限于】,以源码的形式经行阿里云连接
直接进入主题。
使用开发板:支持以太网、ESP32、ESP8266连接IOT。所有代码都是以源码形式运行在STM32上面。

开发板连接:https://item.taobao.com/item.htm?ft=t&id=881441702637
- 浏览器输入网址:https://open.iot.10086.cn/
【登录】没有账号先注册一个。
【点击进入开发者中心】
【产品开发->创建产品】
【选择品类】以温湿度为例

【刚创建的产品进入产品开发】
【可以设置物模型进行增删】
【新增设备】
【可以点击设备详情预览一下刚才创建的设备】
【记录三个我们软件需要用到的id】
第一个产品ID
第二个设备名
第三个access_key
至此,onenet平台的设置基本完成。
- 底层设备修改
【修改三元组】
打开软件->组AIOT_APP->mqtt_aiot.c


【修改上报消息】打开软件->组AIOT_APP->bsp_onenet_push.c


【编译下载后就看到设备在线了】
【进入设备调试->打开二维码】
连接APP
【1、首先下载云中移和物APP】
【云平台打开配网二维码】
用APP扫描绑定。
【APP端看到设备信息同步了】

【云端数据】

相关文章:
物联网 STM32【源代码形式-使用以太网】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】
物联网(IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器等装置与技术,实时采集并连接任何需要监控、连接、互动的物体或过程,实现对物品和过程的智能化感知、识别和管理。物联网的核心功能包括数据采集与监…...
谭浩强C语言程序设计(4) 8章(下)
1、输入三个字符串按照字母顺序从小到大输出 #include <cstdio> // 包含cstdio头文件,用于输入输出函数 #include <cstring> // 包含cstring头文件,用于字符串处理函数#define N 20 // 定义字符串的最大长度为20// 函数:…...
使用朴素贝叶斯对散点数据进行分类
本文将通过一个具体的例子,展示如何使用 Python 和 scikit-learn 库中的 GaussianNB 模型,对二维散点数据进行分类,并可视化分类结果。 1. 数据准备 假设我们有两个类别的二维散点数据,每个类别包含若干个点。我们将这些点分别存…...
【Pytorch和Keras】使用transformer库进行图像分类
目录 一、环境准备二、基于Pytorch的预训练模型1、准备数据集2、加载预训练模型3、 使用pytorch进行模型构建 三、基于keras的预训练模型四、模型测试五、参考 现在大多数的模型都会上传到huggface平台进行统一的管理,transformer库能关联到huggface中对应的模型&am…...
Python 深拷贝与浅拷贝:数据复制的奥秘及回溯算法中的应用
引言 在 Python 编程领域,数据复制是极为常见的操作。而深拷贝和浅拷贝这两个概念,如同紧密关联却又各具特色的双子星,在数据处理过程中扮演着重要角色。深入理解它们,不仅有助于编写出高效、准确的代码,还能避免许多…...
Node.js 和 npm 安装教程
Node.js 和 npm 安装教程 Node.js 和 npm 安装教程什么是 Node.js 和 npm?Node.jsnpm 安装前的注意事项在 Windows 上安装 Node.js 和 npm步骤 1:访问 Node.js 官网步骤 2:选择适合的版本步骤 3:下载安装包步骤 4:运行…...
简单易懂的倒排索引详解
文章目录 简单易懂的倒排索引详解一、引言 简单易懂的倒排索引详解二、倒排索引的基本结构三、倒排索引的构建过程四、使用示例1、Mapper函数2、Reducer函数 五、总结 简单易懂的倒排索引详解 一、引言 倒排索引是一种广泛应用于搜索引擎和大数据处理中的数据结构,…...
初级数据结构:栈和队列
目录 一、栈 (一)、栈的定义 (二)、栈的功能 (三)、栈的实现 1.栈的初始化 2.动态扩容 3.压栈操作 4.出栈操作 5.获取栈顶元素 6.获取栈顶元素的有效个数 7.检查栈是否为空 8.栈的销毁 9.完整代码 二、队列 (一)、队列的定义 (二)、队列的功能 (三)…...
在K8S中,pending状态一般由什么原因导致的?
在Kubernetes中,资源或Pod处于Pending状态可能有多种原因引起。以下是一些常见的原因和详细解释: 资源不足 概述:当集群中的资源不足以满足Pod或服务的需求时,它们可能会被至于Pending状态。这通常涉及到CPU、内存、存储或其他资…...
阿里云 - RocketMQ入门
前言 云消息队列 RocketMQ 版产品具备异步通信的优势,主要应用于【异步解耦】、【流量削峰填谷】等场景对于同步链路,需要实时返回调用结果的场景,建议使用RPC调用方案阿里云官网地址RocketMQ官网地址 模型概述 生产者生产消息并发送至服务…...
Agentic Automation:基于Agent的企业认知架构重构与数字化转型跃迁---我的AI经典战例
文章目录 Agent代理Agent组成 我在企业实战AI Agent企业痛点我构建的AI Agent App 项目开源 & 安装包下载 大家好,我是工程师令狐,今天想给大家讲解一下AI智能体,以及企业与AI智能体的结合,文章中我会列举自己在企业中Agent实…...
分享10个实用的Python工具的源码,支持定制
1.音频处理工具 【免费】一个功能丰富的音频处理工具箱,支持音频格式转换、剪辑和音量调节等功能资源-CSDN文库 2.视频转换工具 【免费】一个简单易用的视频格式转换工具,支持多种常见视频格式之间的转换资源-CSDN文库 3.PDF工具箱 【免费】一个功能…...
Denavit-Hartenberg DH MDH坐标系
Denavit-Hartenberg坐标系及其规则详解 6轴协作机器人的MDH模型详细图_6轴mdh-CSDN博客 N轴机械臂的MDH正向建模,及python算法_mdh建模-CSDN博客 运动学3-----正向运动学 | 鱼香ROS 机器人学:MDH建模 - 哆啦美 - 博客园 机械臂学习——标准DH法和改进MDH…...
WebPages 表单:设计与实现指南
WebPages 表单:设计与实现指南 引言 在当今的互联网时代,表单是WebPages与用户交互的重要手段。它不仅收集用户信息,还提供了一种便捷的交互方式。本文将详细介绍WebPages表单的设计与实现,旨在帮助开发者更好地理解并运用表单&…...
列表标签(无序列表、有序列表)
无序列表 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head><…...
每天学点小知识之设计模式的艺术-策略模式
行为型模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解模板方法模式 模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基…...
AI开发学习之——PyTorch框架
PyTorch 简介 PyTorch (Python torch)是由 Facebook AI 研究团队开发的开源机器学习库,广泛应用于深度学习研究和生产。它以动态计算图和易用性著称,支持 GPU 加速计算,并提供丰富的工具和模块。 PyTorch的主要特点 …...
SAP HCM insufficient authorization, no.skipped personnel 总结归纳
导读 权限:HCM模块中有普通权限和结构化权限。普通权限就是PFCG的权限,结构化权限就是按照部门ID授权,颗粒度更细,对分工明细化的单位尤其重要,今天遇到的问题就是结构化权限的问题。 作者:vivi,来源&…...
机器学习算法在网络安全中的实践
机器学习算法在网络安全中的实践 本文将深入探讨机器学习算法在网络安全领域的应用实践,包括基本概念、常见算法及其应用案例,从而帮助程序员更好地理解和应用这一领域的技术。"> 序言 网络安全一直是信息技术领域的重要议题,随着互联…...
DeepSeek V3 vs R1:大模型技术路径的“瑞士军刀“与“手术刀“进化
DeepSeek V3 vs R1:——大模型技术路径的"瑞士军刀"与"手术刀"进化 大模型分水岭:从通用智能到垂直突破 2023年,GPT-4 Turbo的发布标志着通用大模型进入性能瓶颈期。当模型参数量突破万亿级门槛后,研究者们开…...
STM32CUBEIDE编译的hex使用flymcu下载后不能运行
测试后确认,不论是1.10版本还是1.16版本,编译生成的hex下载后不能运行,需要更改boot 设置才能开始运行,flymcu下载后已经告知一切正常,跳转到8000 0000处开始运行,实际没有反应,而使用mdk编译生…...
图像噪声处理技术:让图像更清晰的艺术
在这个数字化时代,图像作为信息传递的重要载体,其质量直接影响着我们的视觉体验和信息解读。然而,在图像采集、传输或处理过程中,难免会遇到各种噪声干扰,如高斯噪声、椒盐噪声等,这些噪声会降低图像的清晰…...
java-抽象类注意点
ChinesePerson 类 public class ChinesePerson extends Person{public ChinesePerson(){}public ChinesePerson(String name, int age){super(name, age);}Overridepublic void greet() {System.out.println("你好,我的名字叫" this.getName());} }Engl…...
【c++】类与对象详解
目录 面向过程思想和面向对象思想类的定义引入类的关键字类定义的两种方式类的访问限定符类的作用域类大小的计算封装 this指针类的6个默认成员函数构造函数初步理解构造函数深入理解构造函数初始化列表单参数构造函数引发的隐式类型转换 析构函数拷贝构造函数赋值运算符重载运…...
MySQL的GROUP BY与COUNT()函数的使用问题
在MySQL中,GROUP BY和 COUNT()函数是数据聚合查询中非常重要的工具。正确使用它们可以有效地统计和分析数据。然而,不当的使用可能会导致查询结果不准确或性能低下。本文将详细讨论 GROUP BY和 COUNT()函数的使用方法及常见问题,并提供相应的…...
问deepseek,如何看待ai降低学习成本而导致软件开发岗位需求降低,和工资下降。 软件从业人员何去何从?
它给我的回答是这样的: 思考逻辑 嗯,用户问的是AI如何降低学习成本,进而导致软件开发岗位需求减少和工资下降,以及软件从业人员该怎么办。这个问题挺复杂的,我得先理清楚各个部分。首先,AI确实在改变很多行…...
Jason配置环境变量
jason官网 https://jason-lang.github.io/ https://github.com/jason-lang/jason/releases 步骤 安装 Java 21 或更高版本 安装 Visual Studio Code 根据操作系统,请按照以下具体步骤操作 视窗 下载 Jason 的最新版本,选择“jason-bin-3.3.0.zip”…...
word2vec 实战应用介绍
Word2Vec 是一种由 Google 在 2013 年推出的重要词嵌入模型,通过将单词映射为低维向量,实现了对自然语言处理任务的高效支持。其核心思想是利用深度学习技术,通过训练大量文本数据,将单词表示为稠密的向量形式,从而捕捉单词之间的语义和语法关系。以下是关于 Word2Vec 实战…...
AI技术在SEO关键词优化中的应用策略与前景展望
内容概要 在数字营销的快速发展中,AI技术逐渐成为SEO领域的核心驱动力。其通过强大的数据分析和处理能力,不仅改变了我们优化关键词的方式,也提升了搜索引擎优化的效率和效果。在传统SEO中,关键词的选择与组合常依赖人工经验和直…...
c/c++高级编程
1.避免变量冗余初始化 结构体初始化为0,等价于对该内存进行一次memset,对于较大的结构体或者热点函数,重复的赋值带来冗余的性能开销。现代编译器对此类冗余初始化代码具有一定的优化能力,因此,打开相关的编译选项的优…...
