从芯片到云端 Python物联网全栈开发实践epub

图书网 2019年12月27日21:17:3152.4K
摘要

√ Python全栈是降低物联网开发复杂度的必由之路
√ 物联网应用系统的快速开发和系统扩展可以兼顾
√ 物联网系统设计比互联网系统设计更受限更复杂
√ 全覆盖应用、产品、生态的全局视角与选型思路

从芯片到云端 Python物联网全栈开发实践 作者:刘凯

从芯片到云端 Python物联网全栈开发实践 出版社: 电子工业出版社

从芯片到云端 Python物联网全栈开发实践 内容简介

物联网开发重新定义了“全栈开发”的范围。Python作为一门快速发展的语言,已经成为系统集成领域的优选语言之一,其可覆盖从电路逻辑设计到大数据分析的物联网端到端开发。各领域开发者可以利用Python交叉涉足物联网设备、边缘计算、云计算、数据分析的工程设计。

《从芯片到云端:Python物联网全栈开发实践》尝试让读者建立物联网设计的整体概念,从基础概念开始,到相关技术选型、开源工程、参考设计与经验分享。无论是物联网领域的创业者,还是系统架构师,都可从本书中获得灵感。本书对于嵌入式开发领域的开发者尤具学习价值,利用Python可加快开发迭代速度、降低开发成本,并可以基于嵌入式Python建立完整的物联网软硬件生态。

从芯片到云端 Python物联网全栈开发实践 目录

前言

第1章 物联网简介

1.1 物联网定义

1.2 物联网发展趋势

1.3 物联网应用与技术

1.3.1 物联网核心价值

1.3.2 物联网发展阶段

1.3.3 物联网分层

1.3.4 物联网数据传输与网络拓扑

1.3.5 物联网实施所需技术栈

1.3.6 标准、现状与未来

1.4 本章小结

第2章 Python语言基础

2.1 Python的由来与特征

2.1.1 概述

2.1.2 设计定位与哲学

2.1.3 优点与缺点

2.2 Python与物联网开发

2.3 获取Python资源

2.3.1 Python主程序

2.3.2 Python文档

2.3.3 Python PyPI

2.4 Python解释器运行环境

2.4.1 REPL交互模式

2.4.2 直接运行与模块运行

2.4.3 脚本文件直接运行

2.4.4 源程序文字编码与结束符

2.5 Python类型与语法

2.5.1 动态类型

2.5.2 传值与传引用

2.5.3 数据类型

2.5.4 内置类型

2.5.5 内置类型的普适操作

2.5.6 数值类型

2.5.7 布尔类型

2.5.8 迭代器类型

2.5.9 生成器类型

2.5.10 yield表达式

2.5.11 序列类型

2.5.12 set集合类型

2.5.13 映射类型

2.5.14 其他类型

2.5.15 控制流

2.5.16 内置函数

2.5.17 用户自定义函数

2.5.18 模块

2.5.19 输入/输出

2.5.20 面向对象编程

2.5.21 进程和线程

2.5.22 错误和异常

2.6 Python标准库概览

2.7 本章小结

第3章 Python语言进阶

3.1 HOWTO:常见任务和解决方案

3.1.1 数据类型转换

3.1.2 数据的调试打印

3.1.3 数据类型资源优化

3.1.4 数据结构与算法

3.1.5 数据缓存

3.1.6 数据多路复用和解复用

3.1.7 数据序列化和反序列化

3.1.8 数据压缩和解压缩

3.1.9 数据加密

3.1.10 数据传输

3.1.11 数据后处理

3.1.12 数据持久化

3.1.13 数据交换

3.2 HOWTO:函数式编程

3.2.1 高阶函数

3.2.2 map函数

3.2.3 reduce函数

3.2.4 filter函数

3.2.5 sorted函数

3.2.6 返回函数

3.2.7 闭包

3.2.8 匿名函数

3.2.9 装饰器

3.3 HOWTO:并发运行模型

3.3.1 协程

3.3.2 I/O模型

3.4 HOWTO:日期与时间

3.4.1 类型转换

3.4.2 时区的处理

3.5 Python版本迁移

3.5.1 Python 2与Python 3的区别

3.5.2 Python 2到Python 3的流程

3.5.3 多个Python版本共存

3.5.4 virtualenv

3.5.5 Windows多个版本共存

3.5.6 Linux多个版本共存

3.6 其他常见技巧

3.6.1 常数类型的模拟

3.6.2 枚举类型的模拟

3.6.3 开发自定义模块

3.7 Python与其他语言

3.8 Python语言扩展

