2014-11-6 16:23:19 [显示全部楼层]
9750浏览
查看: 9750|回复: 8

[ Edison教程系列] Edison教程系列08 伊甸园守护者

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

所需材料

  •   1×  LM35线性温度传感器  Edison教程系列08 伊甸园守护者图1

  •   1×  土壤湿度传感器  Edison教程系列08 伊甸园守护者图2

  •   1×  LCD按键扩展板  Edison教程系列08 伊甸园守护者图3

  •   1×   英特尔® Edison for Arduino开发板  Edison教程系列08 伊甸园守护者图4
                              
硬件连接

Edison教程系列08 伊甸园守护者图5
LCD按键扩展板  →  插在EdisonArduino Kit扩展板上
LM35线性温度传感器  → 模拟口1  (右下角左侧第一个接口, 模拟口0被按键占用)
土壤湿度传感器  → 模拟口2
输入代码
  1. //伊甸园守护者
  2. #include <LiquidCrystal.h>
  3. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);        // 初始化LCD的引脚号
  4. int TemperaturePin=A1;      //设置LM35线性温度传感器的引脚
  5. int HumidityPin=A2;
  6. void setup() {
  7.   lcd.begin(16, 2);  // 设置LCD为2行,每行16个字符
  8. }
  9. void loop() {
  10.   int temperatureValue;     //用于存储温度的模拟量
  11.   int humidityValue;        //由于存储湿度的模拟量
  12.   int temperature;          //用于存储温度数据
  13.   temperatureValue=analogRead(TemperaturePin);    //读取温度的模拟量
  14.   humidityValue=analogRead(HumidityPin);          //读取湿度的模拟量
  15.   temperature=(500 * temperatureValue) /1024;     //通过模拟量计算出实际温度
  16.   //LCD显示当前温度
  17.   lcd.setCursor(0, 0);    //光标移到第一行,第一个字符
  18.   lcd.print("T:");
  19.   lcd.print(temperature);
  20.   lcd.print("C");
  21.   //LCD现实当前湿度
  22.   lcd.setCursor(0, 6);    //光标移动到第一行,第七个字符
  23.   lcd.print("H:");
  24.   lcd.print(humidityValue);
  25.   //显示当前土壤情况
  26.   lcd.setCursor(1, 0);    //光标移动到第二行,第一个字符
  27.   if (humidityValue<300) {
  28.     lcd.print("Soil: Dry");
  29.   }
  30.   else if (humidityValue>=300 && humidityValue<700){
  31.     lcd.print("Soil: Humid");
  32.   }
  33.   else{
  34.     lcd.print("Soil: Water")
  35.   }
  36.   delay(500);
  37. }
  38.    
复制代码
下载完代码后,就可以从LCD屏上显示当前的温湿度,还有土壤的湿度情况。

Edison教程系列08 伊甸园守护者图6

作者:Angelo
*
DFRobot版权所有,未经授权不得以任何形式使用。

Kinsenlin  中级技师

发表于 2015-2-25 11:02:44

附上正确的代码:
  1. //伊甸园守护者
  2. #include <LiquidCrystal.h>
  3. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);        // 初始化LCD的引脚号
  4. int TemperaturePin=A1;      //设置LM35线性温度传感器的引脚
  5. int HumidityPin=A2;
  6. void setup() {
  7.   lcd.begin(16, 2);  // 设置LCD为2行,每行16个字符
  8. }
  9. void loop() {
  10.   int temperatureValue;     //用于存储温度的模拟量
  11.   int humidityValue;        //由于存储湿度的模拟量
  12.   int temperature;          //用于存储温度数据
  13.   temperatureValue=analogRead(TemperaturePin);    //读取温度的模拟量
  14.   humidityValue=analogRead(HumidityPin);          //读取湿度的模拟量
  15.   temperature=(500 * temperatureValue) /1024;     //通过模拟量计算出实际温度
  16.   //LCD显示当前温度
  17.   lcd.setCursor(0, 0);    //光标移到第一行,第一个字符
  18.   lcd.print("T:");
  19.   lcd.print(temperature);
  20.   lcd.print("C");
  21.   //LCD现实当前湿度
  22.   lcd.setCursor(6, 0);    //光标移动到第一行,第七个字符
  23.   lcd.print("H:");
  24.   lcd.print(humidityValue);
  25.   //显示当前土壤情况
  26.   lcd.setCursor(0, 1);    //光标移动到第二行,第一个字符
  27.   if (humidityValue<300) {
  28.     lcd.print("Soil: Dry");
  29.   }
  30.   else if (humidityValue>=300 && humidityValue<700){
  31.     lcd.print("Soil: Humid");
  32.   }
  33.   else{
  34.     lcd.print("Soil: Water");
  35.   }
  36.   delay(500);
  37. }
复制代码
回复

使用道具 举报

heinau  高级技匠

发表于 2014-11-21 10:34:28

教程专业,名字也起得很文艺呐哈哈哈
点赞~
回复

使用道具 举报

海绵宝宝  

发表于 2014-11-21 11:37:50

提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

Ash  管理员
 楼主|

发表于 2014-11-21 11:42:51

海绵宝宝 发表于 2014-11-21 11:37
教程已收藏,苦等Edison到货哇

耐心等待一下吧,很快就到了,不出意外的话应该下周或者下下周啦
回复

使用道具 举报

海绵宝宝  

发表于 2014-11-21 11:51:08

提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

WindnBike  见习技师

发表于 2015-2-15 18:22:39

您好,好像
lcd.setCursor(0, 6)
lcd.setCursor(1, 0)
坐标反了,应该是(6, 0)(0, 1)
回复

使用道具 举报

Kinsenlin  中级技师

发表于 2015-2-25 11:01:40

刚才试了下,代码有一点点错了
回复

使用道具 举报

hellovictoria  见习技师

发表于 2015-4-16 15:20:47

大侠 为什么我的温度,显示的是 T:210C
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail