lugl4313820 发表于 2023-5-6 06:26

【国民技术N32WB031_STB开发板评测】墨水屏温湿度计

<div class='showpostmsg'><ol>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241062-1-1.html">【新提醒】N32WB03x系列蓝牙芯片 产品简介&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241020-1-1.html">【新提醒】N32WB031 API函数使用说明&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241013-1-1.html">【新提醒】【国民技术N32WB031_STB开发板评测】资源的下载&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241678-1-1.html">【国民技术N32WB031_STB开发板评测】创建MDK模版&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241679-1-1.html">【国民技术N32WB031_STB开发板评测】GPIO之按键与LED灯&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241731-1-1.html">【新提醒】【国民技术N32WB031_STB开发板评测】串口+LOG分级打印</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241815-1-1.html">【国民技术N32WB031_STB开发板评测】OLED驱动&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241869-1-1.html">【国民技术N32WB031_STB开发板评测】驱动HS3003&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241820-1-1.html">【国民技术N32WB031_STB开发板评测】SPI驱动墨水屏&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1241870-1-1.html">【国民技术N32WB031_STB开发板评测】点用 PA4后下载不程序&nbsp;</a></li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1242031-1-1.html">【国民技术N32WB031_STB开发板评测】解决SWDCLK、SWDIO配置为普通IO后不能下载固件</a></li>
</ol>

<hr />
<p>解决了下载固件的问题后,昨晚把温湿度计hs3003与墨水屏结合在一起,温湿度计就做好了。</p>

<p>采集程序修改如下:</p>

<pre>
<code>void Humiture_HS3003_ReadData_Raw(float *humi_f, float *temp_f)
{
    uint8_t rx_buf = {0};
    uint16_t humi, temp;
    float    tmp_f   = 0.0;
               
    SI2C_MasterWrite(&amp;SI2C_handle,I2C_SLAVE_ADDR, NULL, 0);
    //8bit-&gt;1.2ms
    //10bit-&gt;2.72ms
    //12bit-&gt;9.10ms
    //14bit-&gt;33.90ms
          Delay_ms(40);
__retry:               
    SI2C_MasterRead(&amp;SI2C_handle, I2C_SLAVE_ADDR, rx_buf, 4);
               
//                log_info("%x,%x,%x,%x\n", rx_buf, rx_buf, rx_buf, rx_buf);
//    log_info("state:%x\n", rx_buf &amp; RM_HS300X_MASK_STATUS_0XC0);
                if ((rx_buf &amp; RM_HS300X_MASK_STATUS_0XC0) != RM_HS300X_DATA_STATUS_VALID)
      {
            Delay_ms(100);
            goto __retry;
      }
                humi = (rx_buf &amp; RM_HS300X_MASK_HUMIDITY_UPPER_0X3F) &lt;&lt; 8 | rx_buf;
                temp = (rx_buf &lt;&lt; 8 | (rx_buf &amp; RM_HS300X_MASK_TEMPERATURE_LOWER_0XFC)) &gt;&gt; 2;

                tmp_f = (float )humi;
                *humi_f = (tmp_f * RM_HS300X_CALC_HUMD_VALUE_100) / RM_HS300X_CALC_STATIC_VALUE;

                tmp_f = (float)temp;
                *temp_f = ((tmp_f * RM_HS300X_CALC_TEMP_C_VALUE_165) / RM_HS300X_CALC_STATIC_VALUE) - RM_HS300X_CALC_TEMP_C_VALUE_40;

//                log_info("Temp:%d.%d   ",(int)temp_f,(int)(temp_f*100)%100);
//                log_info("HUMI:%d.%d\r\n",(int)humi_f,(int)(humi_f*100)%100);
//    return 1;
}</code></pre>

<p>main.c修改如下:</p>

<pre>
<code>    while (1)
    {
                       
                        LedBlink(LED1_PORT, LED1_PIN);
                        Humiture_HS3003_init();
                        Humiture_HS3003_ReadData_Raw(&amp;humi,&amp;temp);
                  EPD_HW_Init_GUI(); //EPD init GUI
                       
                       
                        Paint_Clear(WHITE);
                        sprintf(show_str,"温度%02d.%02d℃",(int)temp, (int)(temp*100)%100);       
                        Paint_DrawString_CN(40,10,show_str, &amp;Font24CN, WHITE, BLACK);
                        sprintf(show_str,"湿度%02d.%02d%%",(int)humi, (int)(humi*100)%100);                               
                        Paint_DrawString_CN(40,60,show_str, &amp;Font24CN, WHITE, BLACK);
       
                        EPD_Display(BlackImage); //display image
                        EPD_DeepSleep();//EPD_DeepSleep,Sleep instruction is necessary, please do not delete!!!
                        Delay_ms(10000);

    }</code></pre>

<p>这样温湿度计做好了,效果见视频,下一步将实现RTC日历功能。</p>

<p>20c05c58601a9c74b086c4916936edae<br />
&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

tagetage 发表于 2023-5-6 10:34

<p>看楼主的手就不是干体力活的。</p>

lugl4313820 发表于 2023-5-6 10:42

tagetage 发表于 2023-5-6 10:34
看楼主的手就不是干体力活的。

<p>大佬的观察力那是相当的不错,曾经也是一名体力劳动者呀!</p>

wangxiangtan2 发表于 2023-5-6 10:57

<p>这湿度有点高了&hellip;&hellip;</p>

wangerxian 发表于 2023-5-6 14:13

<p>显示效果挺好的,墨水屏主打的就是一个低功耗。</p>

lugl4313820 发表于 2023-5-6 15:40

wangxiangtan2 发表于 2023-5-6 10:57
这湿度有点高了&hellip;&hellip;

<p>早上起来,下雨,中午好一点了78%,南方现在阴雨天。</p>

lugl4313820 发表于 2023-5-6 15:40

wangerxian 发表于 2023-5-6 14:13
显示效果挺好的,墨水屏主打的就是一个低功耗。

<p>准备做个低功耗的温湿计,正在努力学习中。</p>

yanlingxian 发表于 2023-5-18 13:43

很有启发。丰富了温湿度计系统。
页: [1]
查看完整版本: 【国民技术N32WB031_STB开发板评测】墨水屏温湿度计