### 实验名称

实验3 WiFi通讯

### 实验目的

通过该实验的学习与实践：

了解米家云平台接入过程

### 实验背景

​	米家物联网生态是小米公司推出的智能家居解决方案，它通过一系列智能设备和应用程序，实现了家庭自动化和智能化。用户可以通过米家App控制各种智能硬件，如智能灯泡、插座、摄像头、门锁等，实现远程操控、定时任务、设备联动等功能。米家还支持语音控制，与小米的智能语音助手“小爱同学”无缝集成，提供更便捷的操作体验。此外，米家注重用户隐私和设备安全，采用多种安全措施保护用户数据。通过开放平台策略，米家不断吸引第三方开发者和制造商加入，丰富了产品线和功能，满足了不同用户的需求。

### 实验原理

​		设备通过WiFi与米家云平台进行通信。手机App通过WiFi向米家云平台发送指令。再由云平台将指令发送给设备。以实现手机App控制设备。在手机识别设备的过程中，手机通过蓝牙模块扫描到设备，并通过蓝牙向传感器设备发送WiFi的配置信息，使设备能够上网以连接云平台。

### 实验环境

Windows 10

Keil 5.39

小米实训箱

米家App

### 建议课时

4课时

### 实验步骤

一、文件下载

复制链接到浏览器下载数据。

http://10.90.3.2/LMS/AIOT/Intro/3/C1-E1.zip

http://10.90.3.2/LMS/AIOT/Intro/3/C1-S2.zip

二、环境准备

1. 实验软硬件环境

   软件环境：Keil（电脑）、米家App（手机）

   硬件环境：母板及其配套数据线，U1子板2个，C1子板2个，S2子板1个，E1子板1个。

2. C1拨码

   C1在使用前，需要把它的两个拨码调整到图中位置（左：朝下，右：朝上）

   ![3](pic/3.jpg)

3. 实验硬件堆叠方式

   按照图1方式搭好硬件环境

   ![43](pic/43.png)

   ​																		图1 实验硬件堆叠

三、米家产品创建

（创建完成后不要关闭页面）

1. LED产品创建

   （1）打开浏览器，打开网址：https://iot.mi.com/fe-op/productCenter，登录自己的“米家”App的账号，进入产品界面（或点击右上角“控制台”—>“产品”）。

   ![4](pic/4.jpg)

   ![5](pic/5.jpg)

   （2）点击“新建产品”

   ![6](pic/6.jpg)

   选择照明/灯。

   ![7](pic/7.jpg)

   填写相关信息，其中联网方式、开发方式、配网方式固定，产品名称（可以使用“灯”+学号来命名，避免名称混淆），产品型号为1~6位，由小写字母或数字组成（可以使用学号后六位来命名）。

   ![8](pic/8.png)

   品牌选择“自有品牌”—>“商标注册证：无”。

   ![9](pic/9.jpg)

   ![10](pic/10.jpg)

   点击确定，产品创建成功。

   ![11](pic/11.jpg)

   ![12](pic/12.jpg)

   （3）产品配置

   点击刚才创建的产品，进入功能定义，选择开关灯。（创建完成后不要关闭网页）

   ![13](pic/13.jpg)

   ![14](pic/14.jpg)

   之后，点击扩展程序开发，等待它初始化完成即可。

   ![28](pic/28.png)

   ![29](pic/29.jpg)

2. 光照传感器产品创建

   （1）点击“新建产品”

   ![6](pic/6.jpg)

   选择传感器/人体传感器。填写相关信息，其中联网方式、开发方式、配网方式固定，产品名称（可以使用“温湿度传感器”+学号来命名），产品型号为1~6位，由小写字母或数字组成（可以使用学号后六位来命名）。品牌选择“自有品牌”—>“商标注册证：无”。点击确定，创建产品。

   ![58](pic/58.jpg)

   （2）产品配置

   点击刚才创建的产品，进入功能定义，等待页面加载完成，显示出红框中的功能，即为完成。

   ![59](pic/59.jpg)

   之后，点击扩展程序开发，等待它初始化完成即可。

   ![60](pic/60.jpg)

四、程序烧录

