GDE专栏 | 物联网到底是什么?

2023-11-02 20:10
文章标签 到底 联网 专栏 gde

本文主要是介绍GDE专栏 | 物联网到底是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文| Google 开发技术专家 (GDE) 王玉成 (York Wang)


2016 年 12 月,Google 发布了 Developer Preview 版的 Android Things,该平台为利用 Android 这一世界上最受支持的操作系统的强大功能构建物联网产品铺平了广阔的道路。严格意义上来讲,它并不是一个全新的操作系统,而是通过同样是 Google 开发的物联网操作系统 Brillo 改进优化的。


今天,就跟大家说说 Android Things 的前世与今生,以及它与 Brillo 的渊源,到底它解决了什么问题?



什么是物联网?


想知道为什么人们需要 Android Things,首先需要搞清楚什么是物联网:

以前我们在聊到物联网的话题时,只知道物联网使我们的生活更智能、更轻松、更高效。可以方便地控制智能设备。


即使最简单的控制设备,也会要求物联网具有三个最基本层次,每个层次的功能有所不同,春节刚过,我们就以春节回家为例,来说说物联网的这几个层次和它的功能。


  • 物联网 - 回家过年

  • 感知层 - 给不同长辈购买礼物

  • 传输层 - 乘坐各种交通工具携带礼物回家

  • 应用层 - 把礼物送到长辈手中


全面感知:

感知层需要解决数据源头的问题。怎么去搜集各种原始数据?物联网的物,即万物,数据搜集有多样性,我们需要靠各种传感器去感知不同的信息。就比如春节回老家前,我们需要给家里不同的长辈准备不同的礼物,比如爸爸可能需要一瓶好酒,奶奶可能需要一双好的保暖鞋,爷爷可能需要一个好的拐杖……每个人的需求可能是不同的。


可靠传递:

传输层解决数据的传输通路的问题。数据通路依靠各种协议,这些繁杂的协议,面对如何去实现自由的协议转换呢?春节回老家过年,先坐火车,再做公交,再坐大巴,有可能坐牛车……当你换乘交通工具时,完成的是协议的转换,而你所带的礼物,就是需要安全传送的数据信息。当你把礼物带回老家,物联网的数据才完好无损的到达目的地。


智能处理:

应用层解决数据如何处理。经过长途跋涉,过年终于回老家了。这些礼物,需要你进行分类,然后再走亲访友,给不同的人送不同的东西。物联网的数据处理也就是这样:把搜集到的各种原始的数据,转换成我们需要的信息。



操作系统


物联网的数据传输这么简单?那为什么还要弄这么复杂的操作系统?别急,我们还是拿春运来解释。


