beberapa sensor, kemudian data yang telah dibaca akan disimpan pada platform
Antares.
Hardware
Untuk mengukur kondisi suhu dan intensitas cahaya, dibutuhkan beberapa perangkat
elektronik. Berikut adalah beberapa perangkat yang akan digunakan pada contoh ini:
• ESP8266
Perangkat untuk membaca data hasil pengukuran sensor. Board yang akan
digunakan adalah WeMos D1 Mini
• DHT11
• LDR
• Arduino IDE
• Arduino ESP8266
Panduan instalasi Arduino ESP8266 pada Arduino IDE terdapat pada Modul
Workshop Antares.
• Library DHT11
Library DHT11 dapat dipasang pada Arduino IDE melalui Library Manager atau
halaman GitHub.
DOWNLOAD LIBRARY DHT ADAFRUIT
Segmen berikut bersi contoh-contoh program yang dapat anda coba untuk menjalankan
beberapa fungsi pada ESP8266.
Blink
Setiap board ESP8266 mempunyai LED di dalamnya yang bisa anda kontrol dengan
mengakses dan memberi logika HIGH atau LOW pada pin GPIO2 di board ESP8266.
Perlu diingat bahwa LED di ESP8266 adalah Active Low, yang berarti jika diberi logika 1
(HIGH), LED akan mati. Sebaliknya, jika diberi logika 0 (LOW), LED akan menyala.
void setup() {
pinMode(led, OUTPUT); // Atur pin "led" sebagai OUTPUT
}
void loop() {
digitalWrite(led, HIGH); // Matikan LED
delay(1000); // Jeda 1 detik
digitalWrite(led, LOW); // Nyalakan LED
delay(1000); // Jeda 1 detik
}
C
Copy
GPIO
GPIO pada board ESP8266 biasanya ditandai dengan huruf D, seperti D5, D4, D2, dan
lain-lain. Silahkan ikuti rangkaian sambungan ESP8266 dengan LED sesuai gambar
berikut: (NB. resistor bernilai sekitar 220
ohm)
#define led1 D2 // Buat variabel "led1" sebagai pin D2
#define led2 D4 // Buat variabel "led2" sebagai pin D4
void setup() {
pinMode(led1, OUTPUT); // Atur pin "led1" sebagai OUTPUT
pinMode(led2, OUTPUT); // Atur pin "led2" sebagai OUTPUT
}
void loop() {
digitalWrite(led1, HIGH); // Nyalakan LED 1
digitalWrite(led2, LOW); // Matikan LED 2
delay(1000); // Jeda 1 detik
digitalWrite(led1, LOW); // Matikan LED 1
digitalWrite(led2, HIGH); // Nyalakan LED 2
delay(1000); // Jeda 1 detik
}
C
Copy
Serial Monitor
Serial monitor berfungsi untuk mengirim data dari ESP8266 ke port serial komputer
untuk menampilkan data di komputer.
void setup() {
Serial.begin(115200); // Buka komunikasi serial pada baudrate 115200
}
void loop() {
Serial.print("Angka: "); // Kirim angka ke serial monitor
Serial.println(angka);
angka++; // Tambah variabel angka +1
delay(1000); // Jeda 1 detik
}
C
Copy
Sensor Cahaya
void loop() {
int sensorCahaya = analogRead(0); // Baca nilai sensor
Serial.println(sensorCahaya); // Kirim nilai sensor ke serial monitor
delay(1000); // Jeda 1 detik
}
C
Copy
Sensor Temperatur
Pada sensor temperatur DHT11, diperlukan library DHT11. Silahkan gunakan rangkaian
seperti
berikut:
#include "DHT.h" // Inisiasi library DHT11
#define DHTPIN D2 // Buat variabel DHTPIN, mengarah pada pin D2
#define DHTTYPE DHT11 // Tentukan tipe DHT menjadi DHT11
DHT dht(DHTPIN, DHTTYPE); // Buat objek dht
void setup() {
Serial.begin(9600); // Buka komunikasi serial pada baudrate 9600
dht.begin(); // Inisiasi objek dht
}
void loop() {
float hum = dht.readHumidity(); // Baca kelembapan
float temp = dht.readTemperature(); // Baca temperatur
if (isnan(hum) || isnan(temp)) { // Cek jika sensor error
Serial.println("Gagal Membaca DHT sensor!");
return;
}
Serial.println("Humidity: " + (String)hum + " %"); // Print
kelembapan (%)
Serial.println("Temperature: " + (String)temp + " *C"); // Print
temperatur (*C)
delay(1000);
}
C
Copy
Antares HTTP
Di bawah ini adalah beberapa contoh-contoh kode untuk mengirim dan menerima data
melalui HTTP pada database Antares dengan ESP8266.
Kirim Data
Contoh kode untuk pengiriman data ada di File > Examples > Antares ESP8266 HTTP
> AntaresStoreData
void loop() {
// Isi variabel dengan nilai acak, dengan tipe data yang berbeda
int temp = random(25,30) ;
int hum = random(75,90);
float windsp = float(random(20, 30))/3.33;
float rainlv = float(random(0, 20))/6.99;
String lat = "-6.8718189";
String lon = "107.5872477";
Copy
Kode ini akan mengambil data terakhir yang terekam di device application Antares anda.
Contoh kodenya bisa dilihat pada File > Examples > Antares ESP8266 HTTP >
AntaresGetLatestData
void setup() {
Serial.begin(115200); // Buka komunikasi serial dengan baudrate 115200
antares.setDebug(true); // Nyalakan debug. Set menjadi "false" jika tidak
ingin pesan-pesan tampil di serial monitor
antares.wifiConnection(WIFISSID,PASSWORD); // Mencoba untuk menyambungkan ke
WiFi
}
void loop() {
// Mengambil data terakhir ke penampungan data
antares.get(applicationName, deviceName);
Copy
Antares MQTT
Di bawah ini adalah beberapa contoh-contoh kode untuk mengirim dan menerima data
melalui MQTT pada database Antares dengan ESP8266. Mendengarkan data
(subscribe) dapat berupa real-time, yang berarti setiap ada masuk ke database Antares
melalui topik MQTT, data tersebut akan dibaca oleh ESP8266 secara langsung.
Kirim (Publish)
Contoh kode untuk pengiriman data ke topic akun antares anda ada di File > Examples
> Antares ESP8266 MQTT > AntaresMQTTPublish
void setup() {
Serial.begin(115200); // Buka komunikasi serial dengan baudrate 115200
antares.setDebug(true); // Nyalakan debug. Set menjadi "false" jika tidak
ingin pesan-pesan tampil di serial monitor
antares.wifiConnection(WIFISSID,PASSWORD); // Mencoba untuk menyambungkan ke
WiFi
antares.setMqttServer(); // Inisiasi server MQTT Antares
}
void loop() {
/*
Cek koneksi ke broker MQTT Antares. Jika disconnect,
akan dicoba untuk menyambungkan lagi
*/
antares.checkMqttConnection();
// Inisiasi variabel
int temp = random(25,30) ;
int hum = random(75,90);
float windsp = float(random(20, 30))/3.33;
float rainlv = float(random(0, 20))/6.99;
String lat = "-6.8718189";
String lon = "107.5872477";
Copy
Mendengarkan (Subscribe)
Contoh kode untuk mendengarkan topic MQTT akun antares anda ada di File >
Examples > Antares ESP8266 MQTT > AntaresMQTTSubscribe
/*
Fungsi utama untuk mendapatkan topik dan payload dari setiap
pesan MQTT yang diterima oleh ESP8266.
*/
void callback(char topic[], byte payload[], unsigned int length) {
Serial.println("New Message!");
Serial.println("Topic: " + antares.getTopic()); // Print topic
Serial.println("Payload: " + antares.getPayload()); // Print payload
void setup() {
Serial.begin(115200); // Buka komunikasi serial dengan baudrate 115200
antares.setDebug(true); // Nyalakan debug. Set menjadi "false" jika tidak
ingin pesan-pesan tampil di serial monitor
antares.wifiConnection(WIFISSID,PASSWORD); // Mencoba untuk menyambungkan ke
WiFi
antares.setMqttServer(); // Inisiasi server MQTT Antares
antares.setCallback(callback); // Set fungsi callback menjadi fungsi callback
seperti di atas
}
void loop() {
/*
Cek koneksi ke broker MQTT Antares. Jika disconnect,
akan dicoba untuk menyambungkan lagi
*/
antares.checkMqttConnection();
}
C
Copy