基于Arduino的智能恒温器

自制智能恒温器

在智能家居的浪潮中,智能恒温器作为提升居住舒适度的重要设备,越来越受到关注。本文将详细介绍如何自制一个开源智能恒温器,涵盖项目简介、所需材料、硬件组装、软件编程、测试与校准等步骤,帮助您轻松打造一个符合自己需求的智能恒温器。
实物图:
在这里插入图片描述
在这里插入图片描述

项目简介

本项目旨在创建一个用户友好、可自定义的开源智能恒温器,适合不同用户的需求。该项目是维也纳科技大学“媒体与以人为本的计算”课程的一部分,采用以人为中心的设计理念,确保每个人都能根据自己的需求进行调整。

所需材料

在这里插入图片描述

硬件组件

  1. 微控制器:Arduino MKR WiFi 1010

    • 处理传感器数据并控制加热系统,支持WiFi和蓝牙。
  2. 传感器

    • 温湿度传感器:Adafruit Sensirion SHT31-D
    • CO2传感器(可选):MH-Z19C红外CO2传感器,用于收集空气质量数据。
  3. OLED显示屏:0.96英寸OLED SSD1306显示屏(I2C接口)。

  4. 继电器模块:SRD-05VDC-SL-C继电器,5V DC/250V AC 10A,用于控制加热系统。

  5. 实时时钟:RTC DS3231(I2C接口),用于跟踪准确时间。

  6. 电源:5V/2A电源适配器。

  7. 外壳:3D打印外壳或回收盒子,用于容纳组件。

  8. 电路板

    • 面包板和跳线(用于原型测试),或
    • 自定义印刷电路板(PCB),可在GitHub上找到设计草图。

软件要求

  1. 开发环境:Arduino IDE(可以使用任何您喜欢的IDE,只要能上传代码到Arduino)。

  2. 编程语言:C++(Arduino)。

  3. 数据库:SQL(MariaDB)。

  4. 前端:TypeScript(Angular 17)。

  5. 后端:TypeScript(Node.js, Express)。

工具

  1. 焊接铁和焊锡。
  2. 剥线钳和剪刀。
  3. 螺丝刀。
  4. 万用表。
  5. 3D打印机(可选)。

项目准备

在大多数加热系统中,恒温器通过闭合(短接)一个接触点来控制加热器,从而完成电路并激活加热单元。如果您的当前恒温器以这种方式工作,您也可以使用这个自制的恒温器。

此外,您需要一个服务器来利用恒温器的所有功能,例如远程监控和控制。该服务器处理您与恒温器之间的通信并收集数据。如果没有服务器,您仍然可以基于我们使用的物理组件构建一个独立的恒温器,并可能重用我们的部分代码。

安全注意事项

处理高电压组件(如控制加热系统的组件)可能会很危险。务必小心,并遵循所有安全指南,以防止事故、伤害或财产损失。在对接线或组件进行任何调整之前,请确保断开电源。使用适当的绝缘材料,避免触摸带电导线或裸露连接。如果您没有高电压操作的经验或信心,请寻求专业人士的帮助。遵循本指南即表示您自担风险。我们不对在构建或操作智能恒温器过程中可能发生的任何伤害、损坏或损失负责。

步骤详解

步骤1:3D打印外壳(可选)

在这里插入图片描述
在这里插入图片描述

我们设计了一个简单的外壳,使恒温器看起来更精致,类似于典型的恒温器。您可以下载我们的STL文件,并将其导入Tinkercad或其他3D建模软件中进行自定义设计。

步骤2:打印PCB(可选)

在这里插入图片描述
在这里插入图片描述

您可以继续使用原型运行。如果想要一个整洁的工作解决方案,可以设计自定义PCB。使用KiCad进行PCB设计,并将其打印出来。

步骤3:组装硬件与微控制器设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开始组装过程,首先设置微控制器。将其安装在面包板上,便于原型制作和连接。确保微控制器连接到稳定的5V/2A电源。

