当前位置: 首页 > news >正文

物联网 STM32【源代码形式-使用以太网】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】

物联网IoT是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器等装置与技术,实时采集并连接任何需要监控、连接、互动的物体或过程,实现对物品和过程的智能化感知、识别和管理。物联网的核心功能包括数据采集与监控、数据互通与集成、智能分析与决策等,其架构分为感知层、网络层和应用层12

物联网的发展历程

物联网的概念最早可以追溯到20世纪90年代,正式提出则在2005年国际电联(ITU)的信息社会世界峰会上。物联网的发展经历了多次技术突破和产业化进程,从早期的传感器技术应用,到5G和人工智能(AI)的深度融合,物联网逐渐成为全球数字化转型的重要驱动力3

物联网的应用场景

物联网的应用场景非常广泛,涵盖了工业、农业等多个领域。在工业领域,物联网平台通过传感器和智能设备实时监测关键参数,实现设备的智能化互联和数据的高效采集与分析,提升生产效率和设备维护效率4。在农业领域,物联网通过传感器和智能设备实时采集农田环境、作物生长状况等信息,帮助农民进行精准管理和决策5

物联网的前景

物联网行业在中国受到政府的高度重视和国家产业政策的支持,多项政策鼓励物联网行业的发展与创新。预计未来几年,物联网市场规模将继续保持增长,2025年市场规模预计达到4.55万亿元1。此外,物联网的技术创新亮点包括低功耗广域网LPWAN)技术和边缘计算云计算的协同,这些技术将进一步推动物联网的发展和应用2

所以,作为一个嵌入式开发者,应该或者说必须要掌握的一门技术。

物联网使用的协议

物联网(IoT)使用的协议多种多样,每种协议都有其特定的应用场景和优势。以下是几种常见的物联网协议及其特点和应用场景:

  1. MQTTMQTT是一种轻量级的消息传输协议,设计用于低带宽和不稳定网络环境下的设备通信。它采用发布/订阅模式,支持松耦合的消息通信方式,适用于物联网设备的远程监控、传感器数据传输等场景
  2. CoAPCoAP是一种专为低功耗、低带宽网络设计的协议,基于REST架构,类似于HTTP。它适合资源受限的设备,适用于智能家居、工业控制等需要简单请求/响应机制的场景
  3. HTTPREST:传统的HTTP协议通过结合REST架构,提供了一种易于实施且广泛应用的服务调用方式。尽管在功耗和带宽效率上不如MQTTCoAP,但其广泛兼容性和成熟的生态系统使其在云端接口和设备管理中扮演重要角色
  4. WebSocketWebSocket是一种在单个TCP连接上进行全双工通信的协议,适用于实时数据传输。它通过保持连接状态,实现设备间的实时通信
  5. ZigBeeZigBee是一种短距离、低功耗无线网络标准,主要用于家庭自动化和工业控制。它支持自组网、多跳路由及安全性较高的无线通信
  6. LoRaWANLoRaWAN是低功耗广域网络(LPWAN)的标准之一,适用于远距离、低功耗的传感器网络,如智慧城市和农业监控
  7. NB-IoTNB-IoT3GPP制定的窄带物联网技术,支持大规模物联网设备连接,适用于需要低功耗和广覆盖的场景

这些协议各有优缺点,选择合适的协议可以大幅提升系统的性能和可靠性。例如,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虚拟环境统一配置即可)刚开始先从普通的寻优算法开始&#xff…...

unity中的动画混合树

为什么需要动画混合树,动画混合树有什么作用? 在Unity中,动画混合树(Animation Blend Tree)是一种用于管理和混合多个动画状态的工具,包括1D和2D两种类型,以下是其作用及使用必要性的介绍&…...

《基于deepseek R1开源大模型的电子数据取证技术发展研究》

《基于deepseek R1开源大模型的电子数据取证技术发展研究》 摘要 本文探讨了基于deepseek R1开源大模型的电子数据取证技术发展前景。随着人工智能技术的快速发展,AI大模型在电子数据取证领域的应用潜力日益凸显。本研究首先分析了电子数据取证的现状和挑战&#xf…...

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 布局样式的应用设计页眉页脚位置在水平/垂直方向上均相对于外边距居中排列:格式→大小对话框→位置→水平/垂直 按下表所列要求将原文中的手动纯文本编号分别替换…...

北京钟鼓楼:立春“鞭春牛”,钟鼓迎春来

仁风导和气,勾芒御昊春。“钟鼓迎春”立春鞭春牛民俗体验活动于立春当日在北京钟鼓楼隆重举办。此次活动由北京市钟鼓楼文物保管所主办,京睿文(北京)文化科技有限公司承办,通过礼官报春、击鼓鸣钟、春娃喊春、中国时间文化角色巡游、鞭春牛等一系列精彩的活动环节,为观众呈现了…...

股票入门知识

股票入门(更适合中国宝宝体制) 股市基础知识 本文介绍了股票的基础知识,股票的分类,各板块发行上市条件,股票代码,交易时间,交易规则,炒股术语,影响股价的因素&#xf…...

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.项目部署可能的问题: 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题&#xff1…...

c/c++高级编程

1.避免变量冗余初始化 结构体初始化为0,等价于对该内存进行一次memset,对于较大的结构体或者热点函数,重复的赋值带来冗余的性能开销。现代编译器对此类冗余初始化代码具有一定的优化能力,因此,打开相关的编译选项的优…...

2024-我的学习成长之路

因为热爱,无畏山海...

vscode软件操作界面UI布局@各个功能区域划分及其名称称呼

文章目录 abstract检查用户界面的主要区域官方文档关于UI的介绍 abstract 检查 Visual Studio Code 用户界面 - Training | Microsoft Learn 本质上,Visual Studio Code 是一个代码编辑器,其用户界面和布局与许多其他代码编辑器相似。 界面左侧是用于访…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

C++使用 new 来创建动态数组

问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...