3.8.1 C语言扩展Python

3.8.2 ctypes访问Windows DLL

3.8.3 Jython访问Java类

3.8.4 IronPython访问.NET

3.9 Python加速

3.9.1 PyPy

3.9.2 Cython

3.9.3 PyCUDA

3.9.4 PyOpenCL

3.9.5 Theano

3.9.6 Nuitka

3.10 本章小结

第4章 嵌入式系统开发

4.1 嵌入式系统硬件分类

4.1.1 MCU

4.1.2 MPU

4.1.3 DSP

4.1.4 SMP

4.1.5 异构大小核

4.1.6 FPGA原型

4.1.7 SoPC

4.1.8 GPU

4.1.9 哈佛结构和冯·诺依曼结构

4.2 电路原型设计

4.2.1 集成电路设计流程

4.2.2 模拟电路原型设计

4.2.3 数字电路原型设计

4.3 常见嵌入式微控制器(MCU)

4.3.1 MCU市场状况

4.3.2 Arduino/Wiring

4.3.3 ARM mbed

4.3.4 设计专属架构和专属MCU

4.3.5 ARM MCU差异化竞争

4.4 常见嵌入式处理器和主板

4.4.1 ARM架构

4.4.2 其余的ARM Linux主板

4.4.3 MIPS开发板

4.4.4 x86 mini-ITX

4.5 常见传感器和执行器

4.5.1 虚拟传感器

4.5.2 智能传感器

4.5.3 专用传感器

4.5.4 执行器

4.6 物联网通信集成电路

4.7 嵌入式系统开发语言演进

4.7.1 从汇编到嵌入式C

4.7.2 从C到C++

4.7.3 压缩C++的系统消耗

4.7.4 C++适合物联网开发

4.8 C/C++的编程模式和技巧

4.8.1 C/C++设计模式

4.8.2 回调函数

4.8.3 有限状态机模型

4.8.4 善用结构体

4.8.5 C/C++协程

4.9 开发生态选择

4.9.1 工业标准与厂家私有指令集架构

4.9.2 硬件与软件平台选择

4.9.3 编译器选择

4.10 常见操作系统

4.10.1 无操作系统

4.10.2 RTOS的优势

4.10.3 uC/OS

4.10.4 Keil RTX

4.10.5 mbed RTOS与mbed OS

4.10.6 FreeRTOS

4.10.7 Linux是开发复杂联网设备的现实选择

4.11 物联网中间件

4.11.1 WSN堆栈

4.11.2 TCP/IP

4.11.3 USB

4.11.4 FAT/FS

4.11.5 GUI

4.11.6 Terminal

4.11.7 MQTT

4.11.8 CoAP

4.12 物联网安全性

4.12.1 安全相关芯片

4.12.2 安全中间件

4.12.3 Python安全算法

4.13 设备固件更新

4.13.1 固件更新技术发展史

4.13.2 本地固件更新

4.13.3 远程固件更新

4.13.4 固件升级定制

4.14 各类串口实现联网

4.14.1 串口协议的选择

4.14.2 模拟串口设备

4.14.3 其他类型虚拟设备

4.14.4 ISP编程器

4.14.5 串口设备监控器

4.15 本章小结

第5章 设备连接和编程接口

5.1 设备连接概述

5.1.1 嵌入式系统连接层次

5.1.2 选择正确的连接方案

5.1.3 具体落实连接设计

5.1.4 本章内容安排

5.2 连接能力汇总

5.2.1 连接由芯片开始

5.2.2 芯片内部系统总线

5.2.3 芯片间连接技术

5.2.4 设备间连接

5.2.5 设备组网

5.2.6 设备组网与联网的无线技术

5.2.7 连接性回顾

5.3 Linux文件系统

5.3.1 设备即文件

5.3.2 设备文件系统

5.3.3 Linux设备文件的演变

5.3.4 文件I/O操作

5.3.5 Linux硬件编程

5.4 并行接口

5.4.1 老旧的PC并行接口

5.4.2 高速总线

5.4.3 GPIO

5.4.4 Linux访问GPIO

5.4.5 GPIO的Python包

5.5 串行接口

5.5.1 异步通信串行口

5.5.2 I2C总线

5.5.3 SPI总线

5.5.4 与其他硬件平台相关的Python包

5.6 USB总线

5.6.1 USB Endpoints

5.6.2 USB Device/Host/OTG

5.6.3 USB 3.0

5.6.4 libUSB

5.6.5 PyUSB

5.6.6 标准化USB桥接

5.6.7 与USB相关的其他设计

5.7 Linux网络设备驱动

