从芯片到云端:Python 物联网全栈开发实践 PDF 文档

发布于 2024-04-15 04:58:11 字数 11670 浏览 59 评论 0

本书讲述如何以 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 本章小结
推荐书目与结束语

下载地址:https://www.wenjiangs.com/wp-content/uploads/2024/03/iTpRpGFjvOdW1uTr.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

彩扇题诗

暂无简介

0 文章
0 评论
837 人气
更多

推荐作者

lixs

文章 0 评论 0

敷衍 

文章 0 评论 0

盗梦空间

文章 0 评论 0

tian

文章 0 评论 0

13375331123

文章 0 评论 0

你对谁都笑

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文