|
伊甸园守护者 想不想给家里伊甸园中的花花草草一个舒适的环境?想知道什么时候它们口渴了?通过LM35温度传感器和土壤湿度传感器就能够知道,再加上LCD按键扩展板,就可以很方便得看到实时的数据。等你之后玩Arduino够溜的时候,还可以往控制器上加网络模板,这样数据不仅能实时显示,还能放到网上,或者通过微博发布出去,是不是很心动了呢?那就先做个最简单的,本地实时显示数据~
所需材料
- 1× LM35线性温度传感器

- 1× 土壤湿度传感器

- 1× LCD按键扩展板

- 1× 英特尔® Edison for Arduino开发板

硬件连接
LCD按键扩展板 → 插在EdisonArduino Kit扩展板上 LM35线性温度传感器 → 模拟口1 (右下角左侧第一个接口, 模拟口0被按键占用) 土壤湿度传感器 → 模拟口2 输入代码
- //伊甸园守护者
- #include <LiquidCrystal.h>
-
- LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // 初始化LCD的引脚号
-
- int TemperaturePin=A1; //设置LM35线性温度传感器的引脚
- int HumidityPin=A2;
-
- void setup() {
- lcd.begin(16, 2); // 设置LCD为2行,每行16个字符
- }
-
- void loop() {
- int temperatureValue; //用于存储温度的模拟量
- int humidityValue; //由于存储湿度的模拟量
- int temperature; //用于存储温度数据
-
- temperatureValue=analogRead(TemperaturePin); //读取温度的模拟量
- humidityValue=analogRead(HumidityPin); //读取湿度的模拟量
-
- temperature=(500 * temperatureValue) /1024; //通过模拟量计算出实际温度
-
-
- //LCD显示当前温度
- lcd.setCursor(0, 0); //光标移到第一行,第一个字符
- lcd.print("T:");
- lcd.print(temperature);
- lcd.print("C");
-
- //LCD现实当前湿度
- lcd.setCursor(0, 6); //光标移动到第一行,第七个字符
- lcd.print("H:");
- lcd.print(humidityValue);
-
- //显示当前土壤情况
- lcd.setCursor(1, 0); //光标移动到第二行,第一个字符
- if (humidityValue<300) {
- lcd.print("Soil: Dry");
- }
- else if (humidityValue>=300 && humidityValue<700){
- lcd.print("Soil: Humid");
- }
- else{
- lcd.print("Soil: Water")
- }
-
- delay(500);
- }
-
复制代码
下载完代码后,就可以从LCD屏上显示当前的温湿度,还有土壤的湿度情况。
作者:Angelo * DFRobot版权所有,未经授权不得以任何形式使用。
|
[code]//伊甸园守护者
#include
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // 初始化LCD的引脚号
int TemperaturePin=A1; //设置LM35线性温度传感器的引脚
int HumidityPin=A2;
void setup() {
lcd.begin(16, 2); // 设置LCD为2行,每行16个字符
}
void loop() {
int temperatureValue; //用于存储温度的模拟量
int humidityValue; //由于存储湿度的模拟量
int temperature; //用于存储温度数据
temperatureValue=analogRead(TemperaturePin); //读取温度的模拟量
humidityValue=analogRead(HumidityPin); //读取湿度的模拟量
temperature=(500 * temperatureValue) /1024; //通过模拟量计算出实际温度
//LCD显示当前温度
lcd.setCursor(0, 0); //光标移到第一行,第一个字符
lcd.print("T:");
lcd.print(temperature);
lcd.print("C");
//LCD现实当前湿度
lcd.setCursor(6, 0); //光标移动到第一行,第七个字符
lcd.print("H:");
lcd.print(humidityValue);
//显示当前土壤情况
lcd.setCursor(0, 1); //光标移动到第二行,第一个字符
if (humidityValue<300) {
lcd.print("Soil: Dry");
}
else if (humidityValue>=300 && humidityValue<700){
lcd.print("Soil: Humid");
}
else{
lcd.print("Soil: Water");
}
delay(500);
}[/code]
lcd.setCursor(0, 6)
lcd.setCursor(1, 0)
坐标反了,应该是(6, 0)(0, 1)
点赞~