首页 >>  正文

温湿度传感器有哪几种

来源:baiyundou.net   日期:2024-07-08

作者:LifeIsKillingMe

之前买了一块基于瑞芯RK3588的Rock 5b国产开发板,配置非常强大,我已经在上面跑了NAS->OpenMediaVault,软路由->OpenWRT,智能家居->Home Assistant等多个应用或者Docker容器,具体实现方法参看以下文章,主要步骤都罗列出来了。运行情况还是非常稳定的,一个月以来就死机了一次,看CPU利用率不到3%,内存(16GB)使用率不到20%,显然还大有潜力可挖。

  

于是我又翻出了尘封多年的树莓派各个传感器,基本上Rock 5b和树莓派的传感器还是兼容的,都是基于GPIO嘛,但是设置方法有一些差别。几年前我发过一篇文章,是讲树莓派和PowerBI集成温湿度监控平台的。

评论中有值友说除了用PowerBI的Streaming服务,也可以用InfluxDB+Grafana来实现,那么这次我就试验一下这一方案的可行性如何。

什么是Grafana

首先介绍一下Grafana,Grafana是一个监控仪表系统,是由Grafana Labs公司开源的的一个系统监测工具。它可以大大帮助简化监控的复杂度,只需要提供需要监控的数据,就可以帮你生成各种可视化仪表。同时它还有报警功能,可以在系统出现问题时通知你。

开源意味着这一工具完全免费,你也可以自己优化它的功能。同时,它支持多个数据源,如Prometheus,Graphite,OpenTSDB,InfluxDB,MySQL/PostgreSQL,Microsoft SQL Server等等。

构建你的第一个Grafana仪表盘

这里用Docker在Rock 5b上安装Grafana,首先确保5b已经启用了Docker环境,具体方法在前面的文章里有介绍。安装Grafana使用了一个范例,大家可以在后面括号的链接中找到相关代码的下载地址(教程来自这里)。

架构还是很清晰的,在这里我们启动了三个服务:

  • Prometheus普罗米修斯时序数据库,用来存储和查询你的监控数据

  • Promethues-exporter一个模拟数据源,用来监控你本机的状态,比如有几个 CPU,CPU 的负载之类

  • Grafana本尊


使用以下命令启动Docker。

docker-compose up

如果一切正常,三个docker容器将被启动,包括prometheus, service和grafana;其中prometheus是普罗米修斯时序数据库,service是普罗米修斯自带的数据生成器(监控本机 CPU 内存等信息),grafana就是Grafana 服务本身。然后,浏览器访问本地的3000端口,即可打开grafana网站。

初始的用户名是admin,密码也是 admin。输入之后,会要求改密码。

和PowerBI一样,第一步是配置数据源Add Data Source。Grafana 本身并不负责数据层,它只提供了通用的接口,让底层的数据库可以把数据给它。而我们起的另一个服务,叫 Prometheus则是负责存储和查询数据的。也就是说,Grafana 每次要展现一个仪表盘的时候,会向 Prometheus 发送一个查询请求。Prometheus-exporter 这个服务,会查询你的本地电脑的信息,比如内存还有多少、CPU 负载之类,然后将数据导出至普罗米修斯数据库。

可以看到Prometheus已经有了。

这里使用prometheus的域名9090端口来访问,这是之前的docker配置文件设置好的。

保存之后如果看到Data source is working的提示,就说明Grafana已经跟普罗米修斯成功建立了连接。

数据搞定了,下一步就是配置仪表盘了,选择Dashboards -> Import。

在这个网站下载仪表盘模板Json文件,在Grafana中上传。

选择刚才配置好的Prometheus数据源。

就可以生成非常酷炫的人生第一个Grafana仪表盘了,实时监控开发板的资源使用情况。因为我没有配置SWAP,所以有些数据是没有的。

安装InfluxDB 2.0

和prometheus一样,InfluxDB是一个专为时序数据设计的数据库,功能更加强大。docker安装方法如下(教程来自这里):注意InfluxDB已经升级到2.0版本,和之前的版本相比区别比较大,网上的不少教程都已经过期了。

首先启动docker

systemctl start docker

抓取influxdb的docker镜像

docker pull influxdb:2.0.7

写入influxDB配置文件并运行。

