物联网实战--入门篇之(一)物联网概述

news2024/12/25 23:57:24

目录

一、前言       

二、知识梳理

三、项目体验

四、项目分解


一、前言       

        近几年很多学校开设了物联网专业,但是确却地讲,物联网属于一个领域,包含了很多的专业或者说技能树,例如计算机、电子设计、传感器、单片机、网络基础、无线通信、云服务和APP等等,这就导致很多同学学起来云里雾里的,抓不住重点。

        基于此,本人希望结合自身的工作实战经验,采用项目学习法,进行深入浅出地学习;通过这一系列的练习后,大家不仅能较为深刻的认识物联网,还能充分掌握C语言、单片机等基础知识,进一步地还能了解网络知识、无线通信和手机端开发等方面的内容。

二、知识梳理

         物联网技术宏观上来讲主要包含了传感/控制器、前端主控、通讯技术、后台服务、用户平台和安全技术六大模块,下面结合附图对每个模块分别做个简单介绍:

1、传感/控制器:这是跟工作场景直接接触的设备,例如家里的鱼缸,一般会测量水温,那么就有一个温度探头直接丢水里;正常还有个增氧泵,内置了电机,对水体进行增氧。类比于人,就像我们的五官和手脚一样,直接跟工作场景接触来获取信息或执行动作。

2、前端主控:这是前端的大脑,就好比打仗时的前线指挥官。接着鱼缸的例子,有些鱼水温不能太低,温度探头检测到水温较低后,一般会启动加热棒对水体进行加热,当温度达到设定值时又会停止加热,如此反复循环,使得水体温度处在一个合适的区间。那么这里面有一个简单的温度控制逻辑就是靠前端主控来实现的,由技术开发人员写入主控芯片内;这里的主控芯片根据使用场景、成本、功耗和安全性等要素来选择,市场上有很多的主芯片厂家,常用的有ST、TI、NXP、兆易、新唐、树莓派和香橙派等等,技术人员要根据需求来选择。

3、通讯技术:现在很多家电都可以用手机控制了,比如说空调,安装后只需要配网连接WIFI就可以随时随地设置空调温度值了,这里面的WIFI就是很常用的通讯技术,还有4G/5G、蓝牙和有线网络也是常用通讯技术;另外行业上还有RS485、RS232、Can总线、EthCAT总线、LoRa、NB-Iot和ZigBee等等,所有的通讯技术都是为了适合不同的应用场景而产生的,所以说没有最好的技术,只有最合适的技术。

4、后台服务:这属于领导集团了,如果说前端主控是前线指挥官,好比李云龙,那后台服务就是指挥中心了,好比旅长或师长。后台服务一方面负责下面所有设备的网络连接、数据接收、数据处理和数据存储;另一方面,还要进行更高层次的业务逻辑实现,例如用户管理、数据推送、指令接收、告警通知等等,非常多!后台服务是看不见的中心,物联网整个系统的技术都是围绕着后台服务展开的,当然了,后台服务可以做的很复杂,也可以做的很简单,最简单的就是放一个MQTT Broker作为数据路由就行了。

5、用户平台:一般是给前端设备的拥有者使用的,常用的方式有网站、手机APP和小程序,用户拿起手机或者打开电脑就能轻松管理成百上千的前端设备,极大提高了管理和工作效率,这也是物联网的意义所在——通过联网、大数据分析处理等技术手段提高生产中的管理和工作效率。

