使用ESP8266和Blynk应用程序的远程房间恒温器

2023-11-04

该项目可通过您的手机通过家庭WiFi或移动网络的任何地方控制您的家庭供暖单元。 基本上,它可以用远程控制器代替普通的可编程房间恒温器。 作为遥控器,它使用安装了Blynk App并配置为可以满足所有需求的智能手机。 智能手机和供暖系统之间的通信由主机提供,并将ESP8266连接到家庭WiFi。

特征:

  • 室温和湿度指示器
  • 日/夜/定时模式
  • 日/夜温度设定
  • 低温通知
  • 传感器错误通知
  • 晚上禁用所有通知
  • 图形数据视图

所需组件

GPIO

由于ESP8266的GPIO数量少,因此本项目存在一些硬件外围设备限制。

室温是由DHT22传感器测量的,尽管这些传感器不可靠,所以请留意适当的库。由于使用了特定的加热系统,因此我添加了另一个温度传感器DS18B20,该传感器可测量膨胀容器的水温,尽管它无法控制任何东西。燃油燃烧器和加热泵由BTA12三端双向可控硅开关元件驱动,并增加了缓冲电路。燃油燃烧器也有反馈信号指示燃烧器是否正在运行。

就我而言,ESP8266和OLED位于炉子的一侧,以避免额外的电气安装。另外,如果您想将OLED从主机上移开,I2C数据也不会在较长的导线上运行。

操作基础

通过App关闭系统时,循环泵和燃烧器关闭。否则,当系统处于DAY,NIGHT或TIMER操作模式时,燃烧器会加热炉中的水,因此加热系统已准备好供应热水。在定时器模式下,AM和PM定时器用于自定义所需时间段的热量。

每分钟读取一次室温,因此,如果室温低于您在App中设置的温度,则加热泵将开始通过热交换器循环热水。

您可以在代码中找到库的链接。我唯一的问题是为DHT22传感器找到合适的库,因为某些库给出错误的测量值,尤其是湿度值。因此,设计该代码是为了防止从DHT22传感器计算错误的测量值。

Blynk

多亏了安装在我智能手机上的的Blynk应用程序,该应用程序才能显示从传感器,热泵和燃油燃烧器状态收集的数据。它还可以手动或自动远程控制系统。

可以将所需的“白天”或“夜晚”温度设置为手动处理系统。在计时器模式下,两个计时器用于自动控制白天或夜晚的温度。

万一传感器读数有误,它将发送警报。当温度降到20、18和15摄氏度以下时,也会有通知。最后,一个图形绘制了前面提到的I / O的基于时间的活动。

ThingSpeak

基本操作数据已上传到私有ThingSpeak频道,可以在放置在智能手机上的IoT ThingSpeak Monitor小部件上轻松监控。因此,我不需要每次仅启动Blynk App来检查数据。每10分钟上传一次数据。

安装

以我为例,我将所有内置的硬件都放入了靠近燃油炉的适当外壳中。我还包括一个OLED,因此可以随时读取重要状态。在客厅中,只有DHT传感器位于与安装旧恒温器相同的地方。

注意:此项目经过一段时间的开发和测试,以确保所需的操作。因此,可以在App和OLED UI上记录一些过时的场景。

代码(部分)

#include <Wire.h>
#include <SPI.h>
#include <DHT.h> 
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <EEPROM.h>

//OTA
bool OTA = true;

#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
//end OTA

//******************************************************************************// SWITCH OLED HW & WIFI AP
//Initialize the OLED display using Wire library >
// create more fonts at http://oleddisplay.squix.ch/
// (horizontal=21 x vertical = 5 characters / charH=6px charV=9px)
// wiring (0-5): SDA>   SCK>
//         TX,    RX (3, 1)
//     or  GPIO4, GPIO5 (4, 5)
//     or GPIO2, GPIO0 (2, 0)
//also GPIO 10 can be used on ESP12F

#define displaySet 1 //SSD1306 = 0 or SH1106 = 1

#define WIFI_TX_POWER 0 //Limiting output power 0 - 20.5 dBm (Router setting = 20db)

#if displaySet == 0
  #include "SSD1306.h" 
  SSD1306 display(0x3c, 4, 5);
#else
  #include "SH1106.h"
  SH1106 display(0x3c, 4, 5);
#endif

//******************************************************************************// DEFINE GPIOs
const int DHTPIN = 12; // sensor pin GPIO
DHT dht;

