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 :
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);
}