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

news/2024/4/29 5:22:59/文章来源:https://blog.csdn.net/ypp240124016/article/details/137026966

目录

一、前言       

二、知识梳理

三、项目体验

四、项目分解


一、前言       

        近几年很多学校开设了物联网专业,但是确却地讲,物联网属于一个领域,包含了很多的专业或者说技能树,例如计算机、电子设计、传感器、单片机、网络基础、无线通信、云服务和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.luyixian.cn/news_show_1027783.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

誉天华为认证云计算课程如何

HCIA-Cloud Computing 5.0 课程介绍:掌握华为企业级虚拟化、桌面云部署,具备企业一线部署实施及运维能力 掌握虚拟化技术、网络基础、存储基础等内容,拥有项目实施综合能力 满足企业虚拟化方案转型需求,应对企业日益多样的业务诉求…

快速上手Spring Cloud 十四:璀璨物联网之路

快速上手Spring Cloud 一:Spring Cloud 简介 快速上手Spring Cloud 二:核心组件解析 快速上手Spring Cloud 三:API网关深入探索与实战应用 快速上手Spring Cloud 四:微服务治理与安全 快速上手Spring Cloud 五:Spring …

JAVA面试八股文之集合

JAVA集合相关 集合?说一说Java提供的常见集合?hashmap的key可以为null嘛?hashMap线程是否安全, 如果不安全, 如何解决?HashSet和TreeSet?ArrayList底层是如何实现的?ArrayList listnew ArrayList(10)中的li…

【计算机网络】第 11、12 问:流量控制和可靠传输机制有哪些?

目录 正文流量控制的基本方法停止-等待流量控制基本原理滑动窗口流量控制基本原理 可靠传输机制1. 停止-等待协议2. 后退 N 帧协议(GBN)3. 选择重传协议(SR) 正文 流量控制涉及对链路上的帧的发送速率的控制,以使接收…

云数据仓库Snowflake论文完整版解读

本文是对于Snowflake论文的一个完整版解读,对于从事大数据数据仓库开发,数据湖开发的读者来说,这是一篇必须要详细了解和阅读的内容,通过全文你会发现整个数据湖设计的起初原因以及从各个维度(架构设计、存算分离、弹性…

FPGA高端项目:解码索尼IMX327 MIPI相机转HDMI输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言2、相关方案推荐本博主所有FPGA工程项目-->汇总目录我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存HDMI输出工程源码架构 6、工程源码…

fastadmin学习04-一键crud

FastAdmin 默认内置一个 test 表,可根据表字段名、字段类型和字段注释通过一键 CRUD 自动生成。 create table fa_test (id int unsigned auto_increment comment ID primary key,user_id int(10) default 0 null…

吴恩达深度学习笔记:浅层神经网络(Shallow neural networks)3.1-3.5

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第三周:浅层神经网络(Shallow neural networks)3.1 神经网络概述(Neural Network Overview)3.2 神经网络的表示(Neural Network Representation…

YOLOv8全网独家改进: 红外小目标 | 注意力改进 | 多膨胀通道精炼(MDCR)模块,红外小目标暴力涨点| 2024年3月最新成果

💡💡💡本文独家改进:多膨胀通道精炼(MDCR)模块,解决目标的大小微小以及红外图像中通常具有复杂的背景的问题点,2024年3月最新成果 💡💡💡红外小目标实现暴力涨点,只有几个像素的小目标识别率大幅度提升 改进结构图如下: 收录 YOLOv8原创自研 https://blog…

Day24 代码随想录(1刷) 回溯

目录 77. 组合 216. 组合总和 III 17. 电话号码的字母组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1…

Vue生命周期,从听说到深入理解(全面分析)

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶…

基于深度学习的OCR,如何解决图像像素差的问题?

基于深度学习的OCR技术在处理图像像素差的问题时确实面临一定的挑战。图像像素差可能导致OCR系统无法准确识别文本,从而影响其精度和可靠性。尽管已经有一些方法如SRN-Deblur、超分SR和GAN系列被尝试用于解决这个问题,但效果并不理想。然而,这…

论文阅读-Policy Optimization for Continuous Reinforcement Learning

摘要 我们研究了连续时间和空间环境下的强化学习( RL ),其目标是一个具有折扣的无限时域,其动力学由一个随机微分方程驱动。基于连续RL方法的最新进展,我们提出了占用时间(专门针对一个折现目标)的概念,并展示了如何有效地利用它…

【超图 SuperMap3D】【基础API使用示例】51、超图SuperMap3D - 绘制圆|椭圆形面标注并将视角定位过去

前言 引擎下载地址:[添加链接描述](http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id2524) 绘制圆形或者椭圆形效果 核心代码 entity viewer.entities.add({// 圆中心点position: { x: -1405746.5243351874, y: 4988274.8462937465, z: 370…

关于异业联盟模式做成小程序的可行性分析

随着移动互联网的快速发展,小程序作为一种轻量级应用,受到了越来越多企业和用户的青睐。而异业联盟模式则是一种有效的商业合作方式,能够实现资源共享、优势互补和共同发展。将异业联盟模式做成小程序,不仅可以提高用户体验&#…

Pytorch的hook函数

hook函数是勾子函数,用于在不改变原始模型结构的情况下,注入一些新的代码用于调试和检验模型,常见的用法有保留非叶子结点的梯度数据(Pytorch的非叶子节点的梯度数据在计算完毕之后就会被删除,访问的时候会显示为None&…

react-navigation:

我的仓库地址:https://gitee.com/ruanjianbianjing/bj-hybrid react-navigation: 学习文档:https://reactnavigation.org 安装核心包: npm install react-navigation/native 安装react-navigation/native本身依赖的相关包: react-nativ…

时序预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络时间序列预测

时序预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络时间序列预测 目录 时序预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-BP麻雀算法优化BP神经网络时间序列预测(完整源码和数据…

工业镜头常用参数之实效F(Fno.)和像圈

Fno. 工业镜头中常用到的参数F,有时候用F/#,Fno.来表示,指的是镜头通光能力的参数。它可用镜头焦距及入瞳直径来表示,也可通过镜头数值孔径(NA)和光学放大倍率(β)来计算。有效Fno.…

maven的依赖继承

先说一下创建子maven工程的步骤 继承 继承的作用:在父工程中,统一管理项目中的依赖信息,进行统一的版本控制 继承的背景是:对一个大型的项目进行了模块拆分,一个project下,创建了很多的module&#xff0c…