6、安全技术:在公共场合如果两个老乡想聊点私事一般都会用家乡的方言来交流,这个本质上也是一种安全技术,物联网的安全技术分为两部分,一个是设备本身的,例如很多设备会配一个加密狗,防止软件被破解;另一个是通讯时候会添加证书或者使用特定的加密方式以保证数据被截取后不会被轻易破解。

        从以上简要介绍中可知,要每个技术领域都吃透不太现实,在企业中物联网整套流程的开发至少也得七八个人共同协作才能完成。那么,在学习阶段,如何高效汲取必要知识就很讲究方法了。这里就不得不提一种学习方法了,称为项目学习法,其核心就是把要学的知识穿插进具体项目中,学生在做项目的过程中遇到困难会有目的性地去找资料,同时每攻克一个困难就会获得成就感,让学生时刻保持着学习的兴趣和热情;当项目完成时,不知不觉就掌握了很多必要的知识技能,主打的一个就是边用边学;最后,等项目多做几个,对所用知识技能有了较为深刻的理解后,再用传统的方式进行系统性学习,这样就不会在学习过程一直疑问“学这个有什么用了?”。

        项目学习法最重要的作用就是让学生保持学习的热情和兴趣,学习效率高,但对应的缺点就是很多知识只能蜻蜓点水,这也没办法了,不可兼得,只能说最后自己找到感兴趣的方向再进行深入研究了。

        对于物联网,所涉及的学科知识很多很广,项目学习法是很适合的,通过做项目的方式可以快速掌握C语言、C++、嵌入式、通讯技术、UI开发等基本技能。接下来,我们就以XM空气净化器为原型,做一个自己的空气净化器,通过这个项目了解物联网开发的大致流程和必备技能。

三、项目体验

        以下是空气净化器项目的演示视频,学完本教程后大家应该也能够独立做一个类似的项目了。

净化器

       

视频里主要演示了以下几方面的内容:

1、开机、关机:开机后风扇启动,关机后风扇停止;类似于XM净化器,即使关机设备还是跟后台连接着,传感器数据也在实时更新,只是APP页面变成深色、静态的而已。

2、数据上传:其中包含了空气温度、湿度、PM2.5浓度、风扇速度和开关状态,大概5秒更新一次数据;在视频中,温湿度通过人为哈气可以看到明显的变化,PM2.5在经过烟熏后数据改变明显,APP的界面也根据数据改变了整体配色,风扇开启后烟被吸走了,空气质量也逐渐好转。

3、风扇调速:在手机APP上滑动滑块即可实时调整风扇速度,但是这一过程变化并不是很均匀,可以留着最后自己当做附加题,实现一个调速均匀的功能。

四、项目分解

        空气净化器项目从功能上来讲没有很复杂,一方面是净化器采集到PM2.5和温湿度值,并将数据上传到服务器,用户可以通过手机APP看到这些状态数值;另一方面是用户可以通过手机对净化器的风扇进行调速,还有就是执行开关机功能。至于其它滤芯、定时和屏幕什么的,暂时不考虑。

        

        首先先从整体分解这个项目,如上图所示,结构较为简单,以MQTT服务器为中心,手机APP与净化器通过WIFI网络与其连接,MQTT可以把它想象成一个纯软件的路由器,根据它的规则设置数据包信息,它就可以知道你要把这个数据包发给谁,就像微信消息一样,可以发给特定人,也可以群发,后面会再开一篇专门讲解MQTT的文章,这里先了解它的作用即可。

        接下来重点看下净化器本身的机构组成,如下图所示,以主控芯片STM32F103C8T6为中心,通过串口UART2驱动ESP8266  WIFI模块,使得净化器具备联网功能;温湿度传感器型号为SHT30,通过IIC驱动读取环境的温湿度值;PM2.5传感器是通过串口实时主动上报数据, STM32负责接收解析即可;风扇自带驱动模块,只要供给电源,再给个PWM信号就能调速了。

        下一篇文章会把采购清单发出来,大家照着买回来组装就行了。现在来说说选型的原理,这是一个很重要课题,选择合适的芯片和元器件,这在实际项目中很重要。先说主芯片,采用STM32F103C8T6,主要是因为这一款芯片在单片机学习领域太经典了,很多经典教程都是以它为基础的,这样的好处就是你遇到的问题基本上都有解决方法了,可以少走很多弯路,而且采购起来也很方便。WIFI也是同样的道理,ESP8266已经很成熟了,性能稳定,教程也很多。PM2.5传感器,由于在学习阶段,成本是主要考虑因素,准不准的不是很重要,后面会详细说明,其实真正的PM2.5传感器价格很昂贵的,像这种十几块或者几十块的所谓PM2.5传感器其实就是测个粉尘浓度而已。温湿度采用SHT30也是比较经典的,价格适中,采用IIC接口有利于教程展开。风扇采用驱动、电机一体化,接线比较不会混乱,PWM调速也方便教程讲解。

        另一方面,学习本教程最好要有一定的C语言和单片机基础,特别是C语言,如果实在没什么基础也没什么关系,自己对着代码和注释看,不要涉及太底层应该问题也不大,核心还是要保持兴趣和热情,这样学习起来有动力,事半功倍。

        最后就是服务器和手机APP的内容了,服务器端现阶段较为简单,只要部署一个MQTT服务器即可,后面会详细说明步骤。手机APP借助Qt这一开发工具完成,采用C++和QML编程模式,Qt是一款非常优秀的跨平台工具,上手较为容易,天花板也极高,可以用C++做出运行效率极高的后台程序,也可以用QML做出精美的界面,同样一套代码,可以编译出Windows、MacOS程序、安卓和IOS的APP,甚至树莓派也行,效率极高,是一个很适合个人学习的开发工具。另外,C++虽然是一门内容极其庞杂的语言,让人学起来头很大,但是经过Qt的封装后,变得极其优雅,只要有点C语言的基础,做本课程的内容问题不大。关于Qt的内容,后面要专门介绍。

        这一篇基本引出了项目内容和学习方向,下一篇主要教大家如何自己搭环境,把这个项目跑起来,自己体验感受,资源都放在下一篇。

       

        本项目的交流QQ群:701889554

        写于2024-3-28

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1553359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

