具体描述
本书在介绍物联网的组成、典型架构和应用的基础上,采用实例代码讲述 Python 编程基础和应用实例,包括用 Micropython 进行物联网单片机的开发、用 Python 开发物联网网关的方法、Python django 框架开发物联网Web 后台和前端知识及物联网常用通信方案 2G、Lora、Zigbee和物联网通信协议 MQTT、COAP 等,最重要的内容是通过一个完整的大型物联网项目实例讲解 Python 开发物联网的细节。并提供了项目源代码以及硬件开发板。
作者简介
安翔,擅长医疗器械、智能家居、物联网领域软件开发,熟练使用C、JAVA、Python、Perl等多种编程语言,精通Linux与嵌入式系统。热爱技术写作与分享,CSDN译者,Python中文社区签约作者,developerworks等网站撰稿人。目前专注于Python与物联网行业的结合。
目录信息
1.1 物联网组成架构
1.2 物联网发展现状
1.2.1 终端设备
1.2.2 物联网操作系统
1.2.3 通信手段
1.2.4 网络建设
1.2.5 应用协议
1.2.6 物联网云平台
1.3 物联网典型应用
1.3.1 共享单车
1.3.2 智能家居
1.3.3 智慧农业
1.4 使用Python的理由
1.4.1 Python特性
1.4.2 Python无处不在
1.4.3 开发速度有时更重要
1.5 美丽的相遇
1.5.1 Python与终端
1.5.2 Python与网关
1.5.3 Python与云平台
1.5.4 物联网Python全栈开发
第2章 开启Python之旅
2.1 Python版本的选择
2.2 搭建开发环境
2.2.1 安装VMware
2.2.2 在VMware上安装Ubuntu
2.2.3 安装VMware Tools工具
2.2.4 虚拟机的网络配置
2.2.5 Samba共享设置
2.2.6 修改Python版本
2.3 开始编写Python程序
2.3.1 交互式解释器
2.3.2 源代码执行
2.3.3 注释
2.3.4 代码块和缩进
2.3.5 继续和分隔
2.3.6 输入和输出
2.4 变量和数据类型
2.4.1 变量赋值
2.4.2 常量
2.4.3 数据类型
2.5 条件和循环
2.5.1 if语句
2.5.2 while循环
2.5.3 for in循环
2.5.4 跳出循环
2.5.5 pass语句
2.6 函数
2.6.1 定义函数
2.6.2 函数调用
2.6.3 函数的参数
2.6.4 内置函数
2.7 变量进阶
2.7.1 全局变量与局部变量
2.7.2 global关键字
2.7.3 nonlocal关键字
2.7.4 变量作用域
2.8 模块与包
2.8.1 使用模块
2.8.2 包
2.9 异常处理
第3章 Python数据结构
3.1 字符串
3.1.1 索引和切片
3.1.2 字符串运算符
3.1.3 字符串格式化
3.1.4 字符编码
3.2 列表
3.2.1 访问列表
3.2.2 更改列表
3.2.3 列表操作符
3.2.4 列表常用函数
3.3 元组
3.3.1 访问元组
3.3.2 元组操作符
3.3.3 元组内置函数
3.4 字典
3.4.1 访问字典
3.4.2 修改字典
3.4.3 字典键的特性
3.4.4 字典函数
3.5 集合
3.5.1 忽略重复元素
3.5.2 无序
3.5.3 常用操作
第4章 Python高级特性
4.1 生成器
4.1.1 列表推导式
4.1.2 生成器表达式
4.1.3 生成器函数
4.2 迭代器
4.3 函数式编程
4.3.1 高阶函数
4.3.2 内置高阶函数
4.3.3 闭包
4.3.4 装饰器
4.3.5 匿名函数
4.3.6 偏函数
4.4 面向对象编程
4.4.1 类与对象
4.4.2 访问限制
4.4.3 继承
4.4.4 多重继承
4.4.5 多态
4.4.6 运算符重载
第5章 物联网核心组件
5.1 网络通信方案
5.1.1 WIFI网络
5.1.2 移动网络
5.1.3 Zigbee
5.1.4 BLE
5.1.5 LoRa
5.1.6 NB-IoT
5.2 网络通信协议
5.2.1 HTTP
5.2.2 WebSocket
5.2.3 XMPP
5.2.4 CoAP
5.2.5 MQTT
5.3 硬件
5.4 物联网云平台
5.4.1 OneNet
5.4.2 AWS IoT
5.4.3 Waston IoT
第6章 MicroPython开发物联网终端
6.1 MicroPython简介
6.1.1 MicroPython项目
6.1.2 MicroPython特点
6.1.3 MicroPython源码
6.2 MicroPython开发板
6.2.1 官方开发板PYBoard
6.2.2 国内开发板TPYBoard
6.2.3 OpenMV
6.2.4 LoPy
6.3 第一个MicroPython程序
6.4 交互式解释器
6.5 按键中断与回调
6.6 定时器的使用
6.7 串口测试
6.8 SPI接口驱动液晶屏
6.8.1 硬件连接
6.8.2 LCD屏驱动
6.8.3 字库说明
6.8.4 主程序
6.9 源码编译与固件升级
6.9.1 准备编译环境
6.9.2 源码下载与编译
6.9.3 固件烧写
6.10 MicroPython多线程
6.10.1 MicroPython线程简介
6.10.2 MicroPython线程使用
6.10.3 多线程中的锁
6.11 安全模式及恢复出厂设置
6.11.1 安全模式
6.11.2 恢复出厂设置
第7章 构建物联网网关
7.1 网关概述
7.1.1 网关的构成
7.1.2 常用物联网网关
7.2 自主构建网关
7.2.1 交叉编译
7.2.2 编译引导程序
7.2.3 内核配置与编译
7.2.4 制作文件系统
7.2.5 分区与下载
7.2.6 系统启动流程简介
7.2.7 移植Python3
7.3 树莓派作网关
7.3.1 初次启动树莓派
7.3.2 串口登录树莓派
7.3.3 SSH访问树莓派
7.3.4 升级Python版本
7.3.5 必备工具安装
7.3.6 板载WIFI配置
7.3.7 串口通信
第8章 网关数据编码与处理
8.1 读写CSV文件
8.1.1 读取CSV文件
8.1.2 写入CSV文件
8.2 JSON解析
8.2.1 JSON数据格式
8.2.2 编码
8.2.3 解码
8.3 XML操作
8.3.1 XML简介
8.3.2 解析XML
8.3.3 创建与修改
8.4 二进制数据的读写
8.5 Base64编解码
8.6 正则表达式
8.6.1 正则表达式简介
8.6.2 re模块
8.6.3 贪婪匹配
第9章 网关多进程与多线程
9.1 多进程
9.1.1 multiprocessing模块
9.1.2 进程同步
9.1.3 进程间通信
9.2 多线程
9.2.1 threading模块
9.2.2 线程同步
9.2.3 线程间通信
9.3 多线程和多进程的思考
9.3.1 多核CPU利用率实验
9.3.2 GIL全局锁
9.3.3 切换的开销
9.3.4 多线程与多进程的选择
9.4 异步IO
9.4.1 协程
9.4.2 协程与多线程对比
9.4.3 asyncio
第10章 网关数据持久化
10.1 文件操作
10.1.1 读写文本数据
10.1.2 操作文件和目录
10.1.3 读写压缩文件
10.1.4 内存映射
10.1.5 临时文件与目录
10.1.6 序列化Python对象
10.2 SQLite数据库
10.2.1 SQLite简介
10.2.2 命令行操作SQLite
10.2.3 创建数据库
10.2.4 创建表
10.2.5 SQL语句
10.2.6 SQLite的Python编程
第11章 Python扩展
11.1 Python扩展的原因
11.2 连接硬件的纽带
11.3 C语言扩展Python
11.3.1 简单的C语言Python扩展
11.3.2 传递整型参数
11.3.3 传递字符串参数
第12章 网关网络编程
12.1 网关网络通信方案
12.2 Socket编程
12.3 requests
12.3.1 上传文件
12.3.2 下载文件
12.4 hbmqtt
12.4.1 安装
12.4.2 hbmqtt命令操作
12.4.3 hbmqtt API编程
12.5 LoRa网络通信
12.5.1 LoRa模块初始化
12.5.2 数据监听与接收
12.5.3 数据缓存
第13章 物联网后台Web开发
13.1 Django简介
13.2 创建一个网站
13.2.1 Django安装
13.2.2 创建项目
13.2.3 运行与访问
13.3 网站首页
13.3.1 源码文件结构
13.3.2 视图与URL配置
13.4 Django模板
13.4.1 Django模板系统
13.4.2 模板继承
13.5 Django模型
13.5.1 安装MySQL数据库
13.5.2 创建模型
13.5.3 必要的配置
13.6 用户注册
13.7 账号登录
第14章 物联网Python项目实战
14.1 项目简介
14.2 终端设备程序开发
14.2.1 采集空气温湿度
14.2.2 获取环境光强度
14.2.3 雨量检测
14.2.4 水位检测
14.2.5 土壤湿度检测
14.2.6 水泵的控制
14.2.7 入侵检测
14.2.8 灯光控制
14.2.9 电量检测
14.2.10 LoRa通信
14.2.11 JSON消息
14.3 网关程序开发
14.3.1 终端通信
14.3.2 数据库管理
14.3.3 文件备份
14.3.4 服务器通信
14.3.5 2G模块的使用
14.4 服务器端程序开发
14.4.1 与网关通信
14.4.2 环境数据可视化
14.4.3 滴灌控制
14.4.4 灯光控制
14.4.5 报警显示与设置
14.4.6 设备管理
14.4.7 备份文件管理
· · · · · · (收起)
读后感
用户评价
本书在介绍具体硬件平台与软件框架的结合时,展现了一种高度的兼容性和前瞻性。我尤其欣赏作者在选择示例项目时,兼顾了广泛性和代表性,既涵盖了树莓派这类成熟的边缘计算平台,也涉及到了对资源更受限的微控制器环境的适配思路。书中对于如何利用Python的跨平台特性来统一管理不同厂商、不同操作系统的设备群落的策略,提供了独到的见解。它不是局限于某一个特定的硬件供应商的SDK,而是致力于构建一套基于通用协议和灵活代码库的开发范式。这种“授人以渔”的教学方法,意味着读者在掌握了书中的核心技术栈后,能够迅速迁移到接触到的任何新的物联网硬件上,而不会被锁定在特定的技术栈中。这种对长期学习路径的考虑,使得这本书的价值远超于一个简单的项目手册。
这本书的开篇就展现出了一种务实、直击痛点的技术路线图,不同于市面上很多停留在理论概念上的物联网书籍,它直接将读者带入了实际操作的场景。我特别欣赏作者在讲解基础概念时,并没有用晦涩难懂的术语进行堆砌,而是巧妙地融入了项目案例的背景故事,让人感觉不是在学习一堆枯燥的API文档,而是在解决一个真实的工程问题。比如,书中对于传感器数据采集与预处理的章节,不仅详细列举了不同类型传感器的接口协议,还深入探讨了数据清洗在物联网边缘计算中的必要性,以及如何利用轻量级的Python库来实现高效的初级过滤,这对于初学者来说,无疑是扫清了从理论到实践的第一道障碍。更让我惊喜的是,作者对于数据传输协议的选择和比较也做了深入的剖析,从经典的MQTT到新兴的CoAP,不同的应用场景下应该如何取舍,书中的论述逻辑清晰,有理有据,提供了清晰的决策框架。这种贴近实战的叙事方式,极大地激发了我继续往下钻研的兴趣,感觉每翻一页,都在快速积累实战经验。
对于物联网安全这一至关重要的议题,这本书的处理方式显得尤为成熟和负责任。在当前网络安全形势日益严峻的背景下,许多物联网相关的书籍常常避而不谈或者只是泛泛而过,但本书却用专门的章节来剖析了从设备认证到数据加密的全链路安全挑战。作者没有采用空洞的口号式警告,而是深入到具体的加密算法在嵌入式设备上的资源消耗考量,以及如何用Python实现轻量级的安全通信层。我印象最深的是关于设备身份验证机制的讨论,书中对比了基于证书和基于Token的不同实现路径,并给出了在资源受限环境中选择最佳方案的实用建议。这种深入到“如何做”而不是“应该做什么”的层面,对于致力于构建健壮物联网系统的开发者来说,无疑是提供了极大的助力。它让人明白,安全不是一个可选的附加项,而是融入到开发流程中的核心组成部分。
读完关于云端集成与数据可视化的部分,我深刻体会到作者在架构设计上的深厚功力。很多教程在讲完数据采集后,往往草草收场,留给读者一个巨大的空白去自行对接复杂的云服务平台。然而,这本书的优势恰恰体现在它对端到端解决方案的完整构建上。它没有仅仅停留在如何将数据推送到服务器,而是详细演示了如何利用Python生态中强大的数据处理和可视化工具链,构建起一个可操作、可监控的物联网监控大屏。特别是它对异步I/O在处理高并发数据流时的优化策略的讲解,非常具有启发性。书中给出的代码示例不仅是能运行的模板,更是对性能瓶颈的预见和规避方法的教学。我尝试着将书中的一个实时数据聚合的例子,应用到我自己的项目中,发现效率比我之前硬编码的循环等待要高出数倍,这直接证明了书中理论与实践的完美结合。这种对系统性能的关注,体现了作者并非仅仅停留在“能跑起来”的阶段,而是追求“跑得好、跑得稳”的专业态度。
我个人最喜欢这本书的最后一个特点是其对未来趋势的把握和对高级应用的引导。在完成了基础和中级内容的构建后,作者并没有戛然而止,而是将视野拓展到了更具挑战性的领域,比如边缘AI推理的部署和基于事件驱动的系统设计。书中对于如何在Python环境中集成TensorFlow Lite或者PyTorch Mobile模型的讨论,为那些希望将智能分析能力下沉到物联网终端的应用开发者打开了一扇窗。这些内容虽然技术深度陡增,但作者依然保持了清晰的脉络,通过循序渐进的步骤,展示了如何将复杂的机器学习模型封装成可调用的服务组件。这让我意识到,这本书不仅仅是关于如何“连接”物联网,更是关于如何让物联网设备变得“智能”起来的实战指南,为我后续深入研究AIoT领域奠定了坚实的基础。
还没接触过物联网项目,对终端设备不熟悉,看完这本书就感觉心里有底了,踏实!
还没接触过物联网项目,对终端设备不熟悉,看完这本书就感觉心里有底了,踏实!
还没接触过物联网项目,对终端设备不熟悉,看完这本书就感觉心里有底了,踏实!
还没接触过物联网项目,对终端设备不熟悉,看完这本书就感觉心里有底了,踏实!
还没接触过物联网项目,对终端设备不熟悉,看完这本书就感觉心里有底了,踏实!