Smart Aquarium menjadi idaman setiap penghobi aquascape. Salah satu faktor yang penting yaitu menjaga suhu air. Suhu air merupakan salah satu faktor yang harus diperhatikan dalam memelihara ikan hias. Suhu yang kurang tepat berakibat kurang optimalnya pertumbuhan ikan. Kali ini kita akan membuat alat pengukur suhu air yang dapat dipantau lewat internet.

1. Alat / Bahan
  • Arduino IDE                                     Download disini
  • Library: Blynk                                  Download disini
  • Library: ESP8266                            Download disini
  • Library: DS18B20                           Download disini
  • NodeMCU                                        1 Buah
  • DS18B20                                          1 Buah
  • LCD 16×2 I2C                                   1 Buah
  • Servo SG90                                      1 Buah
  • Project Board                                  1 Buah
  • Kabel Jumper                                  Secukupnya

Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.

2. Skema Rangkaian

Gambar Rangkaian Smart Aquarium Berbasis NodeMCU ESP8266

3. Langkah Kerja
  1. Siapkan alat dan bahan yang akan digunakan
  2. Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
  3. Buka software Arduino IDE yang telah terinstal pada laptop/komputer
  4. Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library 
  5. Ketikkan sketch program pada halaman Arduino IDE
  6. Lakukan proses uploading program
5. Sketch Program
 
/* Program Smart Aquarium */

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <RtcDS3231.h>
#include <Wire.h> // must be included here so that Arduino library object file references work
RtcDS3231<TwoWire> Rtc(Wire);
#include <LiquidCrystal_I2C.h>

#include <DallasTemperature.h>
#include <OneWire.h>

#define ONE_WIRE_BUS 4  //D1 pin of nodemcu

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);            // Pass the oneWire reference to Dallas Temperature.


#define servo D3
LiquidCrystal_I2C lcd(0x27, 16, 2);
String hr,minut ;
int hr1=2, minut1=38;
String new_time;                               

void setup() {
   sensors.begin();
   pinMode(servo, OUTPUT);
   Wire.begin(D2, D1);
   lcd.begin();
   Rtc.Begin();
   Serial.begin(9600); 
}

void loop() {
  tampil();
  sensors.requestTemperatures();                // Send the command to get temperatures  
  Serial.print("Temperature is: ");
  Serial.println(sensors.getTempCByIndex(0));   // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
  delay(500);
}

void tampil () 
{
    RtcDateTime now = Rtc.GetDateTime();
    lcd.setCursor(0,0);
    lcd.print("Time:");
    lcd.print(now.Hour(), DEC);
    lcd.print(':');
    lcd.print(now.Minute(), DEC);
    lcd.print(':');
    lcd.print(now.Second(), DEC);
    
    lcd.setCursor(0,1);
    lcd.print("Temp:");
    float a=a+sensors.getTempCByIndex(0);
    lcd.print(a);
    lcd.print(" *C");
}

Jika tertarik ingin belajar lebih lanjut? Silahkan daftar:

Leave a Comment