物联网 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)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器等装置与技术,实时采集并连接任何需要监控、连接、互动的物体或过程,实现对物品和过程的智能化感知、识别和管理。物联网的核心功能包括数据采集与监…...
【单层神经网络】基于MXNet的线性回归实现(底层实现)
写在前面 基于亚马逊的MXNet库本专栏是对李沐博士的《动手学深度学习》的笔记,仅用于分享个人学习思考以下是本专栏所需的环境(放进一个environment.yml,然后用conda虚拟环境统一配置即可)刚开始先从普通的寻优算法开始ÿ…...
unity中的动画混合树
为什么需要动画混合树,动画混合树有什么作用? 在Unity中,动画混合树(Animation Blend Tree)是一种用于管理和混合多个动画状态的工具,包括1D和2D两种类型,以下是其作用及使用必要性的介绍&…...
《基于deepseek R1开源大模型的电子数据取证技术发展研究》
《基于deepseek R1开源大模型的电子数据取证技术发展研究》 摘要 本文探讨了基于deepseek R1开源大模型的电子数据取证技术发展前景。随着人工智能技术的快速发展,AI大模型在电子数据取证领域的应用潜力日益凸显。本研究首先分析了电子数据取证的现状和挑战…...
Potplayer常用快捷键
Potplayer是一个非常好用的播放器,功能强大 功能快捷键播放/暂停空格键退出Esc下一帧F上一帧D快进10秒→快退10秒←快进30秒Ctrl →快退30秒Ctrl ←快进1分钟Alt →快退1分钟Alt ←增加播放速度C减少播放速度X恢复正常速度Z增加音量↑减少音量↓静音M显示/隐藏字幕Ctrl A…...
C++ Primer 自定义数据结构
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
35.Word:公积金管理中心文员小谢【37】
目录 Word1.docx Word2.docx Word2.docx 注意本套题还是与上一套存在不同之处 Word1.docx 布局样式的应用设计页眉页脚位置在水平/垂直方向上均相对于外边距居中排列:格式→大小对话框→位置→水平/垂直 按下表所列要求将原文中的手动纯文本编号分别替换…...
北京钟鼓楼:立春“鞭春牛”,钟鼓迎春来
仁风导和气,勾芒御昊春。“钟鼓迎春”立春鞭春牛民俗体验活动于立春当日在北京钟鼓楼隆重举办。此次活动由北京市钟鼓楼文物保管所主办,京睿文(北京)文化科技有限公司承办,通过礼官报春、击鼓鸣钟、春娃喊春、中国时间文化角色巡游、鞭春牛等一系列精彩的活动环节,为观众呈现了…...
股票入门知识
股票入门(更适合中国宝宝体制) 股市基础知识 本文介绍了股票的基础知识,股票的分类,各板块发行上市条件,股票代码,交易时间,交易规则,炒股术语,影响股价的因素…...
Java自定义IO密集型和CPU密集型线程池
文章目录 前言线程池各类场景描述常见场景案例设计思路公共类自定义工厂类-MyThreadFactory自定义拒绝策略-RejectedExecutionHandlerFactory自定义阻塞队列-TaskQueue(实现 核心线程->最大线程数->队列) 场景1:CPU密集型场景思路&…...
Git的安装步骤详解(复杂的安装界面该如何勾选?)
目录 一、下载与安装 1.官网下载git 2、下载完成之后,双击下载好的exe文件进行安装 3、选择Git的安装路径 4、选择在安装 Git 时要包含的组件和功能 5、选择 Git 快捷方式在 Windows 开始菜单中的位置。 6、选择 Git 使用的默认编辑器 7、调整新仓库中初始分…...
文本预处理
一、文本的基本单位 1、Token 定义:文本的最小单位,例如单词、标点符号。 示例: 原句: "I love NLP." 分词结果: [I, love, NLP, .] 2、语法与语义 语法:词的结构和句子的组合规则。 语义&a…...
SQLAlchemy 2.0的简单使用教程
SQLAlchemy 2.0相比1.x进行了很大的更新,目前网上的教程不多,以下以链接mysql为例介绍一下基本的使用方法 环境及依赖 Python:3.8 mysql:8.3 Flask:3.0.3 SQLAlchemy:2.0.37 PyMySQL:1.1.1使用步骤 1、创建引擎,链接到mysql engine crea…...
基于RAG的知识库问答系统
基于RAG的知识库问答系统 结合语义检索与大语言模型技术,实现基于私有知识库的智能问答解决方案。采用两阶段处理架构,可快速定位相关文档并生成精准回答。 核心功能 知识向量化引擎 支持多语言文本嵌入(all-MiniLM-L6-v2模型)自…...
SQL/Panda映射关系
Pandas教程(非常详细)_pandas 教程-CSDN博客 SQL:使用SELECT col_1, col_2 FROM tab; Pandas:使用df[[col_1, col_2]]。 SQL:使用SELECT * FROM tab WHERE col_1 11 AND col_2 > 5; Pandas:使用df…...
自定义数据集 使用paddlepaddle框架实现逻辑回归
导入必要的库 import numpy as np import paddle import paddle.nn as nn 数据准备: seed1 paddle.seed(seed)# 1.散点输入 定义输入数据 data [[-0.5, 7.7], [1.8, 98.5], [0.9, 57.8], [0.4, 39.2], [-1.4, -15.7], [-1.4, -37.3], [-1.8, -49.1], [1.5, 75.6…...
Docker入门篇(Docker基础概念与Linux安装教程)
目录 一、什么是Docker、有什么作用 二、Docker与虚拟机(对比) 三、Docker基础概念 四、CentOS安装Docker 一、从零认识Docker、有什么作用 1.项目部署可能的问题: 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题࿱…...
c/c++高级编程
1.避免变量冗余初始化 结构体初始化为0,等价于对该内存进行一次memset,对于较大的结构体或者热点函数,重复的赋值带来冗余的性能开销。现代编译器对此类冗余初始化代码具有一定的优化能力,因此,打开相关的编译选项的优…...
2024-我的学习成长之路
因为热爱,无畏山海...
vscode软件操作界面UI布局@各个功能区域划分及其名称称呼
文章目录 abstract检查用户界面的主要区域官方文档关于UI的介绍 abstract 检查 Visual Studio Code 用户界面 - Training | Microsoft Learn 本质上,Visual Studio Code 是一个代码编辑器,其用户界面和布局与许多其他代码编辑器相似。 界面左侧是用于访…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
