版本协议

Public Domain

专业版
#第九届立创电赛#温湿度检测仪

创建时间:1年前

210 1

描述

<div> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 1、项目功能介绍</h3> <hr> <p>本项目基于嘉立创桌面温湿度仪项目,将主控改为esp12f,温湿度传感器使用sht40,使用su-03t离线语音模块接入esp进行串口通信。3位数码管改为4位数码管,数码控制芯片使用tm1637,第一个数码管显示时间,第二个数码管交替显示温度和湿度。电源供电使用usb供电,加入触摸感应开关,刷入esphome,并接入homeassistant,实现复杂智能控制。</p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*2、项目属性</h3> <hr> <p style="line-height:1.8;"><span style="color:#000000;">本项目首次公开;项目是为原创;未曾在其他比赛中获奖</span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 3、开源协议</h3> <hr> <p style="line-height:1.8;"><span style="color:#000000;"><span style="font-family:'-apple-system', BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;font-size:medium;background-color:#ffffff;">本项目使用</span><span style="line-height:1.4;font-family:'-apple-system', BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;font-size:medium;background-color:#ffffff;">CC-BY-NC-SA 3.0</span><span style="font-family:'-apple-system', BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;font-size:medium;background-color:#ffffff;">开源协议,即</span><span style="line-height:1.4;font-family:'-apple-system', BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;font-size:medium;background-color:#ffffff;">知识共享许可协议-署名-非商业使用-相同方式共享。</span></span></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><strong><span style="color:#0093e6;">请在竞赛阶段填写 ↓</span></strong></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*4、硬件部分</h3> <hr> <p style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/8JgSGUwP76JCZgebiwSUG1EZVaiVeGlEW2YKz3IU.png" alt="" width="830" height="577"></p> <p style="line-height:1.8;">将主控为esp12f</p> <p style="line-height:1.8;">温湿度传感器使用sht40</p> <p style="line-height:1.8;">两个4位共阳极数码管,数码控制芯片使用tm1637,第一个数码管显示时间,第二个数码管交替显示温度和湿度</p> <p style="line-height:1.8;">离线语音模块使用SU-03T</p> <p style="line-height:1.8;">电源供电使用usb供电,AMS1117进行降压</p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;"> 注:请前往<span style="text-decoration:underline;"><a href="https://lceda.cn/editor" target="_blank">嘉立创EDA</a> </span>生成/上传设计文件,文件完成后,相关文稿将自动生成至项目详情;这里可以详细说明您的项目实现原理和机制、注意事项、调试方法、测试方法等。推荐图文并茂的形式向别人介绍您的想法。 </span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*5、软件部分</h3> <hr> <p style="line-height:1.8;"><code><span style="background-color:#fffffe;font-family:'ui-monospace', 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace, Consolas, 'Courier New', monospace;white-space:pre;color:#000099;">esphome</span><span style="background-color:#fffffe;font-family:'ui-monospace', 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace, Consolas, 'Courier New', monospace;white-space:pre;">:</span></code></p> <div style="background-color:#fffffe;font-family:'ui-monospace', 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace, Consolas, 'Courier New', monospace;line-height:19px;white-space:pre;"> <div><code>  <span style="color:#000099;">name</span>: <span style="color:#0451a5;">test</span></code></div> <div><code>  <span style="color:#000099;">includes</span>:</code></div> <div><code>    - <span style="color:#0451a5;">su03t_uart_read.h</span></code></div> <br> <div><code><span style="color:#000099;">esp8266</span>:</code></div> <div><code>  <span style="color:#000099;">board</span>: <span style="color:#0451a5;">d1_mini</span></code></div> <br> <div><code><span style="color:#008000;"># Enable logging</span></code></div> <div><code><span style="color:#000099;">logger</span>:</code></div> <br> <div><code><span style="color:#008000;"># Enable Home Assistant API</span></code></div> <div><code><span style="color:#000099;">api</span>:</code></div> <br> <div><code><span style="color:#000099;">ota</span>:</code></div> <div><code>  <span style="color:#000099;">password</span>: <span style="color:#0451a5;">"xxxxxxxxxx"</span></code></div> <br> <div><code><span style="color:#000099;">wifi</span>:</code></div> <div><code>  <span style="color:#000099;">ssid</span>: <span style="color:#0451a5;">"xxxxxxx"</span></code></div> <div><code>  <span style="color:#000099;">password</span>: <span style="color:#0451a5;">"xxxxxxx"</span></code></div> <br> <div><code>  <span style="color:#008000;"># Enable fallback hotspot (captive portal) in case wifi connection fails</span></code></div> <div><code>  <span style="color:#000099;">ap</span>:</code></div> <div><code>    <span style="color:#000099;">ssid</span>: <span style="color:#0451a5;">"xxxxxx"</span></code></div> <div><code>    <span style="color:#000099;">password</span>: <span style="color:#0451a5;">"xxxxxx"</span></code></div> <br> <div><code><span style="color:#000099;">captive_portal</span>:</code></div> <div> </div> <div><code><span style="color:#000099;">i2c</span>:</code></div> <div><code>  <span style="color:#000099;">sda</span>: <span style="color:#0451a5;">GPIO5  </span><span style="color:#008000;">#D1  io5</span></code></div> <div><code>  <span style="color:#000099;">scl</span>: <span style="color:#0451a5;">GPIO4   </span><span style="color:#008000;">#D2  io4</span></code></div> <div><code>  <span style="color:#000099;">scan</span>: <span style="color:#0000ff;">true</span></code></div> <div><code>  <span style="color:#000099;">id</span>: <span style="color:#0451a5;">bus_a</span></code></div> <br><br><br> <div><code><span style="color:#000099;">time</span>:  </code></div> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">homeassistant  </span></code></div> <div><code>    <span style="color:#000099;">id</span>: <span style="color:#0451a5;">homeassistant_time  </span></code></div> <div> </div> <div><code><span style="color:#000099;">sensor</span>:  </code></div> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">sht4x</span></code></div> <div><code>    <span style="color:#000099;">temperature</span>:</code></div> <div><code>      <span style="color:#000099;">name</span>: <span style="color:#0451a5;">"Temperature"</span></code></div> <div><code>      <span style="color:#000099;">id</span>: <span style="color:#0451a5;">temperature</span></code></div> <div><code>    <span style="color:#000099;">humidity</span>:</code></div> <div><code>      <span style="color:#000099;">name</span>: <span style="color:#0451a5;">"Humidity"</span></code></div> <div><code>      <span style="color:#000099;">id</span>: <span style="color:#0451a5;">humidity</span></code></div> <div><code>    <span style="color:#000099;">address</span>: <span style="color:#3030c0;">0x44</span></code></div> <div><code>   </code></div> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">homeassistant  </span></code></div> <div><code>    <span style="color:#000099;">name</span>: <span style="color:#0451a5;">"Keting_Temperature"</span>  </code></div> <div><code>    <span style="color:#000099;">entity_id</span>: <span style="color:#0451a5;">sensor.miaomiaoce_t2_b84f_temperature_humidity_sensor  </span></code></div> <div><code>    <span style="color:#000099;">internal</span>: <span style="color:#0451a5;">false  </span></code></div> <div><code>    <span style="color:#000099;">id</span>: <span style="color:#0451a5;">keting_temperature </span></code></div> <br> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">homeassistant  </span></code></div> <div><code>    <span style="color:#000099;">name</span>: <span style="color:#0451a5;">"Keting_humidity"</span>  </code></div> <div><code>    <span style="color:#000099;">entity_id</span>: <span style="color:#0451a5;">sensor.miaomiaoce_t2_b84f_relative_humidity  </span></code></div> <div><code>    <span style="color:#000099;">internal</span>: <span style="color:#0451a5;">false  </span></code></div> <div><code>    <span style="color:#000099;">id</span>: <span style="color:#0451a5;">Keting_humidity  </span></code></div> <br><br> <div><code><span style="color:#000099;">display</span>:  </code></div> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">tm1637  </span></code></div> <div><code>    <span style="color:#000099;">id</span>: <span style="color:#0451a5;">tm1637_time</span></code></div> <div><code>    <span style="color:#000099;">clk_pin</span>: <span style="color:#0451a5;">GPIO14   </span><span style="color:#008000;">#D5  io14</span></code></div> <div><code>    <span style="color:#000099;">dio_pin</span>: <span style="color:#0451a5;">GPIO12  </span><span style="color:#008000;">#D6  io12</span></code></div> <div><code>    <span style="color:#000099;">update_interval</span>: <span style="color:#0451a5;">500ms</span></code></div> <div><code>    <span style="color:#000099;">lambda</span>: |-</code></div> <div><code><span style="color:#0451a5;">      static int i = 0;</span></code></div> <div><code><span style="color:#0451a5;">      i++;</span></code></div> <div><code><span style="color:#0451a5;">      if ((i % 2) == 0)</span></code></div> <div><code>        <span style="color:#0451a5;">it.strftime("%H.%M", id(homeassistant_time).now());</span></code></div> <div><code>      <span style="color:#0451a5;">else</span></code></div> <div><code>        <span style="color:#0451a5;">it.strftime("%H%M", id(homeassistant_time).now());</span></code></div> <div><code>     </code></div> <br> <div> </div> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">tm1637  </span></code></div> <div><code>    <span style="color:#000099;">id</span>: <span style="color:#0451a5;">tm1637_tem_hum</span></code></div> <div><code>    <span style="color:#000099;">clk_pin</span>: <span style="color:#0451a5;">GPIO12  </span><span style="color:#008000;">#D6 io12</span></code></div> <div><code>    <span style="color:#000099;">dio_pin</span>: <span style="color:#0451a5;">GPIO14   </span><span style="color:#008000;">#D5 io14</span></code></div> <div><code>    <span style="color:#000099;">inverted</span>: <span style="color:#0000ff;">false</span></code></div> <div><code>    <span style="color:#000099;">update_interval</span>: <span style="color:#0451a5;">5s  </span></code></div> <div><code>    <span style="color:#000099;">lambda</span>: |-</code></div> <div><code><span style="color:#0451a5;">      static bool show_tem = true;  // true for temperature, false for hum  </span></code></div> <div> </div> <div><code>      <span style="color:#0451a5;">// Toggle between showing tem and hum </span></code></div> <div><code>      <span style="color:#0451a5;">show_tem = !show_tem;  </span></code></div> <div> </div> <div><code>      <span style="color:#0451a5;">// Decide what to display based on show_tem  </span></code></div> <div><code>      <span style="color:#0451a5;">if (show_tem) {  </span></code></div> <div><code>        <span style="color:#0451a5;">// Display temperature</span></code></div> <div><code>        <span style="color:#0451a5;">it.printf(0, "%.1f", id(keting_temperature).state);</span></code></div> <div><code>        <span style="color:#0451a5;">//it.print(3, "0")</span></code></div> <div><code>      <span style="color:#0451a5;">} else {  </span></code></div> <div><code>        <span style="color:#0451a5;">it.printf(0, "%.1f", id(Keting_humidity).state);</span></code></div> <div><code>      <span style="color:#0451a5;">}</span></code></div> <br><br> <div><code><span style="color:#000099;">uart</span>:</code></div> <div><code>  - <span style="color:#000099;">id</span>: <span style="color:#0451a5;">uart_bus</span></code></div> <div><code>    <span style="color:#000099;">rx_pin</span>: <span style="color:#0451a5;">GPIO13  </span><span style="color:#008000;"># Modify according to your wiring, e.g., D6</span></code></div> <div><code>    <span style="color:#000099;">baud_rate</span>: <span style="color:#098658;">9600</span></code></div> <br> <div><code><span style="color:#000099;">text_sensor</span>:</code></div> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">custom</span></code></div> <div><code>    <span style="color:#000099;">lambda</span>: |-</code></div> <div><code><span style="color:#0451a5;">      auto my_custom_sensor = new UartReadLineSensor(id(uart_bus));</span></code></div> <div><code><span style="color:#0451a5;">      App.register_component(my_custom_sensor);</span></code></div> <div><code><span style="color:#0451a5;">      return {my_custom_sensor};</span></code></div> <div><code>    <span style="color:#000099;">text_sensors</span>:</code></div> <div><code>      <span style="color:#000099;">name</span>: <span style="color:#0451a5;">"su03t_test"</span></code></div> <div><code>      <span style="color:#000099;">id</span>: <span style="color:#0451a5;">"su03t_test"</span></code></div> <div><code>      <span style="color:#008000;"># update_interval: 5s  </span></code></div> <div><code>      <span style="color:#000099;">on_value</span>:</code></div> <div><code>        <span style="color:#000099;">then</span>:</code></div> <div><code>          - <span style="color:#000099;">delay</span>: <span style="color:#0451a5;">5s  </span></code></div> <div><code>          - <span style="color:#000099;">lambda</span>: |-</code></div> <div><code><span style="color:#0451a5;">              id(su03t_test).publish_state("abc");  </span></code></div> <br><br><br><br> <div><code><span style="color:#000099;">binary_sensor</span>:  </code></div> <div> </div> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">gpio</span></code></div> <div><code>    <span style="color:#000099;">pin</span>:</code></div> <div><code>      <span style="color:#000099;">number</span>: <span style="color:#0451a5;">GPIO3</span></code></div> <div><code>      <span style="color:#000099;">mode</span>:</code></div> <div><code>        <span style="color:#000099;">input</span>: <span style="color:#0000ff;">true</span></code></div> <div><code>        <span style="color:#000099;">pullup</span>: <span style="color:#0000ff;">true</span></code></div> <div><code>    <span style="color:#000099;">name</span>: <span style="color:#0451a5;">"chumokaiguan-test"</span></code></div> <div><code>   </code></div> <div><code>    <span style="color:#000099;">filters</span>:</code></div> <div><code>      - <span style="color:#000099;">delayed_on_off</span>: <span style="color:#0451a5;">50ms </span><span style="color:#008000;">#这里一定要加这个这个起到滤波的作用。</span></code></div> <br> <div><code><span style="color:#000099;">switch</span>:</code></div> <div><code>  - <span style="color:#000099;">platform</span>: <span style="color:#0451a5;">gpio</span></code></div> <div><code>    <span style="color:#000099;">pin</span>: <span style="color:#0451a5;">GPIO16</span></code></div> <div><code>    <span style="color:#000099;">name</span>: <span style="color:#0451a5;">"shumaguan_switch"</span></code></div> <div><code>    <span style="color:#000099;">restore_mode</span>: <span style="color:#0451a5;">RESTORE_DEFAULT_OFF</span></code></div> <br><br></div> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:若您的项目涉及软件开发,请在附件上传对应的工程源码。这里可以详细说明您的软件流程图、功能模块框图、相关算法的解释或科普、源码结构、编译环境的搭建和配置、源码编译方法、程序烧录方法等。推荐图文并茂的形式向别人介绍您的想法。</span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*6、BOM清单</h3> <hr> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">请输入内容…</span></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:项目涉及的BOM清单。在<span style="text-decoration:underline;"><a href="https://lceda.cn/editor" target="_blank">嘉立创EDA</a> </span>生成/上传设计文件后,BOM将自动生成至项目详情;建议包括型号、品牌、名称、封装、采购渠道、用途等内容。具体内容和形式应以表达清楚项目构成为准。 </span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*7、大赛LOGO验证</h3> <hr> <p style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/xKufnc6iZBUx6UxlR4ViKJ3yd0jyskp2nBEVuDNw.png" alt="" width="745" height="566"></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 8、演示您的项目并录制成视频上传</h3> <hr> <p style="line-height:1.8;"><a title="基于esp12f的离线语音温湿度检测仪" href="https://b23.tv/VMcuoEt" target="_blank">https://b23.tv/VMcuoEt</a></p> </div>

文档

BOM

暂无

附件

附件名 下载
5c1f213b40f1fa26401d36e2ca1bbd62.mp4

评论(0)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
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