利用Arduino搭建传感器网络(一) ——读取传感器数据

准备

硬件设备:
1、Arduino开发板
2、传感器(在这里我用的是LM35温度传感器)
软件环境:
安装Arduino IDE

硬件连接:

LM35 Arduino
S A0
+ 5V
- GND

(其中S也可以连A0~A5中的其他引脚,但在后面的程序中要做相应的修改)
硬件连接如下图:
图片挂掉了!!!

程序编写

代码

打开Arduino IDE,编写如下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int potPin = 0; //设置模拟口4为LM35的信号输入端口
float temperature = 0; //设置temperature为浮点变量
long val = 0; //设置val为长整数变量
void setup()
{
Serial.begin(9600);//设置波特率
}
void loop ()
{
val = analogRead(potPin); //温度传感器LM35接到模拟PIN4上;val变量为从LM35信号口读取到的数值
temperature = (val * 0.0048828125 * 100); //把读取到的val转换为温度数值,系数一:0.00488125=5/1024,0~5V对应模拟口读数1~1024,系数二:100=1000/10,1000是毫伏与伏的转换;10是每10毫伏对应一度温升。
Serial.print("Tep= ");
Serial.print(temperature);
Serial.println(" C");
delay(500);//延时500毫秒,这里也就是刷新速度。
}

其中,setup()函数会在Arduino上电启动时调用一次,通常我们把初始化工作放在这里,Arduino完成系统初始化后,就会一直循环调用loop()函数,所以我这里实现的功能就是每隔500ms读取一次温度传感器的电压并转换成对应的温度值,然后通过串口显示出来。

编译运行

首先配置好开发板类型及串口端口号:
图片挂掉了!!!
点击 项目->验证/编译,等待编译完成后,点击 上传(这里“上传”的意思是“上传到开发板”,单个人觉得翻译成“下载”更贴切吧,这个IDE的开发组有必要请一个中文好点的开发员2333。),待完成后,我们的程序就已经正常的跑在开发板上了。
图片挂掉了!!!
现在,让我们来看看运行结果。点击IDE上的工具->串口监视器,就可看到我们的程序通过串口发上来的数据了。如果这个数据实在太离谱,那么很有可能是你得传感器并没有正确连接上。
图片挂掉了!!!
可以看到,串口监视器中在不断输出传感器读取到的温度值。