### 第13课 摩斯密码

#### 13.1 项目介绍

摩尔斯电码也被称作摩斯密码，是一种时通时断的信号代码，通过不同的排列顺序来表达不同的英文字母、数字和标点符号。

现在我们使用它来作为我们的密码门。

#### 13.2 摩斯密码的相关资料

摩斯密码对应的字符如下：

![](media/morse-code.png)

#### 13.3 实验组件

|![](media/esp32.png)|![](media/button.png)|![](media/servo.png)|![](media/3p.png)|
|-|-|-|-|
|ESP32 Plus主板 *1|按键 *2|180度舵机 *1|3P线 *2|
|![](media/lcd2.png)|![](media/4p.png)|![](media/usb.png)| |
|I2C LCD1602模块 *1|4P线 *1|USB线 *1| |

#### 13.4 模块接线图

木板房子⑦处(左侧)按键1，木板房子⑨处(右侧)按键2，门舵机和I2C 1602 LCD模块的控制引脚：

|木板房子⑦处(左侧)按键1（S引脚）|io4|
|-|-|
|木板房子⑨处(右侧)按键2（S引脚）|io32|
|门舵机（橙黄色线引脚）|io13|
|I2C 1602 LCD模块（SDA引脚）|SDA|
|I2C 1602 LCD模块（SCL引脚）|SCL|

⚠️ **特别注意：智能家居已经组装好了，这里不需要把按键、舵机和I2C 1602 LCD模块拆下来又重新组装和接线，这里再次提供接线图，是为了方便您编写代码！**

![](media/pjt13.png)

#### 13.5 代码流程图

![](media/project13.png)

#### 13.6 实验代码 

简单的使用![](media/morse-code2.png)作为正确密码。

非常简单的实现按钮的点击、双击、长按等功能。对应摩斯密码，点击为“.”，长按再松开为“-”。(“.”的意思是点击按钮，“-”的意思是长按按钮2秒以上)

![](media/pjtx19.png)

#### 13.7 实验结果

按照接线图接好线，外接电源，选择好正确的开发板板型（ESP32 Dev Module）和 适当的串口端口（COMxx），然后单击按钮![](media/upload.png)上传示例代码至ESP32主控板。示例代码上传成功后，上电后，开始LCD1602显示“Enterpassword”，点击或长按木板房子⑦处(左侧)按键1,来输入密码，如果输入正确密码是 “.--.-.” (“.”的意思是点击按钮，“-”的意思是长按按钮2秒以上)；再点击按木板房子⑨处(右侧)按键2，门就转动打开，LCD1602显示“open”；3秒后，门就转动关闭，同时LCD1602显示close；5秒之后，LCD1602显示enteragain。如果是输入了其它错误的密码，门不会动，LCD1602显示error。

![](media/image-13.gif)