docker run --name influxdb -d
-p 8086:8086
--volume `pwd`/influxdb2:/var/lib/influxdb2
--volume `pwd`/config.yml:/etc/influxdb2/config.yml
influxdb:2.0.7

定义相关的账号密码。

docker exec influxdb influx setup
 --bucket BUCKET_NAME
 --org ORG_NAME
 --password PASSWORD
 --username USERNAME
 --force

这里BUCKET_NAME可以认为是数据库的名字,而ORG_NAME是组织的名字,根据自己情况定义。

如果一切正常,就可以浏览器访问本地的8086端口打开InfluxDB。

如果打算使用InfluxDB 2.0的基本功能而不编写任何软件来写入或查询数据库中的数据,那么到这里就已经完成了。 但是,我这里要将传感器获取的数值传递到InfluxDB中的应用程序,并且要以编程方式获取访问令牌(Token)。

可以使用 influx CLI 使用以下命令检索令牌:

docker exec influxdb influx auth list

返回结果是如下格式:

但我关心的只有Token,用这个命令获取数组中的Token,并把它记录下来:

docker exec influxdb influx auth list | awk '/admin/ {print $4 " "}'

把这些内容整合起来就可以写一个完整的InfluxDB的安装脚本文件,执行后就可以生成完整的InfluxDB环境。

将BME280温湿度传感器连接至Rock 5b

可使用的温湿度传感器其实有不少,比如DT11,DT22,DS18B20等等,淘宝上的价格从几元到几十元不等。我这里是精度较高的BME280,这是一款集成温度、湿度、气压,三位一体的环境传感器。具有高精度,多功能,小尺寸等特点。DFRobot Gravity I2C BME280环境传感器采用Gravity-I2C接口设计,同时预留预留SPI接口,可以方便快捷的搭建产品原型,应用于环境监测,楼层高度检测,物联网控制等各种应用场景。Gravity I2C BME280环境传感器使用BOSCH最新MEMS微机电传感器,具备良好的稳定性。气压测量在整个温区非常稳定的,偏置温度系数1.5 pa/k,当温度变化时,1摄氏度的温度变化导致的误差仅在12.6厘米。这种稳定性,连同其多功能的特点,使得BME280可以适用于各种应用场景。

5b的连线和树莓派一样,因为引脚定义是一致的。

连好引脚是这个样子的。

传感器裸露在外面有点难看,于是我用微积木给它做了个塑料壳。

晚上不开灯甚至能用来做小夜灯。

这里要用到GPIO口的I2C,这里简单介绍一下I2C。

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向:如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,则主机器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下,主机主要是负责产生定时时钟和终止数据传送。

开启5b的I2C的方法是修改config.txt启动文件,这和树莓派不同。

dtoverlay=rk3588-i2c0-m1
dtoverlay=rk3588-i2c1-m0
dtoverlay=rk3588-i2c3-m1
dtoverlay=rk3588-i2c7-m3
dtoverlay=rk3588-i2c8-m4

修改后续执行update_extlinux.sh命令生效。

一开始还是按照老方法查看

sudo apt-get install i2c-tools

sudo i2cdetect -y 1

奇怪的是返回结果是UU不是77。

网上查了很多资料才得知,代码里查询的是1通道的设备,但是同样的接线方式5b接线的是7通道,所以无论如何都无法运行。(来自文章)改成7果然就可以了。

sudo i2cdetect -y 7

使用的还是之前树莓派链接BME280的示例文件。

用文本编辑器打开,将默认地址改成0x77(原来是0x76)

尝试运行发现报错。

这里注意后面也要改成7通道,如smbus.SMBus(7),并用Python3来运行。

这下运行就成功了。

但是目前我只实现了在本地展示传感器实时数据,下面要做的是将数据上传至InfluxDB数据库。(参考了这篇文章)

访问InfluxDB的网站,可以查看到符合自己环境的influxdb客户端的安装配置脚本。通过pip install influxdb-client安装客户端。

张大妈这里输入过多代码会导致文章无法保存,所以这里只展示同步至InfluxDB的关键脚本截图。

在代码开头添加上图中导入InfluxDBClient等模块。

下面是客户端连接脚本。注意要修改用户名,密码和Token以符合你们的环境。