5.7.1 TCP/IP套接字编程

5.7.2 IEEE 802.3到IEEE 802.11

5.7.3 网络通信实现方案

5.7.4 私有通信协议栈

5.7.5 短距离无线连接

5.8 工业总线

5.8.1 CAN总线

5.8.2 LIN总线

5.8.3 其他ASIC

5.8.4 定制Python扩展

5.8.5 Windows DLL

5.9 本章小结

第6章 嵌入式Python虚拟机

6.1 嵌入式高级语言平台大荟萃

6.1.1 高级语言与二次开发

6.1.2 BASIC

6.1.3 Java

6.1.4 Lua

6.1.5 JavaScript

6.1.6.NET

6.2 前一代Python虚拟机

6.2.1 Telit GPRS模块

6.2.2 Symbian

6.2.3 Windows CE

6.2.4 OpenMoko

6.3 深嵌入式Python平台

6.3.1 LEGO EV3

6.3.2 TinyPy

6.3.3 嵌入式Python的局限

6.4 PyMite

6.4.1 硬件平台

6.4.2 维护者

6.4.3 pymbed分支

6.4.4 开发现状

6.4.5 文档

6.4.6 源码树

6.4.7 使用流程

6.4.8 实践

6.4.9 工程小结

6.4.10 网络资源

6.5 VIPER/Zerynth

6.5.1 硬件平台

6.5.2 Zerynth Studio

6.5.3 与标准Python的区别

6.5.4 快速启动

6.5.5 坎坷的使用过程

6.5.6 Zerynth目录结构

6.5.7 硬件相关库

6.5.8 其他特性

6.6 MicroPython

6.6.1 工程背景知识

6.6.2 在线评估网页

6.6.3 官方硬件平台分支

6.6.4 衍生项目

6.6.5 UNIX版本

6.6.6 MicroPython库

6.6.7 STM32HAL分支

6.6.8 NUCLEO-F401RE适配

6.6.9 pyboard评估

6.6.10 异步处理和中断处理

6.6.11 中断处理的普遍问题

6.6.12 使用心得

6.6.13 商品化与知识产权

6.6.14 BBC microbit

6.7 Linux与Python

6.7.1 Linux中Python的运行环境

6.7.2 交叉编译CPython

6.7.3 交叉编译MicroPython

6.7.4 Jython运行环境

6.7.5 Android SL4A

6.8 本章小结

第7章 Python应用APP

7.1 基于字符的人机界面

7.1.1 命令行参数

7.1.2 字符终端开发

7.1.3 ncurses

7.2 桌面GUI开发

7.2.1 Tkinter

7.2.2 wxPython

7.2.3 Boa Constructor

7.2.4 wxGlade

7.2.5 PyGTK

7.2.6 PyQt

7.2.7 PySide

7.2.8 Enthought

7.2.9 Cocoa+PyObjC

7.2.10 Java AWT

7.2.11 IronPython与WPF

7.2.12 其他UI

7.3 本地Web GUI

7.3.1 与WebKit相关的Python包

7.3.2 OneRing

7.3.3 Pyjs

7.3.4 Python Flexx

7.4 本地可执行文件

7.4.1 Linux可执行文件

7.4.2 Mac OS X应用程序包

7.4.3 Windows可执行文件

7.4.4 pyinstaller

7.4.5 py2exe

7.4.6 py2app

7.4.7 cx_Freeze

7.4.8 Windows系统服务

7.4.9 Windows定时任务

7.4.10 Linux系统服务

7.4.11 Linux定时任务

7.5 移动APP开发

7.5.1 响应式网页

7.5.2 PhoneGAP应用开发

7.5.3 SL4A

7.5.4 QPython开发

7.5.5 Kivy

7.5.6 其他开发方式

7.6 本章小结

第8章 Python开发辅助支持

8.1 物联网开发需要不断优化

8.2 专属小工具

8.2.1 单位转化器

8.2.2 内码转换器

8.2.3 其他编码转换

8.3 原型验证

8.4 代码生成器

8.5 软件测试

8.5.1 unittest单元测试

8.5.2 socket压力测试

8.5.3 urllib2远程记录

8.5.4 PCBA测试

8.6 文档生成器

8.6.1 文档格式

8.6.2 文档生成工具

8.7 文档操纵

8.7.1 Doc文档操纵

8.7.2 Excel表格操纵

8.8 国际化与本地化

8.8.1 gettext

8.8.2 Web多语种切换

8.8.3 字库文件生成器

8.8.4 GB2312点阵字库提取

8.8.5 TTF字库提取

8.9 配置管理