先自我羡慕一把,春运来回,我都成功抢到了火车硬卧票。如果你和我一样给爷爷带是急需的药品,春节回家又不一定能买到票,你可以提前一个月快递,毕竟药品先到更重要。当然,也有人把几个月都没洗的衣服,一起带回去让家人洗,暂且这也算给家人的新年礼物吧 ´・ω・`


在物联网的数据分析中,药品是属于那一类必须快速传递的信息,脏衣服是属于不怎么急的信息。这时候,简单的、单一的传输路径就出了问题了。有的智能设备,是支持多种传输模式的,比如串口传递控制信息,3G 上网卡传递必须实时接收的信息。如果春节你的家人都很忙,你也不会带一大堆脏衣吧?物联网的传感器设备,也有基本的决策功能,数据在节点上积累很多时,哪些先发,哪些后发?专业术语叫同步和异步,都是根据整个系统的不同而定的。


问:上面内容都看了,还是没有理解物联网到底是干啥的?

答:再经历一次春运吧 :-)


物联网的最小模型就和春运带礼物是一样的。但是,在实际的工程应用中,会复杂很多。在春运中,碰到的各种难题对应着物联网系统的各种问题。但是任何工程问题,都是在最小系统上,再针对易用性,安全性,稳定性……做一些复杂的功能开发,最终形成一个稳健的系统。可以这么说,如果把春运的各个环节的问题都解决了,你就可以做物联网的方案商了 :-)


Google 利用物联网操作系统来解决数据的收集和可靠传递,利用 Google Cloud 来解决数据智能处理。那么,Google 的物联网操作系统又经历了哪些变化呢?



前世:Brillo


Brillo 是在 2015 Google I/O 大会上发布的一款产品。也是 Google 的第一款物联网操作系统。带来了一个简单的 bsp 移植的模型,方便硬件厂商快速导入 Brillo 系统到他们自己的芯片/开发板上。并研发了 Weave 通信协议,解决物联网系统中多样化的通信协议的问题。Brillo 适用于物联网网关类似的产品,以前在 Google Device 推出过一款基于 Brillo 的路由器。



今生: Android Things


Android Things 是 2016 年 12 月份推出的物联网操作系统。做为 Brillo 的优化,主要做了以下改变:

  1. Brillo 只能用 C/C++ 做开发,但是 Android Things,可以用 java 进行开发,而且做了 Android 系统的所有测试。也就是说,Android 的开发人员,能够很快的转换到 Android Things 的应用开发上来;

  2. Android Things 应用研发周期,跟 Android 的研发周期相同,可以直接用 Android Studio 来开发,用 adb 进行连接...

  3. Android Things 的 SDK 是 Android SDK 的子集;

  4. 完美支持 OTA;

  5. 已经有四款开发板作为原型开发;

  6. 可以轻易的通过 Google Cloud 使用 Firebase,极大的加快了数据的处理速度;

  7. 集成的 Weave 协议,可以方便的搞定各种无线协议的连接。


这些改变使得 Android Things 不仅仅是一个物联网操作系统,而且是一个可以快速做智能硬件开发的平台。


说这些条条框框还是不太好理解,后续会对每一点做详细的解释。



后记


作为 Android Things 专题系列的第一篇,主要说到物联网到底是什么?Brillo 的产生的原因、以及在系统设计初衷、应用开发的特点,实际上还只是 Android Things 的皮毛。Android Things 专题后续会详细讲解包括功能、软硬件开发环境、以及一个完整的示例,让大家得心应手的用 Android Things 开发出自己的应用。


物联网领域有多大,Android Things 的天地就有多大,你可以尽情的发挥!


希望大家有什么问题和建议,及时通过留言方式反馈给我,在专题的后续中,我会尽量的满足大家的要求。


scrolling="no" frameborder="0" class="vote_iframe js_editor_vote_card" data-display-style="height: 317px;" data-display-src="/cgi-bin/readtemplate?t=vote/vote-new_tmpl&__biz=MzAwODY4OTk2Mg==&supervoteid=446805707&token=996735584&lang=zh_CN" data-src="/mp/newappmsgvote?action=show&__biz=MzAwODY4OTk2Mg==&supervoteid=446805707#wechat_redirect" data-supervoteid="446805707" allowfullscreen>


推荐文章:

Android Things Developer Preview 2 发布

Android Things揭开面纱

Android无处不在,Android开发者大有可为


这篇关于GDE专栏 | 物联网到底是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/333007

相关文章

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI

【H2O2|全栈】Markdown | Md 笔记到底如何使用?【前端 · HTML前置知识】

Markdown的一些杂谈 目录 Markdown的一些杂谈 前言 准备工作 认识.Md文件 为什么使用Md? 怎么使用Md? ​编辑 怎么看别人给我的Md文件? Md文件命令 切换模式 粗体、倾斜、下划线、删除线和荧光标记 分级标题 水平线 引用 无序和有序列表 ​编辑 任务清单 插入链接和图片 内嵌代码和代码块 表格 公式 其他 源代码 预

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构,客户端可以订阅任意数量的主题,并可以发布消息到这些主题。服务器(通常称为MQTT Broker)则负责接受来自客户端的连接请求,并转发消

欢迎大家关注我的【白话算法和数据结构】专栏

学习ACM也有一年半了,曾经对什么算法都不懂,现在对很多算法都有一定的了解,我们acm集训队都是学长学姐带学弟学妹,其实我们将的学弟学妹大部分都不能理解,当初我听杨大神讲课也是一样,听和没听一样,但是有学长告诉你有这个算法也是好的,只是你知道哦,原来这道题要用这道算法,我以前傻逼的暴力解决~~~然后他告诉你有这个算法,你自己去学,去网上搜资料学,所有人都是这么走过来的,但是网上能把算法将的跟白话一

Java专栏介绍

专栏导读 在当今这个技术飞速发展的时代,Java作为一门成熟且广泛应用的编程语言,一直是软件开发领域的中坚力量。本“Java技术”专栏旨在帮助读者深入理解Java编程语言的精髓,掌握其核心概念与高级特性,并通过实战案例提升编程技能。 专栏目录 一、Java入门知识与基本使用二、Java变量三、运算符四、控制结构五、数组、排序和查找六、面向对象编程(基础)七、面向对象编程(中级)八、面向对

物联网——DMA+AD多通道

DMA简介 存储器映像 某些数据在运行时不会发生变化,则设置为常量,存在Flash存储器中,节省运行内存的空间 DMA结构图 DMA访问权限高于cpu 结构要素 软件触发源:存储器到存储器传输完成后,计数器清零 硬件触发源:ADC、定时器、串口 重写计数器时,需关闭DMA DMA请求 数据宽度与对齐 目标宽度小于传输带宽:高位补零,反之,舍弃高位 数据转运与D

Linux block_device gendisk和hd_struct到底是个啥关系

本文的源码版本是Linux 5.15版本,有图有真相: 1.先从块设备驱动说起 安卓平台有一个非常典型和重要的块设备驱动:zram,我们来看一下zram这个块设备驱动加载初始化和swapon的逻辑,完整梳理完这个逻辑将对Linux块设备驱动模型有深入的理解。 zram驱动加载的时候会调用zram_add函数,源码如下: 1887/*1888 * Allocate and initia

智能交通系统如何利用大数据、云计算和物联网技术优化交通流量、减少拥堵|智能交通系统|大数据|云计算|物联网|交通流量优化|减少拥堵

目录 1. 智能交通系统的定义与构成 1.1 智能交通系统的组成 1.2 智能交通系统的目标 2. 大数据技术在智能交通中的应用 2.1 交通数据采集与分析 2.2 实时交通监控与预测 3. 云计算在智能交通中的作用 3.1 云平台的数据处理能力 3.2 云计算的弹性扩展 4. 物联网技术在智能交通中的应用 4.1 智能信号灯控制系统 4.2 智能停车系统 5. 智能交通