[Waterproof DS18B20 Sensor Kit Tutorial_1] DIY: Auto AC for Your Pet Fish

by Juncheng in Living > Life Hacks

1146 Views, 9 Favorites, 0 Comments

[Waterproof DS18B20 Sensor Kit Tutorial_1] DIY: Auto AC for Your Pet Fish

IMG_0012.jpg

The sweat came out in a fine dew on my forehead when I left a room with AC and get outdoor yesterday. It just came up to my mind that my pet fish may need their own auto AC since I would go for a trip some day. So I DIY an AC through Waterproof DS18B20 Digital Temperature Sensor from DFrobot. It suits every rectangular fishbowl and costs little power.

Deal With All the Hardware Connection(NO SOLDERING REQUIRED)

image1.jpeg
image2.jpeg
image3.jpeg

Install Arduino IDE

image1.png

Open the next URL and pick the correct version for your machine. https://www.arduino.cc/en/Main/Software

Upload the Code &Add Library Through This Button.

image2.png

#include

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[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;

}

Decorate Your Project and Make It Suitable for the Size of the Fishbowl

IMG_0013.jpg
IMG_0010.jpg

Check Everything Yourself!!!

IMG_0021.jpg
IMG_0019.jpg

Leave your pet fish a ‘coolest’ summer ever.