Internet of Things (IoT) adalah konsep yang menghubungkan berbagai perangkat fisik ke internet untuk memungkinkan mereka saling berkomunikasi dan bertukar data. Perangkat-perangkat ini dapat berupa apa saja yang memiliki kemampuan untuk mengumpulkan dan mentransmisikan data, seperti sensor, kamera, kendaraan, peralatan rumah tangga, dan bahkan infrastruktur kota. Dengan IoT, perangkat-perangkat ini dapat diintegrasikan ke dalam sistem yang lebih besar untuk meningkatkan efisiensi, otomatisasi, dan pengambilan keputusan berdasarkan data secara real-time.

Beberapa contoh penerapan IoT meliputi:

  • Smart Home: Penggunaan perangkat yang terhubung untuk mengontrol pencahayaan, suhu, dan keamanan rumah secara otomatis atau melalui perangkat seluler.
  • Kesehatan: Alat medis yang memonitor kondisi pasien dan mengirimkan data secara langsung ke penyedia layanan kesehatan.
  • Pertanian: Sensor yang memantau kondisi tanah dan tanaman untuk mengoptimalkan irigasi dan pemupukan.
  • Industri: Mesin dan peralatan yang terhubung untuk memonitor kinerja dan melakukan pemeliharaan prediktif.
  • Kota Pintar: Sistem transportasi dan utilitas yang dikelola secara efisien untuk mengurangi kemacetan dan konsumsi energi.

Dengan IoT, berbagai aspek kehidupan sehari-hari dan industri dapat menjadi lebih terhubung dan cerdas, meningkatkan kenyamanan, efisiensi, dan produktivitas.

Pada kesempatan ini kita akan membuat project sederhana dengan menggunakan ESP8266, pinout dapat dilihat pada gambar di bawah ini :

Pertama-tama kita akan membuat akun pada https://app.arduino.cc/ untuk dapat memprogram ESP8266

Gunakan alamat email yang sama dengan smartphone anda untuk mendaftar akun, dalam hal ini jika anda menggunakan android silakan gunakan akun google.

Setelah akun berhasil dibuat andakan sampai pada tampilan home page seperti gambar di bawah ini :

Sekarang kita akan menambahkan ESP8266 kita, melalui menu Devices

Lalu pilih ADD DEVICE

Pilih Third party device

Klik ESP8266 lalu cari SparkFun ESP8266 Thing Dev

Berikan nama perangkat ESP8266 anda

Copy Secret Key dan DOWNLOAD PDF nya, centang I saved my Device ID and Secret Key

Perangkat ESP8266 telah berhasil ditambahkan, pada keterangan masih Offline karena perangkat kita belum diprogram untuk terkoneksi ke intenet.

Sebelum masuk ke materi koneksi WiFi, kita akan membuat program sederhana untuk menghidupkan dan mematikan led. Sekarang kita pilih menu Sketches, dapat diakses pada pojok kiri atas, seperti gambar di bawah :

Pilih CREATE SKETCH

Sekarang kita sudah berada jendela sketch dimana tempat kita untuk menuliskan baris program, sebelum mulai memprogram kita harus menginstall beberapa aplikasi pendukung :

  1. Driver dari ESP8266 download
  2. Arduino Cloud Agent download

ON/OFF LED

void setup() {
   
  Serial.begin(9600);
  pinMode(14, OUTPUT); //D5
    
}

void loop() {
    
    digitalWrite(14, HIGH);
    delay(1000);
    digitalWrite(14, LOW);
  
    delay(2000);
}

Function Suhu Air

//LIBRARY
#include <OneWire.h>
OneWire  ds(2);


//--------------
void suhu_air(){
    byte i;
  byte present = 0;
  byte type_s;
  byte data[12];
  byte addr[8];
  float celsius, fahrenheit;

  if ( !ds.search(addr))
  {
    ds.reset_search();
    delay(250);
    return;
  }


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

  // the first ROM byte indicates which chip
  switch (addr[0])
  {
    case 0x10:
      type_s = 1;
      break;
    case 0x28:
      type_s = 0;
      break;
    case 0x22:
      type_s = 0;
      break;
    default:
      Serial.println("Device is not a DS18x20 family device.");
      return;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1);        // start conversion, with parasite power on at the end
  delay(1000);
  present = ds.reset();
  ds.select(addr);
  ds.write(0xBE);         // Read Scratchpad

  for ( i = 0; i < 9; i++)
  {
    data[i] = ds.read();
  }

  // Convert the data to actual temperature
  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10)
    {
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  }
  else
  {
    byte cfg = (data[4] & 0x60);
    if (cfg == 0x00) raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms

  }
  celsius = (float)raw / 16.0;
  //fahrenheit = celsius * 1.8 + 32.0;
  Serial.print("  Temperature = ");
  Serial.print(celsius);
  Serial.print(" Celsius, ");

   //suhu = String(celsius);
  
}