/*
Simulasi Temperatur menggunakan ThingSpeak
-------------------- 17. Rahmawati Suri Rahayu / 19039 ------------------
*/
// memasukkan library
#include "ThingSpeak.h"
#include <WiFi.h>
#include "DHTesp.h"
// konfigurasi untuk menghubungkan antara API thingspeak dengan wokwi
const int DHT_PIN = 15; // deklarasi pin dht
const char* apikey = "2VJLELSJD6SD57J3"; // API Keys akun thingspeak
const char* ssid = "Wokwi-GUEST"; // nama hostpot
const char* pass = "";
const char* server = "api.thingspeak.com"; // mengubungkan pada server api thingspeak
unsigned long channelnumber = 1840229; // Channel ID thingspeak
// deklarasi variabel
int temperatureC;
int humidity;
DHTesp dhtSensor;
WiFiClient client;
void setup() {
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// mengatur baut rate
Serial.begin(115200);
// cetak pesan pada serial monitor
Serial.println("Hello Thingspeak");
// mengkoneksikan api thingspeak dengan hostpot
WiFi.begin(ssid,pass);
while (WiFi.status() != WL_CONNECTED) { // memastikan adanya koneksi
delay(500);
Serial.print(".");
}
Serial.println("Connected to API"); // tanda jika sudah terkoneksi
ThingSpeak.begin(client);
WiFi.mode(WIFI_STA);
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
temperatureC = data.temperature;
humidity = data.humidity;
Serial.print("Suhu : ");
Serial.println(temperatureC);
Serial.print("Kelembaban : ");
Serial.println(humidity);
delay(2000);
ThingSpeak.setField(1,temperatureC);
ThingSpeak.setField(2,humidity);
int x = ThingSpeak.writeFields(channelnumber,apikey);
// jika bukan 200 artinya mengalami error
if(x == 200){
Serial.println("Data berhasil dikirim ke Thingspeak");
} else {
Serial.println("Gagal upload data, Kode HTTP Error" + String(x));
}
}