8.9.1 软件配置管理

8.9.2 软件配置管理自动化

8.9.3 Git Bash

8.9.4 Dulwich/Gittle包

8.9.5 Python Subversion包

8.9.6 watchdog系统监控

8.10 数据与素材处理

8.10.1 二维码显示

8.10.2 多媒体相关软件包

8.10.3 地理位置

8.11 通信报文分析

8.11.1 PyShark

8.11.2 pypcapfile

8.11.3 scapy和scapy3k

8.11.4 pcap Web分析

8.12 与Arduino/mbed相关的Python包

8.12.1 Arduino Prototyping

8.12.2 pyFirmata

8.12.3 Py2B

8.12.4 CmdMessager

8.12.5 mbed

8.12.6 mbed RPC

8.12.7 mbed-ls

8.12.8 Python-mbedtls

8.12.9 Python-xbee

8.13 虚拟仪器

8.13.1 实时显示波形

8.13.2 Instrumentino

8.13.3 Vipy

8.13.4 PyVISA

8.13.5 Pythics

8.14 3D/VR/AR

8.14.1 PyOpenGL

8.14.2 PySoy

8.14.3 VPython

8.14.4 Printrun 3D打印

8.15 本章小结

第9章 物联网服务器端设计

9.1 物联网计算模型

9.1.1 云计算

9.1.2 Web PaaS与IoT PaaS

9.1.3 IoT PaaS供应商

9.1.4 PaaS/IaaS混合架构

9.1.5 雾计算

9.2 物联网与互联网设计异同

9.2.1 基础架构

9.2.2 标准化程度

9.2.3 业务模式

9.2.4 系统构成

9.2.5 设备接入协议

9.2.6 数据特性

9.2.7 系统架构

9.2.8 数据持久层

9.2.9 大数据分析架构

9.2.10 业务耦合与分离

9.2.11 业务与数据融合

9.2.12 认证授权与计费

9.3 物联网网关与边缘服务器

9.3.1 Python socket服务器

9.3.2 pyserial RFC2217

9.3.3 SubGHz网关panStamp

9.3.4 Rascal micro

9.3.5 Java IoT网关

9.4 物联网设备接入协议

9.4.1 异步通信框架Twisted

9.4.2 Twisted 套接字服务器设计

9.4.3 物联网专用协议

9.4.4 CoAP

9.4.5 MQTT

9.4.6 mosquitto/paho

9.4.7 REST API

9.4.8 服务器数据推送技术

9.5 高可用性与高并发性

9.5.1 并行与并发计算

9.5.2 网络I/O模型分类

9.5.3 架构优化的路径

9.5.4 关系数据库系统

9.5.5 SQL/NoSQL/NewSQL

9.5.6 Redis

9.5.7 MongoDB

9.5.8 时序数据库

9.5.9 消息队列

9.6 业务与数据融合

9.6.1 网站权限管理

9.6.2 认证授权与计费

9.6.3 OpenID

9.6.4 OAUTH

9.6.5 OpenID与OAUTH的异同

9.6.6 社交化硬件

9.7 Web开发框架

9.7.1 MVC模型

9.7.2 Web开发流程

9.7.3 Python Web百花齐放

9.7.4 Zope

9.7.5 Django

9.7.6 Flask

9.7.7 gevent提升性能

9.7.8 异步Web框架Tornado

9.7.9 异步网络框架Twisted

9.7.10 异步Web框架Cyclone

9.7.11 静态网页

9.7.12 TLS安全网页

9.8 物联网安全

9.8.1 物联网安全现状堪忧

9.8.2 操作系统安全

9.8.3 数据缓存与数据持久层安全

9.8.4 Web框架与容器安全

9.8.5 远程加载风险

9.8.6 Web前端安全

9.8.7 传输层安全

9.9 服务器交付

9.9.1 虚拟机交付

9.9.2 Docker容器交付

9.9.3 VirtualEnv交付

9.10 服务器运维

9.10.1 Linux定时任务

9.10.2 常见的定时任务

9.10.3 系统监控

9.10.4 集成化运维软件

9.11 物联网系统设计实践

9.11.1 服务器端需求分析

9.11.2 确定设备接入方式

9.11.3 物联网的实时要求

9.11.4 EPIC IoT设备服务器

9.11.5 EPIC架构优化

9.12 本章小结

第10章 融合应用与数据分析

10.1 物联网是可编程的

10.1.1 Web API的“满汉全席”

10.1.2 Web API 技术演进

10.1.3 IoT Web API的必要性

10.1.4 Device as a Service

10.2 数据统计、分析和挖掘

