电路

如何构建舒适型监控传感器站:10个步骤(带图片)

20150102 吃八方 2014行者影像节作品展映:花朵1

20150102 吃八方 2014行者影像节作品展映:花朵1

目录:

Anonim

这种说明书描述了所谓的设计和结构 舒适监测站CoMoS,一种用于环境条件的组合传感器装置,由位于德国凯泽斯劳滕工业大学TUK建筑环境部门开发。

CoMoS使用ESP32控制器和传感器 气温相对湿度 (Si7021), 空气流速 (现代设备的风传感器转速C),和 地球温度 (DS18B20采用黑色灯泡),全部采用紧凑,易于构建的外壳,通过LED指示灯(WS2812B)提供视觉反馈。另外,一个 照度 包括传感器(BH1750)以分析局部视觉状况。所有传感器数据都会定期读取,并通过Wi-Fi发送到数据库服务器,从中可以用于监控和控制。

这一发展背后的动机是获得实验室传感器设备的低成本但非常强大的替代品,通常价格高于3000欧元。相比之下,CoMoS使用总价约50欧元的硬件,因此可以在(办公室)建筑物​​中进行全面部署,以实时确定每个工作场所或建筑区域的个人热和视觉状况。

有关我们的研究和部门相关工作的更多信息,请访问Living Lab官方智能办公空间网站或通过LinkedIn直接联系相应的作者。所有作者的联系人都列在本教程的末尾。

结构说明: 这个instructable描述了CoMoS的原始设置,但它也提供了信息和指令 一些变化 我们最近开发的:除了标准件的原始外壳外,还有一个 3D打印选项。除了具有数据库服务器连接的原始设备之外,还有另一种选择 独立版 SD卡存储,集成的WIFi接入点和花哨的移动应用程序,可视化传感器读数。请检查相应章节中标记的选项和 最后一章中的独立选项.

个人说明: 这是作者的第一个指导,它涵盖了非常详细和复杂的设置。如果在整个步骤中遗漏任何细节或信息,请随时通过本页的评论部分,通过电子邮件或通过LinkedIn与我们联系。

供应:

第1步:背景 - 热和视觉舒适

散热和视觉舒适 已经成为越来越重要的话题,特别是在办公室和工作场所环境,而且在住宅领域。该领域的主要挑战是个体的热感觉通常在很大范围内变化。一个人可能会在某种温度条件下感到炎热,而另一个人则会感到寒冷。那是因为 个人热感知 受许多因素的影响,包括气温,相对湿度,空气速度和周围表面辐射温度的物理因素。而且,衣服,新陈代谢活动以及年龄,性别,体重等个体方面都会影响热感。

虽然各个因素在加热和冷却控制方面仍然存在不确定性,但物理因素可以通过传感器设备精确确定。可以测量空气温度,相对湿度,空气速度和地球温度,并将其用作建筑物控制的直接输入。此外,在更详细的方法中,它们可以用作计算所谓的输入 PMV指数,其中PMV代表预测平均投票。它描述了人们在给定的环境室内条件下如何平均评估他们的热感觉。 PMV可以取-3(冷)到+3(热)的值,0是中性状态。

为什么我们在这里提到PMV?嗯,因为在个人舒适的领域,它是一种常用的指标,可以作为建筑物中热情况的质量标准。通过CoMoS,可以测量PMV计算所需的所有环境参数。

如果您有兴趣,可以了解更多有关热舒适性,全球环境和平均辐射温度,PMV指数以及实施ASHRAE标准的信息。

维基百科:热舒适

ISO 7726热环境的人体工程学

ASHRAE NPO

顺便说一句:有很长的存在,但也有很多新开发的小工具 个性化环境 提供个人热量和视觉舒适度。小型桌面风扇是一个众所周知的例子。此外,正在开发甚至已经在市场上销售的足暖器,加热和通风椅子或用于红外辐射加热和冷却的办公室隔板。所有这些技术都会影响工作场所的局部热条件,并且它们也可以根据本地传感器数据自动控制,如本步骤图片所示。

有关个性化环境小工具和正在进行的研究的更多信息,请访问:

Living Lab智能办公空间:个性化环境

加州大学伯克利分校

ZEN个人加热冷却设备报告PDF

SBRC卧龙岗大学

第2步:系统方案

开发过程中的主要目标之一是创建一个 无线, 紧凑,和 便宜 传感器装置,用于测量给定开放式办公空间中至少十个单独工作场所的室内环境条件。因此,该站使用带有板载WiFi连接的ESP32-WROOM-32,以及各种连接器引脚和支持各种传感器的总线类型。传感器站使用单独的IoT-WiFi,并通过在数据库服务器上运行的PHP脚本将其数据读数发送到MariaDB数据库。另外,还可以安装易于使用的Grafana视觉输出。

上面的方案显示了所有外围组件的布置,作为系统设置的概述,但这个指示集中在传感器站本身。当然,PHP文件和SQL连接的描述也将在后面包含,以提供构建,连接和使用CoMoS所需的所有信息。

注意: 在本教程的最后,您可以找到有关如何使用SD卡存储,内部WiFi接入点和移动设备的Web应用程序构建CoMoS的备用独立版本的说明。

第3步:供应清单

电子产品

传感器和控制器,如图所示:

  • ESP32-WROOM-32 mikrocontroller(espressif.com)A
  • Si7021或GY21温湿度传感器(adafruit.com)B
  • DS18B20 +温度传感器(adafruit.com)C
  • Rev C.风速传感器(moderndevice.com)D
  • WS2812B 5050状态LED(adafruit.com)E
  • BH1750照度传感器(amazon.de)F

更多电动部件:

  • 4,7k上拉电阻(adafruit.com)
  • 0,14mm²(或类似)标准线(adafruit.com)
  • 2x Wago紧凑型拼接连接器(wago.com)
  • Micro USB线(sparkfun.com)


表壳零件
(在下一步中查找有关这些部件和尺寸的更多详细信息。如果您有3D打印机,则只需要一个乒乓球。跳过下一步,找到步骤5中打印的所有信息和文件。)

  • 亚克力板圆形50x4毫米1
  • 钢板圆形40x10毫米2
  • 亚克力管50x5x140 mm 3
  • 亚克力板圆形40x5毫米4
  • 亚克力管12x2x50 mm 5
  • 乒乓球6


  • 白色喷漆
  • 黑色哑光漆喷雾
  • 一些录音带
  • 一点保温棉,棉垫或类似的东西


工具

  • 电钻
  • 8毫米偷钻
  • 6毫米木/塑料钻
  • 12毫米木/塑料钻
  • 薄手锯
  • 砂纸
  • 线切割钳
  • 剥线钳
  • 烙铁和锡
  • 动力胶或热胶枪


软件和库
(这些数字表示我们使用的库版本并测试了硬件。较新的库也可以正常工作,但我们在尝试不同/较新版本时偶尔会遇到一些问题。)

  • Arduino IDE(1.8.5)
  • ESP32核心库
  • BH1750FVI库
  • Adafruit_Si7021库(1.0.1)
  • Adafruit_NeoPixel库(1.1.6)
  • DallasTemperature图书馆(3.7.9)
  • OneWire库(2.3.3)

第4步:案例设计和构建 - 选项1

CoMoS的设计采用纤薄的垂直外壳,大部分传感器安装在顶部区域,只有温度和湿度传感器安装在底部附近。该 传感器位置 和安排遵循测量变量的特定要求:

  • Si7021 温湿度传感器 安装在壳体外部,靠近底部,以允许传感器周围的空气自由循环,并最大限度地减少微控制器在壳体内产生的废热影响。
  • BH1750 照度传感器 安装在壳体的平顶上,以根据工作场所照明的通用标准测量水平表面上的照明。
  • Rev. C 风传感器 也安装在机箱的顶部,其电子设备隐藏在机箱内,但其带有实际热风速计和温度传感器的叉齿暴露在顶部周围的空气中。
  • DS18B20 温度感应器 安装在车站的顶部,在一个黑色的彩绘乒乓球球内。顶部的位置对于最小化视角因子以及因此传感器站本身对地球温度测量的辐射影响是必要的。

关于平均辐射温度和使用黑色乒乓球作为球形温度传感器的其他资源包括:

王尚尚,余国。 (2015年)。丙烯酸和铜球温度计适用于昼夜室外环境。建筑与环境。 89. 10.1016 / j.buildenv.2015.03.002。

亲爱的,理查德。 (1987年)。乒乓球温度计,用于平均辐射温度。 H&Eng。,。 60. 10-12。

表壳设计简单,尽可能降低制造时间和精力。它很容易 由标准零件制成 和组件只需几个简单的工具和技能。 要么,对于那些幸运地拥有3D打印机服务的人来说,所有的箱子部件都可以 3D-印刷 同样。要打印外壳,可以跳过此步骤的其余部分,并在下一步中找到所有必需的文件和说明。

为了 标准件的结构,大多数选择适合的尺寸:

  • 主体 是一种外径50毫米,壁厚5毫米,高140毫米的丙烯酸(PMMA)管。
  • 底板用作状态LED的光导体的是一种直径50毫米,厚度为4毫米的丙烯酸圆板。
  • 一个 钢轮 在底板顶部安装一个直径为40毫米,厚度为10毫米的重物,并安装在主体管的下端内,以防止工作台翻倒并将底板固定到位。
  • 顶板 也适合在主体管内。它由PMMA制成,直径为40毫米,厚度为5毫米。
  • 最后, 顶部提升管 也是PMMA,外径为10毫米,壁厚为2毫米,长度为50毫米。

制造和组装过程很简单,从一些开始 钻孔。钢制圆形需要一个8毫米的连续孔,以适应LED和电缆。主体管需要大约6毫米的孔,作为USB和传感器电缆的电缆馈通,以及通风孔。孔的数量和位置可根据您的喜好进行调整。开发人员的选择是背面有六个孔,靠近顶部和底部,两个在正面,一个顶部,一个底部,作为参考。

顶板是最棘手的部分。它需要一个居中的,直的和连续的12毫米整体以适合顶部提升管,另一个偏心的中心6毫米孔以适合照度传感器电缆,以及一个约1.5毫米宽和18毫米长的薄缝适合风传感器。查看图片以供参考。最后,乒乓球需要一个6毫米的整体,以适应全球温度传感器和电缆。

在下一步中,除了底板之外的所有PMMA部件都应该是 喷漆,参考是白色的。乒乓球必须涂上哑光黑色以确定其估计的热和光学属性。

钢轮是 胶合 中心并平放在底板上。顶部提升管粘在顶板的12毫米孔中。乒乓球被胶合在提升管的顶端,其孔与提升管的内开口相匹配,因此温度传感器和电缆可以随后通过提升管插入球中。

完成此步骤后,表壳的所有部件都可以通过将它们放在一起进行组装。如果有些太紧,请将它们打磨一下,如果太松,则加一层薄薄的胶带。

第5步:案例设计和构建 - 选项2

虽然构建CoMoS案例的选项1仍然是一个快速而简单的案例,但让a 3D打印机 这项工作可能更容易。此外,对于此选项,外壳分为三个部分,顶部,外壳主体和底部,以便于按照下一步所述进行接线和组装。

Thingiverse提供了有关打印机设置的文件和更多信息:

Thingiverse上的CoMoS文件

按照说明使用 白丝 对于顶部和箱体部件,强烈建议。这可以防止壳体在阳光下过快加热并避免误测量。 Ť透明长丝 应该用于底部以允许LED指示灯照明。

方案1的另一个变化是缺少金属圆。为防止CoMoS翻倒,应将任何类型的重量如轴承滚珠或一堆金属垫圈放置在透明底部内/上。它的设计有一个边缘,以适应和保持一些重量。或者,可以使用双面胶带将CoMoS粘贴到其安装位置。

注意: Thingiverse文件夹包含可以安装到CoMoS机箱的micro SD读卡器外壳的文件。这种情况是可选的,是本教程最后一步中描述的独立版本的一部分。

第6步:布线和装配

ESP,传感器,LED和USB线都是 焊接 并根据该步骤图片中所示的示意电路连接。该 引脚分配 匹配后面描述的示例代码是:

  • 14 - 复位桥(EN) - 灰色
  • 17 - WS2811(LED) - 绿色
  • 18 - DS18B20 +的上拉电阻
  • 19 - DS18B20 +(单线) - 紫色
  • 21 - BH1750和SI7021(SDA) - 蓝色
  • 22 - BH1750和SI7021(SCL) - 黄色
  • 25 - BH1750(V-in) - 棕色
  • 26 - SI7021(V-in) - 棕色
  • 27 - DS18B20 +(V-in) - 棕色
  • 34 - 风传感器(TMP) - 青色
  • 35 - 风传感器(RV) - 橙色
  • VIN - USB线(+ 5V) - 红色
  • GND - USB线(GND) - 黑色

Si7021,BH1750和DS18B20 +传感器通过ESP32的IO引脚供电。这是可能的,因为它们的最大电流吃水低于ESP每个引脚的最大电流供应,并且在传感器通信错误的情况下通过切断电源来重置传感器是必要的。有关更多信息,请参阅ESP代码和注释。

Si7021和BH1750传感器相同 USB电缆,应使用已经穿过专用外壳孔的电缆进行焊接,以便在下一步中进行组装。 WAGO紧凑型拼接连接器用于通过USB电缆将设备连接到电源。所有器件均通过USB供电为5 V DC,与ESP32的逻辑电平一起工作在3.3 V.此外,micro USB线的数据引脚可以重新连接到micro USB插头并连接到ESP的micro USB插座,作为电源输入和数据连接,在外壳关闭时将代码传输到ESP32。否则,如果如方案中所示连接,则在组装外壳之前需要另一条完整的微型USB电缆以初始地将代码传送到ESP。

Si7021温度传感器 胶合在表壳背面,靠近底部。将此传感器安装在靠近底部非常重要,以避免由于壳体内产生的热量引起的错误温度读数。有关此问题的更多信息,请参阅Epilogue步骤。该 BH1750照度传感器 粘在顶板上,然后粘在上面 风传感器 插入并安装在相对侧的狭缝上。如果它太合适,传感器中心部分周围的一点胶带有助于将其保持在适当位置。该 DS18B20温度传感器 通过顶部提升器插入乒乓球,最终位置在球的中心。顶部提升管的内部填充有隔离棉,下部开口用胶带或热胶密封,以防止传导或对流热传递到球体。该 LED 安装在钢制圆孔中,朝下照亮底板。

所有电线,拼接连接器和ESP32都进入主壳体内,所有壳体部件都放在最终组装中。

第7步:软件 - ESP,PHP和MariaDB配置

ESP32微控制器可以 程序 通过使用 Arduino IDE 和Espressif提供的ESP32核心库。有很多关于如何设置IDE以兼容ESP32的在线教程,例如这里。

一旦设置,附上 被转移到ESP32。为了便于理解,它在整个评论中被注释,但一些关键特征是:

  • 它有一个 ”用户配置“开头的部分,必须设置个别变量,例如 WiFi ID和密码,数据库服务器IP,以及所需的数据读取和发送周期。它还包括一个“零风调节”变量,可用于在不稳定的电源情况下将零风速读数调整为0。
  • 代码包括平均值 校准因子 由作者确定的十个现有传感器站的校准。有关更多信息和可能的个别调整,请参阅结语步骤。
  • 代码的几个部分包含各种错误处理。特别是ESP32控制器上经常出现的总线通信错误的有效检测和处理。再次,请参阅Epilogue步骤以获取更多信息。
  • 它有一个 LED彩色输出 显示传感器站的当前状态和任何错误。有关更多信息,请参阅结果步骤。

附上 PHP文件 必须在serverIP / sensor.php的数据库服务器的根文件夹中安装和访问。 PHP文件名和数据处理内容必须与ESP的调用函数代码匹配,另一方面,与数据库表设置匹配,以允许存储数据读数。附加的示例代码是匹配的,但是如果您更改了某些变量,则必须在整个系统中更改它们。 PHP文件在开头包括一个调整部分,其中特别是根据系统的环境进行单独调整 数据库用户名和密码,以及数据库名称。

MariaDB或SQL 数据库 根据传感器站代码和PHP脚本中使用的表设置,在同一服务器上设置。在示例代码中,MariaDB数据库名称为“sensorstation”,其中包含名为“data”的表,其中包含13个列,分别用于UTCDate,ID,UID,Temp,Hum,Globe,Vel,VelMin,VelMax,MRT,Illum,IllumMin,和IllumMax。

Grafana分析和监控平台可以另外安装在服务器上,作为直接数据库可视化的选项。这不是这个开发的关键特征,因此在这个教程中没有进一步描述。

第8步:结果 - 数据读取和验证

完成所有接线,装配,编程和环境设置后,传感器站会定期向数据库发送数据读数。通电时,有几个 运作状态 通过底部指示 LED 颜色:

  • 在启动过程中,LED指示灯呈黄色亮起,表示尚未连接WiFi。
  • 连接时,指示灯为蓝色。
  • 传感器站运行传感器读数并定期将其发送到服务器。每次成功传输由600 ms的绿光脉冲指示。
  • 如果出现错误,根据错误类型,指示器将显示红色,紫色或淡黄色。在一定时间或一定数量的错误之后,传感器站将自动重置所有传感器并重新启动,再次由启动时的黄灯指示。有关指示灯颜色的更多信息,请参阅ESP32代码和注释。

完成最后一步后,传感器站将继续运行和运行。迄今为止,在预先提到的Living Lab智能办公空间中安装并运行了10个传感器站的网络。

第9步:替代方案:独立版本

CoMoS的发展仍在继续,这一持续进程的第一个成果是: 独立版。该版本的CoMoS不需要数据库服务器和WiFi网络来监控和记录环境数据。

新的关键功能 是:

  • 数据读数以Excel友好的CSV格式存储在内部微型SD卡上。
  • 集成的WiFi接入点,可通过任何移动设备访问CoMoS。
  • 基于Web的应用程序(ESP32上的内部Web服务器,不需要互联网连接),用于直接从SD卡下载文件的实时数据,设置和存储访问,如此步骤附带的图片和屏幕截图所示。

这取代了WiFi和数据库连接,而所有其他功能(包括校准和所有设计和构造)都保持不受原始版本的影响。仍然是独立的CoMoS 需要经验和进一步的知识 如何访问ESP32的内部文件管理系统“SPIFFS”,以及对HTML,CSS和Javascript的一点了解,以了解Web应用程序的工作原理。它还需要一些/不同的库来工作。

有关编程和上传到SPIFFS文件系统的更多信息,请检查附带的zip文件中的Arduino代码以获取所需的库和以下参考:

espressif的SPIFFS库

由me-no-dev创建的SPIFFS文件上传器

Pedroalbuquerque的ESP32WebServer库

这个新版本将制作一个全新的可修饰版本,可能会在将来发布。但就目前而言,尤其如此 对于更有经验的用户,我们不想错过分享设置所需的基本信息和文件的机会。

构建独立CoMoS的快速步骤:

  • 按照之前的步骤构建案例。可选地,3D打印另外的外壳,以便将微型SC卡读卡器连接到CoMoS外壳。如果您没有可用的3D打印机,也可以将读卡器放在CoMoS主机箱内,不用担心。
  • 如前所述连接所有传感器,但另外,按照此步骤附带的接线方案中的说明,安装并连接micro SD读卡器(amazon.com)和DS3231实时时钟(adafruit.com)。注意:上拉电阻和oneWire的引脚与原始接线方案不同!
  • 检查Arduino代码并根据个人喜好调整WiFi接入点变量“ssid_AP”和“password_AP”。如果未调整,则标准SSID为“CoMoS_AP”,密码为“12345678”。

  • 插入micro SD卡,上传代码,使用SPIFFS文件上传器将“data”文件夹的内容上传到ESP32,并将任何移动设备连接到WiFi接入点。

  • 在您的移动浏览器中导航到“192.168.4.1”并享受!

该应用程序 全部基于html,css和javascript。它是本地的,不涉及或不需要互联网连接。它具有应用程序内侧菜单,可访问设置页面和内存页面。在 设置页面,您可以调整最重要的设置,如本地日期和时间,传感器读数间隔等。所有设置将永久存储在ESP32的内部存储器中,并在下次启动时恢复。在 记忆页面,SD卡上的文件列表可用。单击文件名可启动CSV文件直接下载到移动设备。

该系统设置允许单独和远程监控室内环境条件。所有传感器读数都定期存储在SD卡上,每天都会创建新文件。这允许连续操作数周或数月而无需访问或维护。如前所述,这仍然是一个 正在进行的研究和开发。如果您对进一步的细节或帮助感兴趣,请不要犹豫,通过评论或直接通过LinkedIn与相应的作者联系。

第10步:结语 - 已知问题和展望

该指导中描述的传感器站是长期持续研究的结果。目标是为室内环境条件创建可靠,精确且低成本的传感器系统。这持有并存在一些严峻的挑战,其中最值得提及的是:

传感器精度和校准

该项目中使用的传感器均以低成本或中等成本提供相对较高的精度。大多数都配有内部降噪功能和用于通信的数字总线接口,减少了校准或电平调整的需要。无论如何,因为传感器安装在具有某些属性的壳体中或壳体上,所以作者完成了对整个传感器站的校准,如附图所示。在规定的环境条件下对总共十个同等建造的传感器站进行了测试,并与TESTO 480专业室内气候传感器设备进行了比较。从这些运行中,确定了示例代码中包括的校准因子。它们可以简单地补偿外壳和电子元件对各个传感器的影响。为达到最高精度,建议对每个传感器站进行单独校准。除了本教程中描述的开发和构造之外,该系统的校准是作者研究的第二个重点。它在另一个连接的出版物中进行了讨论,该出版物仍然在同行评审中,并且一旦上线就会在这里链接。请在作者的网站上找到有关该主题的更多信息。

ESP32运行稳定

并非所有在此代码中使用的基于Arduino的传感器库都与ESP32板完全兼容。这个问题已在网上的许多方面得到广泛讨论,尤其是关于I2C和OneWire通信的稳定性。在此开发中,基于通过ESP32的IO引脚直接为传感器供电,执行新的组合错误检测和处理,以便切断其电源以进行复位。从今天的角度来看,该解决方案尚未提出或未得到广泛讨论。它诞生于必然,但到目前为止几个月及以后的运营期间运行顺利。但它仍然是一个研究课题。

外表

与作者一起提供的进一步书面出版物和会议演示文稿一起进行,以扩展开发并允许广泛的开源应用程序。同时,该研究继续进一步改进传感器站,特别是在系统设计和可制造性,以及系统校准和验证方面。这个讲义可能会更新重要的未来发展,但对于所有最新信息,请访问作者的网站或通过LinkedIn直接联系作者:

通讯作者:Mathias Kimmling

第二作者:Konrad Lauenroth

研究导师:Sabine Hoffmann教授

二等奖
第一次作者