我希望客户端可以每隔五分钟将传感器的数值上传到InfluxDB上,可以通过修改crontab文件实现,命令如下:

自定义Grafana仪表盘

至此如果一切正常,传感器已经再源源不断地将数据传至数据库了。此时我们要做的是在Grafana服务器上连接InfluxDB数据库。

Add data source里选择InfluxDB的数据源。

配置时输入本地对应的Bucket,Organization,Token,和之前的脚本一样。

然后在下方写入Query脚本,使用的是FLUX语言,可以查看官方的介绍文档:

传感器总共检测三个值,温度、湿度和大气压,脚本里定义为temperature, humidity,pressure,可以编写简单的Query脚本如下:

语言很容易理解,读取的Bucket是“home”,时间范围是最近6小时,读取的参数为pressure。

执行后即可看到对应的的点状图,你也可以在右侧面板里对于展示效果做进一步调整。

同理,可以添加针对temperature, humidity的图表,放在同一个仪表盘上。默认视图下,右上角可以设置不同的时间筛选条件,设为自动刷新等等。

通过Garfana仪表盘我就能分析办公场所的环境特点了,办公室里湿度较低较干燥,而下午的温度呈升高趋势,难怪这么多同事喜欢用加湿器,看来我也得多用些保湿化妆品滋养我娇嫩的肌肤。

总结

这次总结了一下如何用Rock 5b开发板 + BME280传感器 + InfluxDB/Grafana打造动态温湿度监控平台的实现方法,不得不说作为一款开源产品Grafana的功能还是相当强大的,还有更多玩法有待我的发掘。

喜欢我的文章请点赞、收藏、评论,谢谢大家的支持!


