#include <AntaresESP32HTTP.h>
#include "DHTesp.h"

#define ACCESSKEY "your-access-key"       // Ganti dengan access key akun Antares anda
#define WIFISSID "your-wifi-ssid"         // Ganti dengan SSID WiFi anda
#define PASSWORD "your-wifi-pass"     // Ganti dengan password WiFi anda

#define applicationName "your-application-name"   // Ganti dengan application name Antares yang telah dibuat
#define deviceName "your-device-name"     // Ganti dengan device Antares yang telah dibuat

// deklarasi pin-pin sensor
#define PIN_DHT 14
#define PIN_LDR A0
#define PIN_MOISTURE A3

// inisialisasi object library
DHTesp dht;
AntaresESP32HTTP antares(ACCESSKEY);

// inisialisasi variable
int moisture = 0;
int ldr = 0;
int temp =0;
int hum = 0;

void setup()
{
  // inisiasi Serial comm dengan baud rate 9600
  Serial.begin(9600);

  // inisiasi pin sensor
  // inisiasi LDR
  pinMode(PIN_LDR, INPUT);
  // inisiasi Moisture
  pinMode(PIN_MOISTURE, INPUT);
  // inisiasi DHT
  dht.setup(PIN_DHT, DHTesp::DHT22);

  // inisiasi debug lib antares
  antares.setDebug(true);
  // inisiasi wifi antares
  antares.wifiConnection(WIFISSID,PASSWORD);
}
 
void loop() {
  // LDR
  ldr = analogRead(PIN_LDR);
  // moisture
  moisture = analogRead(PIN_MOISTURE);
  // DHT
  TempAndHumidity data = dht.getTempAndHumidity();
  // ekstrak data temperature
  temp = data.temperature;
  // ekstrak data humidity
  hum = data.humidity;

  // display data ke serial monitor
  Serial.println("===================");
  Serial.print("LDR: ");
  Serial.println(ldr);
  Serial.print("Suhu: ");
  Serial.println(temp);
  Serial.print("Kelembaban: ");
  Serial.println(hum);
  Serial.print("Moisture: ");
  Serial.println(moisture);
  Serial.println("===================");
  
  // include data ke json
  antares.add("LDR", ldr);
  antares.add("Suhu", temp);
  antares.add("Kelembapan", hum);
  antares.add("Moisture", moisture);

  //Kirim data ke Antares
  antares.send(applicationName, deviceName);
  delay(20000);
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
ldr1:VCC
ldr1:GND
ldr1:DO
ldr1:AO
pot1:VCC
pot1:SIG
pot1:GND