Edison教程系列08 伊甸园守护者
伊甸园守护者想不想给家里伊甸园中的花花草草一个舒适的环境?想知道什么时候它们口渴了?通过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版权所有,未经授权不得以任何形式使用。
附上正确的代码:
//伊甸园守护者
#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(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);
} 教程专业,名字也起得很文艺呐哈哈哈
点赞~ 海绵宝宝 发表于 2014-11-21 11:37
教程已收藏,苦等Edison到货哇
耐心等待一下吧,很快就到了,不出意外的话应该下周或者下下周啦 您好,好像
lcd.setCursor(0, 6)
lcd.setCursor(1, 0)
坐标反了,应该是(6, 0)(0, 1) 刚才试了下,代码有一点点错了 大侠 为什么我的温度,显示的是 T:210C
页:
[1]