物联网程序设计:基于微软的物联网解决方案 pdf下载pdf下载

物联网程序设计:基于微软的物联网解决方案百度网盘pdf下载

作者:
简介:本篇提供书籍《物联网程序设计:基于微软的物联网解决方案》百度网盘pdf下载
出版社:机械工业出版社京东自营官方旗舰店
出版时间:2019-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

本书涵盖了三个主要的物联网程序设计部分,可帮助我们快速实施物联网解决方案。具体内容包括:如何准备开发环境、从传感器读取数据、与其他配件通信、构建人工视觉、构建电机、构建听力系统,以及如何将机器学习和人工智能融入设备。书中还展示了如何设置远程遥测和预测性维护,如Azure IoT解决方案,以及如何从头开始构建自定义IoT解决方案。

作者简介

Dawid Borycki 是一名软件工程师和生物医学研究员,他拥有丰富的 Microsoft技术栈相关经验,完成了一系列具有挑战性的项目,包括开发设备原型软件(主要是医疗设备)、嵌入式设备接口以及桌面和移动编程。

目录

译者序
前言
第一部分 基础知识
第1章 嵌入式设备编程 2
1.1 什么是嵌入式设备 2
1.1.1 专用固件 2
1.1.2 微控制器的存储器 3
1.2 嵌入式设备无处不在 4
1.3 连接嵌入式设备:物联网 5
1.4 嵌入式设备的基础 7
1.5 嵌入式设备编程与桌面、Web和移动编程 9
1.5.1 相似之处及用户互动 9
1.5.2 硬件抽象层 10
1.5.3 鲁棒性 10
1.5.4 资源 10
1.5.5 安全 11
1.6 Windows 10 IoT Core和通用Windows平台的优势 11
1.7 总结 12
第2章 嵌入式设备上的UWP 13
2.1 什么是Windows 10 IoT Core 13
2.2 UWP的功能 14
2.3 工具的安装和配置 15
2.3.1 Windows 10 15
2.3.2 Visual Studio 2015或更高版本 16
2.3.3 Windows IoT Core项目模板 17
2.3.4 Windows 10 IoT Core Dashboard 18
2.4 配置设备 19
2.4.1 用于RPi2和RPi3的Windows 10 IoT核心入门套件 19
2.4.2 安装Windows 10 IoT Core 21
2.4.3 配置开发板 22
2.5 “Hello,World!”Windows IoT 24
2.5.1 电路连接 24
2.5.2 使用C#和C++打开和关闭LED 30
2.6 实用工具和程序 40
2.6.1 Device Portal 40
2.6.2 Windows IoT远程客户端 41
2.6.3 SSH 43
2.6.4 FTP 44
2.7 总结 46
第3章 Windows IoT编程精粹 47
3.1 将RPi2连接到外部显示器并进行引导配置 47
3.2 有界面和无界面模式 48
3.3 无界面应用 50
3.3.1 C# 50
3.3.2 C++ 52
3.3.3 小结 58
3.4 有界面应用程序的入口点 58
3.5 异步编程 63
3.5.1 工作线程和线程池 63
3.5.2 计时器 66
3.5.3 工作线程与UI同步 71
3.6 使用DispatcherTimer闪烁LED 75
3.7 总结 79
第4章 有界面设备的用户界面设计 80
4.1 UWP应用程序的UI设计 80
4.2 可视化编辑器 81
4.3 XAML命名空间 83
4.4 控件的声明、属性和特性 85
4.5 Style类 87
4.5.1 样式声明 87
4.5.2 样式定义 88
4.5.3 StaticResource和ThemeResource标记扩展 92
4.5.4 视觉状态和VisualStateManager 95
4.5.5 自适应和状态触发器 100
4.5.6 资源集合 103
4.5.7 默认样式和主题资源 109
4.6 布局 109
4.6.1 StackPanel 109
4.6.2 Grid 111
4.6.3 RelativePanel 114
4.7 事件 116
4.7.1 事件处理 116
4.7.2 事件处理函数和视觉设计器 120
4.7.3 事件传播 121
4.7.4 声明和触发自定义事件 123
4.8 数据绑定 126
4.8.1 绑定控件属性 126
4.8.2 转换器 128
4.8.3 绑定到字段 129
4.8.4 绑定到方法 134
4.9 总结 136
第二部分 设备编程
第5章 从传感器读取数据 139
5.1 位、字节和数据类型 140
5.2 解码和编码二进制数据 141
5.2.1 按位运算符 141
5.2.2 移位运算符、位掩码和二进制表示 141
5.2.3 字节编码和字节顺序 150
5.2.4 BitConverter 151
5.2.5 BitArray 153
5.3 Sense HAT扩展板 156
5.4 用户界面 156
5.5 温度和气压 158
5.6 相对湿度 169
5.7 加速度计和陀螺仪 173
5.8 磁力计 177
5.9 传感器校准 183
5.10 单例模式 184
5.11 总结 185
第6章 输入和输出 187
6.1 触觉按钮 188
6.2 操纵杆 190
6.2.1 中间件层 191
6.2.2 控制杆状态可视化 196
6.3 LED阵列 199
6.4 操纵杆和LED阵列集成 206
6.5 LED阵列与传感器读数集成 209
6.6 触摸屏和手势处理 210
6.7 总结 215
第7章 音频处理 216
7.1 语音合成 216
7.2 语音识别 220
7.2.1 背景 220
7.2.2 应用程序功能和系统配置 220
7.2.3 UI更改 221
7.2.4 一次性识别 222
7.2.5 连续识别 225
7.3 使用语音命令进行设备控制 227
7.3.1 设置硬件 227
7.3.2 编码 228
7.4 波的时域和频域 231
7.4.1 快速傅里叶变换 232
7.4.2 采样率和频率范围 238
7.4.3 分贝 239
7.5 波形谱分析器 240
7.5.1 读取文件 240
7.5.2 波形音频文件格式阅读器 241
7.5.3 信号窗口和短时傅里叶变换 244
7.5.4 谱直方图 245
7.5.5 频谱显示:整合 247
7.5.6 在LED阵列上显示频谱 250
7.6 总结 254
第8章 图像处理 255
8.1 使用USB摄像头获取图像 256
8.2 人脸检测 261
8.3 面部追踪 265
8.3.1 在UI中显示面部位置 268
8.3.2 在LED阵列上显示面部位置 269
8.4 OpenCV与原生代码接口 272
8.4.1 解决方案配置和OpenCV安装 272
8.4.2 图像阈值 274
8.4.3 处理结果的可视化 278
8.4.4 对象检测 283
8.4.5 用于物体识别的机器视觉 286
8.5 总结 294
第9章 连接设备 295
9.1 串行通信 295
9.1.1 UART环回模式 296
9.1.2 项目轮廓 296
9.1.3 串行设备配置 297
9.1.4 写数据和读数据 300
9.2 为设备内部通信写应用程序 303
9.2.1 连接转换器 304
9.2.2 远程控制物联网设备 305
9.3 蓝牙 318
9.3.1 设置连接 319
9.3.2 蓝牙绑定和配对 321
9.3.3 LED颜色命令 323
9.3.4 Windows Runtime组件对LedArray类的要求 324
9.3.5 有界面客户端应用程序 329
9.4 Wi-Fi 331
9.5 AllJoyn 335
9.5.1 内省XML文件 336
9.5.2 AllJoyn Studio 338
9.5.3 生产者 340
9.5.4 IoT Explorer for AllJoyn 343
9.5.5 自定义消费者 345
9.6 Windows Remote Arduino 350
9.7 总结 350
第10章 电机 351
10.1 电机和设备控制基础 351
10.2 电机HAT 352
10.3 脉冲宽度调制 353
10.4 直流电机 359
10.4.1 用PWM信号实现电机控制 360
10.4.2 有界面应用程序 363
10.5 步进电机 365
10.5.1 全步模式控制 367
10.5.2 有界面应用程序 372
10.5.3 自动调节速度 373
10.5.4 微步进 376
10.6 伺服电机 381
10.6.1 硬件组装 382
10.6.2 有界面应用程序 383
10.7 提供者模型 385
10.7.1 Lightning提供者 386
10.7.2 PCA9685控制器提供者 387
10.7.3 直流电机控制 390
10.8 总结 391
第11章 设备学习 392
11.1 微软认知服务 393
11.1.1 情绪检测 393
11.1.2 使用LED阵列指示情绪 402
11.1.3 计算机视觉API 404
11.2 定制人工智能 406
11.2.1 动机和概念 406
11.2.2 Microsoft Azure Machine Learning Studio 408
11.3 异常检测 416
11.3.1 训练数据集采集 416
11.3.2 使用一类支持向量机进行异常检测 421
11.3.3 准备和发布Web服务 424
11.3.4 实现Web服务客户端 427
11.3.5 组合所有的内容 432
11.4 总结 435
第三部分 Azure IoT Suite
第12章 远程监控 438
12.1 设置预先配置的解决方案 439
12.2 预配设备 441
12.2.1 注册新设备 441
12.2.2 发送设备信息 442
12.3 发送遥测数据 448
12.4 接收和处理远程命令 452
12.4.1 更新设备信息 452
12.4.2 响应远程命令 454
12.5 Azure IoT服务 456
12.6 总结 457
第13章 预测性维护 458
13.1 预配置解决方案 459
13.1.1 解决方案仪表板 460
13.1.2 机器学习工作区 461
13.1.3 Cortana Analytics Gallery 465
13.2 Azure资源 465
13.3 Azure Storage 467
13.3.1 预测性维护存储 467
13.3.2 遥测和预测结果存储 468
13.3.3 设备列表 469
13.4 Azure Stream Analytics 470
13.5 解决方案源代码 472
13.6 Event Hub和机器学习事件处理器 473
13.6.1 机器学习数据处理器 477
13.6.2 Azure Table存储 480
13.7 WebJob模拟器 484
13.8 预测性维护Web应用程序 487
13.8.1 模拟服务 487
13.8.2 遥测服务 488
13.9 总结 490
第14章 自定义解决方案 491
14.1 IoT Hub 492
14.1.1 客户端应用 493
14.1.2 设备注册表 496
14.1.3 发送遥测数据 500
14.2 流分析 501
14.2.1 存储账户 501
14.2.2 Azure Table 503
14.2.3 Event Hub 503
14.2.4 Stream Analytics Job 504
14.3 事件处理器 510
14.4 使用Microsoft Power BI进行数据可视化 517
14.5 Notification Hub 521
14.5.1 关联Windows Store 522
14.5.2 通知客户端应用 522
14.5.3 Notification Hub的创建和配置 527
14.5.4 使用事件处理器发送Toast通知 529
14.6 将Event Hub处理器部署到云端 532
14.7 总结 535

