内容简介
物联网开发重新定义了“全栈开发”的范围。Python作为一门快速发展的语言,已经成为系统集成领域的优选语言之一,其可覆盖从电路逻辑设计到大数据分析的物联网端到端开发。各领域开发者可以利用Python交叉涉足物联网设备、边缘计算、云计算、数据分析的工程设计。
本书尝试让读者建立物联网设计的整体概念,从基础概念开始,到相关技术选型、开源工程、参考设计与经验分享。无论是物联网领域的创业者,还是系统架构师,都可从本书中获得灵感。本书对于嵌入式开发领域的开发者尤具学习价值,利用Python可加快开发迭代速度、降低开发成本,并可以基于嵌入式Python建立完整的物联网软硬件生态。
作者简介
刘 凯
服务于微电子行业二十余载的资深工程师。曾在飞利浦半导体(即NXP恩智浦半导体前身)任资深工程师,从事软、硬件开发与产品设计等工作,有用汇编/C/C++开发嵌入式系统固件、用Perl/Python脚本做开发支持工具、用PHP/Java/Python做设备云和Web应用的丰富经验。现作为独立系统集成开发商,专业从事物联网相关项目设计和咨询服务,主攻嵌入式、RFID、微控制器、物联网、WSN、Linux、Python、开源等领域。
前言节摘
本书讲述如何以Python为主要编程语言,实现“从芯片到云端”的物联网应用系统快速开发和系统扩展。通过阅读本书,读者可以充分体会Python作为一门全栈开发语言,是如何在物联网的设备端、应用端、服务器端和数据端环节中发挥作用的。
编写本书的初衷是为了让准备或者已经从事物联网开发的读者能够通过Python语言缩短相关学习和开发周期;同时与大家分享一些经验教训,希望能够让读者在具体开发中回避各种“坑”。这不仅对开发团队,对于企业甚至投资者决策也是有益的。
大多数物联网相关书籍比较关注物联网系统和服务器端设计,但是物联网与互联网的设计差别在于:物联网系统设计受限于有限的设备计算能力、巨大的连接数量、独特的数据特征。所以完整的物联网系统设计需要考虑的要素比互联网更多,需要掌握的知识面既广且深。如何在短期内实现系统上线,并安全、平滑地实现规模扩展一直是大家思考的问题。开发者可以采用的对策如下:
减少开发语言和工具种类。
使用成熟的参考设计和编程框架。
使用主流的云计算服务和可扩展的系统设计。
开源硬件、软件设计和并行开发模式。
有许多事情“开弓没有回头箭”。物联网的最大特点是大量的定制需求,而且上下环节的衔接往往存在技术依赖性,某个环节的决定往往会对其他环节的实施带来很大的影响,并可能造成开发团队间的责任推诿。这需要系统设计者事前做许多调研功课。笔者专注于设备域和服务器域,但本书力求带来更宽的视野,包括物联网相关的应用、产品和生态,介绍不同的系统架构和云计算服务,并在不同的技术选项中推荐几种比较适合工程实施和实际需求的主流组合。
在收集资料的过程中,笔者发现Python作为一门通用编程语言,应用范围非常宽泛。从SPICE/VHDL开始,到服务器,Python实现了“从芯片到云端”的全栈开发。笔者希望这些内容和案例能够帮助开发者在启动项目前对开发有全局性的了解,并做出正确选择。
读者可以将本书看作单一编程语言的物联网应用小百科,通过书中的简单例子大致了解物联网的开发流程,并可以根据自己的兴趣,在每章的延伸阅读 清单中深入探索、掌握物联网开发技术的具体实现细节。
章节简介
第1章 物联网简介/概述物联网的定义、发展趋势以及物联网应用与技术等
第2章 Python语言基础/数据类型、数据结构、内置函数和标准库
第3章 Python语言进阶/多种实现、与其他语言的接口、物联网常见技巧
第4章 嵌入式系统开发/数字逻辑与模拟电路设计、C/C++固件开发以及主流的平台与供应商
第5章 设备连接和编程接口/物联网的多种连接性与编程接口以及Python支持包
第6章 嵌入式Python虚拟机/深嵌入式、嵌入式Linux最小系统以及各类Python虚拟机实现、演示
第7章 Python应用APP/在主流桌面操作系统和移动端中的Python APP开发
第8章 Python开发辅助支持/在物联网开发环节中的原型验证、虚拟设备、数据分析等多个方面的Python开发工具
第9章 物联网服务器端设计/物联网网关、边缘服务器、Web/IoT服务、开发框架和连接选项
第10章 融合应用与数据分析/科学计算、数据统计、数据挖掘和大数据分析平台和工具,以及数据可视化
本书目录
所列目录只保留到二级标题,查看全部目录请点击阅读原文
第1章 物联网简介/1
1.1 物联网定义/1
1.2 物联网发展趋势/1
1.3 物联网应用与技术/2
1.4 本章小结/16
第2章 Python语言基础/17
2.1 Python的由来与特征/19
2.2 Python与物联网开发/22
2.3 获取Python资源/24
2.4 Python解释器运行环境/26
2.5 Python类型与语法/29
2.6 Python标准库概览/93
2.7 本章小结/94
第3章 Python语言进阶/95
3.1 HOWTO:常见任务和解决方案/95
3.2 HOWTO:函数式编程/123
3.3 HOWTO:并发运行模型/131
3.4 HOWTO:日期与时间/136
3.5 Python版本迁移/139
3.6 其他常见技巧/143
3.7 Python与其他语言/145
3.8 Python语言扩展/151
3.9 Python加速/157
3.10 本章小结/160
第4章 嵌入式系统开发/161
4.1 嵌入式系统硬件分类/162
4.2 电路原型设计/168
4.3 常见嵌入式微控制器(MCU)/179
4.4 常见嵌入式处理器和主板/184
4.5 常见传感器和执行器/192
4.6 物联网通信集成电路/196
4.7 嵌入式系统开发语言演进/197
4.8 C/C++的编程模式和技巧/204
4.9 开发生态选择/215
4.10 常见操作系统/217
4.11 物联网中间件/227
4.12 物联网安全性/230
4.13 设备固件更新/232
4.14 各类串口实现联网/235
4.15 本章小结/239
第5章 设备连接和编程接口/240
5.1 设备连接概述/240
5.2 连接能力汇总/242
5.3 Linux文件系统/266
5.4 并行接口/273
5.5 串行接口/277
5.6 USB总线/296
5.7 Linux网络设备驱动/301
5.8 工业总线/310
5.9 本章小结/314
第6章 嵌入式Python虚拟机/315
6.1 嵌入式高级语言平台大荟萃/315
6.2 前一代Python虚拟机/323
6.3 深嵌入式Python平台/326
6.4 PyMite/328
6.5 VIPER/Zerynth/338
6.6 MicroPython/356
6.7 Linux与Python/398
6.8 本章小结/407
第7章 Python应用APP/408
7.1 基于字符的人机界面/409
7.2 桌面GUI开发/412
7.3 本地Web GUI/426
7.4 本地可执行文件/429
7.5 移动APP开发/436
7.6 本章小结/449
第8章 Python开发辅助支持/451
8.1 物联网开发需要不断优化/452
8.2 专属小工具/452
8.3 原型验证/458
8.4 代码生成器/459
8.5 软件测试/461
8.6 文档生成器/468
8.7 文档操纵/477
8.8 国际化与本地化/479
8.9 配置管理/484
8.10 数据与素材处理/486
8.11 通信报文分析/495
8.12 与Arduino/mbed相关的Python包/497
8.13 虚拟仪器/509
8.14 3D/VR/AR/512
8.15 本章小结/515
第9章 物联网服务器端设计/516
9.1 物联网计算模型/517
9.2 物联网与互联网设计异同/526
9.3 物联网网关与边缘服务器/535
9.4 物联网设备接入协议/540
9.5 高可用性与高并发性/575
9.6 业务与数据融合/585
9.7 Web开发框架/589
9.8 物联网安全/597
9.9 服务器交付/603
9.10 服务器运维/605
9.11 物联网系统设计实践/614
9.12 本章小结/625
第10章 融合应用与数据分析/626
10.1 物联网是可编程的/626
10.2 数据统计、分析和挖掘/630
10.3 采集整理自有数据/633
10.4 采集第三方数据/637
10.5 数据分析/647
10.6 数据可视化/663
10.7 本章小结/682
推荐书目与结束语/683
博文视点
您阅读的专业智库
喜欢请分享至朋友圈
了解更多本书详情请点击阅读原文
长按二维码轻松关注