","force_purephv":"0","gnid":"9487cd86c4ca05540","img_data":[{"flag":2,"img":[{"desc":"","height":"230","title":"","url":"https://p0.ssl.img.360kuai.com/t01c3213a89ea8589c4.jpg","width":"600"},{"desc":"","height":"589","title":"","url":"https://p0.ssl.img.360kuai.com/t01839f846b6fb3570d.jpg","width":"539"},{"desc":"","height":"249","title":"","url":"https://p0.ssl.img.360kuai.com/t01af9a8dcd51075fce.jpg","width":"600"},{"desc":"","height":"351","title":"","url":"https://p0.ssl.img.360kuai.com/t0145698708cdf06466.jpg","width":"600"},{"desc":"","height":"330","title":"","url":"https://p0.ssl.img.360kuai.com/t01e1bc0cd14980c6e8.jpg","width":"600"},{"desc":"","height":"337","title":"","url":"https://p0.ssl.img.360kuai.com/t01c4adc26c52aba3ff.jpg","width":"600"},{"desc":"","height":"450","title":"","url":"https://p0.ssl.img.360kuai.com/t01fcc60f6da4568ea1.jpg","width":"600"},{"desc":"","height":"123","title":"","url":"https://p0.ssl.img.360kuai.com/t01e603c432e97e3c5f.jpg","width":"600"},{"desc":"","height":"568","title":"","url":"https://p0.ssl.img.360kuai.com/t01f31e5f2af7a1a400.jpg","width":"600"},{"desc":"","height":"450","title":"","url":"https://p0.ssl.img.360kuai.com/t01d60ebe637a33e973.jpg","width":"600"},{"desc":"","height":"502","title":"","url":"https://p0.ssl.img.360kuai.com/t0125cb623d6a9490c1.jpg","width":"600"},{"desc":"","height":"304","title":"","url":"https://p0.ssl.img.360kuai.com/t0178db30cce7bb21c4.jpg","width":"600"},{"desc":"","height":"324","title":"","url":"https://p0.ssl.img.360kuai.com/t015600a2625bca92d4.jpg","width":"600"},{"desc":"","height":"225","title":"","url":"https://p0.ssl.img.360kuai.com/t01feb5935fb4f09a2b.jpg","width":"600"},{"desc":"","height":"464","title":"","url":"https://p0.ssl.img.360kuai.com/t010eefe15993a7d22c.jpg","width":"600"},{"desc":"","height":"399","title":"","url":"https://p0.ssl.img.360kuai.com/t0109fcfed6a20fe7a8.jpg","width":"480"},{"desc":"","height":"301","title":"","url":"https://p0.ssl.img.360kuai.com/t01c7041848955d30fb.jpg","width":"600"},{"desc":"","height":"198","title":"","url":"https://p0.ssl.img.360kuai.com/t0185963f192208029b.jpg","width":"600"},{"desc":"","height":"800","title":"","url":"https://p0.ssl.img.360kuai.com/t01d444e0f4350d117e.jpg","width":"600"},{"desc":"","height":"800","title":"","url":"https://p0.ssl.img.360kuai.com/t01eb1b3c4bf8c3d578.jpg","width":"600"},{"desc":"","height":"450","title":"","url":"https://p0.ssl.img.360kuai.com/t016d79dda20fb7575a.jpg","width":"600"},{"desc":"","height":"384","title":"","url":"https://p0.ssl.img.360kuai.com/t014be3d65bba61d2fe.jpg","width":"600"},{"desc":"","height":"147","title":"","url":"https://p0.ssl.img.360kuai.com/t012ab0f17d13bfd6d1.jpg","width":"600"},{"desc":"","height":"188","title":"","url":"https://p0.ssl.img.360kuai.com/t01d3e4ef3ad6a68c9a.jpg","width":"600"},{"desc":"","height":"202","title":"","url":"https://p0.ssl.img.360kuai.com/t013758ec24b7171113.jpg","width":"541"},{"desc":"","height":"97","title":"","url":"https://p0.ssl.img.360kuai.com/t01113b2b4ec13b387e.jpg","width":"600"},{"desc":"","height":"379","title":"","url":"https://p0.ssl.img.360kuai.com/t01d2d53cf8cf2e327d.jpg","width":"600"},{"desc":"","height":"100","title":"","url":"https://p0.ssl.img.360kuai.com/t01281f70ced09c3cc9.jpg","width":"494"},{"desc":"","height":"383","title":"","url":"https://p0.ssl.img.360kuai.com/t01be70fab60d959fab.jpg","width":"600"},{"desc":"","height":"131","title":"","url":"https://p0.ssl.img.360kuai.com/t0138df1a0e5d20eed8.jpg","width":"600"},{"desc":"","height":"350","title":"","url":"https://p0.ssl.img.360kuai.com/t011502e9684ea78687.jpg","width":"600"},{"desc":"","height":"146","title":"","url":"https://p0.ssl.img.360kuai.com/t01e4c69f6bbbce9f8c.jpg","width":"600"},{"desc":"","height":"186","title":"","url":"https://p0.ssl.img.360kuai.com/t015b5de544eb055b14.jpg","width":"600"},{"desc":"","height":"359","title":"","url":"https://p0.ssl.img.360kuai.com/t01a0db16f9889f8ebd.jpg","width":"600"},{"desc":"","height":"341","title":"","url":"https://p0.ssl.img.360kuai.com/t01a46d4523acf8d597.jpg","width":"600"},{"desc":"","height":"677","title":"","url":"https://p0.ssl.img.360kuai.com/t0116fbe9d849fdf110.jpg","width":"600"},{"desc":"","height":"559","title":"","url":"https://p0.ssl.img.360kuai.com/t0163fa04f09744184f.jpg","width":"600"},{"desc":"","height":"350","title":"","url":"https://p0.ssl.img.360kuai.com/t01c50d808d9aade341.jpg","width":"600"},{"desc":"","height":"178","title":"","url":"https://p0.ssl.img.360kuai.com/t017fc9421fb8a729e4.jpg","width":"600"},{"desc":"","height":"242","title":"","url":"https://p0.ssl.img.360kuai.com/t010b948abcd7f40703.jpg","width":"600"},{"desc":"","height":"276","s_url":"https://p0.ssl.img.360kuai.com/t01e0edf0970caad456_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01e0edf0970caad456.gif","width":"494"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1673674854000,"pure":"","rawurl":"http://zm.news.so.com/1c163094fb21f05768f7856c9dafca9a","redirect":0,"rptid":"b2a3d878eebbcac1","s":"t","src":"什么值得买","tag":[{"clk":"ktechnology_1:普罗米修斯","k":"普罗米修斯","u":""}],"title":"Rock 5b开发板 + BME280传感器 + InfluxDB/Grafana打造动态温湿度监控平台

