加入交流群  

扫一扫,添加管理员微信
备注:参考设计,即可被拉入群
和也在搞设计小伙伴们碰一碰

收藏 

评论 

newlandmark 发布

【涂鸦智能】物联网温湿度传感器

 
设计简介

立创&涂鸦训练营第二期--物联网温湿度传感器

基于涂鸦智能的小温湿度传感器,自动采集当前温湿度数据,并通过STM32 & wifi模块上传至云端,送至APP端显示

主要内容

  • 整体介绍
  • 部分电路
  • 部分程序
  • 注意事项
  • 实际效果

整体介绍

  • 本次工程是一个基于涂鸦智能的温湿度传感器,采用低代码 MCU 方案,SHT20负责采集温湿度,涂鸦物联网模块与STM32F0单片机结合使用,实现温湿度数据的采集和上报,并将数据可视化。
  • 传感器可以由两块PCB构成,通过排针排母及四颗固定柱连接,整体尺寸:56mm* 44mm*15mm。下层板包含了传感器所需的各种电路,上层是一块OLED模块。
  • 供电上,可以使用3.7V锂电池或者Type-C接口供电,当两者同时接入时,默认采用USB供电,右下角按键用来实现一键开关机功能。
  • OLED接口为IIC通信接口,可以在OLED上显示当前的温湿度和其他内容,OLED也可以通过右上方按键控制是否开启显示。

部分电路

  1. 电源

    • 首先是电源的输入来源:USB接口或者单节锂离子电池(3.7V输入) 两种电源都是最常见的电源来源,为了更好的管理两者,在电源的输入端使用了锂电池和USB自动切换电路,它由一个PMOS管,肖特基二极管和电阻构成,可以做到:

      USB和电池同时接入时,切断电池供电

      USB断开时,切回到电池供电

      原理图连接如下

      首先,需要注意的是PMOS管的方向,电池电源的流入方向确实是从D(漏极)→S(源极),它利用了PMOS的体二极管。

      • 当只有USB供电时,PMOS关闭,VBUS 经过肖特基二极管后供给后续电路,由于肖特基二极管压降较低,实测大概0.26V,所以VCC得到的电压在4.8V左右。
      • 当锂电池单独供电时,R4 将 G(栅极)电压下拉到 0V,PMOS 导通,VBAT 流过MOS后供给后部电路,由于MOS内阻很小,所以只有很小的电压损耗,实测只有0.005V,故 VCC ≈ VBAT 。
      • 当两者同时接入时,VBUS 流过 D3 ,VCC 在4.8V左右,而 PMOS 的栅极 电压为VBUS = 5V,PMOS 截止,而且VCC(4.8V) > VBAT ,故电池是被切断的。
      • 如果将 PMOS 方向旋转,VBAT 由 S → D ,那么当两者同时接入时,USB 电流会流入锂电池,出现问题。
      • 当两者同时接入时,如果突然拔掉USB,由于后续电路有电容会存储一定的电荷,故不会出现整体先断电在上电的情况,而是中途不掉电,直接切换的效果
    • 一键开关机电路:借助于开关机电路,可以通过右下方的轻触按键实现一键开关机,长按两秒后开机,开机后再按一下则关机。 原理图如下

      • 不使用时,PMOS关闭,不会有电源流入
      • 当按下按键时,PMOS 栅极 通过按键下拉到地,PMOS导通,电源流入,整体电路上电,此时,需要在初始化程序中拉高 PWR_ON 引脚电压,三极管导通,MOS栅极拉低,这样,即使松开按键,电路也会一直导通了。
      • 需要关机功能,则将 PWR_DOWN 引脚设置为输入检测,当再次按下按键时, PWR_DOWN 引脚检测到低电平,则程序控制 PWR_ON 引脚输出低电平,三极管截止,PMOS再次关断,实现关机功能。

    • LDO降压电路:电源流入后,经过一路LDO电路降压到3.3V后供给整个系统使用,为了保护电路,添加了PTC以及两个TVS二极管,整体需求的电流峰值在200mA左右,平均正常工作电流100mA。
  2. wifi模块:采用涂鸦智能的 WB3S 模块,通过串口和STM32通讯,将 1 脚拉高,焊接 R6 ,R2 悬空即可,为了满足瞬时的大电流需求,可以在VDD端可以多加一个电容。
  3. STM32系统:本次使用的单片机型号为STM32F030F4P6,M0内核,TSSOP-20封装,小体积,负责处理SHT20传感器的数据,控制OLED显示,通过串口与WB3S通信等,包含了复位,晶振,SWD接口等电路,并充分地使用了它的所有引脚.
  4. SHT20: 温湿度传感器,IIC通讯,故两个上拉电阻是必须的,为减少PCB本身的干扰,芯片周围挖槽。
  5. OLED模块:模块电路较为简单,包含一路LDO电路以及必要的阻容元件,使用IIC和STM32通讯,供电电压可使用5V或3.3V。
  6. 按键:共包含3个侧贴按键,空间占用少而且按压方便,下方SW3控制整体的开关,上方SW1为配网按键,SW2则控制着OLED的显示情况,默认开启,再次按压关闭显示。
    • 按键并联一个电容,实现简单的硬件消抖,

      程序部分

  • 官方文档教程请看文档教程
  • 官方视频教程请看MCU SDK 移植
  • 这次的程序思路较为清晰,创建F0工程后,按照教程将从涂鸦下载的MCU SDK移植到工程中,然后添加SHT20驱动,OLED驱动,按键程序以及控制开关机的程序。
  • STM32 将各个模块初始化后,开机,进入while(1),利用按键触发配网,配网成功后,用SHT20采集数据,并将采集的数据上报,核心的程序为
