草庐IT

【鸟哥杂谈】物联网体系知识梳理

单片机菜鸟哥 2023-05-21 原文

忘记过去,超越自己

  • ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
  • ❤️ 本篇创建记录 2022-10-13 ❤️
  • ❤️ 本篇更新记录 2022-10-13 ❤️
  • 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
  • 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
  • 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥

【鸟哥杂谈】物联网体系知识梳理

1.前言

今天不教知识,纯粹属于博哥个人杂谈所想,如有不同看法可忽略。

最近博哥在进行一对一物联网体系知识付费教学培训,发现了很多初学者容易出现的一些误区:

  • 1、很多初学者容易陷入身在深林,只知一木的错觉,很容易在没有理解整个体系结构的基础上就深入其中学习某一点知识。
  • 2、很多初学者以为硬件就是物联网整个全部,容易忽略后端整个业务逻辑或者无从下手。
  • 3、一些参加物联网比赛的同学,对于分工方面没有一个合适的分工。
  • 4、一些阅读esp源码的时候无从下手

针对这些问题,博哥根据自己对于物联网的理解以及知识教学所整理的资料,给出一些自己的想法。

2.物联网体系知识

在我们常见的场景中,结合硬件可以区分为好几类:

  • 蓝牙(经典蓝牙 & Ble低功耗蓝牙)
  • 网络(局域网 & 广域网)

2.1 经典蓝牙


这个场景下。

  • 核心就是经典蓝牙协议 Bluetooth 2.0 2.1(虽然现在慢慢用得少了)。
  • 关键角色一般包括 实现了经典蓝牙协议的手机APP & 微信小程序(这两者相对用得比较多)、ESP32经典蓝牙、单片机+经典蓝牙模块等等

经典蓝牙模块代表:

  • HC-05HC-06蓝牙串行端口通讯模块

所以这里就引申出几个学习的方向:

  • 经典蓝牙协议
  • 实现一个经典蓝牙协议的 手机APP & 微信小程序
  • 经典蓝牙模块

参加比赛的条件下,也能按照上面几个方向去组成合适的团队。

2.2 Ble低功耗蓝牙


这个场景下。

  • 核心就是蓝牙Ble协议(目前主流)。
  • 关键角色一般包括 实现了蓝牙Ble协议的手机APP & 微信小程序(这两者相对用得比较多)、ESP32Ble、单片机+Ble蓝牙模块等等

所以这里就引申出几个学习的方向:

  • 蓝牙Ble协议

针对ESP32 Ble,博哥讲述了一些知识

  • 实现了蓝牙Ble协议的 手机APP & 微信小程序
  • Ble蓝牙模块

经典代表

  • 目前市场中SKYLAB的BLE蓝牙模块主要是基于Nordic方案的蓝牙模块

参加比赛的条件下,也能按照上面几个方向去组成合适的团队。

2.3 物联网网络模型

不管是蓝牙还是网络,有一个概念虽然简单但是非常重要。client/server模型:

客户端发起请求,服务器响应请求。

而在博哥看来,物联网网络模型可以用以下图来概括:

区分为三个端:

  • 硬件设备端
  • 后台服务端
  • UI展示端

它们之间的数据传输通过tcp/ip协议进行。我们接触比较多的就是应用层协议。

tcp/ip协议算是计算机网络的重中之重。务必认真学习。博哥也稍微写过一两篇。

每一个端都各自有自己的技术栈,参加比赛的时候也可以按照这个端去组成队伍。

2.3.1 硬件设备端技术栈


比较常见的开发方式包括:

  • arduino开发

博哥所写过的相关资料:

  • microphone开发

博哥所写过的相关资料:

  • sdk开发(idf方式)

计划会写

  • 单片机 + 网络模块

这里的单片机特指本身没有自带网络功能,比如51单片机、msp系列、stm32等等,而网络模块特指支持网络通信的模块,比如esp8266系列、esp32系列、dtu物联网卡、以太网模块等等

而如果要深入学习esp源码,可以在tcp/ip协议基础上去分类学习。

