第一次写博客,还是先做个自我介绍吧。我呢,目前在读博,研究方向是故障诊断、故障预测、健康管理等,参与过自动测试系统开发的工程实践,所以对测试系统集成、仪器仪表以及测试领域的诸多知识(例如IVI、ATML、LabView、CVI/Labwindows)比较了解,对硬件开发和软件开发有一些自己的理解。我之所以决定在这里写博客,是因为我希望将我所学的一些技术在公共平台展现出来,能够帮助一些初学者入门,也能够以技术会朋友。我的邮箱号是tangxilang@sina.com,欢迎大家和我交流讨论。
我挑了物联网技术这个主题入手,开始写我的第一篇博客,是因为物联网技术在现在着实很火,而且它代表了未来发展的方向,所以写下这样的博客应该很有用。物联网即物物相连的互联网,这里有两层意思,一层是物联网的核心仍是互联网,而就目前而言“物”接入互联网的最佳方式是WiFi;另一层是物与物之间有直接的信息交互,那么这信息从哪儿来呢?通过感知得来。所以物联网最核心的技术也就两个,互联网技术和传感器技术,搞定了这两个,便可以设计十分复杂的物联网。在我的账号下,我会提供本文涉及的所有电路原理图、PCB图,以及所有源代码,对于亟需写毕业设计的本科师弟,或是初次承担项目的菜鸟绝对是福利。但也因为是第一次,文笔肯定会很烂,请见谅。
我写这些博客一定会是在实践的基础上,绝对不会靠想象力。对于物联网技术,首先说一说我大概干了一件什么事。我设计了一块板子,有温度传感器,可以采集环境温度,板子上带有WiFi功能,可以使板子接入到无线路由器;设计了Android设备的APP,这个APP既可以在局域网内获取板子采集到的温度,也可以通过第三方服务器远程获取板子采集到的温度。由于涉及的内容比较多,我会以系列文章的方式进行写作,包括采集节点的硬件设计、采集节点的软件设计、Android设备的APP设计、服务器端的软件设计等,本文讲采集节点的硬件设计。
1.温度采集的电路设计
温度采集的例子可以解释一般传感器的工作原理和应用方案。传感器的功能就是将非电参数(包括压力、温度、湿度、距离、加速度等等)转化为电参数(主要包括电压、电流、电阻),而非电参数与转换后的电参数之间有确定的数学关系,因而可以根据电参数反算出非电参数,例如温度传感器将温度转化为电阻值或电压值。当然也有个别特殊的传感器是将电参数转换为电参数,如电流传感器和电压传感器。
在使用传感器之前,首先要为传感器提供必要的激励,主要有电压激励和电流激励两种。传感器将非电参数转换为电参数后要经过一个关键的元件才能被计算机处理,这个元件便是A/D转换器,它将模拟量转换为数字量。但A/D转换器的性能有限制,例如量程、精度、采样率等等,为了克服这些限制,在传感器输出端和A/D转换器之间往往要加入信号调理模块,对传感器的输出信号进行调理,以满足A/D转换器的输入要求。常见的信号调理包括放大、分压、去噪、降频等等。下图可以描述传感器的一般应用方案。
在本实例中,温度传感器采用了LM35DZ,它采用内部补偿,可用于测量0℃~110℃的温度,工作电压较宽,可在4~20V的供电电压范围内正常工作。LM35DZ有三个腿,VCC接电源,GND接地,VOUT为输出。LM35DZ输出电压和温度成线性关系,每1℃输出10mV。可见该传感器输出的信号比较微弱,为了提高测量精度,需对电压进行放大。放大模块采用了运算放大器LM324D,电路图如下所示。
至于AD,目前一般的单片机或者ARM都自带了AD,直接接过去就行了。本实例采用了STM32,这款ARM功能十分强大,而且上手很容易,建议新手选择学习,不要再搞C51和汇编了!STM32的最小系统电路不用自己设计,按照人家公司提供的经典电路照抄就行了,所以这块就不多说了,接下来主要讲一讲WIFI模块。
2. WIFI模块的电路设计
WIFI模块选择了WM-G-MR-09,是*USI公司把Marvell 88W8686再封装后的模块。这个模块自带了一个处理器,内置无线网协议IEEE802.11b.g.n协议栈,用起来比较方便。它提供了G-SPI和SDIO两种接口,SDIO的速度好像要快一些,本实例主要用SDIO的接口。电路如下所示。
上边的IPEX是接外置天线的。TAN1是一个陶瓷天线,亲测陶瓷天线虽小,发射距离还是不短的。
这里我想特别说一下WM-G-MR-09的焊接问题,它是LGA封装的!它总共有36个腿,这些腿不是长在侧面,而是长在底下!当时我拿到器件的时候都傻眼了,这玩意儿咋焊!我查各种攻略,废了老长时间,才琢磨出怎么焊上去。现将LGA封装的焊接经验向大家分享一下,不过有条件的还是建议用机器焊。需要准备以下工具:热风枪、镊子、烙铁、焊锡丝、助焊剂(我是用的松香兑酒精)。首先,在焊盘上和引脚上都涂上助焊剂;然后在焊盘上每个焊点上点上少许焊锡,切记不要弄太多;接着把器件放上去,尽可能地与焊盘对齐;然后把热风枪的风速调到最小一档,温度调到380℃左右,然后在器件上方大致3CM处均匀加热(加热时一定不要用镊子摁在器件上,我之前一直焊接失败就是这个原因);仔细观察,加热一段时间后,器件会动一下,这是由于焊锡化了后形成的张力使器件与焊盘自动对齐了,这样就OK了。但是如果在加热过程中发现器件与焊盘偏差太多,没法对齐,那就用镊子轻轻地挑一下;如果测试时发现焊接失败了,不要泄气,用热风枪重新加热,等焊锡融化了,再用镊子轻轻地挑,感觉器件与焊盘自动对齐就可以了。电路板焊好之后如下图所示,图中的串口模块主要用于向计算机屏幕输出调试信息,出问题了好找到症结。
温度采集节点电路板的硬件设计到此就完成了,完整的原理图、封装库、PCB请到我的CSDN资源下载,如果积分不够可以邮箱联系我。下一篇博客主要讲板子上的软件设计。