// SDK函数
wifi_uart_service();
// 温湿度采集
temp=SHT2x_GetTempPoll();//获取SHT20 温度
Humi=SHT2x_GetHumiPoll();//获取SHT20 湿度
// 温湿度上报
mcu_dp_value_update(1,(long)temp*10); //温度数据上报,采集的 float 数据转换为 long;
mcu_dp_value_update(2,(long)Humi); //湿度数据上报,float 转换为 long ;
// 温湿度OLED显示
OLED_WS_DIS(temp,Humi);
  • 完整的程序已经放在了附件中,还请大佬指正

注意事项

  • 我手中的是micro usb接口,现在的图中已经改为了Type-C接口。
  • 板子整体平均电流在100mA,峰值电流在200mA,所以选择LDO时,需要选择最大输出超过300mA的型号。
  • 使用锂电池供电时,由于板子本身没有电池管理芯片,所以要选择带有放电保护板的锂电池,而且电池不宜长期使用,当电压不足时,应该及时充电。
  • 关于OLED显示模块,使用常见的即可,这里使用的是技新的模块,本来计划做一块和下板相同尺寸的OLED模块,使用1.3寸OLED,但是种种原因,放弃使用。
  • 程序上,有几处需要注意的地方,例如,如果使用定时器,要注意串口和定时器的中断优先级,移植SDK时的串口发送函数是用的单字节函数等等,需要留心。
void USART1_SendByte(unsigned char data)//单字节发送函数
{   
    while((USART1->ISR & USART_FLAG_TXE) != USART_FLAG_TXE);
    USART1->TDR = data;
}

实际效果

  • 几张图片:

    如果有任何问题,请留言,评论。

参考设计图片
×

!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。

 
相关器件
器件 类型 描述 数据手册
WB3S(uvmz) WiFi模块 车库门控制器模组/蓝牙模块/WiFi模块 点击下载
TM8M475K010UBA 钽电容 点击下载
C06CF220K-9UN-X1T 贴片电容(MLCC) 点击下载
DFE201210U-1R5M=P2 贴片电感 点击下载
CT41G-0805-2X1-50V-0.1μF-M(N) 贴片电容 精度:±20% 容值:100nF 额定电压:50V 温漂系数(介质材料):2F4 材质:2X1 点击下载
HX25003-2AWB 线对板/线对线连接器 俗称: XH2.54 点击下载
NCD0805G1 发光二极管 照明颜色:绿色 主波长/色坐标:525~537.5nm 色温 - CCT(K):- 点击下载
1N5819HW-7-F 肖特基二极管 直流反向耐压(Vr):40V 平均整流电流(Io):1A 正向压降(Vf):450mV @ 1A 点击下载
CESD5V0D3 ZA 静电放电(ESD)保护器件 点击下载
CESD3V3D3 YU 静电放电(ESD)保护器件 点击下载
JK-SMD0805-075 PTC自恢复保险丝 最大电压:6V 跳闸电流:1.5A 最大动作时间:200ms 点击下载
B-2100S04P-A110 排针 点击下载
AO3401A MOS(场效应管) 漏源电压(Vdss):30V 连续漏极电流(Id)(25°C 时):4.1A 栅源极阈值电压:1.3V @ 250uA 漏源导通电阻:65mΩ @ 4.2A,10V 最大功率耗散(Ta=25°C):350mW 类型:P沟道 - 点击下载
DTC143ECA 数字三极管 额定功率:200mW 集电极电流Ic:100mA 集射极击穿电压Vce:50V 晶体管类型:NPN - 预偏压 NPN,Vcc=50V,Io=100mA,Pd=200mW 点击下载
CESD0603NC3V3B ESD二极管 反向关断电压(典型值):3.3V 击穿电压(最小值):5.6V 极性:Bidirectional 箝位电压:10V 峰值脉冲电流(10/1000us):7A (8/20us) 点击下载
CMFA103J3600HANT NTC热敏电阻 点击下载
TFPT0603L1001FV PTC 热敏电阻 功率:3/4W 工作温度:-55℃~+150℃ 常温阻值(25°C,欧姆):1K 电阻精度:±1% 点击下载
NTCS0603E3103JMT NTC热敏电阻 点击下载
0603WAX1003T5E 贴片电阻 点击下载
K2-1112SA-A4SW-01 轻触开关 电路结构:SPST-NO 触点额定电流:50mA @ 12VDC 按钮头类型:Rectangular Button 按钮作用方向:Side Actuated 点击下载
SHT20 温湿度传感器 湿度范围:0 ~ 100% RH 温度范围:- 精度:±3% RH 传感器类型:Humidity, Temperature 输出类型:I²C I2C接口,数字式温湿度传感器,电压范围: 2.1至3.6 V 点击下载
STM32F030F4P6TR ST(意法半导体) 工作电压:2.4V ~ 3.6V CPU位数:32-Bit CPU内核:ARM® Cortex®-M0 主频(MAX):48MHz ROM类型:FLASH 点击下载
ME6217C33M5G 低压差线性稳压(LDO) 输出类型:固定 最大输入电压:7V 输出电流:800mA 输出电压(最小值/固定值):3.3V 点击下载
TYPE-C 6P USB连接器 点击下载
X50328MSB2GI 贴片晶体谐振器(无源) 等效串联电阻(ESR):60Ω ~ 80Ω 主频:8MHz 频率公差:±10ppm 负载电容值:20pF 点击下载
群聊设计,与管理员及时沟通

欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。

 
查找数据手册?

EEWorld Datasheet 技术支持

论坛推荐 更多
更新时间2024-11-08 20:09:25

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD参考设计中心

站点相关: TI培训 德州仪器(TI)官方视频课程培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved