聚丰项目 > 室外低功耗温湿度检测站
基于STM32+IDT HS3001的室外低功耗温湿度监测站的设计
shuchao007
分享shuchao007
团队成员
舒超 电子工程师
一、原理介绍
1、主控部分
采用STM32F072CBT6作为主控芯片,此款芯片的优点是性价比较高,既能满足性能的要求,价格又比较低廉;
2、电源部分
采用单节的18650电池供电,通过太阳能电池板给电池充电,电池有外接BMS,有效的保护电池不过充、过放、过流;PCB上采用了TI的一颗开关电源芯片——LM2733,该芯片静态功耗较低,有效减少因开关电源造成的不必要你的损耗,达到低功耗的效果;
3、无线通信
采用常用的NRF24L01作为无线通信接口,可实时上传数据至终端(PC端),该模块的优点是价格便宜,通用性较强。后续如果进入复赛,将着重对无线通信部分进行改善,可能尝试其它更为可靠、传输距离更远的无线通信方式进行数据通信;
4、RTC
实时时钟芯片——DS3231M,该芯片主要的优点是功耗非常低,时间精度非常高(一年的误差在1min以内),带内部时钟,外围电路非常简单。配合无线通信,可准确传回具体时间的具体温湿度数据;
5、EEPROM
可实现单机状态下的数据记录。
6、0.96"OLED
可作为移动测量设备使用。
二、LAYOUT
开发平台:MDK5
库:HAL库
软件系统主要包含以下几大部分
1、IDT HS3001底层驱动
2、OLED底层驱动
3、DS3231底层驱动
4、NRF24L01底层驱动
5、应用层——菜单
主函数如下:具体底层函数不再赘述
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
TIM14_Init();
OLED_Init();
//Write_Ds3231m(0x00,0x00);HAL_Delay(1);
//Write_Ds3231m(0x01,0x50);HAL_Delay(1);
//Write_Ds3231m(0x02,0x11);HAL_Delay(1);
Init_NRF24L01();
if(NRF24L01_Check())
{
HAL_UART_Transmit(&huart1, nrf_state, 1, 100);
//printf("NRF24L01 is Not work!\r\n");
}
TX_Mode();
while (1)
{
Read_TEMP();
Read_Time();
Display();
HAL_Delay(2);
}
}