葵花卫星影像应用场景及数据获取

一、卫星参数 葵花卫星是由中国航天科技集团公司研制的一颗光学遥感卫星,代号CAS-03。该卫星于2016年11月9日成功发射,位于地球同步轨道,轨道高度约为35786公里,倾角为0。卫星设计寿命为5年,搭载了高分辨率光学相机和多…

Oracle存数字精度问题number、binary_double、binary_float类型

--表1 score是number(10,5)类型 create table TEST1 (score number(10,5) ); --表2 score是binary_double类型 create table TEST2 (score binary_double ); --表3 score是binary_float类型 create table TEST3 (score binary_float );实验一:分别往三张表插入 小数…

抖音视频关键词无水印下载软件|手机网页视频批量提取工具

全新视频关键词无水印下载软件,助您快速获取所需视频! 随着时代的发展,视频内容已成为人们获取信息和娱乐的重要途径。为了方便用户获取所需视频,推出了一款功能强大的视频关键词无水印下载软件。该软件主要功能包括关键词批量提取…

【话题】AI大模型学习:理论、技术与应用探索

大家好,我是全栈小5,欢迎阅读小5的系列文章,这是《话题》系列文章 目录 背景1. AI大模型学习的基础理论1.1 机器学习1.2 深度学习 2. AI大模型学习的技术要点2.1 模型结构设计2.2 算法优化2.3 大规模数据处理 3. AI大模型学习的应用场景3.1 自…

网络爬虫框架Scrapy的入门使用

Scrapy的入门使用 Scrapy概述引擎(Engine)调度器(Scheduler)下载器(Downloader)SpiderItem Pipeline 基本使用安装scrapy创建项目定义Item数据模型对象创建爬虫(Spider)管道pipeline来保存数据启动爬虫 其他…

Netty核心原理剖析与RPC实践6-10

Netty核心原理剖析与RPC实践6-10 06-粘包拆包问题:如何获取一个完整的网络包 本节课开始我们将学习 Netty 通信过程中的编解码技术。编解码技术这是实现网络通信的基础,让我们可以定义任何满足业务需求的应用层协议。在网络编程中,我们经常…

高风险IP来自哪里:探讨IP地址来源及其风险性质

在网络安全领域,高风险IP地址是指那些可能涉及恶意活动或网络攻击的IP地址。了解这些高风险IP地址的来源可以帮助网络管理员更好地识别和应对潜在的安全威胁。本文将探讨高风险IP地址的来源及其风险性质,并提供一些有效的应对措施。 风险IP查询&#xf…

Sourcetree如何解决冲突和重置

解决冲突:找到冲突的文件然后点恢复(其实是丢弃的意思) 重置回某个分支节点:

HTTP——Cookie

