【问题】
详见:
现在有一块火牛的STM32开发板 老师说要用来做节点 采集传感器数据 这是什么意思啊 我没学习过这些个东西
的:
现在有一块火牛的STM32开发板 老师说要用来做节点 采集传感器数据 这是什么意思啊!! 我没学习过这些个东西啊 要如何来学习呢 我不知道如何下手啊 求知指导 谢谢各位 |
【问题解答】
先来解释一下相关的基本概念,然后再来解释如何实现:
嵌入式数据采集相关基本概念
传感器
传递感觉的仪器
传递:将相关的数据,获得后,传递给你(等你后期用软件代码读取出来)
感觉:人类有感知功能,对外接各种东西都有感觉,比如温度高低,水流速度快慢等等,对应的,现实社会中,存在着(别人已经设计好的)硬件模块,一个硬件,就可以实现类似于人类的感知的功能,将获得信息,比如温度的具体数值是多少,水流速度是多少米每秒等等,转换为对应的硬件电路的信息,可供你后续用软件读取出来,供你后续使用(比如就只是将温度数值显示出来,功能更人类看,也就可以叫做一个普通的数字温度计了)
仪器:即对应的硬件,代替了之前人类(的感知),可以模拟实现人类的感知
所以,加起来,传感器的意思就是:
有个硬件,模拟人类(的感知),将外接某种信息,可以获得(供你后续使用)
对应的:
用于采集获得外界温度的传感器,就叫:温度传感器;
用于采集获得外界水流速度的传感器,就叫:水流速度传感器;
其他的传感器,也都是类似的,基本都是,实现了对应的功能,叫做对应的某某传感器。
一些常见的传感器有:
压力传感器;
流量传感器;
湿度传感器;
重力传感器==即目前相对比较火的Gsensor==Gravity-sensor==能够感知到加速力的变化==你晃手机,手机突然掉了等情况,都可以检测到,你玩极品飞车时在车辆转弯时左右晃动手机,也都可以感受到
气体传感器==火警报警装置之一就有这个气体传感器==用于当发生火灾时,往往有浓烟,则气体传感器在检测到烟雾过量时导致立刻报警
等等等等。。。
数据采集
数据:主要指的是上面的那些,传感器所获得的数据
采集:就是摘蘑菇,一点点摘到,一点点收集,把数据都收集到,供后续处理
节点
节点:就是某个点,主要是在谈及传感器方面,往往用节点,表示对应的硬件的传感器所表示出来的逻辑概念
比如我开发板外接了一个温度传感器,一个压力传感器,
那么就是所谓的2个节点了,节点1是采集外界温度,节点2是采集外界大气压
开发板
常见的开发板,不管你是哪个CPU,往往都意味着:
你可以外接各种硬件模块,去实现你要的功能
设置开发板本身内部就集成了对应的硬件功能
换句话说:
你的STM32开发板,也许已经内置了某种传感器
如果没有内置,也可以外接
比如是温度传感器
嵌入式系统中实现数据采集的逻辑和大概过程
将STM32开发板,外接一个温度传感器
然后,再去写(嵌入式)软件,实现对应的数据采集
意思是:
在你的开发板上的写对应的代码,实现该温度传感器的驱动,然后再写代码读取传感器采集处理的数据
其中:
1。关于如何外接传感器,如何硬件连线或焊电路板,则是你作为硬件开发(甚至是嵌入式开发)必备的基础知识,在此不详述
2.你的开发板上,往往,已经有了对应的某种操作系统,比如嵌入式Linux,
此时就是:你在该嵌入式Linux上面,实现对应的传感器的驱动
而实现传感器的驱动:
有可能是Linux系统中已经本身内置支持了某种型号的驱动->你只需要编译Linux时,把对应驱动选上,去编译为静态或动态驱动模块后续再加载,即可;
否则就要你从头到尾,自己实现对应的该传感器的驱动了 -> 搞懂是属于什么类型的设备,再去写对应的该类型的设备的驱动,实现传感器的驱动;
3.实现完毕驱动后,再写Linux的应用程序,去读写对应的传感器的数据
即写Linux的app,操作对应的,你的传感器驱动所提供出来的某种接口,比如/dev/xxx,然后实现数据的读写,
最终实现对应的,将传感器所采集到的外接的温度,读取并显示出来
至此,才算一个,比较基本的,采集传感器数据,的例子。
总结
中国的教育,把问题解释清楚的不多
搞得大家,尤其是初学者,包括即使是工作了一段时间的
对于很多事情的基本逻辑都不清楚;
哎,总之是和国外差距很大啊。。。
国外是:人家传感器都做了多少年了
国内是:对于传感器的概念,模糊了多少年了。。。
转载请注明:在路上 » 【问题解答】用一个嵌入式开发板去实现数据采集的基本思路和逻辑