概述
本实验利用光敏传感器、声音传感器、LM35线性温度传感器组成了环境监测的基本因素,实现了对环境光,噪音,以及温度的检测,让您可以在家中掌握自己身处的环境情况。
元件清单:
Zduino UNO × 1;
OJ传感器扩展板× 1;
USB数据线 × 1 ;
3p杜邦线 × 3 ;
LM35线性温度传感器 × 1;
模拟声音传感器 × 1;
模拟光敏传感器 × 1;
连线示意图:
/* www.openjumper.cn 日期:2013.5.18 IDE 版本:1.0.1 功能:采集环境中的声音,光线,温度数据,并在一定时间内刷新数据,串口显示。 */ int temPin = A4; //设置模拟口4为LM35的信号输入端口 int soundPin = A2; int lightPin = A1; int a[10]; float temperature = 0; //设置temperature为浮点变量 long val=0; //设置val为长整数变量 int soundvalue,lightvalue; float readtemp() //读取温度 { val=analogRead(temPin);//温度传感器LM35接到模拟PIN4上;val变量为从LM35信号口读取到的数值 temperature = (val*0.0048828125*100); //把读取到的val转换为温度数值,系数一:0.00488125=5/1024,0~5V对应模拟口读数1~1024,系数二:100=1000/10,1000是毫伏与伏的转换;10是每10毫伏对应一度温升。 return temperature; //返回温度值 } int readsound() //读取最大噪音值 { int sound_max=0; for(int i=0;i<10;i++) { a[i] = analogRead(soundPin); sound_max=max(sound_max,a[i]); } return sound_max; } int readlight() //采样10次光线值,返回其平均值 { int light_sum,light_average; int light_max = 0; int light_min=1024; for(int i=0;i<10;i++) { a[i] = analogRead(lightPin); light_sum=light_sum + a[i]; light_max=max(light_max,a[i]); light_min=min(light_min,a[i]); } light_average = (light_max + light_min)/2; return light_average; } void setup() { Serial.begin(9600);//设置波特率 Serial.println("Smart Environment monitor begin...."); } void loop() { float tempvalue = 0; tempvalue = readtemp(); soundvalue = readsound(); lightvalue = analogRead(lightPin); Serial.print("now the temperature is ") ; Serial.println(tempvalue); Serial.print("the soundvalue is ") ; Serial.println(soundvalue); Serial.print("the lightvalue is ") ; Serial.println(lightvalue); Serial.println(); //串口分别显示读取的温度、声音、光敏值 delay(1000); //1秒刷新一次 }