版本协议

GPL 3.0

标签
专业版
#第十届立创电赛#用电器开关定时器

创建时间:5个月前

664 1

描述

<h3><img src="https://image.lceda.cn/oshwhub/pullImage/12209bcee48f47c281502a7c89da38e0.jpg" alt="12209bcee48f47c281502a7c89da38e0.jpg"></h3> <h3> </h3> <h3>* 1、项目功能介绍</h3> <hr> <p>天气入秋之际,白天和黑夜的温度往往相差较大,具体来说,晚上睡觉时若不开风扇,室内温度会影响睡眠;但开着风扇睡觉,由于这类风扇只有单纯的需要人为去开启和关闭的功能,到了半夜气温下降后,持续的风吹会让人感觉不适,此时必须起身手动关闭,影响了睡眠连续性。针对这个问题,我想到一个解决方案:在风扇与220V电源插座之间,加装一个具备定时关闭功能的设备,通过预设时间让风扇自动停止运行,从而避免夜间频繁起身操作。但是目前的方案只针对“风扇定时关闭”这个问题,功能单一,局限性太多,于是我在“定时关闭”的基础功能上进行了扩展,让设备从“单一风扇控制器”升级为“<span style="color:#ba372a;"><strong>用电器开关定时器</strong></span>”,具体介绍如下:</p> <p> </p> <div>基于立创 STM32F103C8T6 开发板设计的用电器开关定时器,支持五种运行模式:<span style="color:#e03e2d;"><strong>一键启动、一键关闭、定时关闭、定时开启、间断开启和关闭</strong></span>。</div> <div> </div> <p>1) 核心功能与模式:新增4种运行模式覆盖多场景需求<br><strong>基础控制:</strong>支持一键启动、一键关闭,实现用电器的即时操作;<br><strong>定时功能:</strong>保留定时关闭,并新增定时开启,可预设时间让用电器自动启停(如睡前预设“2小时后关闭”,或预设“3小时后开启”);<br><strong>间歇控制:</strong>增加间断开启关闭模式,适合需要周期性运行的场景(如间歇性通风)。<br> <br>2)交互与显示:清晰掌握设备状态<br><strong>操作方式:</strong>通过实体按键直接设置运行模式、调整倒计时时长;<br><strong>状态指示:</strong>用LED指示灯快速提示当前运行模式;<br><strong>详细显示:</strong>搭配0.91寸OLED屏,实时显示倒计时、RTC实时时间及当前具体运行状态,信息一目了然。<br> <br>3)控制与联动:稳定且便捷<br><strong>硬件控制:</strong>通过继电器的吸合与断开,控制用电器的电源通断,适配风扇、灯等多种家用设备;<br><strong>远程联动:</strong>内置蓝牙模块,可将设备运行数据实时发送至手机,信息了如指掌。</p> <h3> </h3> <p> </p> <h3>*2、项目属性</h3> <hr> <p>项目是否首次公开:是。</p> <p>项目是否为原创:是。</p> <p>项目是否曾经在其他比赛中获奖:否。</p> <p>项目是否在学校参加过答辩:否。</p> <p> </p> <h3>*3、开源协议</h3> <hr> <p>本项目使用GPL3.0开源协议。</p> <p> </p> <h3>*4、硬件部分</h3> <hr> <p> </p> <p><strong>硬件框图</strong></p> <p> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/ea8fade1821e41d1b525b9e7ace7d4bf.png" alt="ea8fade1821e41d1b525b9e7ace7d4bf.png"></p> <p> </p> <div> </div> <div> </div> <p><strong>原理图设计</strong></p> <p> </p> <p><strong> AC-DC 电源模块</strong></p> <div>型号为 HLK-2M05 的 AC-DC 电源模块,用于将 220V 交流电压转换为 5V 直流电压,功率为 2W,输出电流 400mA,满足弱电部分电路的功率需求。已根据模块尺寸图在PCB中绘制满足安装需求的引脚孔径、间距等。</div> <p><img src="https://image.lceda.cn/oshwhub/pullImage/3d68575b7ff242fbab181cb8880c4176.png" width="395" height="213" alt="3d68575b7ff242fbab181cb8880c4176.png"><img src="https://image.lceda.cn/oshwhub/pullImage/bcc1299c76204e1389ab80af6e1713fc.png" alt="bcc1299c76204e1389ab80af6e1713fc.png"><img src="https://image.lceda.cn/oshwhub/pullImage/5f9fa57a79bc4009b1ed942e75489309.png" alt="5f9fa57a79bc4009b1ed942e75489309.png"><img src="https://image.lceda.cn/oshwhub/pullImage/2a8c0e3d74fe4650996552d47c502648.png" width="337" height="278" alt="2a8c0e3d74fe4650996552d47c502648.png"></p> <p> </p> <p> </p> <p><strong>继电器控制电路</strong></p> <p>利用 NPN 三极管控制继电器线圈的通断,进而通过线圈通断控制继电器触点的吸合与断开,实现对 220V 交流电通断的控制。D1为续流二极管,用于吸收继电器线圈断电时的反向电动势,保护三极管。R2为下拉电阻,用于防止系统上电初期因电路状态不稳定,导致继电器出现误动作。</p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/c6ec37244d9e4b46939a58c1895f8ada.png" width="360" height="453" alt="c6ec37244d9e4b46939a58c1895f8ada.png"></p> <p> </p> <p> </p> <div><strong>STM32F103C8T6 开发板</strong></div> <p><img src="https://image.lceda.cn/oshwhub/pullImage/8084c666bfb54f0694d5ffa8da7d2ee2.png" width="374" height="318" alt="8084c666bfb54f0694d5ffa8da7d2ee2.png"><img src="https://image.lceda.cn/oshwhub/pullImage/1f3008147a894d09af742d0e5a9f8279.png" width="307" height="267" alt="1f3008147a894d09af742d0e5a9f8279.png"></p> <p> </p> <p> </p> <div><strong>HC-04 蓝牙串口模块</strong></div> <div>本项目使用HC-04蓝牙串口模块与手机进行无线通信,传输系统运行时的数据信息,打开手机端的HC蓝牙助手,与其无线连接后方可传输数据。</div> <p><img src="https://image.lceda.cn/oshwhub/pullImage/8f2a587f879e4920aacd987e48b65cfc.png" alt="8f2a587f879e4920aacd987e48b65cfc.png"><img src="https://image.lceda.cn/oshwhub/pullImage/6f7333da9b2f443b956c3e99317de65d.png" width="121" height="265" alt="6f7333da9b2f443b956c3e99317de65d.png"><img src="https://image.lceda.cn/oshwhub/pullImage/1fda24aabc0b49b69b06cb6b5d65bb13.png" width="125" height="263" alt="1fda24aabc0b49b69b06cb6b5d65bb13.png"><img src="https://image.lceda.cn/oshwhub/pullImage/1f6c48cecb2243a595c2d7e4df91a896.jpg" width="156" height="192" alt="1f6c48cecb2243a595c2d7e4df91a896.jpg"></p> <p> </p> <p> </p> <div><strong>0.91 寸 OLED 显示模块</strong></div> <p>在本项目中使用该显示模块显示RTC时间、选择的模式、倒计时等信息。</p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/e03559d8e3a44b048331f1add1e3bca1.png" width="300" height="220" alt="e03559d8e3a44b048331f1add1e3bca1.png"><img src="https://image.lceda.cn/oshwhub/pullImage/7c6ea65dc5474e5799fa7f8750d68732.png" alt="7c6ea65dc5474e5799fa7f8750d68732.png"></p> <p> </p> <p> </p> <div><strong>按键电路</strong></div> <div>每个按键采用单片机内部上拉输入的方式,省去外部上拉电阻的硬件成本,同时简化电路设计。</div> <p><img src="https://image.lceda.cn/oshwhub/pullImage/e78dc381240343b997aaffb50f2afd8b.png" width="249" height="319" alt="e78dc381240343b997aaffb50f2afd8b.png"></p> <p> </p> <p> </p> <div><strong>LED 指示灯电路</strong></div> <div>每路 LED 由发光二极管和510Ω 限流电阻组成,用来指示系统运行不同模式时的状态。</div> <p><img src="https://image.lceda.cn/oshwhub/pullImage/a107c0c87cb44bdc943874296b0c072c.png" width="234" height="273" alt="a107c0c87cb44bdc943874296b0c072c.png"></p> <p> </p> <p> </p> <div><strong>备用接口</strong></div> <p><img src="https://image.lceda.cn/oshwhub/pullImage/7710cacc51844112bed7a143fb520e49.png" alt="7710cacc51844112bed7a143fb520e49.png"></p> <p> </p> <p> </p> <p><strong>PCB设计</strong></p> <p>电路布局布线比较简单,需要注意的是:</p> <p>1.PCB 分为弱电和强电部分,在弱电和强电之间挖槽用于增加爬电距离,减少强电对弱电的干扰,提高电路的安全性和可靠性,经实际测试,电路可稳定运行。</p> <p>2.强电部分的线路需铺铜以通过大电流,必要时做开窗处理。本项目双面铺铜,能够满足通过较大电流的需求。</p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/8d6ac9e03c814d209405193c0c796fcc.png" width="535" height="408" alt="8d6ac9e03c814d209405193c0c796fcc.png"></p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/db7f47a7bea442038c1cedf9c52798c4.png" width="516" height="392" alt="db7f47a7bea442038c1cedf9c52798c4.png"></p> <p> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/b3a2cc189003446794a448216b672966.png" width="520" height="403" alt="b3a2cc189003446794a448216b672966.png"></p> <p> </p> <p> </p> <p><strong>实物展示</strong></p> <p>在家匆匆忙忙之下把贴片NPN型三极管当成PNP型三极管焊接,导致继电器异常工作,而焊接工具又不在身边,就买了插件NPN型三极管和电阻暂时缠绕使用(已确认接触牢固,无松动),程序里已更改相应的控制引脚。</p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/bbaed9fab3394e19951fe9f667bb231f.jpg" width="399" height="424" alt="bbaed9fab3394e19951fe9f667bb231f.jpg"></p> <p> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/c9ab51ff743c4ea9b12a9dd8948ae632.jpg" width="398" height="557" alt="c9ab51ff743c4ea9b12a9dd8948ae632.jpg"></p> <p> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/dc3882914f9e49a3883a53c05cf41357.jpg" width="399" height="415" alt="dc3882914f9e49a3883a53c05cf41357.jpg"></p> <p> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/51452014995f4ffdaf1d92a035d1fbd1.jpg" width="400" height="416" alt="51452014995f4ffdaf1d92a035d1fbd1.jpg"></p> <p> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/5b743f92bb664f2eb76d835ab918264a.jpg" width="400" height="366" alt="5b743f92bb664f2eb76d835ab918264a.jpg"></p> <p> </p> <p> </p> <p><strong>3D外壳结构</strong></p> <p>结构组成<br>上下盖设计:采用“上盖+下盖”的分体式结构,放置螺丝孔,便于通过螺丝将上盖、下盖、电路板三者精准地固定在一起。<br>下盖:放置多个圆柱状支撑柱,用于固定电线,防止大力拉扯损坏电线,在侧面挖槽方便电线引出。<br>上盖:先放置实体,后挖槽,满足LED和OLED显示和其他需求,在侧面挖槽便于按键操作。<br> <br> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/5f119669374c4a9eba07d7b1fbcccc26.jpg" width="451" height="313" alt="5f119669374c4a9eba07d7b1fbcccc26.jpg"></p> <p> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/5517efe8a8db4f4f883d14603d5955d8.jpg" width="452" height="541" alt="5517efe8a8db4f4f883d14603d5955d8.jpg"></p> <p> </p> <p> </p> <h3>*5、软件部分</h3> <hr> <p> </p> <p><strong>部分关键程序实现(附件含完整源码)</strong></p> <p> </p> <p><strong>主函数部分</strong></p> <div><span style="background-color:#eccafa;">int main(void)</span></div> <div> <p><span style="background-color:#eccafa;">{</span><br><span style="background-color:#eccafa;">    RCC_Configuration();</span><br><span style="background-color:#eccafa;">    SysTick_Config(SystemCoreClock / 1000);</span><br><span style="background-color:#eccafa;">    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //优先级处理        </span><br><span style="background-color:#eccafa;">    Delay_ms(100);</span><br><span style="background-color:#eccafa;">    Blue_LED_Init();</span><br><span style="background-color:#eccafa;">    Status_LED_Init();</span><br><span style="background-color:#eccafa;">    Relay_Init();</span><br><span style="background-color:#eccafa;">    Receive_Input_Init();</span><br><span style="background-color:#eccafa;">    OLED_Init();</span><br><span style="background-color:#eccafa;">    OLED_Clear();</span><br><span style="background-color:#eccafa;">    Serial_Init();                //蓝牙串口初始化</span><br><span style="background-color:#eccafa;">    RTC_Init();      //RTC初始化</span></p> <p><span style="background-color:#eccafa;">    while (1)</span><br><span style="background-color:#eccafa;">    {</span><br><span style="background-color:#eccafa;">        switch(Operate_Mode)</span><br><span style="background-color:#eccafa;">        {</span><br><span style="background-color:#eccafa;">            case 0: Standby_mode();break;</span><br><span style="background-color:#eccafa;">            case 1: Contin_Operate();break;</span><br><span style="background-color:#eccafa;">            case 2: Auto_Shutdown();break;</span><br><span style="background-color:#eccafa;">            case 3: Scheduled_Start();break;</span><br><span style="background-color:#eccafa;">            case 4: Intermit_opening_closing();break;</span><br><span style="background-color:#eccafa;">        }</span><br><span style="background-color:#eccafa;">    }</span><br><span style="background-color:#eccafa;">}</span></p> <p> </p> <p>在主函数中首先对外设初始化,然后进入while(1)循环,根据<span style="background-color:#ffffff;">Operate_Mode执行相应的模式。</span></p> <p><span style="background-color:#ffffff;">模式说明:</span></p> <p><span style="background-color:#ffffff;">Standby_mode():待机/关闭模式,系统上电后默认为此模式;<br>Contin_Operate():持续运行<span style="background-color:#ffffff;">模式<span style="background-color:#ffffff;">;</span></span><br>Auto_Shutdown():定时关闭<span style="background-color:#ffffff;">模式<span style="background-color:#ffffff;">;</span></span><br>Scheduled_Start():定时启动<span style="background-color:#ffffff;">模式<span style="background-color:#ffffff;">;</span></span><br>Intermit_opening_closing():间歇开关<span style="background-color:#ffffff;">模式。</span></span></p> <p> </p> <p> </p> </div> <h4>蓝牙串口<strong>指令宏定义与功能描述</strong></h4> <p>在main.c中定义如下串口指令,且需要在手机端蓝牙助手设置对应按钮的名称和内容(详见附件视频):</p> <p> </p> <p><span style="background-color:#eccafa;">#define Check_status  'C'//查询状态<br>#define Cancel        'Q'//取消<br>#define Confirm       'R'//确认<br>#define Increase      'I'//增加<br>#define Discrease     'D'//减少</span></p> <div> <table> <tr> <th>宏</th> <th>字符</th> <th>功能</th> </tr> <tr> <td><code>Check_status</code></td> <td>'C'</td> <td>查询当前状态</td> </tr> <tr> <td><code>Cancel</code></td> <td>'Q'</td> <td>取消操作,返回待机</td> </tr> <tr> <td><code>Confirm</code></td> <td>'R'</td> <td>确认选择或启动模式</td> </tr> <tr> <td><code>Increase</code></td> <td>'I'</td> <td>增加参数(如定时时间)</td> </tr> <tr> <td><code>Decrease</code></td> <td>'D'</td> <td>减少参数</td> </tr> </table> <p> </p> <p> </p> <p><strong>按键检测部分</strong></p> <p><span style="background-color:#eccafa;">#define KEY1  GPIO_Pin_8</span><br><span style="background-color:#eccafa;">#define KEY2  GPIO_Pin_9</span><br><span style="background-color:#eccafa;">#define KEY3  GPIO_Pin_11</span><br><span style="background-color:#eccafa;">#define KEY4  GPIO_Pin_8</span><br><span style="background-color:#eccafa;">#define KEY1_2_PORT  GPIOB</span><br><span style="background-color:#eccafa;">#define KEY3_4_PORT  GPIOA</span></p> <p> </p> <p><span style="background-color:#eccafa;">//按键松手检测</span><br><span style="background-color:#eccafa;">uint8_t Get_Key(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)</span><br><span style="background-color:#eccafa;">{</span><br><span style="background-color:#eccafa;">    if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==RESET)</span><br><span style="background-color:#eccafa;">    {</span><br><span style="background-color:#eccafa;">        Delay_ms(100);</span><br><span style="background-color:#eccafa;">        if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==RESET)</span><br><span style="background-color:#eccafa;">        {</span><br><span style="background-color:#eccafa;">            while(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==RESET)</span><br><span style="background-color:#eccafa;">            ;</span><br><span style="background-color:#eccafa;">            return SET;</span><br><span style="background-color:#eccafa;">        }</span><br><span style="background-color:#eccafa;">    }</span><br><span style="background-color:#eccafa;">    else if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==SET)</span><br><span style="background-color:#eccafa;">        return RESET;</span><br><span style="background-color:#eccafa;">    return RESET;</span><br><span style="background-color:#eccafa;">}</span></p> <p><span style="background-color:#eccafa;">//按键无松手检测</span><br><span style="background-color:#eccafa;">uint8_t Get_Key_Not_while(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)</span><br><span style="background-color:#eccafa;">{</span><br><span style="background-color:#eccafa;">    if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==RESET)</span><br><span style="background-color:#eccafa;">    {</span><br><span style="background-color:#eccafa;">        Delay_ms(100);</span><br><span style="background-color:#eccafa;">        if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==RESET)</span><br><span style="background-color:#eccafa;">        {</span><br><span style="background-color:#eccafa;">            Delay_ms(400);</span><br><span style="background-color:#eccafa;">            return SET;</span><br><span style="background-color:#eccafa;">        }</span><br><span style="background-color:#eccafa;">    }</span><br><span style="background-color:#eccafa;">    else if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin)==SET)</span><br><span style="background-color:#eccafa;">        return RESET;</span><br><span style="background-color:#eccafa;">    return RESET;</span><br><span style="background-color:#eccafa;">}</span></p> <p> </p> <div>这两个函数分别实现了 “带松手检测” 和 “无松手检测” 的功能,通过软件消抖和状态判断处理按键输入。</div> <div><strong>执行机理:</strong>调用按键获取状态时,如果按键按下(低电平有效),返回SET,否则返回RESET。</div> <div>对按键引脚和端口进行了宏定义,函数调用时只需传入对应的按键编号就能获取按键的输入状态,比如想获取按键1的状态就调用函数<span style="background-color:#eccafa;"><span style="background-color:#ffffff;">同时传递参数:</span>Get_Key(KEY1_2_PORT  , KEY1  )<span style="background-color:#ffffff;">。</span></span></div> <div> </div> <div><strong>两种按键方式对比:</strong></div> <table style="width:57.6325%;height:128.805px;"> <tr style="height:22.4115px;"> <th style="width:15.9956%;height:22.4115px;">特性</th> <th style="width:37.9469%;height:22.4115px;"><code>Get_Key</code>(松手检测)</th> <th style="width:39.9867%;height:22.4115px;"><code>Get_Key_Not_while</code>(无松手检测)</th> </tr> <tr style="height:20.9956px;"> <td style="width:15.9956%;height:20.9956px;">触发条件</td> <td style="width:37.9469%;height:20.9956px;">按键按下并完全松开后才返回有效</td> <td style="width:39.9867%;height:20.9956px;">按键按下且稳定后返回有效(无需松手)</td> </tr> <tr style="height:22.4115px;"> <td style="width:15.9956%;height:22.4115px;">等待逻辑</td> <td style="width:37.9469%;height:22.4115px;">包含<code>while</code>循环等待松手</td> <td style="width:39.9867%;height:22.4115px;">无等待松手逻辑,仅延时后直接返回</td> </tr> <tr style="height:20.9956px;"> <td style="width:15.9956%;height:20.9956px;">适用场景</td> <td style="width:37.9469%;height:20.9956px;">单次触发操作(如确认、切换模式)</td> <td style="width:39.9867%;height:20.9956px;">长按检测、连续触发场景(如调节参数)</td> </tr> <tr style="height:41.9911px;"> <td style="width:15.9956%;height:41.9911px;">对主程序阻塞影响</td> <td style="width:37.9469%;height:41.9911px;">按键未松手时会阻塞主循环(<code>while</code>等待)</td> <td style="width:39.9867%;height:41.9911px;">仅延时影响,无长时间阻塞</td> </tr> </table> <div> </div> <p> </p> <p><strong>串口发送接收部分</strong></p> <p><span style="background-color:#eccafa;">void Serial_Printf(char *format, ...)<br>{<br>    char String[100];<br>    va_list arg;<br>    va_start(arg, format);<br>    vsprintf(String, format, arg);<br>    va_end(arg);<br>    Serial_SendString(String);<br>}<br></span></p> <p> </p> <p><span style="background-color:#ffffff;"> <code>Serial_Printf</code> 函数是嵌入式系统中常用的串口格式化输出函数,作用是将可变参数的格式化字符串通过串口发送出去,实现类似标准库 <code>printf</code> 的功能(但输出目标是串口而非控制台)。</span></p> <p> </p> <p><span style="background-color:#eccafa;">void USART1_IRQHandler(void)<br>{<br>    if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET)<br>    {<br>        Serial_RxData=USART_ReceiveData(USART1);<br>        USART_ClearITPendingBit(USART1, USART_IT_RXNE);<br>    }<br>}</span></p> <p> </p> <p>该串口中断函数用于读取接收数据:<code>USART_ReceiveData</code> 函数从 USART1 的接收数据寄存器中读取一个字节的数据,将读取到的数据存入全局变量 <code>Serial_RxData</code>供其他函数处理,如(解析指令、改变参数等)。</p> </div> <p> </p> <div> </div> <p><strong>软件流程图</strong></p> <p> </p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/9663e069e1f647e38ad368f0adb3ea74.png" alt="9663e069e1f647e38ad368f0adb3ea74.png"></p> <p> </p> <p><strong>软件执行流程说明</strong></p> <p><strong>1)启动与初始化阶段</strong>:系统上电后,先完成基础配置(时钟、中断优先级),再初始化所有外设(LED、继电器、按键、OLED 屏、串口、RTC 时钟),为后续功能运行做准备。</p> <p><strong>2)主循环与模式分支</strong>:初始化完成后进入主循环,根据<code>Operate_Mode</code>(模式)执行对应功能,各核心模式流程如下:</p> <ul> <li><strong>待机模式(Mode 0)</strong>:默认模式,继电器和 LED 均关闭,OLED 显示实时时间;可按 KEY4 或串口发送<code>R</code>进入模式选择,发送<code>C</code>查询当前状态。</li> <li><strong>持续运行(Mode 1)</strong>:直接开启继电器和 LED4(运行指示灯);需关闭时,按 KEY1 或串口发送<code>Q</code>即可返回待机模式。</li> <li><strong>定时关闭(Mode 2)</strong>:先通过按键 / 串口设置倒计时(按键每按一次则加或减 5 分钟,可长按提高设置时长的速度),确认后开启设备;倒计时结束自动关闭设备,回归待机模式。</li> <li><strong>定时启动(Mode 3)</strong>:先设置倒计时(与定时关闭相同),确认后进入倒计时;倒计时结束自动开启设备,并切换到持续运行模式。</li> <li><strong>间歇开关(Mode 4)</strong>:先设置设备 “开启时间”“关闭时间” 和 “循环次数”,确认后按设定循环:开设备(到时间关)→关设备(到时间开);循环结束后返回待机模式。</li> </ul> <p><strong>3)流程闭环</strong>:所有模式执行中,均可通过串口发送<code>C</code>查询状态;除持续运行、定时启动外,其他模式结束后均自动回归待机模式,等待下一次的启动。</p> <p> </p> <p> </p> <h3>*6、大赛LOGO验证</h3> <hr> <h3> </h3> <h3><img src="https://image.lceda.cn/oshwhub/pullImage/db30ba59469242b59c64deae59d1d02f.jpg" width="642" height="416" alt="db30ba59469242b59c64deae59d1d02f.jpg"></h3> <p> </p> <h3> </h3> <h3>*7、注意事项</h3> <hr> <p> </p> <ul> <li>调试时,请拔下蓝牙模块再接上Type-C插头供电(因为两者有干涉),同时不要接入220V交流电源,接着验证继电器能够按照设定程序和时间正常吸合与断开再进行下一步操作;</li> <li>接下来撤走Type-C插头,装上外壳再接入220V交流电源(为了避免不经意间触碰到接线端子金属部分而触电),此时可插上蓝牙模块进行下一步调试;</li> <li>使用时,请务必装上外壳,用M2螺丝固定好,同时两端电源插头务必完全插入家用220V交流电源插座和用电器插座(一公一母),不可裸露金属部分。</li> </ul> <p> </p> <h3>*8、演示您的项目并录制成视频上传</h3> <hr> <p> </p> <p>附件中有两个演示视频:<strong>功能演示、蓝牙助手按钮设置。</strong></p> <p>功能演示部分花费较长时间演示,因此不是重点介绍的地方做了倍速处理。</p>
  • 立创电赛:《用电器开关定时器》-蓝牙助手按钮设置.mp4

  • 立创电赛:《用电器开关定时器》-功能演示.mp4

文档

BOM

暂无

附件

附件名 下载
用电器开关定时器.rar
HC-04-资料包.rar
立创电赛:《用电器开关定时器》-蓝牙助手按钮设置.mp4
立创电赛:《用电器开关定时器》-功能演示.mp4

评论(2)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>进度如何啦</p>
玻尔能级 回复
<p>@lcds已发布开源</p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow