袖珍气象站

是的,气象站大约可以测量从风的方向和强度到太阳辐射水平的大量参数,但是没有更合适的术语,因此您必须误导。但是关于大小,一切都是公平的。


该设备可能没有太大的商业价值,因为 即使在组件数量上,它也比许多中文都要差,不仅是具有相似功能的商品

DIY也很难命名,因为需要订购印刷电路板并随后焊接小型/无铅组件,这大大减少了想要重复使用该设备的人数。

我想想,气象站本身就是一种美感,紧凑,能够快速评估周围温度和湿度的东西,一旦选定的传感器也可以告知压力,则也可以。一切看起来像这样(可点击):




比较:


关于铁。

选择了BOSCH-BME280作为传感器,即使根据I2C,甚至根据SPI,它也提供了所需的环境参数,该无引线LGA外壳中的八根引线尺寸为2.5 x 2.5 mm-相对便宜,纤巧。最初,计划使用相同的BME680系列更复杂的传感器,根据数据表,除温度,湿度和大气压外,该传感器还可以通过所谓的空气质量指数(IAQ)评估空气质量。看起来不错,但是实际上事实证明,只能使用BSEC获得IAQ:Bosch Software Environmental Cluster,它根据传感器读数并更改这些读数来计算IAQ。看来您可以自己作证并计算一切;不一定以这种方式。根据要求测量空气质量,传感器可提供以欧姆为单位的电阻。它加热了一个小的敏感区域的内部,该区域与电导率发生反应,导致存在挥发性有机物质-挥发性有机化合物(VOC),并给出了结果。对这个地区的抵抗。基本上,一些工匠提供了自己的算法来解释这些读数而无需BSEC,但是,除其他外,与BME280相比,多重成本毫无选择。


显示屏由两个TOS-F2101组成,它们是普通的七段绿色指示器,带有公共阴极。值得注意的是,这是用于表面安装的尺寸和外壳,使您可以以非常规的方式放置它们。顺便说一下,这些是在销售中发现的最小的平面指示器,它们在很大程度上决定了整个设备的尺寸。


以48引脚QFPN封装管理所有STM32F072。再次根据外围设备的大小,可用性和控制指标所需结论的数量进行选择,这些指标由于某种原因在双版本中不会出现,并且结论必须体面。


其余的是电阻器,电容器,3.3 V电压转换器,当然,在合理的限制范围内,TTX组件越少越好。

USB连接器在板上。为了可靠地接触,PCB的厚度应约为2 mm。如果您以USB Type-A上的图纸为指导,那么还有更多内容,但是如果考虑到两侧的遮罩,结果都可以忍受。当然,这种连接器格式会给USB插座带来更多机械损坏的机会,但是,总的来说,这可以通过使用常规闪存驱动器来解决。

触摸按钮是板上图片下方的圆形多边形,该按钮可响应长时间的触摸。

除显示屏外,面板还具有三个LED,用于指示指示器上当前显示的读数。

至于软件。

该程序是使用CMSIS编写的,工作频率为48 MHz,来自内部源。这里有一个,您甚至可以在不使用外部石英的情况下使用USB。为了提高灵活性并可能扩展功能,添加了FreeRTOS。

触摸按钮由触摸感应控制器(TSC)处理。由于板上没有触摸按钮或滑条上的键盘,因此将触摸板组合成一行时,并且只有一个传感器可以捕捉短时和长时间的触摸,因此使用ST的综合库没有任何意义。传感器传感器的工作原理很简单,有几组结论组合在一起,其中一个电容器(采样电容器)Cs连接到其中一个,这一结论成为示例性的,该组的其余结论可以连接到传感器的多边形,实际上也是Cx电容器。控制器对垃圾填埋场电容器Cx的电容充电,然后该电荷被蒸馏到模型Cs中,重复该操作,直到对Cs施加一定的电压限制为止。传感器容量通常很小,因此,将需要进行许多此类操作,并且还有一个单独的寄存器(TSC_IOGxCR)用于计数。如果触摸传感器,则电容Cx会变大,并且充电Cs所需的周期会更少,这将立即固定,并且会报告向上触摸。顺便说一句,当没有直接接触时,传感器电容开始增加,因此可以保护传感器免受物理接触,例如使用面罩,或者可以记录不同的近似度。或固定不同程度的近似值。或固定不同程度的近似值。

为了与BME280通信,使用了I2C接口。STM32F072中I2C的实现比流行的STM32F103中的实现更简单,此外,您不需要单独跟踪接收到的1/2个或许多字节,只需预先指定其编号即可(I2C_CR2.NBYTES [7:0])。提供了与传感器配合使用的完全相同的库,建议传感器制造商使用。为了使用库读取读数,您需要创建两个结构-设置和数据。在设置中,您需要进行以下操作:

  • I2C总线上的传感器地址
  • I2C读/写功能以及延迟功能
  • 每个温度/湿度/压力参数的平均值(过幅)x1,x2等的指示读数数
  • ADC的滤波系数
  • 删除参数值的时间段
  • 通常,可以读取哪个参数,例如,可以保留一个温度
  • 操作模式,“正常”-定期读取,“强制”-根据要求获取读数

原则上,如果选择了``正常''模式,则可以通过运行功能``bme280_get_sensor_data''来获得读数的实际值,它将查看相应的传感器寄存器,读取直接读数,然后根据工厂微电路中记录的校正因子对其进行处理。结果,输出数据结构将包含以摄氏度为单位的温度,以百分比为单位的相对湿度,以帕斯卡为单位的大气压力。在“强制”模式下,只有在每次读取读数之前,都需要运行“ bme280_set_sensor_mode”转换。

该设备的一般原理如下:连接到USB或移动版本中的移动电源。对于最初的显示和读数的切换-传感器的短按,禁用-长按。首先,显示以摄氏度为单位的温度,然后显示相对湿度(以百分比为单位)和大气压力(以毫米汞柱为单位),因为只有两个指标,压力指标很少超过700,因此这里的数字7是虚拟的。如果暂时不触摸传感器,指示灯将熄灭,例如,您不会给移动电源放电。该设备的平均功耗约为50 mA,主要消耗者只是指示器,如果您将其关闭,则计数将达到微安。




结果,到2020年1月,组件的总成本约为850卢布,这在不考虑电路板的情况下就变得容易了,因为 制造商有新年折扣,我有优惠券,但这不太可能在不久的将来再次发生,至少到明年12月为止。好吧,那些想要熟悉源代码的人可以在这里进行

Source: https://habr.com/ru/post/undefined/


All Articles