【陈老板赠书活动 - 21期】- Python树莓派编程从零开始(第3版)

陈老老老板🧙‍♂️
👮‍♂️本文专栏:赠书活动专栏(为大家争取的福利,免费送书)
🤴本文简述:活就像海洋,只有意志坚强的人,才能到达彼岸。
👳‍♂️上一篇文章:第20期赠书活动
🧔有任何问题,都可以私聊我,在文章最后也可以加我的vx。感谢支持!
👨‍🚒我认为人人都可以学好编程,我愿意成为你的领路人!(需内推私聊)

在这里插入图片描述

前言

2020年,特斯拉发布过一次OTA更新,车主可以通过这次系统更新获得座椅加热功能。当时,这则新闻震惊了车圈和所有车主,彼时的大家还没有把汽车当作可以“升级”的智能设备。
如今3年过去了,车主对各家车企的OTA升级早已见怪不怪。
在智能设备早已普及的今天,大家对“软件升级”这个概念已经非常熟悉:
软件可以升级、个人电脑可以升级、手机系统可以升级……
但对于物联网(IoT)设备的升级,大家也许还会感到陌生和好奇。为什么原本不具备加热功能的座椅或方向盘,仅通过一次软件升级,就能获得新功能呢?
这就要引出我们今天的主角——1OTA。
在这里插入图片描述

一、什么是OTA?

OTA(Over-The-Air,空中下载技术)是一种无线传输技术,用于在物联网设备之间进行远程更新和配置。OTA指的是通过无线通信网络来远程更新或升级嵌入式系统中的软件或固件。OTA 更新是一种方便的方法,用于将新功能、改进后的性能、安全补丁或其他更改推送到嵌入式设备,而无须物理接触设备或用户手动干预。

  • OTA简化了设备的更新和维护过程。传统的软件更新方法通常需要用户将设备带到服务中心或使用有线连接进行更新,这既耗时又麻烦。而OTA技术则允许设备自动接收并安装更新,大大节省了时间和精力。
  • OTA技术提高了设备的可靠性和安全性。通过定期更新设备软件,可以修复潜在的安全漏洞和性能问题,从而降低设备被攻击和损坏的风险。
  • OTA技术可以实现远程诊断和故障排除,帮助用户更快地解决问题。

在物联网领域,OTA技术被广泛应用于各种设备,如智能家居、智能城市、工业自动化等。

二、OTA方案的特点

面对远程更新所面临的挑战,物联网平台远程更新方案需要具有如下特点。

  • 时间短、效率高
    物联网平台应尽可能减少远程升级的时间,提高升级效率。
    ·通过控制升级包的大小,采用差分分组来降低升级包的大小,减少远程网络传输时间。
    ·通过模块内升级提高升级的灵活度。
    ·增加断点续传功能,避免终端故障或通信中断造成的数据重传,减少数据传输时间。

  • 合理使用无线资源,提升终端更新的服务效率
    为了提升无线资源的使用效率,终端远程更新服务应该实现多任务的并发,一个任务对应一次远程更新计划,其中包含一组待更新的远程终端。同时,为了保障同一无线区域中其他终端业务的正常使用,物联网平台应对进行更新操作的终端数量进行限制。
    高可靠性

  • 高可靠性是为了保障终端更新的效率
    ·远程更新的管理和控制要精细、准确、智能化。物联网平台应能根据具体终端的状态进行有效性检查(如版本、文件类型、升级包大小等),然后再触发终端远程更新流程。
    ·通过引入状态机的机制、对远程更新过程实施控制并实现异常处理,能够保障端云间控制的协同,降低远程更新操作的风险。
    ·在远程升级过程中,为了避免升级包数据可能出错或丢失,要考虑使用升级包的校验机制来确保升级包的完整性,使用可靠的传输协议保证数据传输的可靠性,并使用物联网平台的重试策略保证传输和升级过程的稳定性。

  • 通用性
    通用性是指物联网平台接入的不同领域、不同种类的异构终端应该使用相同的终端更新流程。这样可以最大限度地降低终端远程更新的维护成本,实现用户的自服务、自管理,以及对异构终端的规模化更新。
    ·终端远程更新方案需要做到控制流和业务流的分离,控制流不受终端所处环境的影响。
    ·控制流采用标准、开放的国际标准协议承载,保证技术方案的可实施性。
    ·兼容升级包,并支持业务流的个性化升级,而且支持第三方差分服务商提供的差分包升级服务。

三、OTA系统的参考架构和服务流程

物联网云平台远程更新系统的结构由服务端和终端两部分组成。
图片

远程更新服务端是物联网平台的一个功能模块,主要实现用户自服务和远程更新的管理控制功能。用户自服务是指用户通过门户方式进行远程更新任务的制定和远程更新状态的查询。任务制定内容包括更新版本、升级包、待升级终端组和更新策略等;远程更新管理包括更新的触发、升级包下载和安装控制,以及下载和安装失败时的策略执行控制。

升级包的生成和下载在服务端完成,并支持两种方式:

一种是物联网平台为待升级的终端提供下载服务,这种方式是用户通过门户上传升级包,物联网平台负责升级包的管理;

另一种是第三方差分服务器提供差分分组的生成和下载,在这种方式下,用户在制定任务时需要选择第三方差分服务器的访问地址。

无论是哪种方式,服务端和终端都要支持断点续传功能。

远程更新时,终端需要根据服务端的指示来下载、安装升级包并上报安装结果。终端下载应支持断点续传功能和升级包的校验功能。终端安装应支持安装和容错功能,容错是指终端在安装阶段对故障进行隔离和处理,以确保安装失败时不影响终端的正常运行。

远程更新服务流程包括更新任务制定、更新触发、升级包下载和安装4个阶段。
在这里插入图片描述

四、结语

在物联网领域,OTA技术被广泛应用于各种设备,如智能家居、智能城市、工业自动化等。
然而,OTA技术也面临一些挑战:
第一,由于设备种类繁多,不同设备可能需要不同的OTA技术和协议。这需要开发者针对不同的设备和应用场景进行定制化开发,增加了开发和维护成本。
第二,OTA技术的安全性和可靠性也需要考虑。如果OTA更新过程中出现错误或中断,可能会导致设备无法正常工作或数据丢失。

总的来说,OTA技术为物联网设备提供了更高效、更安全的更新和维护方式。虽然它面临一些挑战,但随着技术的不断发展和改进,我们相信OTA将在未来发挥更大的作用。

以上内容摘自异步社区的新书,来自曹洪伟、潘维、韩冬三位老师的《一书读懂物联网:基础知识+运行机制+工程实现》
在这里插入图片描述

五、非专业人士也可以读懂的物联网硬核科普读物

物联网是继计算机、互联网之后的第三次信息革命浪潮,是新一代信息技术的重要组成部分。当前,随着物联网的快速发展以及各种新技术的不断涌现,物联网的应用也越来越广泛。

然而,由于物联网涉及的技术和概念相当复杂,因此很多人依然对物联网不明就里。作为一本物联网深度科普性质的图书,本书站在全局的角度,采用系统化架构的思维,以数据处理为主线,对物联网的基础知识、运行机制和工程实现进行了详细介绍。本书最后还介绍了与物联网相关的一些热门话题。

本书可供物联网工程技术人员阅读,还可作为计算机、电子工程、通信工程等相关专业的参考用书。

本书作者都是物联网业内的资深从业者:

作者简介: 曹洪伟

全栈架构师,曾担任百度DuerOS首席布道师、渡鸦科技CTO,并且是百度第一款智能音箱产品的主要技术负责人之一。目前就职于联想诺谛智能,从事大模型应用研究。具有20多年电信和互联网行业的软硬件研发与产品管理工作经验,先后服务于北电网络、斯伦贝谢、美国高通等世界500强企业,后以CTO/合伙人身份连续创业。

