#include <WiFi.h>
#include <HTTPClient.h>
#include "DHTesp.h"
#define ACCESSKEY "d2fdc5770f81ca30:e9f49a3afff2e8eb" // Ganti dengan access key akun Antares anda
#define WIFISSID "Wokwi-GUEST" // Ganti dengan SSID WiFi anda
#define PASSWORD "" // Ganti dengan password WiFi anda
#define applicationName "smart-test" // Ganti dengan application name Antares yang telah dibuat
#define deviceName "light-moisture-temperature" // Ganti dengan device Antares yang telah dibuat
const char* serverName = "http://platform.antares.id:8080/~/antares-cse/antares-id/smart-test/light-moisture-temperature";
// deklarasi pin-pin sensor
#define PIN_DHT 14
#define PIN_LDR A0
#define PIN_MOISTURE A3
// inisialisasi object library
DHTesp dht;
// inisialisasi variable
int moisture = 0;
int ldr = 0;
int temp =0;
int hum = 0;
void ConnectWifi(){
WiFi.mode(WIFI_STA);
WiFi.begin(WIFISSID, PASSWORD);
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("Connected to ");
Serial.println(WiFi.SSID());
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void CheckConnection(){
if (WiFi.status() != WL_CONNECTED) {
ConnectWifi();
}
}
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);
ConnectWifi();
}
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);
if(WiFi.status()== WL_CONNECTED){
WiFiClient client;
HTTPClient http;
// inisiasi komunikasi http
http.begin(client, serverName);
// inisiasi http header
http.addHeader("X-M2M-Origin", ACCESSKEY);
http.addHeader("Content-Type", "application/json;ty=4");
http.addHeader("Accept", "application/json");
// inisiasi data yang dikirim di restful api
String httpRequestData ="{\"m2m:cin\": { \"con\": \"{\\\"LDR\\\":";
httpRequestData = httpRequestData + String(ldr);
httpRequestData = httpRequestData + ",\\\"Suhu\\\":";
httpRequestData = httpRequestData + String(temp);
httpRequestData = httpRequestData + ",\\\"Kelembaban\\\":";
httpRequestData = httpRequestData + String(hum);
httpRequestData = httpRequestData + ",\\\"Moisture\\\":";
httpRequestData = httpRequestData + String(moisture);
httpRequestData = httpRequestData + "}\"}}";
// mengirimkan HTTP POST request
int httpResponseCode = http.POST(httpRequestData);
Serial.print("HTTP Response code: ");
Serial.println(httpResponseCode);
// menutup koneksi
http.end();
} else {
CheckConnection();
}
delay(20000);
}