社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 7163|回复: 25

[环境传感器] 【ST SensorTile】简单天气监测仪的实现

  [复制链接]

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-1-9 00:31:42 | 显示全部楼层 |阅读模式
    大家好,接着上次来继续把这次测评的东西做一下。上次是用了labview写了个串口分析软件,将ST SensorTile采集的传感器数据解析。那么解析的数干什么用呢?剩下我想应该就是数据处理的事了吧,但是干巴巴的数据,即使加了漂亮的算法,无非一个值变成另一个值,没什么意思。而我们这次做的是一个加起来9轴的一个传感器外加压强传感器。对于3轴来说,最贴近的就是3D展示,于是乎就在labview上建个3D模型,由于本人审美有限,3D太丑求轻吐啊。
3.png
这是一个3D模型,黄色的是坐标系,红色的是3D立体模型。
    有了模型,那就开始让传感器工作吧。但是传感器都是怎么用的,凭什么就能获得你想要的?这个问题让我陷入了沉思,我想要的是物体被风吹过形成的倾角,更严格说是姿态,因为倾角是相对于上次静止状态来说的,而姿态是相对于地平线来说的,所以说姿态更准确一些。而加速度计,陀螺仪,磁力计这几个那个是倾角传感器呢?我上一篇文章引用了网上比较形象的比喻,“陀螺仪知道“我们转了个身”,加速计知道“我们又向前走了几米”,而磁力计则知道“我们是向西方向”的。”。
貌似这三个传感器都没有能单独测出姿态的本领。如果说有的话,那加速度传感器能靠谱些。加速度传感器的测量值是加速度,静止时候由于没有外力产生的加速度,加速度计此时产生的加速度为指向地心的1g的加速度,如果水平放置该传感器,与水平垂直的Z轴此时的加速度值为1g,X,Y与水平平行,加速度值为0,当芯片产生倾角时,Z轴产生的加速度值为倾角分量。通过三角函数换算,可以得到此时倾角角度。为了排除其他轴的干扰,以下实验均只采用Z轴单轴做实验。
20170108_IMG_9102.JPG
20170108_IMG_9103.JPG
20170108_IMG_9104.JPG
如上图显示,不同的倾角状态可以通过加速度传感器的值来获得。但是随着测试的深入,发现一个问题,加速度传感器只能在静止状态下发挥作用,稍有一点波动,加速度传感器测得就不只是重力加速度了。所以不适合在一个经常有外力作用的场合下使用,哪怕没多大的角度变化,但是只要有力怂恿,就会有干扰。那么这个时候最希望出现的一个传感器就是能把这个怂恿加速度传感器变化的这个过程去掉,只要结果就好了。刚好,磁力计的工作原理是捕获磁感线,大家知道,地球是个大磁体,磁感线由南极发射到北极,由于我们在北半球,磁感线是由南砸向北边,斜插入我们脚下的土壤。这个是不随其他接触式外力干扰的。手机等电子设备肯定会有干扰的,由于设备是在室外运行,这个可以避免在有电磁的环境下测量。于是,我们至于要判断磁感线的强度变化和加速度计变化的趋势是否一致即可判断是否有外界扰动。怎么判断趋势呢?一个简单的办法就是求标准差,如果在一段时间内曲线变化较小,标准差也小,反之则大。由此,磁力计补偿加速度计的方式可以消除外力对加速度计的干扰。

上面的视频就是加补偿和不加补偿的效果。
    那姿态获得完成后就可以测试风力了,由于只使用了单轴,就只能判断两个方向的风及风力,暂且称为东风和西风,然后等级没30度角增加或减少一级,水平为3级,竖直为无风。

