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

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

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.


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) {


pinMode(4, OUTPUT);

pinMode(7, OUTPUT);


void loop(void) {

int value =0;

float temperature= getTemp();



if(temperature > 25.00)



digitalWrite(M2, HIGH);

analogWrite(E1, 255); //PWM

analogWrite(E2, 255); //PWM





digitalWrite(M2, LOW);

analogWrite(E1, 0); //PWM

analogWrite(E2, 0); //PWM



//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


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.write(0x44,1); // start conversion, with parasite power on at the end

byte present = ds.reset();


ds.write(0xBE); // Read Scratchpad

for (int i = 0; i < 9; i++) { // we need 9 bytes

data[i] = ds.read();



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.



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Stone Concrete and Cement Contest

      Stone Concrete and Cement Contest
    • DIY Summer Camp Contest

      DIY Summer Camp Contest

    2 Discussions


    That is a great system. I eventually want to have my fish in a completely automated system that controls everything. That way I don't have to worry about needing to be home at certain times.

    1 reply