查看: 2331|回复: 13

基于Arduino UNO的办公室测温仪

[复制链接]
本帖最后由 川山甲的壳 于 2017-8-8 09:04 编辑

基于Arduino UNO的办公室测温仪
在这个出门怕热化了,进门怕感冒的夏天里,我怎么样才能时时刻刻关注周围的温度?
前段时间给远方的朋友打了一通电话,大概的寒暄了一下。然而在这么热的天气里,她说她感冒了,原因是太冷了,听到这话都觉得震惊了。现在的她整天要拿着体温计监测自己的体温 。还提醒我要注意室内温度,不要觉得空调吹着很舒服。
回家后想着她说的话,如果自己能做一个测温仪,随时随地的检测我所处的环境温度就可以了,于是我就采用DS18B20温度传感器结Arduino UNO做了一个小型的办公室测温仪。
1.jpg
下面就来介绍一下我们做这个小型的办公室测温仪都需要些什么吧。
【所需物品】

2.jpg

相对其他的温度传感器,DS18B20温度传感器具有体积小,精度高。其连线也非常方便,经过封装后可以运用于多种场合,主要根据应用场合的不同而改变其外观,适合多种室内场合测温,比如大棚测温,机房测温,洁净室测温等。



看多了千篇一律的LCD液晶显示屏,此款显示屏会有不一样的体验,它提供1600万种颜色组合,带给我们不一样的视觉感受,从此摆脱了单色背光。在接口上也很方便,仅仅需要两根通信线-IIC就可以完成背光控制。并且支持屏幕滚动,光标移动等功能,代码也是通过专门的Arduino库完成所有的设计。



在主控板上我选择是的DFRduino UNO R3,他完全兼容Arduino UNO R3版本。同样使用了更强大的ATmega16U2替代了8U2,转换速度、内存和Arduino UNO R3一样。对个人而言我觉得它的外观更好看,性价比高。



IO传感器扩展板可以为初学者省去繁琐的面包板接线和故障排除,专注实现自己的创意想法。
【配件图】


【电路连接示意图】
   

【效果图】
3.jpg

当室温<25℃的时候,屏幕显示绿色。这样的温度才令人舒心吗。
4.jpg

当25℃<室温<30℃时,屏幕显示黄色,室内的温度已经开始逐渐上升了。这时你可以考虑用上小风扇了。
5.jpg

当室温>30℃时,屏幕显示红色,当红色预警到来的时候,说明小风扇已经不起作用了,需要搬出空调来拯救我们的夏天了。为了让它看起来比较美观,我用3D打印机给它做了一个外壳,这样可以好好保护它了。
3D文件装配图


3D文件完整效果图

实物装配】

3D打印文件我会附在文末,有兴趣的小伙伴可以下载。如果你有更好的创意,也可自行设计。
在程序方面,还可以加上时间显示,这样既可以当测温仪,又可以当时钟。朋友们有兴趣的话,也可以扩展这方面的功能哦。

简单的程序
[C++] 纯文本查看 复制代码
#include <OneWire.h>
#include <Wire.h>
#include "DFRobot_RGBLCD.h"
int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2
DFRobot_RGBLCD lcd(16,2);  //16 characters and 2 lines of show
//Temperature chip i/o
OneWire ds(DS18S20_Pin);  // on digital pin 2
void setup(void)
{
  Serial.begin(9600);
  lcd.init();
  lcd.setRGB(0, 255, 0);
  lcd.setCursor(1, 0 );
  lcd.print("Tep: ");
}

void loop(void)
{
 float temperature = getTemp();
  delay(1000);
   lcd.setCursor(5,0); 
   lcd.print(temperature);
    if(temperature<25)
    {
    lcd.setRGB(0, 255, 0);
   }
    else if (temperature<30)
    {
    lcd.setRGB(255, 215, 0);
    }
    else 
    {
    lcd.setRGB(255, 0, 0);
    }
    lcd.setCursor(10, 0 );
   lcd.write(0xdf);              //display°
   lcd.print('C');
    delay(100);
  delay(100); //just here to slow down the output so it is easier to read
}
float getTemp()
{
  //returns the temperature from one DS18S20 in DEG Celsius

  byte data[12];
  byte addr[8];

  if ( !ds.search(addr)) {
      //no more sensors on chain, reset search
      ds.reset_search();
      return -1000;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44,1); // start conversion, with parasite power on at the end

  byte present = ds.reset();
  ds.select(addr);    
  ds.write(0xBE); // Read Scratchpad

  for (int i = 0; i < 9; i++) { // we need 9 bytes
    data[i] = ds.read();
  } 
  ds.reset_search();
  byte MSB = data[1];
  byte LSB = data[0];

  float tempRead = ((MSB << 8) | LSB); //using two's compliment
  float TemperatureSum = tempRead / 16;
  return TemperatureSum;
  
}

测温仪3D打印文件.rar

947.06 KB, 下载次数: 78, 下载积分: 创造力 -1

hnyzcj  超级版主

发表于 2017-8-7 09:31:19

盒子做的蛮漂亮的,向你学习
回复 支持 反对

使用道具 举报

luna  管理员

发表于 2017-8-7 14:36:57

盒子做的蛮漂亮+1
回复 支持 反对

使用道具 举报

川山甲的壳  中级技师
 楼主|

发表于 2017-8-7 16:27:33

luna 发表于 2017-8-7 14:36
盒子做的蛮漂亮+1

可能用其他的颜色,应该更好看.感觉蓝色太深
回复 支持 反对

使用道具 举报

super-power  中级技师

发表于 2017-8-7 17:50:35

你的1602还能变色,这么高级啊!
回复 支持 反对

使用道具 举报

北岛  初级技师

发表于 2017-11-8 19:15:37

冬天可以使用吗
回复 支持 反对

使用道具 举报

北岛  初级技师

发表于 2017-11-8 20:30:22

用哪个编程器
回复 支持 反对

使用道具 举报

川山甲的壳  中级技师
 楼主|

发表于 2017-11-9 09:24:34

北岛 发表于 2017-11-8 19:15
冬天可以使用吗

我是在夏天的环境弄得,夏天大成都实在是太热了。冬天温差大也还是可以用的哦
回复 支持 反对

使用道具 举报

川山甲的壳  中级技师
 楼主|

发表于 2017-11-9 09:29:19


用的是arduino编程的
回复 支持 反对

使用道具 举报

北岛  初级技师

发表于 2017-11-9 13:56:13

川山甲的壳 发表于 2017-11-9 09:24
我是在夏天的环境弄得,夏天大成都实在是太热了。冬天温差大也还是可以用的哦 ...

谢谢大佬
回复 支持 反对

使用道具 举报

北岛  初级技师

发表于 2017-11-9 20:04:02

选择哪一个
微信图片_20171109200211.jpg
回复 支持 反对

使用道具 举报

川山甲的壳  中级技师
 楼主|

发表于 2017-11-10 10:36:05


是选择开发板吗?我的和你的不一样呢。
回复 支持 反对

使用道具 举报

北岛  初级技师

发表于 2017-11-10 14:27:10

这里选择哪一个e
无标题.png
回复 支持 反对

使用道具 举报

川山甲的壳  中级技师
 楼主|

发表于 2017-11-10 15:51:14

北岛 发表于 2017-11-10 14:27
这里选择哪一个e

就选USBtinyISP
回复 支持 反对

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

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

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

QQ