传感器集成
  1. 温湿度传感器:根据所选传感器的接线图正确连接。
  2. CO2传感器:如需收集空气质量数据,重复此步骤。
  3. OLED显示屏:连接到微控制器,确保引脚配置正确。
  4. 继电器模块:设置继电器模块,确保其能够处理加热系统的负载。

步骤4:编程恒温器

设置开发环境,安装必要的软件。使用Arduino IDE上传代码。确保安装所需的库,并根据您的WiFi和服务器配置进行调整。

步骤5:设置数据库、服务器和前端

在这里插入图片描述

为智能恒温器的服务器设置数据库(使用MariaDB),开发前端(使用Angular 17),以及后端(使用Node.js和Express)。

步骤6:测试与校准(可选)

通电后进行初步测试,确保所有组件正常工作。校准恒温器以确保其准确可靠,比较传感器读数与可信温度计的读数。

步骤7:与社区分享成果

在这里插入图片描述

感谢您参与构建我们的恒温器。如果遇到任何问题,请与我们联系,并在社区中分享您的成果。我们期待看到您的进展!

结语

通过以上步骤,您可以成功构建一个智能恒温器。这个项目不仅能提升您的居住舒适度,还能让您在智能家居的道路上迈出重要一步。希望您在这个过程中获得乐趣,并与他人分享您的经验!

希望你喜欢这个项目,并在构建过程中找到乐趣!如果你有任何问题或需要帮助,欢迎在评论区交流。

作者:Svan.


注意:本博文为不得在未经本人同意进行转载或者二次创作,违者必究!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/891728.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一键找回,2024四大固态硬盘数据恢复工具推荐!

虽然固态硬盘(SSD)因其读写速度快、功耗低等特点受到广泛欢迎,但它并非无懈可击,数据丢失的问题依然存在。如果你也遇到了固态硬盘数据丢失的问题,那么一下的这几款软件可以一试! 福昕数据恢复 直达链接&…

AI网关在应用集成中起到什么作用?

现在,国内外几乎每个SaaS服务商都找到办法把大型语言模型(LLM)集成到自己的产品里。印证了那句话“每款SaaS都值得用AI重做一遍”我们暂且不讨论是否值得用AI重做,但是增加AI的功能,确实能让产品有更多的卖点。 通过整…

Gin框架操作指南04:GET绑定

官方文档地址(中文):https://gin-gonic.com/zh-cn/docs/ 注:没用过Gin的读者强烈建议先阅读第一节:Gin操作指南:开山篇。 本节演示GET绑定,包括绑定表单数据至自定义结构体,绑定查询…

精心整理85道Java微服务面试题(含答案)

微服务 面试题 1、您对微服务有何了解? 2、微服务架构有哪些优势? 3。微服务有哪些特点? 4、设计微服务的最佳实践是什么? 5、微服务架构如何运作? 6、微服务架构的优缺点是什么? 7、单片&#xff0…

[Python学习日记-48] Python 中的时间处理模块—— time 与 datetime

[Python学习日记-48] Python 中的时间处理模块 简介 Python 中表示时间的几种方式 UTC 时间 time 模块 datetime 模块 简介 在平常的代码中,我们常常需要与时间打交道。在 Python 中,与时间处理有关的模块就包括:time、datetime、calend…

vue3学习之插槽slot

关于slot web组件内部的占位符,可以使用自己的标记填充这个占位符 ,具名插槽就是在slot标签上添加name属性(https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/slot) vue3官方文档:https://cn.vuejs.org/gui…

回归本真 治愈心灵——汪青《在西行的路上》

回归本真 治愈心灵——汪青《在西行的路上》 知天地、忧生存、明自我。汪青的作品《在西行的路上》主体书写的是描述自己的西北之行。本书在创作之初,作者本人用文字表现不一样的风景,传递出更多美好的瞬间。作者将应用崭新的知识混合脚步踏出的历程&am…

控制层接受用户输入-系统架构师(八十一)

1在MVC设计模式中,以下说法正确的是()。 A 控制器表示业务逻辑 B 视图接受用户输入 C 模型表示业务数据 D 一个模型只能为一个视图提供数据 解析: 控制器接受用户输入。 所以C对 2下列()设置可以隔离…

