You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/1-getting-started/lessons/1-introduction-to-iot/translations/wio-terminal.zh-cn.md

198 lines
9.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Wio 终端
[Seeed Studios 的 Wio 终端](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) 是个Arduino兼容的微控制器无线上网以及一些传感器和执行器已经被装上还有端口让你用叫做 [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html) 的硬件生态系统加更多传感器和执行器。
![一个 Seeed Studios Wio 终端](../../../../images/wio-terminal.png)
## 设置
想用你个 Wio 终端,你必须在你的电脑上安装几个免费软件。你也需要在连接无线上网前更新 Wio 终端的固件。
### 任务:设置
安装需要的软件以及更新固件。
1. 安装 Visual Studio Code (VS Code)。这是你将用来写 C 或 C++ 的设备代码的编辑器。在 [VS Code 文档](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) 找一下安装 VS Code 的指示。
> 💁 另外一个为 Arduino 开发的 IDE 是 [Arduino IDE](https://www.arduino.cc/en/software)。如果你已经对这个工具熟悉,那你可以把它用来代替 VS Code 和 PlatformIO但这个课程的指示将基于 VS Code。
1. 安装 VS Code 的 PlatformIO 扩展。这是支持用 C 或 C++ 来为微控制器写编码的 VS Code 扩展。在 [PlatformIO 扩展文档](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide&WT.mc_id=academic-17441-jabenn) 找一下在 VS Code 安装扩展的指示。这个扩展依赖着Microsoft C/C++ 扩展来与 C 和 C++ 代码工作而这个C/C++ 扩展在默认情况下会被安装当你安装 PlatformIO。
1. 将你的 Wio 终端连接到你的电脑。Wio 终端底下有个 USB-C 端口,而它需要连接到你的电脑的一个 USB 端口。Wio 终端包括一个 USB-C 至 USB-A 电缆,但万一你的电脑只有 USB-C 端口,那你就需要一个 USB-C 电缆或者一个 USB-A 至USB-C 适配器。
1. 按照 [Wio 终端 Wiki WiFi Overview 文档](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/) 的指示来设置你的 Wio 终端和更新固件。
## Hello world你好世界
第一次用新的编程语言或科技通常以创建一个“Hello World”应用开始——一个输出像 `"Hello World"` 的字的小小应用,为了确保所有的工具被设置好。
Wio 终端的 Hello World 应用将确保你安装好了 Visual Studio Code 与 PlatformIO并为微控制器开发做好设置。
### 创建一个 PlatformIO 项目
第一步是使用为 Wio 终端配置的 PlatformIO 创建一个新项目。
#### 任务:创建一个 PlatformIO 项目
创建 PlatformIO 项目。
1. 将 Wio 终端连接到你的电脑。
1. 启动 VS Code。
1. PlatformIO 的图表应该在旁边的菜单栏上:
![PlatformIO 菜单选项](../../../../images/vscode-platformio-menu.png)
选择这个菜单项,再选择 *PIO Home -> Open*
![PlatformIO 的打开选项](../../../../images/vscode-platformio-home-open.png)
1. 从欢迎屏幕,选择 **+ New Project** 的按钮。
![新项目的按钮](../../../../images/vscode-platformio-welcome-new-button.png)
1.*Project Wizard* 配置项目:
1. 给你的项目取名为 `nightlight`
1.*Board* 的下拉式选单,输入 `WIO` 来过滤板,再选择 *Seeeduino Wio Terminal*
1. 将 *Framework* 保留为 *Arduino*
1. 选中 *Use default location* 复选框,或取消选中它并为你的项目选择一个位置
1. 选择 **Finish** 的按钮
![被完成的项目向导](../../../../images/vscode-platformio-nightlight-project-wizard.png)
PlatformIO 将下载它需要使用为 Wio 终端编译代码和创建项目的组件。它可能花几分钟。
### 调查 PlatformIO 项目
VS Code explorer 将显示PlatformIO向导创建的几个文件与文件夹。
#### 文件夹
* `.pio` - 这个文件夹包含 PlatformIO 需要的临时数据例如库或编译代码。万一它被删除它就会自动重新创造而如果你在GitHub或其它网络分享项目你也不必把它加进源代码管理。
* `.vscode` - 这个文件夹包含 PlatformIO 和 VS Code 用到的配置。万一它被删除它就会自动重新创造而如果你在GitHub或其它网络分享项目你也不必把它加进源代码管理。
* `include` - 这个文件夹是给添加其它库时所需的外部头文件。课程中你不会用到这个文件夹。
* `lib` - 这个文件夹是给要从代码中调用的外部库。课程中你不会用到这个文件夹。* `src` - 这个文件夹包含你应用程序的主要源代码。一开始,它会包含一个文件—— `main.cpp`
* `test` - 这个文件夹是给你放代码的任何单元测试。
#### 文件
* `main.cpp` - 这个文件在 `src` 文件夹中;它包含应用程序的入口点,还有会包含以下的代码:
```cpp
#include <Arduino.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
```
当设备启动Arduino 框架将运行一次`setup` 函数,然后重复运行 `loop` 函数,直到设备关闭。
* `.gitignore` - 这个文件列出了将代码添加到 git 源代码控制时(例如:上传到 GitHub 上的存储库)要忽略的文件和目录。
* `platformio.ini` - 这个文件包含你的设备和应用的配置。打开这个文件,它就包含以下的代码:
```ini
[env:seeed_wio_terminal]
platform = atmelsam
board = seeed_wio_terminal
framework = arduino
```
`[env:seeed_wio_terminal]` 部分有 Wio 终端的配置。你可以有多数的 `env` 部分,让你的代码能为更多板编译。
其它值与项目向导中的配置相匹配:
* `platform = atmelsam` 定义了 Wio 终端使用的硬件(基于 ATSAMD51 的微控制器)
* `board = seeed_wio_terminal` 定义了微控制器板的类型Wio 终端)
* framework = arduino` 定义这个项目使用 Arduino 框架。
### 写 Hello World 应用
你现在已准备好写 Hello World 应用。
#### 任务:写 Hello World 应用
写Hello World 应用。
1. 在 VS Code 打开 `main.cpp` 文件
1. 更改代码以匹配以下内容:
```cpp
#include <Arduino.h>
void setup()
{
Serial.begin(9600);
while (!Serial)
; // Wait for Serial to be ready
delay(1000);
}
void loop()
{
Serial.println("Hello World");
delay(5000);
}
```
`setup`函数初始化与串行端口的连接;在这个情况下,用来将 Wio 终端连接到你的电脑的USB 端口。`9600` 参数是[波特率](https://wikipedia.org/wiki/Symbol_rate) (also known as Symbol rate),以每秒位数为单位的数据通过串行端口发送的速度。这个设置代表每秒发送 9,600 位0 和 1数据。 然后,它等待串行端口准备就绪。
`loop` 函数把 `Hello World!` 发送到串行端口,也就是 `Hello World!` 的字符与换行符。然后,它将花 5,000毫秒或 5 秒睡眠。当 `loop` 结束,它会重新运行,而只要微控制器上电,它会一直重新运行着。
1. 构建代码和把它上传到 Wio 终端
1. 打开 VS Code 的命令面板
1. 输入 `PlatformIO Upload` 来搜索上传选项,再选择 *PlatformIO: Upload*
![ 命令面板中 PlatformIO 的上传选项](../../../../images/vscode-platformio-upload-command-palette.png)
如果有必要的话PlatformIO上传代码前将自动构建代码。
1. 代码将被编译并上传到 Wio 终端
> 💁 如果你正在用macOS, *DISK NOT EJECTED PROPERLY* 的通知将出现。这是因为 Wio 终端作为闪存过程的一部分安装为驱动器,并且在将编译的代码写入设备时断开连接。 你可以忽略这个通知。
⚠️ 如果你收到关于上传端口不可用的错误消息,请首先确保你已经将 Wio 终端连接到你的电脑,并使用屏幕左侧的开关打开。 底部的绿灯应该亮着。 如果仍然出现错误,请快速连续两次拉下开关以强制 Wio 终端进入引导加载程序模式,然后再次尝试上传。
PlatformIO 有一个串行监视器,可以监视从 Wio 终端通过 USB 电缆发送的数据。 这允许你监视由`Serial.println("Hello World");` 命令发送的数据。
1. 打开 VS Code 的命令面板
1. 输入 `PlatformIO Serial` 来搜索串行监视器选项,再选择 *PlatformIO: Serial Monitor*
![ 命令面板中 PlatformIO 的串行监视器选项](../../../../images/vscode-platformio-serial-monitor-command-palette.png)
这将打开一个新终端,而通过串行端口发送的数据将流入这个终端:
```output
> Executing task: platformio device monitor <
--- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at http://bit.ly/pio-monitor-filters
--- Miniterm on /dev/cu.usbmodem101 9600,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Hello World
Hello World
```
每 5 秒,`Hello World` 将打印在串行监视器上
> 💁 你可以在 [code/wio-terminal](code/wio-terminal) 文件夹找到这个代码。
😀 你的 “Hello World” 编码成功了!