1. 米家App控制LED开关

   （1）设备连接

   连接烧录器GD-LINK调试器USB端连接到PC，Micro-USB端插入母板**#0位置**上方的Micro-USB口中。长按母板电源键给系统上电。

   ![2](pic/2.jpg)

   （2）打开软件工程

   解压C1-E1.zip，打开Keil软件，在软件中打开C1-E1工程文件（**C1-E1\arch\gd32\MDK-ARM\Xiaomi-IoT-arch-gd.uvprojx**）。

   ![15](pic/15.jpg)

   ![16](pic/16.jpg)

   （3）修改配置文件

   点击View—>Project Window打开Project窗口。

   ![17](pic/17.jpg)

   找到Xiaomi-IoT-C1-V1—>main—>main.c—>user_config.h，并双击点开。

   ![18](pic/18.jpg)![19](pic/19.jpg)

   找到需要修改的两个参数：USER_MODEL、BLE_PID

   ![20](pic/20.jpg)


   回到产品页面，打开刚创建的产品照明灯，左侧滑动滚轮，找到并点开基本信息

   ![21](pic/21.jpg)

   将产品Model、产品ID(pid)分别替换user_config.h中的USER_MODEL、BLE_PID

   ![22](pic/22.jpg)

   ![23](pic/23.jpg)

   （4）编译

   按下快捷键F7，或者点击build按钮编译工程。

   ![24](pic/24.jpg)

   ![26](pic/26.jpg)

   （5）下载

   按下F8快捷键，或者点击load按钮下载程序到硬件。

   ![25](pic/25.jpg)

   ![27](pic/27.jpg)

   （6）查看结果

   （从产品被创建开始，有几分钟延迟，手机才能扫到设备）

   （母版关机或重新load程序后，需重新添加设备）

   打开手机“米家”App

   <img src="pic/39.jpg" alt="39" style="zoom: 33%;" />

   点击添加设备

   <img src="pic/30.jpg" alt="30" style="zoom:80%;" /><img src="pic/38.jpg" alt="38" style="zoom:80%;" /><img src="pic/33.jpg" alt="33" style="zoom:80%;" />

   点击设备进行连接，选择可用的2.4GWiFi

   <img src="pic/32.jpg" alt="32" style="zoom:80%;" /><img src="pic/31.jpg" alt="31" style="zoom:80%;" />

   连接成功后设置房间，如无房间，需要进行创建，之后设置设备名称（与之前的产品名称不同）

   <img src="pic/34.jpg" alt="34" style="zoom:80%;" /><img src="pic/35.jpg" alt="35" style="zoom:80%;" />

   （如出现<img src="pic/61.jpg" alt="61" style="zoom: 25%;" />，请等待几分钟，之后重新点击卡片，或给母板重新上电并进行上一步的下载过程）

   

   点击开关按钮，即可控制子板E1上LED的开关，通过卡片上的开关也可实现控制。（点击过快可能会显示网络连接失败，请等待几s后重试）

   由于未设置其他功能，所以“亮度”等功能暂不可用。

   <img src="pic/36.jpg" alt="36" style="zoom:80%;" /><img src="pic/37.jpg" alt="37" style="zoom:80%;" />

   添加成员，新添加的成员，也可以看到及控制已添加的设备。

   <img src="pic/40.jpg" alt="40" style="zoom:80%;" /><img src="pic/41.jpg" alt="41" style="zoom:80%;" />

2. 米家App读取光照值

   （1）搭环境

   从母板**#0位置**拔出烧录器GD-LINK调试器Micro-USB端，插入母板**#1位置**上方的Micro-USB口中。（过程中无需关电源）

   ![72](pic/72.jpg)

   （2）打开软件工程

   解压C1-S2.zip，打开Keil软件，在软件中打开C1-S2工程文件（**C1-S2\arch\gd32\MDK-ARM\Xiaomi-IoT-arch-gd.uvprojx**）。

   ![62](pic/62.jpg)

   （3）修改配置文件

   点击View—>Project Window打开Project窗口。

   ![17](pic/17.jpg)

   找到Xiaomi-IoT-C1-V1—>main—>main.c—>user_config.h，并双击点开。

   ![18](pic/18.jpg)![19](pic/19.jpg)

   找到需要修改的两个参数：USER_MODEL、BLE_PID

   ![63](pic/63.jpg)


   回到产品页面，刚创建的光照传感器，左侧滑动滚轮，找到并点开基本信息

   ![21](pic/21.jpg)

   将产品Model、产品ID(pid)分别替换user_config.h中的USER_MODEL、BLE_PID

   ![64](pic/64.jpg)

   （4）编译

   按下快捷键F7，或者点击build按钮编译工程。

   ![65](pic/65.jpg)

   ![66](pic/66.jpg)

   （5）下载

   按下F8快捷键，或者点击load按钮下载程序到硬件。

   ![67](pic/67.jpg)

   ![68](pic/68.jpg)

   （6）查看结果

   （从产品被创建开始，可能会有几分钟延迟，手机才能扫到设备）

   （母版关机或重新load程序后，需重新添加设备）

   打开手机“米家”App

   <img src="pic/39.jpg" alt="39" style="zoom: 33%;" />

   点击添加设备

   <img src="pic/30.jpg" alt="30" style="zoom:80%;" /><img src="pic/38.jpg" alt="38" style="zoom:80%;" />

   点击设备进行连接，选择可用的2.4GWiFi

   <img src="pic/32.jpg" alt="32" style="zoom:80%;" /><img src="pic/31.jpg" alt="31" style="zoom:80%;" />

   连接成功后设置房间，如无房间，需要进行创建，之后设置设备名称（与之前的产品名称不同）

   <img src="pic/34.jpg" alt="34" style="zoom:80%;" /><img src="pic/70.jpg" alt="70" style="zoom:80%;" />

   （如出现<img src="pic/61.jpg" alt="61" style="zoom: 25%;" />，请等待几分钟，之后重新点击卡片，或给母板重新上电并进行上一步的下载过程）

   

   可以查看当前的光照度，每10s自动刷新一次，可通过打手电（注意不要把光源贴到S2上）或用手捂住S2，来大幅改变光照度来观察App上的变化。由于未设置其他功能，所以其他功能暂不可用。

   <img src="pic/71.jpg" alt="71" style="zoom:80%;" /><img src="pic/69.jpg" alt="69" style="zoom:80%;" />

   （7）程序擦除

   ![42](pic/42.jpg)

   （8）长按母板电源键关闭系统，拔下Micro-USB。之后，可取下子板。

### 实验总结

本实验介绍了米家物联网生态、进行了通过米家App读写传感器的相关实验，通过本实验希望同学们能够了解米家物联网生态。