前言/序言

近些年,物联网(IoT)、大数据、机器学习和人工智能已成为非常热门的话题。物联网被定义为设备互联的全球网络。这些设备可以像植入式葡萄糖连续监测仪或可穿戴设备一样小,也可以像信用卡大小的计算机一样大,如Raspberry Pi。随着此类设备数量的不断增加,它们产生的数据量也将迅速增加,并将出现新的技术挑战。
第一个挑战与存储有关。小型设备具有物理约束,不能存储大型数据集。第二个挑战是大数据的量超出了传统算法的计算能力范围,需要不同的基于统计的方法。这些方法可以由人工智能的一个分支——机器学习提供。因此,物联网、大数据、机器学习和人工智能是紧密相关的概念。通常,设备是端,它通过网络将数据发送到云,在云中存储和处理数据以获得全新的见解,而这些见解依靠以前的技术是很难获得的。这些见解有助于理解和优化智能设备监控的流程。
虽然这种描述听起来很吸引人,但我们要实施自定义IoT解决方案,所需要学习的新技术很多,多到令人生畏。幸运的是,Microsoft创建了Windows 10 IoT Core和Azure IoT Suite,使你能够快速编写自定义IoT解决方案。它们的功能仅受你的想象力限制。在本书中,许多项目将会逐步呈现。通过完成这些项目,你不仅可以获得设备编程的基础知识,而且还可以编写代码来彻底改变设备和机器人,让它们为你工作!
本书分三个主要部分来帮助读者掌握物联网编程。每部分都包含适当的细节,具体内容包括如何准备开发环境、从传感器读取数据、与其他配件通信、构建人工视觉、构建电机、构建听力系统,以及将机器学习和人工智能融入设备。本书还展示了如何设置远程遥测和预测性维护功能,如Azure IoT解决方案,以及如何从头开始构建自定义物联网解决方案。
本书读者对象和所需技能
本书面向学生、程序员、工程师、爱好者、设计师、科学家和研究人员,他们希望利用现有的编程技能开发定制设备和传感器的软件,并使用云来存储、处理和可视化远程传感器读数。
我们假设你了解C#编程的基础知识,并且有丰富的Windows编程经验。因此,本书没有专门讨论C#语言或编程基础知识。本书不需要你了解音频和图像处理、机器学习或Azure的知识,这些主题将在对应章节中详细介绍。
工具和所需硬件
在本书中,使用Windows 10和Visual Studio 2015/2017作为开发环境。我们使用的大多数硬件组件都来自Adafruit Industries提供的用于Raspberry Pi的Microsoft IoT Pack。本书中出现的其他硬件,如相机、Raspberry Pi的扩展板、通信适配器或电机,都将在相关章节中进行描述。
本书的组织结构
本书分为基础知识、设备编程和Azure IoT Suite三个部分。
第一部分介绍嵌入式编程的基础知识,并讨论它们与桌面、Web和移动应用程序编程的区别,还将展示如何配置编程环境,编写“Hello,world!”程序,并运行在Windows 10 IoT Core上。此外,还会介绍有关UWP线程模型和XAML标记的几个用于声明UI的基本概念。大多数有经验的开发人员可以跳过这部分内容,直接进入第二部分。
第二部分介绍如何用Windows 10 IoT Core和UWP进行设备编程。首先展示如何从多个传感器获取数据并控制设备。随后,将解释如何从麦克风和摄像头获取并处理信号。然后,将展示如何使用各种通信协议,包括串行通信、蓝牙、Wi-Fi和AllJoyn,使物联网模块能够与其他设备通信。此外,还会展示如何控制电机并使用Microsoft Cognitive Services(微软认知服务)和Azure Machine Learning(Azure机器学习)为我们使用的设备添加智能。
第三部分聚焦于云计算,将展示如何使用两个预配置的Azure IoT解决方案进行远程设备遥测和预测性维护。在最后一章中,将介绍从头开始构建自定义物联网解决方案的详细过程。该过程展示了物联网编程的本质,包括如何将远程传感器的数据传输到云,在云中存储、处理和呈现。此外,该部分还会解释如何直接向Windows 10上运行的移动应用程序报告异常传感器读数。
本书有6个附录,补充了一些其他的材料,包括如何使用Visual Basic和JavaScript(附录A)、实现LED闪烁、Raspberry Pi的HDMI模式(附录B)、位编码(附录C)、代码共享策略(附录D)、Visual C++ / Component Extensions相关介绍(附录E)以及如何为物联网开发设置Visual Studio 2017(附录F)。这些附录可在线获取,网址为https://aka.ms/IoT/downloads,也可在华章公司网站下载:www.hzbook.com。
关于附带内容
书中添加了配套代码以丰富你的学习体验。可以从以下网址下载本书的配套代码:
https://aka.ms/IoT/downloads
也可以从GitHub下载代码:
https://github.com/ProgrammingForTheIoT
源代码放在相应章节和附录的子文件夹中。为了提高图书的可读性,在书中很多地方都会直接参考配套代码,而不是显示完整的代码。在阅读本书时打开配套代码是个不错的主意。
致谢
如果没有Devon Musgrave的支持,这本书今天就不会存在。关于我的这本图书,他热情地给出回应,进行了初步审阅并提供了写作指导。
我很感谢Chaim Krause彻底检查了本书中讨论的每一个项目,并找到了很多问题,有些甚至是非常细微的问题。我也非常感谢Kraig