作者简介: 潘维

阿里巴巴天猫精灵智能音箱产品线(无屏方向)的负责人,曾任百度智能家居硬件终端负责人。具有15年的消费电子及通信行业的产品开发经验,熟悉手机等消费电子产品终端软硬件的开发。专注于人工智能软硬件产品研究,先后参与了小度智能音箱、阿里巴巴天猫精灵等AI产品及相关算法的产品落地和商业化过程。

作者简介: 韩冬

中国通信标准化协会资深标准化项目管理负责人,从事通信标准化工作20余年,自2008年起专注于无线通信领域的标准化工作,组织并协调完成我国3G、4G、5G通信行业标准500余项,涵盖移动通信基站、终端、无线接入、蜂窝物联网、无线网络安全与加密、边缘计算、绿色节能、卫星通信、天馈系统等多个细分领域。长期跟踪全球移动通信前沿技术的发展,并持续关注我国移动通信技术的最新发展动向。

二、参加方式

本次送书三本,已在交流群中抽取,欢迎大家加群,超多福利

想直接购买可以访问链接,现在折扣超级大哦:现在超大力度打折!点击购买-一书读懂物联网

在这里插入图片描述

总结:希望每个人都可以不忘初心。

结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。

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

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

相关文章

鸿蒙设备-开发板基础学习(BearPi-HM Micro)

theme: minimalism 每当学习一门新的编程语言或者上手一款新的开发板,在学习鸿蒙设备开发过程中,带大家写的第一个程序,通过这个程序,我们可以对鸿蒙设备开发的整个流程有一个初步的体验。BearPi-HM Micro开发板为例:…

数据结构-测试4

一、判断题 1.队列结构的顺序存储会产生假溢出现象。 (T) 2.度为二的树就是二叉树。(F) 二叉树的度可以小于等于2 3. 栈是插入和删除只能在一端进行的线性表;队列是插入在一端进行,删除在另一端进行的线性表。(T&…

代码随想录算法训练营第二十四天 | 回溯算法

理论基础 代码随想录原文 什么是回溯法 回溯也可以叫做回溯搜索法,它是一种搜索的方式。 回溯是递归的副产品,只要有递归就会有回溯。 回溯法的效率 虽然回溯法很难,不好理解,但是回溯法并不是什么高效的算法。因为回溯的本…

对接讯飞聊天机器人接口--复盘

1、准备工作 1)、进入以下平台进行注册,登录后,点击红框处 2)、点击个人免费包(会弹出实名认证,先进行实名认证) 3)、认证后,会进入以下界面,先添加应用 4&am…

栈的经典算法问题(算法村第四关白银挑战)

括号匹配问题 有效的括号 20. 有效的括号 - 力扣(LeetCode) 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类…

滴水逆向1

八进制加法乘法表 EF11101111 j记住其映射关系 十进制的定义:由十个符号组成,分别是0 1 2 3 4 5 6 7 8 9 逢十进一。九进制的定义:由九个符号组成,分别是0 1 2 3 4 5 6 7 8 逢九进一。十六进制的定义:由十六个符号组成…

鸿蒙开发解决agconnect sdk not initialized. please call initialize()