OneWire DS_1(14); //define SD18B20 temperature sensor pin GPIO. other possible GPIOS (0-5): 0, 2, 4, 5. RX&TX=NO!
DallasTemperature tDS(&DS_1);

const int HEATER_AC_READY = 16; //OPTOCOUPLER input GPIO - monitor AC output from RELAY to HEATER

const int RELAYPUMP = 13; //define RELAY PUMP output GPIO
const int RELAYHEATER = 15; //define RELAY HEATER output GPIO

//******************************************************************************// DEFINE VARIABLES
float t;
float h;
int tDS_temp;
float tDS_oneDecimal;
long rssi;
int tempSetDay; //integer of DAY set temperature
int tempSetNight; //integer of NIGHT set temperature
int tempSet;
bool tRising;    //var for rising/falling temperature
float tPrev = 0; //check rising/falling temperature
int c = 0; // counting connection time
int switchMode; //read data from switch slider mode
int timerAm; //active or inactive AM programable timer
int timerPm; //active or inactive PM programable timer
int dataSensor; //set values through loops for V_DATASENSOR LED
int heaterLedState; //set 1st memory for combined Heat LED indicator
int heaterLedStateMax; //set 2nd memory for combined Heat LED indicator
int heaterStateThinkspeak; //set value for Heater graph on Thingspeak
int pumpStateThinkspeak; //set value for Pump graph on Thingspeak
bool refreshVirtualPins = true;
bool startDHTread = false; //don't read DHT on start. "setBlynkCountdown" must be > "SENSOR_INTERVAL" on loop()
unsigned int sensor_interval;

接线图

详情参阅 - 亚图跨际

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用ESP8266和Blynk应用程序的远程房间恒温器 的相关文章

  • jar包的下载和导入

    目录 一 什么是jar包 二 下载jar包 三 IDEA导入jar包 一 直接导入jar包 二 在指定的目录下导入jar包 一 什么是jar包 顾名思义 jar包是JAVA文件的压缩包 将写好的类 各种资源压缩到jar包里面 所以在导入ja
  • Docker 入门教程-----Docker安装与使用(Linux系统 Ubuntu16.04、Centos 和Windows)

    简介 Docker是一种新兴的虚拟化技术 能够一定程度上的代替传统虚拟机 不过 Docker 跟传统的虚拟化方式相比具有众多的优势 我也将Docker类比于Python虚拟环境 可以有效的配置各个版本的开发环境 比如深度学习与Java环境

