描述
<div>
<h3 style="line-height:1.8"> 1、项目功能介绍</h3>
<hr>
<p style="line-height:1.8"><span style="font-size:24px"><strong>无线桌面温湿度监测仪</strong></span></p>
<p style="line-height:1.8">本项目兼顾多场景应用,包括但不限于以下举例:</p>
<p style="line-height:1.8">1、为久居空调环境的工作族/居家人群设计的建议环境检测工具;警惕长时间高温或干燥环境下生活可能带来的不适,提供直观的监测手段以帮助人们调节室内环境。<br>2、本项目兼具蓝牙无线通信功能与锂电池独立供电功能,可用于生产环境(如孵化箱等需要监控温湿度的场景);可通过蓝牙实现多机检测,无需布线即可轻松部署。</p>
<p style="line-height:1.8">(配备蓝牙模块便于上传温湿度数据已经修改RTC实时时钟参数,配备OLED显示屏幕以便观测数据;配备锂电池独立供电以及板载充电IC;定时休眠功能延长待机时长)</p>
<h3 style="line-height:1.8">2、项目属性</h3>
<hr>
<p style="line-height:1.8">项目为首次公开、原创项目,未在其他比赛中获奖。</p>
<h3 style="line-height:1.8">3、开源协议</h3>
<hr>
<p style="line-height:1.8">本项目遵循GPL3.0开源协议。</p>
<h3 style="line-height:1.8">4、硬件部分</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px"><img src="//image.lceda.cn/oshwhub/d7792354140b4e0dbd3f326f3d7bb68f.png"></span></p>
<p style="line-height:1.8">主控采用STM32F103C6T6;升级版本的C8T6可直接替代使用。</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/06157c94e7724d9099de97c82dccac33.png"></p>
<p style="line-height:1.8">盛思锐SHT40温湿度传感器,采用IIC通信,需注意接上拉电阻,模块布局要减少板子自身产热的影响。</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/8132a0a458fa4afe8c7d3e2691878412.png"></p>
<p style="line-height:1.8">0.96寸OLED,用于显示RTC实时时间,温湿度数据;工作电流约4mA;休眠电流低于1mA(本人暂无手段测量1mA以下电流);为了延长使用时间,OLED一定要注意加入休眠操作。</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/82accadf9db7429f8d27804ed56f6da5.png"></p>
<p style="line-height:1.8">蓝牙模块,实现无线温湿度测量数据回传,以及通过发送时钟时间对设备的RTC时钟进行配置。</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/a9f04e2ccda14428a5fb43517f0667a2.png"></p>
<p style="line-height:1.8">线性充电IC,便于对锂电池进行充电,限制电流减少发热,以减少充电时发热对温湿度测量的影响。</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/adaad1e479664983a13a8db1d34a3665.png"></p>
<p style="line-height:1.8">LDO-3.3V;为MCU及传感器、蓝牙提供稳定的3V3电压。</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/710748ea00b44d74a295af9f9f0995cc.png"></p>
<p style="line-height:1.8">休眠唤醒按键,并且连接到了蓝牙连接指示引脚,实现连接蓝牙时唤醒设备的功能。</p>
<h3 style="line-height:1.8">5、软件部分</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">请输入内容…</span></p>
<p><span style="color:#169179">//定时器中断,每500ms刷新一次数据</span><br>void TIM3_IRQHandler(void)<br>{<br> if (TIM_GetITStatus(TIM3,TIM_IT_Update) != RESET)<br> {<br> Refresh=1;<br> count++;<br> Pot=!Pot;<br> TIM_ClearITPendingBit(TIM3, TIM_IT_Update);<br> }<br>}</p>
<p>int main(void)<br>{<br> <span style="color:#169179">//变量定义</span><br> u16 BAT_ADC=2950;<span style="color:#169179">//电池ADC值</span><br> u8 BAT_STATUS=0;<span style="color:#169179">//电池电量格数</span><br> char showData[16]={0};<span style="color:#169179">//输出字符缓存</span><br> <span style="color:#169179">//初始化</span><br> RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);<span style="color:#169179">//使能电源管理单元时钟</span><br> delay_init();<br> uart_init(115200);<br> Adc_Init();<br> OLED_Init();<span style="color:#169179">//屏幕初始化</span><br> delay_ms(10);<br> OLED_Clear();<span style="color:#169179">//清屏</span><br> delay_ms(10);<br> KEY_Init();<br> MyRTC_Init();<br> delay_ms(10);<br><span style="color:#169179">// MyRTC_SetTime();</span><br> SHT40_Init();<br> TIM3_Int_Init(4999, 7199);//0.5s一次中断<br> <br> OLED_ShowStr(0,0,"welcome");</p>
<p> while(1)<br> {<br> if(KEY_Scan())<br> {;}<span style="color:#169179">//调试用按键,暂无功能</span><br> <br> if(USART_RX_STA&0x8000)<span style="color:#169179">//如果串口接收到数据</span><br> {<br> <span style="color:#169179">//通过串口设定时间,格数为 时分(回车):如1024表示10:24</span><br> if((((USART_RX_BUF[0]-'0')*10+USART_RX_BUF[1]-'0')<24) && ((USART_RX_BUF[3]-'0')*10+USART_RX_BUF[4]-'0'<60))<br> {<br> MyRTC_Time[3]=(USART_RX_BUF[0]-'0')*10+USART_RX_BUF[1]-'0';<br> <br> MyRTC_Time[4]=(USART_RX_BUF[2]-'0')*10+USART_RX_BUF[3]-'0';<br> <br> MyRTC_SetTime();<br> printf("OK");<br> <br> }<br> else {printf("error");}<br> <br> USART_RX_STA=0;<br> }<br> <br> <br> if(Refresh)<br> {<br> SHT40_Read_Temperature_Humidity(&Temperature,&Humidity);<span style="color:#169179">//获取温湿度</span><br> <br> sprintf(showData,"(%.1f!C",Temperature);<span style="color:#169179">//!的字模被改成了小句点</span><br> OLED_ShowStr(0,6,(u8*)showData);<br> memset(showData,0,16);<br> <br> printf("Temperature:%.2f\n",Temperature);<span style="color:#169179">//蓝牙回传温度数据</span><br> <br> sprintf(showData,")%.1f%%",Humidity);<br> OLED_ShowStr(9,6,(u8*)showData);<br> memset(showData,0,16);<br> <br> printf("Humidity:%.2f\n",Humidity);<span style="color:#169179">//蓝牙回传温度数据</span><br> <br> <span style="color:#169179">//时间</span><br> MyRTC_ReadTime();<br> <br> if(Pot)<br> sprintf(showData,"%02d %02d",MyRTC_Time[3],MyRTC_Time[4]);<br> else<br> sprintf(showData,"%02d:%02d",MyRTC_Time[3],MyRTC_Time[4]);<br> OLED_ShowStr16(1,2,(u8*)showData);<br> memset(showData,0,16);</p>
<p> <br> <span style="color:#169179"> //电量获取</span><br> BAT_ADC=Get_Adc(2);<br> <span style="color:#169179">//电量显示部分;1-3025;2-3188;3-3275</span><br> if(BAT_ADC>3275 || (BAT_STATUS==3 && BAT_ADC>3255))<br> {<br> BAT_STATUS=3;OLED_ShowStr(10,0,"[***]");<br> }<br> else if(BAT_ADC>3188|| (BAT_STATUS==2 && BAT_ADC>3178))<br> {<br> BAT_STATUS=2;OLED_ShowStr(10,0,"[**+]");<br> }<br> else if(BAT_ADC>3025 || (BAT_STATUS==1 && BAT_ADC>3000))<br> {<br> BAT_STATUS=1;OLED_ShowStr(10,0,"[*++]");<br> }<br> else<br> {<br> BAT_STATUS=0;OLED_ShowStr(10,0,"[+++]");<br> }<br> <span style="color:#169179">//电量显示部分终 </span><br> Refresh=0;<br> }<br> <span style="color:#169179">//休眠</span><br> if(count>Sleep_wait_time*2){<br> <span style="color:#169179">/*清除WU状态位*/</span><br> PWR_ClearFlag (PWR_FLAG_WU); <br><span style="color:#169179"> /* 使能WKUP引脚的唤醒功能 ,使能PA0*/</span><br> PWR_WakeUpPinCmd (ENABLE);<br> Write_IIC_Command(0xAE);<span style="color:#169179">//关闭屏幕</span><br> <span style="color:#169179">/* 进入待机模式 */</span><br> PWR_EnterSTANDBYMode();<br> }<br> };<br>}</p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">6、BOM清单</h3>
<hr>
<p style="line-height:1.8">以项目生成BOM为准。</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/oshwhub/87b4618ec0584daaa57e0761a3135742.jpg"></p>
<p style="line-height:1.8"> </p>
</div>
评论(2)