贲琼世3125温度传感器分类有哪些?
黄雷养19284278065 ______ 温度传感器主要由热敏元件组成.热敏元件品种较多,市场 上销售的有双金属片、铜热电阻、钿热电阻、热电偶及半导体热敏电阻等.以半导体热敏电阻为探测元件的温度传感器应用广 泛,这是因为半导体热敏电阻器具有体积小、灵敏度高、精度高 的特点,而且制造工艺简单、价格低廉.温度传感器被广泛用于 家用电器中的热保护、温度控制中.

贲琼世3125温度传感器到底有哪些分类,智能温度传感器等也属于他打一种吗 -
黄雷养19284278065 ______ 按照温度传感器输出信号的模式,可大致划分为三大类:数字式温度传感器、逻辑输出温度传感器、模拟式温度传感器. 一、模拟温度传感器 传统的模拟温度传感器,如热电偶、热敏电阻和RTDS对温度的监控,在一些温度范围内线性不好,需...

贲琼世3125温度传感器的种类 -
黄雷养19284278065 ______ 感器按照其原理分类: 振动传感器 湿敏传感器 磁敏传感器 气敏传感器 真空度传...

贲琼世3125温度传感器型号有哪些?
黄雷养19284278065 ______ 热敏电阻一般就是利用金属氧化物陶瓷组成,可以说它是低成本灵敏度最高的温度传感器.相关的测温范围一般在-50到200度左右,这个温度传感器型号,是相当多的家用电器都会使用的一种.因为它的体积小而且响应时间快.此外低廉的价格也使得这种传感器型号得到了广泛的应用.

贲琼世3125常用的湿度控制器形式有哪些?
黄雷养19284278065 ______ 毛发湿度计、干湿球湿度计,还有电阻式和电容式湿度传感器与变送器. (1)毛发式湿度控制器的工作原理:人的头发、尼龙丝(或薄膜)在空气相对湿度变化时会产生伸缩....

贲琼世3125热电阻温度传感器的种类有哪些啊? -
黄雷养19284278065 ______[答案] 温度传感器目前有很多种,主流用到的是接触式热电偶和红外传感器,接触式热电偶包括:热电偶,热电阻 ,双金属温度计,热敏电阻,V型温度计.红外传感器有压电加速度传感器、压电速度传感器、压电位移传感器、压电传声器!

贲琼世3125传感器有哪些种类? -
黄雷养19284278065 ______ 你需要哪些了,霍尔传感器,超声波传感器,按用途分速度传感器,水位传感器,压力传感器,光照强度传感器,根据你的需要来选择,温度传感器,按原理有红外传感器,电容式传感器等,微波传感器,湿度传感器,位移传感器等,桥式应变片传感器.

贲琼世3125温度传感器都有哪些分类呢?
黄雷养19284278065 ______ 金属膨胀原理设计的传感器 金属在环境温度变化后会产生一个相应的延伸,因此传感器可以以不同方式对这种反应进行信号转换. 双金属片式传感器 双金属片由两片不同...

贲琼世3125房间温度传感器有哪几种?应用场合?安装位置?具体性能指标? -
黄雷养19284278065 ______ TE700 温度传感器是一种设计新颖、功能齐全的温度传感器.该传感器安装方便,灵活性强.除可以安装在房间内的墙面上,用于测量房间温度之外,还适合安装在室内吊顶里或下方用于测量房间回风温度. 此传感器通常与江森自控上海工厂...

贲琼世3125温湿度传感器与arduino用什么技术传输 -
黄雷养19284278065 ______ 这要看你采用什么型号的温湿度传感器,目前常见的有如下几种: SHT1x系列,其中最常见的是SHT10,这是一款数字式温湿度传感器,这也是Arduino上用的比较多的温湿度传感器,使用类IIC的协议进行传输. Si700x系列,其中最常见的是Si7006,使用IIC的协议进行传输. DS18B20,这是温度传感器,采用了1-Wire总线,一般通过单片机模拟1-Wire协议进行传输 模拟类型的传感器,比如热敏电阻,一般通过AD口进行模拟量采集后进行数据读取</ol>以上几种数字式传感器,Arduino都有对应的库,直接拿来用就可以,模拟类型的传感器,还与你的外围电路有关,读到AD后的数值后,再根据实际外围电路的设计进行数据转换.

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024