最近杭州刚刚入春,办公室里的空气非常干燥,作为需要一直盯着电脑的程序猿,经常会感觉到眼干。
但是,作为一个无所不能的HaaS开发程序猿,这点小问题根本难不倒我。抄起手边的元器件,这就搓一款智能加湿器出来。
这款加湿器除了喷水,还应该具有自动调节的功能。实时检测空气湿度,当湿度高于60%H:关闭加湿器;湿度低于60%H:打开加湿器。
这样,就能维持空气湿度在60%上下。
准备
本案例打造需要如下硬件:
- ESP32一台
- sht3X温湿度传感器一个
- SSD1306显示屏一个
- 杜邦线若干
- Micro-USB数据线一条
- 加湿器模块一套(某宝搜索“加湿器模块”)
原理
加湿器的核心组件是“雾化片”,雾化片利用电子高频震荡(振荡频率为1.7MHz 或2.4MHz,超过人的听觉范围,该电子振荡对人体及动物无伤害),通过陶瓷雾化片的高频谐振,将液态水分子结构打散而产生自然飘逸的水雾,不需加热或添加任何化学试剂。从而实现“加湿”效果。
百度百科
硬件连线图
硬件连线图如下图所示:
根据ESP32的硬件连线图,可以得知OLED和SHT3X温湿度模块是I2C总线连接,加湿器模块通过I/O控制开关。
做一点小小的改装:
设备端开发
开发环境
在进行下一步之前请确保ESP32开发环境已经搭建完毕。详情请参考esp32开发环境的说明。
创建解决方案
main.py脚本的内容如下图所示:
import utime # 延时函数在utime库中
from driver import GPIO,I2C
import sht3x
from ssd1306 import SSD1306_I2C
HUMI_CTRL_VALUE = 60.0
hum_s = 0
oled = None
sht3xDev = None
humi_gpio = None
def sht3x_init():
global sht3xDev
i2cDev = I2C()
i2cDev.open("sht3x")
sht3xDev = sht3x.SHT3X(i2cDev)
def humi_ctrl_init():
global humi_gpio
humi_gpio = GPIO()
humi_gpio.open