光照传感器
一、光敏电阻 :光照强度强弱影响电压读取值
【void setup()
{}
void loop()
{ int value = analogRead(pin); }
】
二、传感器BH1705FVI:
电电源 :3-5V 光照度范围:0-65535 lx传感器内置16bitAD转换器
不区分环境光源接近于视觉灵敏度的分光特性可对广泛的亮度进行1勒克斯的高精度测定
标准NXP IIC通信协议模块内部包含通信电平转换,与5V单片机I/O直接连接
【用法:使用的库:Wire.h BH1750FVI
#include <Wire.h>
#include <BH1750FVI>
BH1750FVI LightSensor /*申明一个BH1750FVI传感器*/
void setup()
{
LightSensor.begin(); /*开启并设置引脚 在该传感器的库里默认17引脚即A3引脚*/ /*LightSensor.sleep() 关闭 */
LightSensor.SetAddress(Device_Address_H);
LightSensor.SetMode(Continuous_H_resolution_Mode);
}
void loop()
{
unit16_t lux = lightSensor.GetlightIntensity();
}
接线:
传感器常识:http://www.openjumper.com/guangzhaochuanganqi/
】
温湿度 传感器
DHT22温湿度传感器: 尺寸:35x25mm
工作电压:5V
信号类型:数字信号
温度范围:-40-80℃ 分辨率0.1℃ 误差±0.5℃
湿度范围:0-100%RH 分辨率0.1%RH 误差±2%RH
使用
#include<DHT22.h>
#include<stdio.h>
#define DHT22_PIN pin
DHT22 name (DHT22_PIN)
void setup()
{
Serial.begin(9600);
~
}
void loop()
{
DHT22_ERROR_t name2
<pre name="code" class="cpp"> delay(2000); /*预热至少2~3秒在每次接通电源*/
errorCode = myDHT22.readData();
Serial.print("Got Data ");
Serial.print(myDHT22.getTemperatureC());
Serial.print("C ");
Serial.print(myDHT22.getHumidity());
Serial.println("%");
char buf[128];
sprintf(buf, "Integer-only reading: Temperature %hi.%01hi C, Humidity %i.%01i %% RH",
myDHT22.getTemperatureCInt()/10, abs(myDHT22.getTemperatureCInt()%10),
myDHT22.getHumidityInt()/10, myDHT22.getHumidityInt()%10);
Serial.println(buf);
}
<span style="font-size:12px; line-height: 22px;"><strong></strong></span>
土壤温湿度传感器:
SHT11参数:
温度测量范围 -40 ~ +123.8°C
湿度测量范围 0 ~ 100% RH
温度测量精度 ±0.4°C
湿度测量精度 ±3%RH
导线长度 1m
SHT10参数
温度测量范围 -40 ~ +123.8°C
湿度测量范围 0 ~ 100% RH
温度测量精度 ±0.5°C
湿度测量精度 ±4.5%RH
导线长度 1m
引脚定义:
S 黄色 SCK时钟信号
+ 红色 VDD电源
- 黑色或绿色 GND 地
D 兰色 DATA数据输出
【使用:Sensirion.h
#include <Sensirion.h>
const uint8_t dataPin = 2;
const uint8_t clockPin = 3;
float temperature;
float humidity;
float dewpoint;
Sensirion tempSensor = Sensirion(dataPin, clockPin);
void setup()
{
Serial.begin(9600);
}
void loop()
{
tempSensor.measure(&temperature, &humidity, &dewpoint);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" C, Humidity: ");
Serial.print(humidity);
Serial.print(" %, Dewpoint: ");
Serial.print(dewpoint);
Serial.println(" C");
delay(5000);
}
紫外线传感器
UVM-30A
紫外线强度越大从传感器返回的电压值越大,直接通过读取传感器电压值反应紫外线强度
使用 analogRead(pin)
紫外线强度分是11个级数
<pre name="code" class="cpp">void setup()
{}
void loop()
{
int uv = UV();
}
int UV()
{
int a= analogRead(A0);
if(0<=a && a<=50)
{
return (0);
}
else if(50<a && a<=227)
{
return (1);
}
else if(227<a && a<=318)
{
return (2);
}
else if(318<a && a<=408)
{
return (3);
}
else if(408<a && a<=503)
{
return (4);
}
else if(503<a && a<=606)
{
return (5);
}
else if(606<a && a<=696)
{
return (6);
}
else if(696<a && a<=795)
{
return (7);
}
else if(795<a && a<=881)
{
return (8);
}
else if(881<a && a<=976)
{
return (9);
}
else if (976<a && a<=1079)
{
return (10);
}
else
{
return (11);
}
}