区分为:

  • 用户层,也就是我们自己写的代码
  • 中间层,一些常用的库,跟具体业务平台绑定,比如阿里云sdk、巴法云sdk、配网sdk等等
  • 应用层,更多是趋向于网络协议,比如httpmqttdnswebsocketntp以及自己自定义的协议(像onenet的edp协议)
  • 会话加密层,主要是像httpswss等等所涉及的ssl、tls等等
  • 传输层,主要就是tcpudp协议
  • 往下就是最核心的,LwIP,嵌入式里面非常有名的轻量化TCP/IP协议,在TCP/IP基础上针对嵌入式设备进行了裁剪定制。

    这里区分了连网前、连网后所涉及的知识点,理论上不管micropython、sdk等等,核心原理都是差不多的。而我们一般更多关注的是应用层、中间层、用户层代码。

2.3.2 后台服务端技术栈


说到后台服务,一般我们打交道最多就是巴法云、阿里云、onenet、百度华为等等第三方已经写好的,基本上照着官方文档来学习即可。不管哪个云,一般部署大多数都是mqtt服务器或者http服务器等等。

它们的核心在于:

逻辑处理 + 数据存储

逻辑处理一般就是对应的服务器代码(mqtthttp逻辑处理),数据存储一般就是mysql、mongdb、redis等等技术。

当你对这些熟悉之后,就可以开始写自己的后台服务器,也叫作自开发服务器。而服务器技术可能包括java、nodejs、python、go等等,但论简单易学以及物联网特性来说,nodejs算是目前博哥比较推荐的,数据库就可以使用mysql。

博哥所写过的相关资料:

2.3.3 UI展示端

当你设备端有了,后台服务器也有了,那么剩下最后一个就是UI界面展示数据。

比较常见的开发方式包括:

  • 小程序开发

推荐学习微信小程序

  • 手机App开发

目前主流技术包括android、ios、flutter、uniapp,对于物联网同学来说,可能uniapp更好,基于vue,这样在学习nodejs这些前端知识的时候可以慢慢统一到web前端技术栈。

  • 浏览器web页面开发(比如我们常用的Onenet可视化页面、阿里云web可视化页面等等)

对于一些不想花费太多时间的同学,可以使用Node-Red这门图形化技术,相对比较简单。而且学习门槛不高。
博哥所写过的相关资料:

3.总结

这就是博哥对于物联网体系知识的一些简单梳理,希望能解答一些同学关于学习物联网知识的疑问。并且博哥始终认为,学习物联网,千万不要只看到一张叶子,而放弃了整个森林。