10.2.1 名词解释

10.2.2 术语小结

10.2.3 大数据分析

10.3 采集整理自有数据

10.3.1 原始设备数据

10.3.2 数据埋点

10.3.3 服务器端数据

10.3.4 需求确定分析方法

10.4 采集第三方数据

10.4.1 结构化数据

10.4.2 半结构化数据

10.4.3 非结构化数据

10.4.4 数据录入

10.4.5 数据融合

10.4.6 数据规整

10.4.7 数据交易

10.5 数据分析

10.5.1 常见编程语言

10.5.2 数据分析分类

10.5.3 科学计算数据分析工具

10.5.4 统计学数据分析工具

10.5.5 金融数据分析工具

10.5.6 大数据平台与生态

10.6 数据可视化

10.6.1 数据可视化的发展趋势

10.6.2 matplotlib

10.6.3 seaborn

10.6.4 mpld3

10.6.5 Chaco

10.6.6 Pygal

10.6.7 Plotly

10.6.8 TVTK

10.6.9 VPython

10.6.10 Folium

10.6.11 NetworkX

10.6.12 Bokeh

10.6.13 Mayavi

10.6.14 Vispy

10.6.15 MoviePy

10.6.16 其他新技术

10.7 本章小结

推荐书目与结束语

从芯片到云端 Python物联网全栈开发实践 精彩文摘

本章主要介绍物联网的定义及其发展趋势,以及物联网应用与技术等内容,以便读者对物联网有个大概了解。

到目前为止,已经有许多标准化组织、国家机构、大学、跨国公司、技术联盟和百科全书等都对“物联网”做了定义。总的来说,以描述性定义为多。

物联网(Internet of Things)是指通过各种网络连接技术和信息传感技术,将物理实体进行标识、分类、组网、联网,实现物与物、物与人之间的连接与互动,在数据采集基础上通过处理、分析、模式识别等智能算法,实现自动化管理、远程控制的计算机应用系统。

早期物联网定义多与 RFID 有关,用于实现物体和用户识别。现在加入了各类传感器、网络连接技术和智能算法,物联网的概念被大大拓宽了。

物联网的关键词是物和联网技术,其整合了许多RFID、传感网、工业控制以及新型的云计算和人工智能技术。物联网成为TMT(Telecommunication,Media,Technology,即电信、媒体、科技)相关行业对其他传统行业进行融合性技术升级的技术趋势。

对于金融市场来说,物联网是一种投资概念。但物联网不是一个单独的行业。目前被券商贴上“物联网”标签的企业,都是在日常生产或营销方式中采用了某种物联网技术的企业。这些行业可以分属于许多行业,如医疗、工业、物流,而不一定是TMT行业。

可以预见会有更多时髦词汇不断出现,如果将这些概念视为果实和目标,物联网则是这些概念的技术内核和基础。

随着市场对于物联网的持续关注和资金投入,物联网应用呈现出以下发展趋势。

· 碎片化:各种物联网应用百花齐放,而且技术选项越来越复杂。

· 标准化:芯片、连接技术、操作系统、设备平台、云计算平台、云计算服务呈现出标准化和同质化的趋势,而且迭代速度越来越快。

· 拟人化:物联网不再仅仅局限于设备组网、联网,配合云计算和边缘计算,系统内部和系统间的互动越来越像一种“生命体”。

所谓“拟人化”发展趋势,指物联网系统从功能上看越来越像一个生命体。虽然计算机系统与生物学中人的概念无法一一对应,但是这种发展趋势非常明显:

· 集成电路、微机电是物联网的终端设备物质基础,如同“蛋白质”。

· 创新电源设计为设备长期运行奠定了能源基础,如同“碳水化合物”。

· 传感器、执行设备用于感知环境和执行指令,如同“耳目”与“手足”。

· 组网、联网技术让离散设备组合成网络,如同“神经”。

· 云计算平台作为物联网控制中心,如同“大脑”。

· 云存储、大数据、机器学习、人工智能构成一个完整的应用,如同“大脑”的“记忆、观察、经验和判断”。

· 计算机系统病毒、设计缺陷,可以被视为“病毒”,“病菌”和“敏感源”。

· 不同应用通过Web服务彼此相连,构成了应用之间的复杂关系,此类关系可以是隶属、对等甚至敌对关系。

图书网:从芯片到云端 Python物联网全栈开发实践epub

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:5   其中:访客  5   博主  0
    • 郭儒
      郭儒 9

      不错

      • 杨浩
        杨浩 0

        很不错的书,现在物联网大火,多需要这种书来培养更多的人才。