可以看到风力随姿态的变化而变化。
    除此之外,还有一个比较重要的天气判断依据,大气压强。由于本人对这方向不是太专业,于是我在网上摘抄了一段供大家了解压强和天气的关系。

  1. 大气压 - 五种变化
  2. 在不同的季节,不同的气候条件和地理位置等条件下,地球上方大气压的值有所不同。本文择取大气压的五种主要变化,做一些分析讨论,供参考。
  3. 1、大气压随地势高低的变化
  4. 从微观角度看,决定气体压强大小的因素主要有两点:一是气体的密度n;二是气体的热力学温度T。在地球表面随地势的升高,地球对大气层气体分子的引力逐渐减小,空气分子的密度减小;同时大气的温度也降低。所以在地球表面,随地势高度的增加,大气压的数值是逐渐减小的。如果把大气层的空气看成理想气体,我们可以推得近似反映大气压随高度而变化的公式如下:
  5. μ=p0gh/RT

  6. (μ为空气的平均摩尔质量,P0为地球表面处的大气压值,g为地球表面处的重力加速度,R为普适气体恒量,T为大气热力学温度,h为气柱高度)

  7. 由上式我们可以看出,在不考虑大气温度变化这一次要因素的影响时,大气压值随地理高度h的增加按指数规律减小,其函数图象如图所示。在2km以内,大气压值可近似认为随地理高度的增加而线性减小;在2km以外,大气压值随地理高度的增加而减小渐缓。所以过去在初中物理教材中有介绍:在海拔2千米以内,可以近似地认为每升高12米,大气压降低1毫米汞柱。
  8. 2、大气压随地理纬度的变化
  9. 地球表面大气层里的成份,变化比较大的就是水汽。人们把含水汽比较多的空气叫“湿空气”,把含水汽较少的空气叫“干空气”。有些人直觉地认为湿空气比干空气重,这是不正确的。干空气的平均分子量为28.966,而水气的分子量只有18.106,所以含有较多水汽的湿空气的密度要比干空气小。即在相同的物理条件下,干空气的压强比湿空气的压强大。

  10. 在地球表面,由赤道到两极,随地理纬度的增加,一方面由于地球的自转和极地半径的减小,地球对大气的吸引力逐渐增大,空气密度增大;另一方面由于两极地区温度较低,所以空气中的水汽较少,可近似看成干空气,所以由赤道向两极,随地理纬度增加,大气压总的变化规律是逐渐增大(因气候等因素影响,局部某处的大气压值变化可能不遵循这一规律)。

  11. 3、大气压的日变化
  12. 对于同一地区,在一天之内的不同时间,地面的大气压值也会有所不同,这叫大气压的日变化。一天中,地球表面的大气压有一个最高值和一个最低值。最高值出现在9~10时。最低值出现在15~16时。
  13. 导致大气压日变化的原因主要有三点。一是大气的运动;二是大气温度的变化;三是大气湿度的变化。

  14. 日出以后,地面开始积累热量,同时地面将部分热量输送给大气,大气也不断地积累热量,其温度升高湿度增大。当温度升高后,大气逐渐向高空做上升辐散运动,在下午15~16时,大气上升辐散运动的速度达最大值,同时大气的湿度也达较大值,由于此二因素的影响,导致一天中此时的大气压最低。16时以后,大气温度逐渐降低,其湿度减小,向上的辐散运动减弱,大气压值开始升高;进入夜晚;大气变冷开始向地面辐合下降,在上午9~10时,大气辐合下降压缩到最大程度,空气密度最大,此时的大气压是一天中的最高值。
  15. 4、大气压的年变化

  16. 同一地区,在一年之中的不同时间其大气压的值也有所不同。这叫大气压的年变化。大气压的年变化,具体又分为三种类型,即大陆型、海洋型和高山型。其中海洋型大气压的年变化刚好与大陆型的相反。通常所说的“冬天的大气压比夏天高”,指的就是大陆型大气压的年变化规律。下面对此略做分析(另外两种情况不做讨论)。

  17. 由于大气处于地球周围一个开放没有具体疆界的空间之内,这就使它与密闭容器中的气体有着很多区别。夏天,大陆中的气温比海洋上高,大气的湿度也比较大(相对冬天而言),这样大陆上的空气不断向海洋上扩散,导致其压强减小。到了冬天,大陆上气温比海洋上低,大陆上的空气湿度也较夏天小,这样海洋上的空气就向大陆上扩散,使大陆上的气压升高。这就是大陆上冬天的大气压比夏天高的原因(大气温度也是影响大气压的一个因素,但在这里决定大气压变化的因素不是气温,而是大气的流动及大气的密度)。

  18. 5、大气压随气候的变化
  19. 大气压随气候变化的情况比较多,但最为典型的就是晴天与阴天大气压的变化。有句谚语叫“晴天的大气压比阴天高”,反映的就是大气压的这一变化规律。

  20. 通常情况下,地面不断地向大气中进行长波有效辐射,同时大气也在不断地向地面进行逆
复制代码

为了区分是不是我写的,把摘抄内容放在代码格式里了,请见谅。另外还有一个网上的图来说明压强与海拔以及含氧量的关系。
5.png

由此来说压强传感器的用处还不少。
2.png
4.png
在我的应用里主要就是一个变量显示和图表,由于测天气需要一段时间的数据采集,这个周期不会太短,由此我只留了接口,没有进行处理,相信当获得一定量的数据之后,在一定程度上应该可以判别天气。
    最后来一个我的应用展示。我在附件提供了一个labview生成的应用程序,我用的是2015版本,运行的时候需要安装NI VISA的硬件驱动。
    GIF.gif

ST SENSORTILE应用程序.rar (1.03 MB, 下载次数: 96)
1.png

评分

1

查看全部评分


回复

使用道具 举报

1194

TA的帖子

2

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-1-9 00:37:52 | 显示全部楼层
LabView做这个是不是很方便?

点评

应该是比较容易吧,labview是专门做界面,方便做测控类的应用。  详情 回复 发表于 2017-1-9 09:45

回复

使用道具 举报

6607

TA的帖子

175

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-1-9 08:46:35 | 显示全部楼层
Labview做这个难么  labview这么好用啊

点评

我觉得不难  详情 回复 发表于 2017-1-9 09:45

回复

使用道具 举报

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-9 09:45:06 | 显示全部楼层
michael_llh 发表于 2017-1-9 00:37
LabView做这个是不是很方便?

应该是比较容易吧,labview是专门做界面,方便做测控类的应用。

点评

