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

About: a maker

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.

Step 1: Deal With All the Hardware Connection(NO SOLDERING REQUIRED)

Step 2: Install Arduino IDE

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

Step 3: Upload the Code &Add Library Through This Button.

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

}

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

Step 5: Check Everything Yourself!!!

Leave your pet fish a ‘coolest’ summer ever.