improve zh-cn translations (#289)

* Update README.zh-cn.md

* Update assignment.zh-cn.md

* Update README.zh-cn.md

* Update virtual-device.zh-cn.md

* Update virtual-device.zh-cn.md

* Update README.zh-cn.md

* Update README.zh-cn.md
pull/300/head
Flex Zhong 3 years ago committed by GitHub
parent 583dddd599
commit 86c18e3990
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -14,15 +14,15 @@
本课程将涵盖: 本课程将涵盖:
* [什么是 物联网IoT](#what-is-the-internet-of-things) * [什么是 “物联网IoT](#what-is-the-internet-of-things)
* [IoT 设备](#iot-devices) * [IoT 设备](#iot-devices)
* [设置你的设备](#set-up-your-device) * [设置你的设备](#set-up-your-device)
* [IoT 的应用场景](#applications-of-iot) * [IoT 的应用场景](#applications-of-iot)
* [在你的周围的IoT 设备例子](#examples-of-iot-devices-you-may-have-around-you) * [在你的周围的 IoT 设备例子](#examples-of-iot-devices-you-may-have-around-you)
## 什么是 物联网IoT ## 什么是 “物联网IoT
为了形容运用传感器sensors又译作感应器来连接网络与物理世界1999年 [凯文·阿什顿Kevin Ashton](https://wikipedia.org/wiki/Kevin_Ashton) 生造了物联网IoT这个词。自从那时起,这个术语被用来形容任何能够与周围物理世界交互的设备。这些设备可以使用传感器收集数据,或者使用执行器(actuators指的是执行诸如打开开关点亮发光二极管等操作的设备在物理世界完成任务。通常执行器会连接到其它设备或者互联网。 为了形容运用传感器sensors又译作感应器来连接网络与物理世界1999 年 [凯文·阿什顿Kevin Ashton](https://wikipedia.org/wiki/Kevin_Ashton) 生造了“物联网IoT这个词。自从那时起,这个术语被用来形容任何能够与周围物理世界交互的设备。这些设备可以使用传感器收集数据,或者使用执行器actuators指的是执行诸如打开开关点亮发光二极管等操作的设备在物理世界完成任务。通常执行器会连接到其它设备或者互联网。
> **传感器** 从世界中收集数据,例如:测量速度、温度或地点。 > **传感器** 从世界中收集数据,例如:测量速度、温度或地点。
> >
@ -30,9 +30,9 @@
物联网作为一个技术领域不仅是设备它也包含云服务这些服务能处理传感器数据或者将请求传送给跟物联网设备有连接的执行器。它也包括没有或不需要互联网连接的设备它们通常被称为“边缘设备edge devices而且它们有能力用基于云的AI模型自己处理与回应传感器的数据。 物联网作为一个技术领域不仅是设备它也包含云服务这些服务能处理传感器数据或者将请求传送给跟物联网设备有连接的执行器。它也包括没有或不需要互联网连接的设备它们通常被称为“边缘设备edge devices而且它们有能力用基于云的AI模型自己处理与回应传感器的数据。
物联网是一个快速发展的技术领域。专家预计2020底世界上有三百亿物联网设备部署并连接到互联网。专家也预计2025年物联网设备将收集大概80 ZB80万亿GB的数据。这是巨量的数据 物联网是一个快速发展的技术领域。专家预计2020 底,世界上有三百亿物联网设备部署并连接到互联网。专家也预计2025 年,物联网设备将收集大概 80 ZB80 万亿 GB的数据。这是巨量的数据
![这个图表展示随着时间的推移的有源 IoT 设备;它展示出一个上升趋势,从2015年不超过50亿到2025年超过300亿](../../../../images/connected-iot-devices.svg) ![这个图表展示随着时间的推移的有源 IoT 设备;它展示出一个上升趋势,从 2015 年不超过 50 亿到 2025 年超过 300 亿](../../../../images/connected-iot-devices.svg)
✅ 做一点儿研究: 物联网设备收集的数据,多少是有用的、多少是被浪费的?为什么那么多数据被忽略了? ✅ 做一点儿研究: 物联网设备收集的数据,多少是有用的、多少是被浪费的?为什么那么多数据被忽略了?
@ -60,13 +60,13 @@ IoT 的 **T** 代表 **Things**(物)—— 可以和物理世界交互的设
🔌 可编程输入/输出I/O连接——为了和外围设备如传感器或执行器通信 🔌 可编程输入/输出I/O连接——为了和外围设备如传感器或执行器通信
微控制器通常是较便宜的计算设备定制硬件的平均成本下降到0.50美元,而有些设备低至 0.03 美元。开发者套件的起价低至 4 美元,但加上越多功能,价钱就越高。[Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) 是个来自 [Seeed studios](https://www.seeedstudio.com) 的微控制器它包含传感器、执行器、Wi-Fi和一个屏幕总共算起来大约 30美元。 微控制器通常是较便宜的计算设备;定制硬件的平均成本下降到 0.50 美元,而有些设备低至 0.03 美元。开发者套件的起价低至 4 美元,但加上越多功能,价钱就越高。[Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) 是个来自 [Seeed studios](https://www.seeedstudio.com) 的微控制器它包含传感器、执行器、Wi-Fi 和一个屏幕,总共算起来大约 30 美元。
![一个Wio Terminal](../../../../images/wio-terminal.png) ![一个 Wio Terminal](../../../../images/wio-terminal.png)
> 💁 当你在网上寻找微控制器时,要小心用 **MCU** 这个词,因为这回带来许多关于漫威电影宇宙Marvel Cinematic Universe的搜索结果而不是关于微控制器的。 > 💁 当你在网上寻找微控制器时,要小心用 **MCU** 这个词,因为带来许多关于漫威电影宇宙Marvel Cinematic Universe的搜索结果而不是关于微控制器的。
微控制器被设计成通过编程完成有限数量的非常特定的任务不像PC 或 Mac 那样的通用计算机。除了一些很特殊的场景,你无法连接显示器、键盘和鼠标并利用它完成通用任务。 微控制器被设计成通过编程完成有限数量的非常特定的任务,不像 PC 或 Mac 那样的通用计算机。除了一些很特殊的场景,你无法连接显示器、键盘和鼠标并利用它完成通用任务。
微控制器开发者套件通常包括额外的传感器和执行器。大多数电路板会有至少一个可编程的发光二极管LEDs还有其它设备例如用来添加不同制造商的传感器或执行器或是用来添加内置传感器的标准插头平时最常见的如温度。有些微控制器有内置的无线连接如蓝牙或 Wi-Fi或者在电路板上有额外的微控制器来添加这种连接。 微控制器开发者套件通常包括额外的传感器和执行器。大多数电路板会有至少一个可编程的发光二极管LEDs还有其它设备例如用来添加不同制造商的传感器或执行器或是用来添加内置传感器的标准插头平时最常见的如温度。有些微控制器有内置的无线连接如蓝牙或 Wi-Fi或者在电路板上有额外的微控制器来添加这种连接。
@ -80,21 +80,21 @@ IoT 的 **T** 代表 **Things**(物)—— 可以和物理世界交互的设
Raspberry Pi 是其中最流行的单板机。 Raspberry Pi 是其中最流行的单板机。
与微控制器一样单板机具有CPU、内存和输入/输出引脚但它们也有额外的功能如一个让你连接显示器的图形芯片、音频输出以及USB端口它让你连接键盘、鼠标和其它标准USB设备如网络摄像头和外置储存。程序与操作系统一起存储在 SD 卡或硬盘驱动器上,而不是内置于板中的内存芯片。 与微控制器一样,单板机具有 CPU、内存和输入/输出引脚,但它们也有额外的功能,如一个让你连接显示器的图形芯片、音频输出,以及 USB 端口它让你连接键盘、鼠标和其它标准USB设备如网络摄像头和外置储存。程序与操作系统一起存储在 SD 卡或硬盘驱动器上,而不是内置于板中的内存芯片。
> 🎓 你可以把单板机当成一个更小、更便宜的个人电脑就像你现在正在用来读这篇文章的PC或Mac。可是单板机还增加了通用输入/输出引脚GPIOgeneral-purpose input/output让你和传感器、执行器交互。 > 🎓 你可以把单板机当成一个更小、更便宜的个人电脑,就像你现在正在用来读这篇文章的 PC Mac。可是单板机还增加了通用输入/输出引脚GPIOgeneral-purpose input/output让你和传感器、执行器交互。
单板机是功能齐全的计算机所以你可以用任何编程语言来为它写程序。我们通常用Python为物联网设备写程序。 单板机是功能齐全的计算机,所以你可以用任何编程语言来为它写程序。我们通常用 Python 为物联网设备写程序。
### 日后课程的硬件选择 ### 日后课程的硬件选择
所有后续课程都包括使用物联网设备与物理世界交互并与云通信的作业。每节课会支持3种设备选择Arduino使用Seeed Studios Wio Terminal或者单板机物理设备Raspberry Pi 4或在你的电脑上运行的虚拟单板机。 所有后续课程都包括使用物联网设备与物理世界交互并与云通信的作业。每节课会支持3种设备选择Arduino使用 Seeed Studios Wio Terminal或者单板机物理设备Raspberry Pi 4或在你的电脑上运行的虚拟单板机。
你能在[硬件手册](../../../../hardware.md)查到完成作业所需的硬件。 你能在[硬件手册](../../../../hardware.md)查到完成作业所需的硬件。
> 💁 你不需要为了完成作业而买任何物联网硬件;虚拟单板机即可完成所有任务。 > 💁 你不需要为了完成作业而买任何物联网硬件;虚拟单板机即可完成所有任务。
要使用哪种硬件是你的选择取决于你家里或学校里有什么以及你知道或想学的编程语言。两种硬件都使用同样的传感器生态系统所以万一你想途中改变你的选择你也不需要替换大部分的套件。用虚拟单板机相当于在Raspberry Pi上学习如果你最后购买了设备和传感器大部分代码都可以转移到 Pi 上。 要使用哪种硬件是你的选择,取决于你家里或学校里有什么,以及你知道或想学的编程语言。两种硬件都使用同样的传感器生态系统,所以万一你想途中改变你的选择,你也不需要替换大部分的套件。用虚拟单板机相当于在 Raspberry Pi 上学习,如果你最后购买了设备和传感器,大部分代码都可以转移到 Pi 上。
### Arduino 开发者套件 ### Arduino 开发者套件
@ -104,7 +104,7 @@ Raspberry Pi 是其中最流行的单板机。
### 单板机开发者套件 ### 单板机开发者套件
如果你对使用单板机学物联网开发有兴趣你可以用Raspberry Pi树莓派或者在你的电脑运行的虚拟设备来完成作业。 如果你对使用单板机学物联网开发有兴趣,你可以用 Raspberry Pi树莓派或者在你的电脑运行的虚拟设备来完成作业。
你需要对 Python 有基本的理解,因为将来的课程只会教授与所使用的传感器和执行器相关的代码,以及与云交互的库。 你需要对 Python 有基本的理解,因为将来的课程只会教授与所使用的传感器和执行器相关的代码,以及与云交互的库。
@ -115,7 +115,7 @@ Raspberry Pi 是其中最流行的单板机。
作业将用 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)。 作业将用 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)。
如果你使用的是Raspberry Pi则可以使用完整桌面版 Raspberry Pi OS 运行你的树莓派,并使用 [VS Code 的 Raspberry Pi OS版](https://code.visualstudio.com/docs/setup/raspberry-pi?WT.mc_id=academic-17441-jabenn)直接在你的树莓派上写程序。或者把它当成一个无头设备,从你的电脑用 VS Code 的 [Remote SSH插件](https://code.visualstudio.com/docs/remote/ssh?WT.mc_id=academic-17441-jabenn)写程序;这个插件让你连接到树莓派,编辑,调试和运行代码,就像你直接在树莓派上写程序一样。 如果你使用的是 Raspberry Pi则可以使用完整桌面版 Raspberry Pi OS 运行你的树莓派,并使用 [VS Code 的 Raspberry Pi OS 版](https://code.visualstudio.com/docs/setup/raspberry-pi?WT.mc_id=academic-17441-jabenn)直接在你的树莓派上写程序。或者把它当成一个无头设备,从你的电脑用 VS Code 的 [Remote SSH 插件](https://code.visualstudio.com/docs/remote/ssh?WT.mc_id=academic-17441-jabenn)写程序;这个插件让你连接到树莓派,编辑,调试和运行代码,就像你直接在树莓派上写程序一样。
如果你选择用虚拟设备,将直接在你的电脑上写程序。你不会直接访问传感器和执行器,而是用工具来模拟此硬件,提供自己定义的传感器值,并在屏幕上显示执行器的结果。 如果你选择用虚拟设备,将直接在你的电脑上写程序。你不会直接访问传感器和执行器,而是用工具来模拟此硬件,提供自己定义的传感器值,并在屏幕上显示执行器的结果。
@ -127,13 +127,13 @@ Raspberry Pi 是其中最流行的单板机。
这些说明包括您将使用的硬件或工具的创建者提供的第三方网站链接。这是为了确保你始终遵照工具和硬件的最新说明。 这些说明包括您将使用的硬件或工具的创建者提供的第三方网站链接。这是为了确保你始终遵照工具和硬件的最新说明。
按照相关的指南来设置你的设备并完成一个“Hello World”项目。我们将用4个课程创造一个物联网夜灯而这是第一步。 按照相关的指南来设置你的设备并完成一个“Hello World”项目。我们将用 4 个课程创造一个物联网夜灯,而这是第一步。
* [ArduinoWio Terminal](wio-terminal.zh-cn.md) * [ArduinoWio Terminal](wio-terminal.zh-cn.md)
* [单板机Raspberry Pi](../pi.md) * [单板机Raspberry Pi](../pi.md)
* [单板机:虚拟设备](virtual-device.zh-cn.md) * [单板机:虚拟设备](virtual-device.zh-cn.md)
您将使用 VS Code在Arduino 和单板机上编程。如果您以前从未使用过它,请在 [VS Code 站点](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)上阅读更多相关信息。 您将使用 VS Code Arduino 和单板机上编程。如果您以前从未使用过它,请在 [VS Code 站点](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)上阅读更多相关信息。
## 物联网的应用场景 ## 物联网的应用场景
@ -150,7 +150,7 @@ Raspberry Pi 是其中最流行的单板机。
消费物联网指的是消费者购买的家用物联网设备。这些设备中有的非常有用,例如:智能音箱、智能供暖系统和机器人吸尘器。其它的设备可用性则存疑,例如声控水龙头,这意味着您无法关闭它们,因为声控无法在流水声中听到您的声音。 消费物联网指的是消费者购买的家用物联网设备。这些设备中有的非常有用,例如:智能音箱、智能供暖系统和机器人吸尘器。其它的设备可用性则存疑,例如声控水龙头,这意味着您无法关闭它们,因为声控无法在流水声中听到您的声音。
消费物联网设备使人们能够在周围环境中获取更多能力尤其是世界上的10亿个残障人士。机器人吸尘器能为行动不便、无法亲自清扫的人提供干净的地板、声控烤箱让视力或行动较差的人用自己的语音打开烤箱、健康监测器使患者能够监测自己的慢性病情况并定期得到更加详细的信息。这些设备将变得普及到连小孩子也在天天使用它们如学生们在冠状病毒疫情时进行居家学习利用智能家居设备的计时器记录他们的功课或者设置闹钟来提醒他们参与他们未来的课程。 消费物联网设备使人们能够在周围环境中获取更多能力,尤其是世界上的 10 亿个残障人士。机器人吸尘器能为行动不便、无法亲自清扫的人提供干净的地板、声控烤箱让视力或行动较差的人用自己的语音打开烤箱、健康监测器使患者能够监测自己的慢性病情况并定期得到更加详细的信息。这些设备将变得普及到连小孩子也在天天使用它们,如学生们在冠状病毒疫情时进行居家学习,利用智能家居设备的计时器记录他们的功课或者设置闹钟来提醒他们参与他们未来的课程。
✅ 你身上或家里有什么消费物联网设备呢? ✅ 你身上或家里有什么消费物联网设备呢?
@ -166,7 +166,7 @@ Raspberry Pi 是其中最流行的单板机。
工厂以多种不同方式使用物联网设备。它们能使用各种传感器(如:温度、振动、旋转速度等)来监测机械。我们可以监测这些数据,以便在机器超出特定指标时停止机器 如它的温度太高。我们也可以收集并分析这些数据让人工智能AI模型学习故障前的数据再利用它预报其它未来的故障这就叫做“预测性维护”。 工厂以多种不同方式使用物联网设备。它们能使用各种传感器(如:温度、振动、旋转速度等)来监测机械。我们可以监测这些数据,以便在机器超出特定指标时停止机器 如它的温度太高。我们也可以收集并分析这些数据让人工智能AI模型学习故障前的数据再利用它预报其它未来的故障这就叫做“预测性维护”。
为了养活不断增长的人口,数字农业非常重要,尤其是对于依靠[自给农业](https://wikipedia.org/wiki/Subsistence_agriculture) 的5亿家户中的20亿人而言。数字农业的领域包括才几块钱的传感器也包含大规模的商业装置。农民可以首先监测温度以及用[生长度日GDD](https://wikipedia.org/wiki/Growing_degree-day),预测农作物什么时候收割。你们还可以将土壤湿度监测与自动浇水系统连接起来,为他们的植物提供刚好所需的水量,而不浪费水资源。最后,农民可以进一步、用无人驾驶飞机、卫星数据、人工智能来监测大面积农田的作物生长、疾病和土壤质量。 为了养活不断增长的人口,数字农业非常重要,尤其是对于依靠[自给农业](https://wikipedia.org/wiki/Subsistence_agriculture) 的 5 亿家户中的 20 亿人而言。数字农业的领域包括才几块钱的传感器,也包含大规模的商业装置。农民可以首先监测温度以及用[生长度日GDD](https://wikipedia.org/wiki/Growing_degree-day),预测农作物什么时候收割。你们还可以将土壤湿度监测与自动浇水系统连接起来,为他们的植物提供刚好所需的水量,而不浪费水资源。最后,农民可以进一步、用无人驾驶飞机、卫星数据、人工智能来监测大面积农田的作物生长、疾病和土壤质量。
✅ 还有什么物联网设备可以用来帮助农民呢? ✅ 还有什么物联网设备可以用来帮助农民呢?
@ -214,7 +214,7 @@ Raspberry Pi 是其中最流行的单板机。
几个例子: 几个例子:
* 这个推特账户 **[Internet of Sh*t](https://twitter.com/internetofshit)** *(亵渎警告)* 有几个关于消费物联网失败的好例子。 * 这个推特账户 **[Internet of Sh*t](https://twitter.com/internetofshit)** *(亵渎警告)* 有几个关于消费物联网失败的好例子。
* [c|net - 我的 Apple Watch 救了我一命5个人分享他们的故事](https://www.cnet.com/news/apple-watch-lifesaving-health-features-read-5-peoples-stories/) * [c|net - 我的 Apple Watch 救了我一命5 个人分享他们的故事](https://www.cnet.com/news/apple-watch-lifesaving-health-features-read-5-peoples-stories/)
* [c|net - ADT 技术人员承认多年来一直监视客户的摄像头信息](https://www.cnet.com/news/adt-home-security-technician-pleads-guilty-to-spying-on-customer-camera-feeds-for-years/) *(触发警告:未经同意的偷窥)* * [c|net - ADT 技术人员承认多年来一直监视客户的摄像头信息](https://www.cnet.com/news/adt-home-security-technician-pleads-guilty-to-spying-on-customer-camera-feeds-for-years/) *(触发警告:未经同意的偷窥)*
## 作业 ## 作业

@ -2,9 +2,9 @@
## 指示 ## 指示
从智慧农场到智慧城市、医疗保健监测系统、交通或利用公共空间等世界上有非常多IoT项目。 从智慧农场到智慧城市、医疗保健监测系统、交通或利用公共空间等,世界上有非常多 IoT 项目。
在互联网寻找一个让你感兴趣的IoT项目的细节最好是离你不太远的。解释一下项目的好处与坏处例如它带来的益处、它带来的任何麻烦以及他怎么顾及隐私。 在互联网寻找一个让你感兴趣的 IoT 项目的细节,最好是离你不太远的。解释一下项目的好处与坏处,例如:它带来的益处、它带来的任何麻烦以及他怎么顾及隐私。
## 评分表 ## 评分表

@ -1,6 +1,6 @@
# 虚拟单板机 # 虚拟单板机
除了买一个 IoT 设备、传感器和执行器,你也可以用你的电脑来模拟 IoT 硬件。[CounterFit 项目](https://github.com/CounterFit-IoT/CounterFit) 让你在自己的电脑上运行模拟 IoT 硬件如传感器和执行器的应用并从本地Python代码访问传感器和执行器代码的编写方式与使用Raspberry Pi物理硬件相同。 除了买一个 IoT 设备、传感器和执行器,你也可以用你的电脑来模拟 IoT 硬件。[CounterFit 项目](https://github.com/CounterFit-IoT/CounterFit) 让你在自己的电脑上运行模拟 IoT 硬件(如传感器和执行器)的应用,并从本地 Python 代码访问传感器和执行器,代码的编写方式,与使用 Raspberry Pi 物理硬件相同。
## 设置 ## 设置
@ -10,11 +10,11 @@
安装需要的软件。 安装需要的软件。
1. 安装 Python。 在 [Python 的下载页](https://www.python.org/downloads/) 找到最新版本Python的安装指示。 1. 安装 Python。 在 [Python 的下载页](https://www.python.org/downloads/) 找到最新版本 Python 的安装指示。
1. 安装 Visual Studio Code (VS Code)。 这是你将用来写虚拟设备的 Python代码的代码编辑器。在 [VS Code 文档](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) 找到VS Code的安装指示。 1. 安装 Visual Studio Code (VS Code)。 这是你将用来写虚拟设备的 Python 代码的代码编辑器。在 [VS Code 文档](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) 找到 VS Code 的安装指示。
> 💁 如果你对其它平台比较熟悉,你当然可以用你较喜欢的 Python IDE 或 代码编辑器但注意这个课程将根据VS Code提供说明。 > 💁 如果你对其它平台比较熟悉,你当然可以用你较喜欢的 Python IDE 或 代码编辑器,但注意这个课程将根据 VS Code 提供说明。
1. 安装 VS Code 的 Pylance 扩展。 这个 VS Code 扩展提供 Python 语言支持。在 [Pylance 扩展文档](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) 找安装扩展的指示。 1. 安装 VS Code 的 Pylance 扩展。 这个 VS Code 扩展提供 Python 语言支持。在 [Pylance 扩展文档](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) 找安装扩展的指示。
@ -24,13 +24,13 @@
第一次用新的编程语言或技术通常以创建一个“Hello World”应用开始——一个输出类似`"Hello World"`文本的小小应用,以确保所有的工具被设置好。 第一次用新的编程语言或技术通常以创建一个“Hello World”应用开始——一个输出类似`"Hello World"`文本的小小应用,以确保所有的工具被设置好。
这个虚拟 IoT 硬件的“Hello World”应用将确保你安装好 Python 与 Visual Studio Code。它也会连接到 CounterFit以获取虚拟 IoT 传感器和执行器。它不会用到任何硬件,它只会以正确连接来证明每个部分运作良好。 这个虚拟 IoT 硬件的“Hello World”应用将确保你安装好 Python 与 Visual Studio Code。它也会连接到 CounterFit 以获取虚拟 IoT 传感器和执行器。它不会用到任何硬件,它只会以正确连接来证明每个部分运作良好。
这个应用放在名为`nightlight`的文件夹中,稍后将和其他代码结合,以构建夜灯应用。 这个应用放在名为 `nightlight` 的文件夹中,稍后将和其他代码结合,以构建夜灯应用。
### 配置 Python 虚拟环境 ### 配置 Python 虚拟环境
Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)这些是由其他人编写并发布到互联网上的代码包。只需一条命令就可以在你的电脑上安装pip 软件包,并在你的代码中使用它。你将用 pip 安装一个软件包来与CounterFit 沟通。 Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org);这些是由其他人编写并发布到互联网上的代码包。只需一条命令就可以在你的电脑上安装 pip 软件包,并在你的代码中使用它。你将用 pip 安装一个软件包,来与 CounterFit 沟通。
默认情况下,当你安装软件包时,在计算机的任何位置都是可用的,而这可能会造成软件包版本问题,例如:当你为新应用安装软件包的新版本,依靠旧版本的另一应用就有可能出现状况。为了避免这种问题,你可以使用 [Python 虚拟环境](https://docs.python.org/3/library/venv.html),本质上是一个专用文件夹中的 Python 副本,当你安装 pip 软件包时,它们只会安装到那个文件夹中。 默认情况下,当你安装软件包时,在计算机的任何位置都是可用的,而这可能会造成软件包版本问题,例如:当你为新应用安装软件包的新版本,依靠旧版本的另一应用就有可能出现状况。为了避免这种问题,你可以使用 [Python 虚拟环境](https://docs.python.org/3/library/venv.html),本质上是一个专用文件夹中的 Python 副本,当你安装 pip 软件包时,它们只会安装到那个文件夹中。
@ -45,7 +45,7 @@ Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)
cd nightlight cd nightlight
``` ```
2. 现在,运行以下的程序来在`.venv` 文件夹中创建一个虚拟环境 2. 现在,运行以下的程序来在 `.venv` 文件夹中创建一个虚拟环境
```sh ```sh
python3 -m venv .venv python3 -m venv .venv
@ -82,7 +82,7 @@ Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)
> 💁 你的 Python 版本有可能不一样,但只要版本是 3.6 或以上就没事。不然,请删除这个文件夹,并安装较新的 Python 版本,再试一试。 > 💁 你的 Python 版本有可能不一样,但只要版本是 3.6 或以上就没事。不然,请删除这个文件夹,并安装较新的 Python 版本,再试一试。
5. 运行以下的命令来安装CounterFit 软件包。这些软件包包括主要的 CounterFit 应用以及 Grove 硬件的[垫片](https://zh.wikipedia.org/wiki/%E5%9E%AB%E7%89%87_(%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1))。这些垫片让你就像用来自 Grove 生态系统的物理传感器和执行器一样写代码,但把它连接到虚拟 IoT 设备。 5. 运行以下的命令来安装 CounterFit 软件包。这些软件包包括主要的 CounterFit 应用以及 Grove 硬件的[垫片](https://zh.wikipedia.org/wiki/%E5%9E%AB%E7%89%87_(%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1))。这些垫片让你就像用来自 Grove 生态系统的物理传感器和执行器一样写代码,但把它连接到虚拟 IoT 设备。
```sh ```sh
pip install CounterFit pip install CounterFit
@ -94,13 +94,13 @@ Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)
### 编写代码 ### 编写代码
一旦Python 虚拟环境被准备好,你就能为 “Hello World” 应用写代码。 一旦 Python 虚拟环境被准备好,你就能为 “Hello World” 应用写代码。
#### 任务:编写代码 #### 任务:编写代码
创建一个 Python 应用在控制台上打印`"Hello World"` 输出。 创建一个 Python 应用在控制台上打印 `"Hello World"` 输出。
1. 从你的终端或命令行,在虚拟环境中运行以下的程序来创建一个叫做`app.py` 的 Python 文件: 1. 从你的终端或命令行,在虚拟环境中运行以下的程序来创建一个叫做 `app.py` 的 Python 文件:
* 在 Windows 运行: * 在 Windows 运行:
@ -120,13 +120,13 @@ Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)
code . code .
``` ```
> 💁 如果你的终端在 macOS 返回`command not found`,那就代表 VS Code 还未被加进你的 PATH。为了把 VS Code 加进你的 PATH你可以按照 [Launching from the command line section of the VS Code 文档](https://code.visualstudio.com/docs/setup/mac?WT.mc_id=academic-17441-jabenn#_launching-from-the-command-line) 的指示,然后运行命令。在 Windows 和 LinuxVS Code 默认被加进你的 PATH。 > 💁 如果你的终端在 macOS 返回 `command not found`,那就代表 VS Code 还未被加进你的 PATH。为了把 VS Code 加进你的 PATH你可以按照 [Launching from the command line section of the VS Code 文档](https://code.visualstudio.com/docs/setup/mac?WT.mc_id=academic-17441-jabenn#_launching-from-the-command-line) 的指示,然后运行命令。在 Windows 和 LinuxVS Code 默认被加进你的 PATH。
3. 当 VS Code 被启动,它会激活 Python 虚拟环境。被选择的虚拟环境将在底部状态栏出现: 3. 当 VS Code 被启动,它会激活 Python 虚拟环境。被选择的虚拟环境将在底部状态栏出现:
![ 被选择的虚拟环境将在 VS Code的底部状态栏出现](../../../images/vscode-virtual-env.png) ![ 被选择的虚拟环境将在 VS Code的底部状态栏出现](../../../images/vscode-virtual-env.png)
4. 如果VS Code 被启动时VS Code 终端已经正在运行,虚拟环境不会被激活。这时,最容易做的是用 **Kill the active terminal instance** 的按钮: 4. 如果 VS Code 被启动时 VS Code 终端已经正在运行,虚拟环境不会被激活。这时,最容易做的是用 **Kill the active terminal instance** 的按钮:
![VS Code Kill the active terminal instance 按钮](../../../images/vscode-kill-terminal.png) ![VS Code Kill the active terminal instance 按钮](../../../images/vscode-kill-terminal.png)
@ -138,7 +138,7 @@ Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)
如果你没有 `.venv` 的字首在提示上,虚拟环境不在终端中活动。 如果你没有 `.venv` 的字首在提示上,虚拟环境不在终端中活动。
5. 为了启动一个新的 VS Code 终端,选择*Terminal -> New Terminal 或按`` CTRL+` ``。这个新终端将加载虚拟环境,以及激活它的调用将在终端中出现。提示也会有虚拟环境的名字(`.venv` 5. 为了启动一个新的 VS Code 终端,选择 *Terminal -> New Terminal 或按`` CTRL+` ``。这个新终端将加载虚拟环境,以及激活它的调用将在终端中出现。提示也会有虚拟环境的名字(`.venv`
```output ```output
➜ nightlight source .venv/bin/activate ➜ nightlight source .venv/bin/activate
@ -170,7 +170,7 @@ Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)
### 连接“硬件” ### 连接“硬件”
你的第二个“Hello World”步骤是运行 CounterFit 应用并连接你的代码。这相当于把一些 IoT 硬件插入开发者套件。 你的第二个 “Hello World” 步骤,是运行 CounterFit 应用并连接你的代码。这相当于把一些 IoT 硬件插入开发者套件。
#### 任务:连接“硬件” #### 任务:连接“硬件”
@ -193,7 +193,7 @@ Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)
CounterFitConnection.init('127.0.0.1', 5000) CounterFitConnection.init('127.0.0.1', 5000)
``` ```
这个代码从 `counterfit_connection` 模块进口`CounterFitConnection` 类;这个模块来自你刚才安装的 `counterfit-connection` pip 软件包。然后,它初始化跟 CounterFit 应用的连接。应用在`127.0.0.1` 运行着它是一个IP 地址,而你一直可以用它在端口 5000 访问你的本地电脑(通常被叫为*localhost*)。 这个代码从 `counterfit_connection` 模块进口 `CounterFitConnection` 类;这个模块来自你刚才安装的 `counterfit-connection` pip 软件包。然后,它初始化跟 CounterFit 应用的连接。应用在 `127.0.0.1` 运行着;它是一个 IP 地址,而你一直可以用它在端口 5000 访问你的本地电脑(通常被叫为 *localhost*)。
> 💁 如果你有其它应用正在端口 5000 运行着,你可以在代码更新端口,再用 `CounterFit --port <port_number>` 运行 CounterFit在`<port_number>` 填着你想用的端口。 > 💁 如果你有其它应用正在端口 5000 运行着,你可以在代码更新端口,再用 `CounterFit --port <port_number>` 运行 CounterFit在`<port_number>` 填着你想用的端口。
@ -201,7 +201,7 @@ Python 的强大功能之一是能够安装 [pip 软件包](https://pypi.org)
![VS Code Create a new integrated terminal 按钮](../../../../images/vscode-new-terminal.png) ![VS Code Create a new integrated terminal 按钮](../../../../images/vscode-new-terminal.png)
4. 在这个新终端,像以前一样运行`app.py` 文件。CounterFit 的状态将改成 **Connected** 连接LED也会开着。 4. 在这个新终端,像以前一样运行 `app.py` 文件。CounterFit 的状态将改成 **Connected** 连接LED 也会开着。
![CounterFit 被连接了](../../../../images/counterfit-connected.png) ![CounterFit 被连接了](../../../../images/counterfit-connected.png)

@ -14,7 +14,7 @@
# 物联网IoT for Beginners 课程 # 物联网IoT for Beginners 课程
Microsoft 的 Azure Cloud 大使很高兴提供关于 IoT 基础一个12个星期、24课的课程。每一课包括课前测验和课后测验、为了完成课的指示、解答、作业等。我们通过项目式的教学让你一边创建一边学习这是一种有效率巩固新技能的方式。 Microsoft 的 Azure Cloud 大使很高兴提供关于 IoT 基础一个 12 个星期、24 课的课程。每一课包括课前测验和课后测验、为了完成课的指示、解答、作业等。我们通过项目式的教学让你一边创建,一边学习,这是一种有效率巩固新技能的方式。
这些项目囊括食物从农场到桌子的过程。这包括农业、物流、制造、零售和消费者——这些都是 IoT 设备的热门行业。 这些项目囊括食物从农场到桌子的过程。这包括农业、物流、制造、零售和消费者——这些都是 IoT 设备的热门行业。
@ -23,13 +23,13 @@ Microsoft 的 Azure Cloud 大使很高兴提供关于 IoT 基础一个12个星
> Sketchnote by [Nitya Narasimhan](https://github.com/nitya). 请点击图片查看原图。 > Sketchnote by [Nitya Narasimhan](https://github.com/nitya). 请点击图片查看原图。
**多谢我们的作者[Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), 和我们的插图画家[Nitya Narasimhan](https://github.com/nitya).** **多谢我们的作者 [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), 和我们的插图画家 [Nitya Narasimhan](https://github.com/nitya).**
**也感谢帮我们审查以及翻译这个课程的一组 [Microsoft Learn 学生大使](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) [Aditya Garg](https://github.com/AdityaGarg00), [Anurag Sharma](https://github.com/Anurag-0-1-A), [Arpita Das](https://github.com/Arpiiitaaa), [Aryan Jain](https://www.linkedin.com/in/aryan-jain-47a4a1145/), [Bhavesh Suneja](https://github.com/EliteWarrior315), [Faith Hunja](https://faithhunja.github.io/), [Lateefah Bello](https://www.linkedin.com/in/lateefah-bello/), [Manvi Jha](https://github.com/Severus-Matthew), [Mireille Tan](https://www.linkedin.com/in/mireille-tan-a4834819a/), [Mohammad Iftekher (Iftu) Ebne Jalal](https://github.com/Iftu119), [Mohammad Zulfikar](https://github.com/mohzulfikar), [Priyanshu Srivastav](https://www.linkedin.com/in/priyanshu-srivastav-b067241ba), [Thanmai Gowducheruvu](https://github.com/innovation-platform), 和 [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** **也感谢帮我们审查以及翻译这个课程的一组 [Microsoft Learn 学生大使](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) [Aditya Garg](https://github.com/AdityaGarg00), [Anurag Sharma](https://github.com/Anurag-0-1-A), [Arpita Das](https://github.com/Arpiiitaaa), [Aryan Jain](https://www.linkedin.com/in/aryan-jain-47a4a1145/), [Bhavesh Suneja](https://github.com/EliteWarrior315), [Faith Hunja](https://faithhunja.github.io/), [Lateefah Bello](https://www.linkedin.com/in/lateefah-bello/), [Manvi Jha](https://github.com/Severus-Matthew), [Mireille Tan](https://www.linkedin.com/in/mireille-tan-a4834819a/), [Mohammad Iftekher (Iftu) Ebne Jalal](https://github.com/Iftu119), [Mohammad Zulfikar](https://github.com/mohzulfikar), [Priyanshu Srivastav](https://www.linkedin.com/in/priyanshu-srivastav-b067241ba), [Thanmai Gowducheruvu](https://github.com/innovation-platform) 和 [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).**
> **老师们**,我们为这个课程的用法 [提供了一些意见](../for-teachers.md)。如果你想自己创建课程,那我们也提供了一个[课程模板](../lesson-template/README.md). > **老师们**,我们为这个课程的用法 [提供了一些意见](../for-teachers.md)。如果你想自己创建课程,那我们也提供了一个[课程模板](../lesson-template/README.md).
> **学生们** 为了自己学习这个课程,请复刻整个项目库,再自己完成练习,从课前知识测验开始,再阅读讲座,然后完成剩余的活动。尝试通过理解课程的内容来完成项目,而不要仅仅把代码答案抄下来;然而,在每个项目课程里,你都能从 /solutions 文件夹访问那些答案代码。另外一个办法是跟朋友成立学习小组,然后一起分析内容。想进一步研究,我们鼓励你查一查[Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn)。 > **学生们** 为了自己学习这个课程,请复刻整个项目库,再自己完成练习,从课前知识测验开始,再阅读讲座,然后完成剩余的活动。尝试通过理解课程的内容来完成项目,而不要仅仅把代码答案抄下来;然而,在每个项目课程里,你都能从 /solutions 文件夹访问那些答案代码。另外一个办法是跟朋友成立学习小组,然后一起分析内容。想进一步研究,我们鼓励你查一查 [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn)。
[![宣传片](../images/iot-for-beginners.png)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video") [![宣传片](../images/iot-for-beginners.png)](https://youtube.com/watch?v=bccEMm8gRuc "Promo video")
@ -44,11 +44,11 @@ Microsoft 的 Azure Cloud 大使很高兴提供关于 IoT 基础一个12个星
此外,课前的一种低风险知识测验将帮学生为学某个题目树立目标,而课后的第二个知识测验确保他把内容记住。我们设计课程的其中一个目的是让它既灵活又有趣,也给学生们完成这个课程或者课程的一个部分的选择。项目一开始会小,但 12 星期的过程中,它就会变得越来越复杂。 此外,课前的一种低风险知识测验将帮学生为学某个题目树立目标,而课后的第二个知识测验确保他把内容记住。我们设计课程的其中一个目的是让它既灵活又有趣,也给学生们完成这个课程或者课程的一个部分的选择。项目一开始会小,但 12 星期的过程中,它就会变得越来越复杂。
每个项目基于在学生们和业余爱好者能把握到的物质硬件。每个项目调某个项目领域,并提供相关的背景知识。想当个成功的开发者,理解问题的领域是有意义的,所以提供这些背景知识允许学生们在当个 IoT 开发者的景况下思考他们的IoT 解决方案和新知识。学生们将学到解决方案的理由,便得到最终使用者的赞赏。 每个项目基于在学生们和业余爱好者能把握到的物质硬件。每个项目调某个项目领域,并提供相关的背景知识。想当个成功的开发者,理解问题的领域是有意义的,所以提供这些背景知识允许学生们在当个 IoT 开发者的景况下思考他们的 IoT 解决方案和新知识。学生们将学到解决方案的理由,便得到最终使用者的赞赏。
## 硬件 ## 硬件
根据你自己的选择、知道或喜欢的编码语言、学习目标等,我们对于项目的 IoT 硬件有两个选择。我们也提供了一个“虚拟硬件”的版本,为无法拿到硬件或者想在买硬件之前学多一点儿东西的人。你能在[硬件页](../hardware.md)找到更多资料与“购物清单”它也包括来自我们朋友Seeed Studio完整套件的链接。 根据你自己的选择、知道或喜欢的编码语言、学习目标等,我们对于项目的 IoT 硬件有两个选择。我们也提供了一个“虚拟硬件”的版本,为无法拿到硬件或者想在买硬件之前学多一点儿东西的人。你能在[硬件页](../hardware.md)找到更多资料与“购物清单”;它也包括来自我们朋友 Seeed Studio 完整套件的链接。
> 💁 找一下我们的[行为守则](../CODE_OF_CONDUCT.md)、 [贡献](../CONTRIBUTING.md)和 [翻译](../TRANSLATIONS.md)的指导方针。 我们欢迎你的建设性反馈! > 💁 找一下我们的[行为守则](../CODE_OF_CONDUCT.md)、 [贡献](../CONTRIBUTING.md)和 [翻译](../TRANSLATIONS.md)的指导方针。 我们欢迎你的建设性反馈!
@ -65,7 +65,7 @@ Microsoft 的 Azure Cloud 大使很高兴提供关于 IoT 基础一个12个星
- 作业 - 作业
- 课后测验 - 课后测验
> **关于知识测验的注意**: 课前和课后的所有知识测验将在[这个应用中](https://brave-island-0b7c7f50f.azurestaticapps.net),总共有 48 知识测验,每个有三个问题。课中将有它们的链接,但这个应用也可以在本地运行;按照`quiz-app` 文件夹中的指示。它们正在逐渐被本地化中。 > **关于知识测验的注意**: 课前和课后的所有知识测验将在[这个应用中](https://brave-island-0b7c7f50f.azurestaticapps.net),总共有 48 知识测验,每个有三个问题。课中将有它们的链接,但这个应用也可以在本地运行;按照 `quiz-app` 文件夹中的指示。它们正在逐渐被本地化中。
## 课程 ## 课程
@ -75,14 +75,14 @@ Microsoft 的 Azure Cloud 大使很高兴提供关于 IoT 基础一个12个星
| 01 | [入门](../1-getting-started) | 物联网IoT简介 | 学会 IoT 的基本原则(例如:传感器和云服务),同时设置你的第一个 IoT 设备| [物联网IoT简介](../1-getting-started/lessons/1-introduction-to-iot/README.md) | | 01 | [入门](../1-getting-started) | 物联网IoT简介 | 学会 IoT 的基本原则(例如:传感器和云服务),同时设置你的第一个 IoT 设备| [物联网IoT简介](../1-getting-started/lessons/1-introduction-to-iot/README.md) |
| 02 | [入门](../1-getting-started) | 深入了解物联网IoT | 深入了解 IoT 系统的不同部分,以及微控制器和单板机 | [深入了解物联网IoT](../1-getting-started/lessons/2-deeper-dive/README.md) | | 02 | [入门](../1-getting-started) | 深入了解物联网IoT | 深入了解 IoT 系统的不同部分,以及微控制器和单板机 | [深入了解物联网IoT](../1-getting-started/lessons/2-deeper-dive/README.md) |
| 03 | [入门](../1-getting-started) | 用传感器和执行器跟物质世界互相作用 | 学会传感器怎么从物质世界收集数据和执行器怎么发送反馈,同时创建一个夜灯 | [用传感器和执行器跟物质世界互相作用](../1-getting-started/lessons/3-sensors-and-actuators/README.md) | | 03 | [入门](../1-getting-started) | 用传感器和执行器跟物质世界互相作用 | 学会传感器怎么从物质世界收集数据和执行器怎么发送反馈,同时创建一个夜灯 | [用传感器和执行器跟物质世界互相作用](../1-getting-started/lessons/3-sensors-and-actuators/README.md) |
| 04 | [入门](../1-getting-started) | 将你的设备连接到互联网 | 学会怎么把一个 IoT 设备连接到互联网将夜灯连接到MQTT 中转站让它发送和收到消息 | [将你的设备连接到互联网](../1-getting-started/lessons/4-connect-internet/README.md) | | 04 | [入门](../1-getting-started) | 将你的设备连接到互联网 | 学会怎么把一个 IoT 设备连接到互联网,将夜灯连接到 MQTT 中转站让它发送和收到消息 | [将你的设备连接到互联网](../1-getting-started/lessons/4-connect-internet/README.md) |
| 05 | [农场](../2-farm) | 预测植物生长 | 学会怎么用 IoT 设备捕获的温度数据来预测植物生长 | [预测植物生长](../2-farm/lessons/1-predict-plant-growth/README.md) | | 05 | [农场](../2-farm) | 预测植物生长 | 学会怎么用 IoT 设备捕获的温度数据来预测植物生长 | [预测植物生长](../2-farm/lessons/1-predict-plant-growth/README.md) |
| 06 | [农场](../2-farm) | 检测土壤水分 | 学会怎么检测土壤水分以及校准土壤湿度传感器 | [检测土壤水分](../2-farm/lessons/2-detect-soil-moisture/README.md) | | 06 | [农场](../2-farm) | 检测土壤水分 | 学会怎么检测土壤水分以及校准土壤湿度传感器 | [检测土壤水分](../2-farm/lessons/2-detect-soil-moisture/README.md) |
| 07 | [农场](../2-farm) | 自动植物浇水 | 学会怎么用一个中继和 MQTT 为植物浇水使自动化和计时 | [自动植物浇水](../2-farm/lessons/3-automated-plant-watering/README.md) | | 07 | [农场](../2-farm) | 自动植物浇水 | 学会怎么用一个中继和 MQTT 为植物浇水使自动化和计时 | [自动植物浇水](../2-farm/lessons/3-automated-plant-watering/README.md) |
| 08 | [农场](../2-farm) | 将你的植物迁移到云端 | 了解云端和云端 IoT 服务与学会怎么把你的植物连接到它,而不是一个公共 MQTT中转站 | [将你的植物迁移到云端](../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | | 08 | [农场](../2-farm) | 将你的植物迁移到云端 | 了解云端和云端 IoT 服务与学会怎么把你的植物连接到它,而不是一个公共 MQTT 中转站 | [将你的植物迁移到云端](../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) |
| 09 | [农场](../2-farm) | 将你的应用程序逻辑迁移到云端 | 学会怎么在云端写能够响应 IoT 消息的应用程序逻辑 | [将你的应用程序逻辑迁移到云端](../2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | | 09 | [农场](../2-farm) | 将你的应用程序逻辑迁移到云端 | 学会怎么在云端写能够响应 IoT 消息的应用程序逻辑 | [将你的应用程序逻辑迁移到云端](../2-farm/lessons/5-migrate-application-to-the-cloud/README.md) |
| 10 | [农场](../2-farm) | 确保你的植物安全 | 了解 IoT 安全以及学会怎么用密钥和证书来确保你的植物安全 | [确保你的植物安全](../2-farm/lessons/6-keep-your-plant-secure/README.md) | | 10 | [农场](../2-farm) | 确保你的植物安全 | 了解 IoT 安全以及学会怎么用密钥和证书来确保你的植物安全 | [确保你的植物安全](../2-farm/lessons/6-keep-your-plant-secure/README.md) |
| 11 | [交通](../3-transport) | 位置追踪 | 了解 IoT 设备的 GPS位置追踪 | [位置追踪](../3-transport/lessons/1-location-tracking/README.md) | | 11 | [交通](../3-transport) | 位置追踪 | 了解 IoT 设备的 GPS 位置追踪 | [位置追踪](../3-transport/lessons/1-location-tracking/README.md) |
| 12 | [交通](../3-transport) | 存储位置数据 | 学会怎么存储 IoT 数据,让你未来能可视化或分析它 | [存储位置数据](../3-transport/lessons/2-store-location-data/README.md) | | 12 | [交通](../3-transport) | 存储位置数据 | 学会怎么存储 IoT 数据,让你未来能可视化或分析它 | [存储位置数据](../3-transport/lessons/2-store-location-data/README.md) |
| 13 | [交通](../3-transport) | 可视化位置数据 | 学会在地图上可视化位置数据以及地图怎么用 2D 来代表 3D 的世界 | [可视化位置数据](../3-transport/lessons/3-visualize-location-data/README.md) | | 13 | [交通](../3-transport) | 可视化位置数据 | 学会在地图上可视化位置数据以及地图怎么用 2D 来代表 3D 的世界 | [可视化位置数据](../3-transport/lessons/3-visualize-location-data/README.md) |
| 14 | [交通](../3-transport) | 地理围栏 | 学会地理围栏是什么以及怎么用它们来通知当供应链的车辆快到目的地时 | [地理围栏](../3-transport/lessons/4-geofences/README.md) | | 14 | [交通](../3-transport) | 地理围栏 | 学会地理围栏是什么以及怎么用它们来通知当供应链的车辆快到目的地时 | [地理围栏](../3-transport/lessons/4-geofences/README.md) |
@ -113,7 +113,7 @@ npm run convert
## 需要帮忙! ## 需要帮忙!
想贡献一个翻译?请阅读我们的[翻译指导方针](../TRANSLATIONS.md) 以及在[其中一个翻译 issue](https://github.com/microsoft/IoT-For-Beginners/issues?q=is%3Aissue+is%3Aopen+label%3Atranslation) 添加输入。如果你想帮我们翻译成一个新语言,请一个新 issue 用于跟踪。 想贡献一个翻译?请阅读我们的[翻译指导方针](../TRANSLATIONS.md) 以及在[其中一个翻译 issue](https://github.com/microsoft/IoT-For-Beginners/issues?q=is%3Aissue+is%3Aopen+label%3Atranslation) 添加输入。如果你想帮我们翻译成一个新语言,请提交一个新 issue 用于跟踪。
## 其它课程 ## 其它课程

Loading…
Cancel
Save