jmeter使用csv数据

背景 使用jmeter对系统进行压测。测试数据存储在了csv中,多线程压测的时候,csv中的一条数据不能多个线程同时使用,数据全部使用过后,需要终止压测。 功能点 从csv读取数据后,完成接口数据拼接。多线程依次从csv文件…

大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

集师知识付费小程序:打造培训机构在线教育的金字招牌 集师知识付费系统 集师知识付费小程序 集师知识服务系统 集师线上培训系统 集师线上卖课小程序

在数字化浪潮的推动下,在线教育已成为教育领域的热门话题。而在众多在线教育平台中,集师知识付费小程序凭借其独特的定位和创新的模式,成功为培训机构打造了一张闪亮的在线教育金字招牌。 集师知识付费小程序,是一个集课程展示、…

如何在Chrome、Edge、360、Firefox等浏览器查看网站SSL证书信息?

在如今的网络环境中,保障网络安全、数据安全尤其重要,市面上大部分网站都部署了SSL证书以实现HTTPS加密保护数据传输安全以及验证网站身份,确保网站安全可信。那么如何查看网站的SSL证书信息?接下来,我们将详细介绍如何…

基于STM32的自学习走迷宫智能小车设计

引言 本项目设计了一个基于STM32的自学习走迷宫智能小车。小车通过多个超声波传感器、红外传感器等,检测周围障碍物和路径。它采用简单的强化学习算法,在不断探索的过程中自我调整路径,从而最终找到迷宫的出口。系统适用于智能机器人实验、教…

数据质量差的代价是什么?

如今,许多数字企业都认为自己是数据驱动的。通过各种软件解决方案,数据无处不在,收集起来也非常方便,这使得企业能够被动地收集大量数据,并将其应用于决策制定。 然而,人们往往很容易在不考虑数据质量的情…

Light灯光组件+组件的相关操作+游戏资源的加载

Light灯光组件 Type: Directional:平行光,模仿的是太阳光 Spot:聚光灯 Area:区域光 Color: 颜色值 Mode: RealTime:实时 Mix:混合 Baked:烘焙 Intersity: 光照强度 Indirect Multiplier:光照强度乘数 Shadow Type:影子设置:…

云栖实录 | Hologres3.0全新升级:一体化实时湖仓平台

本文根据2024云栖大会实录整理而成,演讲信息如下: 演讲人: 姜伟华 | 阿里云智能集团资深技术专家、Hologres 负责人 丁 烨 | 阿里云智能集团产品专家、Hologres 产品负责人 活动: 2024 云栖大会 - 商用大数据计算与分析平台论…

OpenCV-人脸检测

文章目录 一、人脸检测流程二、关键方法三、代码示例四、注意事项 OpenCV是一个开源的计算机视觉和机器学习软件库,它提供了多种人脸检测方法,以下是对OpenCV人脸检测的详细介绍: 一、人脸检测流程 人脸检测是识别图像中人脸位置的过程&…

git--git reset

HEAD 单独一个HEAD eg:git diff HEAD 表示当前结点。 HEAD~ HEAD~只处理当前分支。 注意:master分支的上一个结点是tmp分支的所在的结点fc11b74, 79f109e才是master的第二个父节点。 HEAD~ 当前结点的父节点。 HEAD~1 当前结点的父节点。 HEAD~n 当前结点索…

kali linux 允许 root 用户登录 安装过程中不能创建 root 根用户密码 之后不能以根用户直接登录 即使是正确的管理员密码也无法登录

打开终端。 输入命令 sudo passwd root 并按回车键。 系统会提示您输入新的 UNIX 密码,输入您想要设置的密码并按回车键。 再次输入相同的密码进行确认。 如果密码设置成功,会显示 “passwd: password updated successfully”。 在登录界面&#xf…

模态与非模态的对话框

本文学习自&#xff1a; 《Qt Creato快速入门》 #include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }1. #include "widget.h" #include "ui_w…