文章目录 项目场景:问题描述原因分析:解决方案:总结:项目场景: 鸿蒙开发报错: agconnect sdk not initialized. please call initialize() 问题描述 报错内容为: 10-25 11:41:01.152 6076-16676 E A0c0d0/JSApp: app Log: 数据查询失败: {“code”:1100001,“messag…

在Kubernetes中优雅地导出和清理Ingress资源

引言 Kubernetes的Ingress资源是定义外部访问集群服务的规则。随着微服务架构和容器化技术的普及,Ingress作为路由流量的关键组件变得愈发重要。当我们需要在环境之间迁移Ingress资源或者备份当前的配置时,就会用到导出功能。然而,直接使用k…

听GPT 讲Rust源代码--compiler(29)

File: rust/compiler/rustc_const_eval/src/util/check_validity_requirement.rs 在Rust编译器的源代码中,rust/compiler/rustc_const_eval/src/util/check_validity_requirement.rs文件的作用是进行验证要求的检查。具体而言,该文件定义了函数check_val…

一文讲透使用Python绘制双纵轴线图

双纵轴线图主要用来展示两个因变量和一个自变量的关系,并且两个因变量的数值单位不同。具体来说,双纵轴线图是指在一幅图上有一个横轴和两个纵轴,适用于三个变量。两个纵轴分别表示一个变量,横轴变量同时适用于两个纵轴上的变量&a…

C++力扣题目--94,144,145二叉树非递归(迭代)遍历

为什么可以用迭代法(非递归的方式)来实现二叉树的前后中序遍历呢? 我们在栈与队列:匹配问题都是栈的强项 (opens new window)中提到了,递归的实现就是:每一次递归调用都会把函数的局部变量、参数值和返回地…

Azure Machine Learning - 人脸识别任务概述与技术实战

Azure AI 人脸服务提供了可检测、识别和分析图像中的人脸的 AI 算法。 人脸识别软件在许多不同情形中都十分重要,例如识别、无接触访问控制和实现隐私的人脸模糊。你可以通过客户端库 SDK,或者直接调用 REST API 使用人脸服务。 目录 一、人脸识别服务场…

Python print()函数高级用法和 len()函数详解:获取字符串长度或字节数

Python print()函数高级用法 我们使用 print() 函数时,都只输出了一个变量,但实际上 print() 函数完全可以同时输出多个变量,而且它具有更多丰富的功能。 print() 函数的详细语法格式如下: print (value,...,sep,end\n,filesys.s…

词嵌入位置编码的实现(基于pytorch)

背景介绍 在transformers架构当中,对于词向量的输入需要加上原本词对应的位置信息,作为输入到模型中训练的input,那具体的位置编码如何实现呢?本篇博客就跟大家一起分享一下对应的步骤 位置编码的公式 对于词向量的位置编码的方…

LaTex引用字体变色

使用下面这条语句进行修改。 ‘citecolor’改变参考文献颜色, ‘linkcolor’改变图标公式引用的颜色, ‘urlcolor’ 文本网站超链接颜色。 \usepackage[colorlinks,bookmarksopen,bookmarksnumbered,citecolorblue, linkcolorblue, urlcolorblue]{hyper…

黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目——第四部分

黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot mybatis plus开发核心技术的真java实战项目——第四部分 1. 套餐管理1.1 新增套餐1.1.1 添加菜品数据回显 1.2 保存添加套餐1.3 套餐信息分页查询1.4 删除套餐1.5 需要自己单独实现的功能1.5.1 套餐管理的启…

leecode-代码随想录-学习笔记1

编程语言基础课,重新学习 kamacoder.com 基础语法;ACM输入输出通用模板;之前Java狂神说的学习笔记(但是还是按照编程习惯用了C,感觉更底层好写代码)。 正式开始: 下面按照题目-我的解答思路和…

深度解析Nginx负载均衡算法及配置实例

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

每天刷两道题——第十天

1.1和为k的子数组 给你一个整数数组 n u m s nums nums 和一个整数 k k k ,请你统计并返回 该数组中和为 k k k 的子数组的个数 。子数组是数组中元素的连续非空序列。 输入:nums [1,2,3], k 3 输出:2 前缀和 1.2如何使用 前缀和的…

VSCode搭建 .netcore 开发环境

一、MacOS 笔者笔记本电脑上安装的是macOS High Sierra(10.13),想要尝试一下新版本的.netcore,之前系统是10.12时,.netcore 3.1刚出来时安装过3.1版本,很久没更新了,最近.net8出来了,想试一下,…