查看: 1549|回复: 8

【防水 DS18B20 温度传感器套件】 DIY :鱼缸自动降温装置

[复制链接]
本帖最后由 Frankie34 于 2017-8-2 15:36 编辑

最近天气酷热,离开空调和冷饮简直难以生存。一天给鱼换水时想到,若是长期离家,无法通过勤换水来给鱼降温,还有什么办法能自动为宠物鱼降低水温?朋友出了个损招,“开空调呗”。正好前段时间也看到别人用最新的DS18B20防水温度计套件,于是呼便有了这个点子给鱼缸设置自动降温装置。
//这是一个面向初学者的0-1教程,来搭建鱼缸自动降温装置。
IMG_0012.jpg

Required Hardware:
12V/1000mA开关电源适配
image1.jpeg




PS:另需一些亚克力板与杜邦线



STEP1 完成硬件连接(无需焊接)

image2.jpeg image3.jpeg


把传感器针脚接到数字口2【如图中绿线】
电扇分别接M1,M2
电扇需要外接电源24v,接到PWRIN



STEP2 安装 Arduino IDE
打开以下链接并选择适合你设备的版本.
https://www.arduino.cc/en/Main/Software

STEP3 向Arduino IDE中添加库.
image1.png


STEP4 用USB电缆连接电脑和UNO 板子 烧录代码
代码如下 (提示: 在工具栏选择正确的板子与接口)

image2.png
[C] 纯文本查看 复制代码
#include <OneWire.h>

int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2
int E1 = 5;   
int M1 = 4;
int E2 = 6;                        
int M2 = 7;

//Temperature chip i/o
OneWire ds(DS18S20_Pin);  // on digital pin 2

void setup(void) {
  Serial.begin(9600);
  pinMode(4, OUTPUT);   
  pinMode(7, OUTPUT);
}

void loop(void) {

  int value =0;
  float temperature= getTemp();
  Serial.println(temperature);
  delay(100);

  if(temperature > 25.00)
{
  digitalWrite(M1,HIGH);   
  digitalWrite(M2, HIGH);      
  analogWrite(E1, 255);   //PWM
  analogWrite(E2, 255);   //PWM
  delay(30);
}
else{
  digitalWrite(M1,LOW);   
  digitalWrite(M2, LOW);      
  analogWrite(E1, 0);   //PWM
  analogWrite(E2, 0);   //PWM
  delay(30);
}
//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;
  }

  if ( OneWire::crc8( addr, 7) != addr[7]) {
      Serial.println("CRC is not valid!");
      return -1000;
  }

  if ( addr[0] != 0x10 && addr[0] != 0x28) {
      Serial.print("Device is not recognized");
      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 = 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;

}




STEP5 用亚克力组合设备  

IMG_0010.jpg IMG_0013.jpg




整理飞线,做好防水涂层处理


IMG_0019.jpg IMG_0021.jpg





用此装置可以模拟自然风对水进行物理降温,体积较小成本较低可以组成集群,通过传感器的改  变可以由不同条件判断对对象进行降温处理。当然,也可以给培育箱中的其他小动物做“迷你空调”哦!不妨给猫窝里也装上一个吧!

快亲手自试试看DIY吧!!!

【注:推荐风扇用外接电源啊!!!标准电压为24V,用12V电扇也可以工作但几乎(划掉)没有降温效果】


Rockets  NPC

发表于 2017-7-21 11:38:30

我会建议用蠕动泵来进行循环,并用风扇给循环的水来降温,风扇直接给水箱散热,感觉有点效率比较低一些。
回复 支持 1 反对 0

使用道具 举报

yoyojacky  高级技师

发表于 2017-7-17 12:54:48

风吹 pp 凉~, 建议用制冷设备直接制冷呀!~
回复 支持 反对

使用道具 举报

Frankie34  中级技师
 楼主|

发表于 2017-7-17 13:53:05

本帖最后由 Frankie34 于 2017-7-20 21:29 编辑
yoyojacky 发表于 2017-7-17 12:54
风吹 pp 凉~, 建议用制冷设备直接制冷呀!~

            
回复 支持 反对

使用道具 举报

Frankie34  中级技师
 楼主|

发表于 2017-7-17 13:58:22

yoyojacky 发表于 2017-7-17 12:54
风吹 pp 凉~, 建议用制冷设备直接制冷呀!~

不过,在经济基础允许的前提下,之后有机会可能对装置改进一波哟
回复 支持 反对

使用道具 举报

Forgotten  版主

发表于 2017-7-18 21:58:23

很想知道这两个小风扇的效果数据
回复 支持 反对

使用道具 举报

Frankie34  中级技师
 楼主|

发表于 2017-7-21 15:16:52

Forgotten 发表于 2017-7-18 21:58
很想知道这两个小风扇的效果数据

一般降温1度左右
回复 支持 反对

使用道具 举报

Frankie34  中级技师
 楼主|

发表于 2017-7-21 15:17:46

Forgotten 发表于 2017-7-18 21:58
很想知道这两个小风扇的效果数据

但这只是单体输出,可以组一个set
回复 支持 反对

使用道具 举报

Frankie34  中级技师
 楼主|

发表于 2017-7-21 15:18:34

Rockets 发表于 2017-7-21 11:38
我会建议用蠕动泵来进行循环,并用风扇给循环的水来降温,风扇直接给水箱散热,感觉有点效率比较低一些。 ...

有道理,这样效率应该是会高蛮多
回复 支持 反对

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

QQ