HTTP——Cookie 什么是Cookie通过Cookie访问网站 我们之前了解了HTTP协议,如果还有小伙伴还不清楚HTTP协议,可以点击这里: https://blog.csdn.net/qq_67693066/article/details/136895597 我们今天来稍微了解一下HTTP里面一个很小的部分&…

Redis中的LRU算法分析

LRU算法 概述 Redis作为缓存使用时,一些场景下要考虑内容的空间消耗问题。Redis会删除过期键以释放空间,过期键的删除策略 有两种: 1.惰性删除:每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除…

Adobe最近推出了Firefly AI的结构参考以及面向品牌的GenStudio

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Rust编程(四)PackageCrateModule

这一部分的中文教程/文档都很混乱,翻译也五花八门,所以我建议直接看英文官方文档,对于一些名词不要进行翻译,翻译只会让事情更混乱,本篇从实战和实际需求出发,讲解几个名称的关系。 Module & Crate & Package & Workspace 英文中的意思: Cargo:货物 Crate:…

Apache HBase(二)

目录 一、Apache HBase 1、HBase Shell操作 1.1、DDL创建修改表格 1、创建命名空间和表格 2、查看表格 3、修改表 4、删除表 1.2、DML写入读取数据 1、写入数据 2、读取数据 3、删除数据 2、大数据软件启动 一、Apache HBase 1、HBase Shell操作 先启动HBase。再…

【已修复】iPhone13 Pro 长焦相机水印(黑斑)修复 洗水印

iPhone13 Pro 长焦相机水印(黑斑)修复 洗水印 问题描述 iPhone13 Pro 后摄3倍相机有黑色斑点(水印),如图所示, 后摄相机布局如图所示, 修复过程 拆机过程有风险,没有把握最好不要…

【算法刷题 | 二叉树 05】3.28(左叶子之和、找树 左下角的值)

文章目录 11.左叶子之和11.1问题11.2解法一:递归11.2.1递归思路11.2.2代码实现 11.3解法二:栈11.3.1栈思想11.3.2代码实现 12.找树左下角的值12.1问题12.2解法一:层序遍历 11.左叶子之和 11.1问题 给定二叉树的根节点 root ,返回…

2.4 比较检验 机器学习

目录 常见比较检验方法 总述 2.4.1 假设检验 2.4.2 交叉验证T检验 2.4.3 McNemar 检验 接我们的上一篇《性能度量》,那么我们在某种度量下取得评估结果后,是否可以直接比较以评判优劣呢?实际上是不可以的。因为我们第一,测试…

基于强化学习的带落角约束的制导律研究

源自:航空尖兵 作者:康冰冰 姜涛 曹建 魏晓晴 “人工智能技术与咨询” 发布 摘 要 针对以特定角度攻击面目标的制导律设计问题,采用深度确定性策略梯度算法构建强化学习制导律模型,设计了模型状态、奖励规则及制导环境。通过设定不同的初始条件和…

速通数据结构第三站 单链表

系列文章目录 速通数据结构与算法系列 1 速通数据结构与算法第一站 复杂度 http://t.csdnimg.cn/sxEGF 2 速通数据结构与算法第二站 顺序表 http://t.csdnimg.cn/WVyDb 感谢佬们支持! 目录 系列文章目录 前言一、单链表 1 结构体 …

YOLOv8改进 | 检测头篇 | 2024最新HyCTAS模型提出SAttention(自研轻量化检测头 -> 适用分割、Pose、目标检测)

一、本文介绍 本文给大家带来的改进机制是由全新SOTA分割模型(Real-Time Image Segmentation via Hybrid Convolutional-TransformerArchitecture Search)HyCTAS提出的一种SelfAttention注意力机制,论文中叫该机制应用于检测头当中(论文中的分割效果展现目前是最好的)。我…

为什么我的微信小程序 窗口背景色backgroundColor设置参数 无效的问题处理记录!

当我们在微信小程序 json 中设置 backgroundColor 时,实际在电脑的模拟器中根本看不到效果。 这是因为 backgroundColor 指的窗体背景颜色,而不是页面的背景颜色,即窗体下拉刷新或上拉加载时露出的背景。在电脑的模拟器中是看不到这个动作的…