随机推荐

  • 15Spring整合HIbernate&Ibatis(不完整版)

    前言 Hibernare是一个ORM开源框架 主要应用在持久层上 关于Hibernate的知识 我将在有时间的时候再学一遍 顺便整理一下 到时候顺便将Spring按照自己的方式再次整理一遍 奋斗的程序熊 Spring整合hibernate
  • 宇宙第一TTS 微软ASZURE python api演示

    我是个追求品质的人 tts可用的一大堆 免费的也一大堆 但是微软的目前独步天下 而且近期tts网站似乎取消了白嫖机制 只能正经八百白买了 去TB搞一个使用账号 也不贵 一年40 简单的使用方法在此 当然 就是从微软文档抄的作业 目前已知可以
  • QT的UI界面效果预览快捷键

    QtCreator的界面预览 Shift Alt R 运行快捷键 Ctrl R 只构建快捷键 Ctrl B 怕忘了 自己记录一下
  • 西门子S7-200PLC温度程序 最近看到同行发的各种帮做程序

    西门子S7 200PLC温度程序 最近看到同行发的各种帮做程序 留言里总有初学者求温度 PID程序 所以我发出来给需要的人学习 适合初学者的模拟量温度处理程序 包含一份CAD图纸 一份PDF图纸 一套PLC程序 id 56733527955
  • 实训一 思科交换机基础配置

    交换机的命令行操作模式 用户模式 特权模式 全局配置模式 端口模式 1 命令行操作模式的进入 用户模式switch gt 输入enable 进入特权模式switch 输入configure terminal 进入全局配置模式switch c
  • 双节点文件服务器,在 Windows Server 2008 中配置双节点文件服务器故障转移群集的循序渐进指南.doc...

    在 Windows Server 2008 中配置双节点文件服务器故障转移群集的循序渐进指南 在 Windows Server 2008 中配置双节点文件服务器故障转移群集的循序渐进指南 更新时间 2007年4月 应用到 Windows S
  • win7系统下利用VS Code断点调试C/C++源码

    1 系统配置 win7 64系统 2 VS Code版本 1 70 2 System setup 3 安装包下载官网 Visual Studio Code July 2022 由于计算机是win7版的 故选择能支持win7系统版本的VS C
  • Rancher和K8s关系

    产品介绍 K8s Kubernetes 为企业提供了一种一致的方式来管理任何计算基础架构 百度百科 Rancher则是用于管理位于任何位置的Kubernetes集群的完整平台 如果用户是自己手动部署K8s集群 流程还是比较复杂的 需要掌握一
  • Idea中打包jar包(mavan项目)

    一 操作环境 IntelliJ IDEA 2020 3 3 Win10 Mavan项目 二 操作 1 确保打包方式为jar 打开pom xml文件 找到
  • MAC搜索不到蓝牙设备解决方案

    简单的解决方案就是 在打开的窗口中找到 com apple Bluetooth plist 删掉 如果还看到 com apple Bluetooth plist lockfile 也一并删 如下图 然后重启 也可以参考 http bbs p
  • [Unity][安卓]Unity和Android Studio 3.0 交互通讯(1)Android Studio 3.0 设置

    安卓 Android Studio 3 0 JDK安卓环境配置 2017 10 http blog csdn net bulademian article details 78387052 安卓 Android Studio 3 0 安装包
  • 计算机中丢失dasfj_v1.2.dll,S7DasBrMenu.dll(修复丢失S7DasBrMenu.dll文件)V1.0 正式版

    S7DasBrMenu dll 修复丢失S7DasBrMenu dll文件 是针对S7DasBrMenu dll文件的一款很好用的修复工具 使用电脑时遇到S7DasBrMenu dll文件丢失怎么办 没关系 小编带来的这款S7DasBrMe
  • 深入理解设计原则之KISS/YAGNI/DRY原则【软件架构设计】

    系列文章目录 C 高性能优化编程系列 软件架构设计系列 深入理解设计模式系列 高级C 并发线程编程 如果敌人使你生气 说明你没有胜过他的信心 If the enemy makes you angry that means you have
  • js 判断字符串中是否包含某个字符串

    可通过str includes 和str indexOf 1 includes 语法 arr includes searchElement arr includes searchElement fromIndex 参数说明 参数 描述 se
  • 数据结构-线性结构之线性表

    什么是线性表 线性表 Linear List 由同类型数据元素构成的有序序列的线性结构 1 表中元素个数称为线性表的长度 2 线性表没有元素时 称为空表 3 表起始位置称为表头 表的结束位置称为表尾 线性表的抽象数据类型描述 类型名称 线性
  • 使用maven 打成可提供给第三方使用的jar包

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1 集成环境idea 2 目标第三方可直接引入使用 步骤如下 0 组件项目打包一定要把build 元素注释掉 否则别人无法引入 jar包 pom 例子如下
  • Django笔记总结

    1 web框架的本质 web通信流程 web我们这里指的就是通过浏览器去访问服务端 请求页面或者数据的通信方式 属于B S架构 就是我们常见的网站 浏览器与服务端的通信流程 浏览器客户端发送一个请求信息 数据 发送到我们服务端 服务端接受这
  • 使用强随机数

    伪随机数易被攻击者破解而找到其数序生成规律 伪随机数不能用于安全敏感应用 常见安全敏感应用 SessionID的生成 挑战算法中的随机数生成 验证码的随机数生成 生成重要随机文件的文件名 生成密钥相关的随机数等 对于安全敏感应用 应该使用强
  • H3C交换机堆叠(IRF)

    目录 1 IRF简介 1 1 实验环境 1 2 添加交换机 1 3 添加连接线 1 4 启动设备 1 5 修改设备名称 1 6 关闭IRF物理端口 1 7 设置IRF域编号 1 8 设置member成员编号 1 9 配置IRF端口并与物理端
  • 使用ESP8266和Blynk应用程序的远程房间恒温器

    该项目可通过您的手机通过家庭WiFi或移动网络的任何地方控制您的家庭供暖单元 基本上 它可以用远程控制器代替普通的可编程房间恒温器 作为遥控器 它使用安装了Blynk App并配置为可以满足所有需求的智能手机 智能手机和供暖系统之间的通信由