有关【鸟哥杂谈】物联网体系知识梳理的更多相关文章

  1. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  2. ruby-on-rails -/usr/local/lib/libz.1.dylib,文件是为 i386 构建的,它不是被链接的体系结构 (x86_64) - 2

    在我的mac上安装几个东西时遇到这个问题,我认为这个问题来自将我的豹子升级到雪豹。我认为这个问题也与macports有关。/usr/local/lib/libz.1.dylib,filewasbuiltfori386whichisnotthearchitecturebeinglinked(x86_64)有什么想法吗?更新更具体地说,这发生在安装nokogirigem时日志看起来像:xslt_stylesheet.c:127:warning:passingargument1of‘Nokogiri_wrap_xml_document’withdifferentwidthduetoproto

  3. 物联网MQTT协议详解 - 2

    一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su

  4. ruby-on-rails - 在服务器上没有互联网访问权限的 Capistrano 部署 - 2

    如何使用Capistrano将Rails应用程序部署到无法访问外部网络或存储库的生产或暂存服务器?我已经设法完成部署的一半,并意识到Capistrano没有在我的本地机器上下载gitrepo,但它首先连接到远程服务器并尝试在那里下载Git存储库。我希望有一个类似Javaee的构建系统,其中创建可交付成果并将该可交付成果发送到服务器。就像您构建.ear文件并将其部署到您想要的任何服务器上一样。显然在RoR中,你被迫(据我所知)在该服务器上构建应用程序,在那里创建一个gem存储库,在那里克隆最新的分支等等。有什么方法可以将准备运行的包发送到远程服务器吗? 最佳答

  5. ruby - ZeroMQ 安全地通过互联网 - 2

    我一直在使用zeroMQ,我希望能够通过Internet安全连接。我在ruby​​中,可以使用SSL和/或某种shh连接,但找不到有关如何执行此操作的任何示例。我找到了这个旧的stackoverflow链接,HowdoeszeromqworktogetherwithSSL?说他们正在研究某种安全性,但那是一年前的事了,我找不到任何新的引用资料。即使这不是内置在zeroMQ中,我也假设会有一些方法可以使用OpenSSL或类似的东西来设置它。注意:如果您想要安全传输,zeroMQ网站提到使用VPN或其他东西。我不想使用VPN。一定有更好的方法。 最佳答案

  6. Win10 / 11新电脑最简单跳过联网激活和使用本地账户登录方法 - 2

    跳过联网激活:OOBE界面直接按Ctrl+Shift+F3进入审核模式。这样就可以直接进入系统进行一些硬件测试等,而不用联网激活导致新机无法退货。需要注意的是,在审核模式下进行的一些操作都会保留,并不会在退出后自动还原!安装的软件在正常开机进系统后还会看见!如果电脑确实没连互联网又不想强行跳过OOBE(网上很多教程会叫你直接结束OOBE进程,但这是不推荐的,因为一些厂商自带优化程序和系统初始化设置在后面都会应用,对于笔记本跳过的话你会发现驱动和内置应用都没有装上。其实这部分脚本就在系统盘的Recovery隐藏文件夹下),可以参考以下方式:https://www.landiannews.com/

  7. Cesium源码解析一(terrain文件的加载、解析与渲染全过程梳理) - 2

    快速导航(持续更新中…)Cesium源码解析一(terrain文件的加载、解析与渲染全过程梳理)Cesium源码解析二(metadataAvailability的含义)Cesium源码解析三(metadata元数据拓展中行列号的分块规则解析)Cesium源码解析四(Quantized-Mesh(.terrain)格式文件在CesiumJS和UE中加载情况的对比)目录1.前言2.本篇的由来3.terrain文件的加载3.1更新环境3.2更新和执行渲染命令3.3数据优化3.4结束当前帧4.总结1.前言  目前市场上三维比较火的实现方案主要有两种,b/s的方案主要是Cesium,c/s的方案主要是u

  8. ruby-on-rails - Ruby On Rails 3.x 离线安装(没有互联网连接) - 2

    如果有人能提供一些关于在没有互联网连接的计算机上安装ruby​​onrails3.x框架的见解,我将不胜感激。所有教程或解释似乎都假设始终存在互联网连接。有没有简单的方法来下载包含所有依赖项的包并简单地安装包。提前致谢 最佳答案 最后。您需要手动下载的Gem的完整列表,以便在离线模式下安装Rails(或在阻止您的“gem”命令工作的代理之后)。此列表假定您已经拥有以下内容(Windows7):Ruby1.9.2RubyGems1.8.24DevKit列表。转到ruby​​gems.org并使用搜索功能下载以下每个Gem。您不需要键入

  9. ruby - Ruby基础知识 - 2

    Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。已关闭8年。什么是学习ruby语言

  10. 【毕业设计】基于单片机的智能温控农业大棚系统 - 物联网 stm32 - 2

    文章目录1简介2绪论2.1课题背景与目的3系统设计详细设计描述3.2硬件部分温度测量电路其他电路部分3.3软件部分主程序子系统程序温湿度程序流程键盘显示子程序3.4实现效果3.5部分相关代码4最后1简介Hi,大家好,这里是丹成学长,今天向大家介绍一个单片机项目基于单片机的智能温控农业大棚系统大家可用于课程设计或毕业设计单片机-嵌入式毕设选题大全及项目分享:https://blog.csdn.net/m0_71572576/article/details/1254090522绪论2.1课题背景与目的近年来我国的温室控制取得了长足的进步,首先在温室群控制方面,进行了初步的探索和理论研究,其次在温室

随机推荐