有很多温度传感器可以使用,但对于这个项目,我们将使用一个非常常见的,DTH22。它可以测量温度和湿度。
以下是 DHT22 的特点:
- 低成本
- 3到5V 供电的 I/O
- 转换期间使用5mA最大电流(同时请求数据)
- 适用于0-100%湿度读数,精度为2-5%
- 适用于-40至125℃的温度读数+ 0.5℃精度
- 不超过0.5 Hz采样率(每两秒一次)
- 机身尺寸1 5.1mm X 25mm X 7.7mm
- 4个引脚,间距为0.1“
DHT22可以作为单独的传感器或面包板元件。最好购买面包板元件版,因为它还有 4k7 上拉电阻和一个电容。如果你更喜欢单独的传感器这就是引脚:
![](https://i-blog.csdnimg.cn/blog_migrate/5805a5fec7759853f427574f1144affa.png)
这里:
- VCC:可以在3V3和5V之间
- GND:是接地线
- DATA:是数据引脚
不要忘记在DATA和VCC引脚之间添加4K7上拉电阻。用于与燃气炉或其他加热元件的连接,将在GPIO 12上添加一个继电器。确保您有一个良好的电源,因为继电器将消耗一些电能。
在这种情况下,我们的设置将是:
![](https://i-blog.csdnimg.cn/blog_migrate/34d289f3eb2ef083807b5186162d0531.png)
添加了两个LED,一个RED LED显示加热正在进行,一个GREEN LED显示系统有电。只有当红色LED不亮时,绿色LED才会亮起。
在继电器板上,仅当GPIO 12为高电平且正在进行加热时,才存在C(公共)和NO(常开)之间的连接。
信息:对220V电力感到满意,并确保我们选择能够保持消耗功率的继电器。
基本上恒温器将测量温度,如果它高于所需的温度,它将关闭继电器,如果它低于它,它将打开继电器开始加热。
如果我们按照这样的逻辑,恒温器会经常打开和关闭继电器,所以我们需要在加热的开始和停止之间添加一个偏移量(delta)。在商用恒温器上,可以对这个偏移进行编程(在0.1℃ 递增到到1℃)或者可以固定为 0.5℃
在我们的系统中,偏移量将设置为 0.4%℃。这意味着,如果我们所需的温度是 22.0℃,加热器将在21.69℃时开始并在22.4℃时停止。
为了在我们的恒温器上设置所需的温度,我们将向主题 thermostat/set 发送 MQTT 消息,其中包含所需温度的内容(例如23.2);系统将借助 SPIFFS 将值保存在文件中,并将其与从 DHT22 传感器读取的当前温度进行比较。如果发生电源故障,将从配置文件中读取所需的温度,以使其不会丢失。
当恒温器第一次通电时,所需温