恩,好的!  详情 回复 发表于 2017-1-9 10:02

回复

使用道具 举报

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-9 09:45:25 | 显示全部楼层
常见泽1 发表于 2017-1-9 08:46
Labview做这个难么  labview这么好用啊

我觉得不难

回复

使用道具 举报

4327

TA的帖子

9

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-1-9 09:51:08 来自手机 | 显示全部楼层
使用倾角测量风力 角度和风力是关系会不会很难确定

点评

其实那么做又感觉多此一举,我印象中测风力好像是一个袋子兜着风,应该在开口那个杆上是不是有压力传感器,值就等于风力的值,所以咱这个直接用倾角和风力做拟合好一些。  详情 回复 发表于 2017-1-9 10:11
当然,我这个只是一个简单的实现,算是一个初步的模型,我想的测风力的是传感器挂在一个板子上或者一个迎风面上,然后在上方有一个支点挂着这个板子,这个支点是可以旋转的同时最好是一个压力传感器,最好是两轴的,  详情 回复 发表于 2017-1-9 10:04

回复

使用道具 举报

1194

TA的帖子

2

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-1-9 10:02:37 | 显示全部楼层
supermiao123 发表于 2017-1-9 09:45
应该是比较容易吧,labview是专门做界面,方便做测控类的应用。

恩,好的!

回复

使用道具 举报

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-9 10:04:10 | 显示全部楼层
littleshrimp 发表于 2017-1-9 09:51
使用倾角测量风力 角度和风力是关系会不会很难确定

当然,我这个只是一个简单的实现,算是一个初步的模型,我想的测风力的是传感器挂在一个板子上或者一个迎风面上,然后在上方有一个支点挂着这个板子,这个支点是可以旋转的同时最好是一个压力传感器,最好是两轴的,然后可以通过压力传感器的受力结合板子的倾角来算出风力大小。而方向的话,由于支点可以旋转,迎风面是可以随风转动的,方向的话可以通过磁力计来准确识别。只是一个粗略的想法,不太周全。而现在的应用我只是简单把风力划分成3级,其实与垂直角度越大,越难被吹动,我的这个只是一个定性的假设。还望见谅。

回复

使用道具 举报

1361

TA的帖子

2

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

测评达人

发表于 2017-1-9 10:06:42 | 显示全部楼层
走的串口?

点评

是的  详情 回复 发表于 2017-1-9 10:11

回复

使用道具 举报

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-9 10:11:22 | 显示全部楼层
littleshrimp 发表于 2017-1-9 09:51
使用倾角测量风力 角度和风力是关系会不会很难确定

其实那么做又感觉多此一举,我印象中测风力好像是一个袋子兜着风,应该在开口那个杆上是不是有压力传感器,值就等于风力的值,所以咱这个直接用倾角和风力做拟合好一些。

点评

风向袋测量风向比较合适,风力风速好像是用那种风扇一样的东西 你也可以做一个风车,把SensorTile绑上去,通过陀螺仪测量转速判断风力  详情 回复 发表于 2017-1-9 10:35

回复

使用道具 举报

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-9 10:11:40 | 显示全部楼层

是的

回复

使用道具 举报

4327

TA的帖子

9

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-1-9 10:35:13 | 显示全部楼层
supermiao123 发表于 2017-1-9 10:11
其实那么做又感觉多此一举,我印象中测风力好像是一个袋子兜着风,应该在开口那个杆上是不是有压力传感器 ...

风向袋测量风向比较合适,风力风速好像是用那种风扇一样的东西
你也可以做一个风车,把SensorTile绑上去,通过陀螺仪测量转速判断风力

点评

有想法!!  详情 回复 发表于 2017-1-10 23:20
虾扯蛋

回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2017-1-9 17:59:28 | 显示全部楼层
前来学习

点评

共同交流  详情 回复 发表于 2017-1-10 17:33
努力

回复

使用道具 举报

5

TA的帖子

1

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2017-1-10 14:21:48 | 显示全部楼层
哇塞,给力给力

点评

谢谢!  详情 回复 发表于 2017-1-10 17:34

回复

使用道具 举报

244

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-1-10 16:12:53 | 显示全部楼层
给力,给力。

点评

谢谢!  详情 回复 发表于 2017-1-10 17:34

回复

使用道具 举报

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-10 17:33:46 | 显示全部楼层

回复

使用道具 举报

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-10 17:34:05 | 显示全部楼层

谢谢!

回复

使用道具 举报

455

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-10 17:34:19 | 显示全部楼层

谢谢!

回复

使用道具 举报

61

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-1-10 23:20:11 | 显示全部楼层
littleshrimp 发表于 2017-1-9 10:35
风向袋测量风向比较合适,风力风速好像是用那种风扇一样的东西
你也可以做一个风车,把SensorTile绑上去 ...

有想法!!
ST MEMS技术讨论群:415506792

回复

使用道具 举报

7

TA的帖子

0

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2017-1-11 17:24:47 | 显示全部楼层
很好玩呀

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-10-23 14:13 , Processed in 0.503931 second(s), 18 queries , Redis On.

快速回复 返回顶部 返回列表