#include "DHT.h"//library
#define DHTTYPE DHT22//type sensor,semisal pakai DHT11 Tinggal Ganti Akhirnya Nya   

//DHT= Caller For DHT ,dht=pembagi Sensor DHT.... (2=Pin,DHT22=Sensor type DHT bisa Diganti Jadi DHT11
DHT dht = DHT(2, DHT22);
DHT dht2 = DHT(3, DHT22);
DHT dht3 = DHT(4, DHT22);
DHT dht4 = DHT(5, DHT22);

//void Setup adalah Code Sekali Pakai atau Code yang Dipakai pada Saat program Dijalankan
void setup() {
  Serial.begin(9600); //Serial Begin Adalah Pemulai Serial Dari Codingan Dan Arduino

   //DHT.begin =Sebagai Start Atau Pemulai Dari Sensor DHT  ,Di Akhiran kata DHT(dht2,dst) ada Nomor yang Menjelaskan Nomor Urut Sensor DHT
  dht.begin();
  dht2.begin();
  dht3.begin();
  dht4.begin();
}
//void Loop yaitu Codingan Berulang ulang atau Codingan Yang tidak Akan berhenti Sampai Arduinonya dicabut / diberi Perintah Stop diakhiran Codingan Ini
void loop() {
  
  float a = dht.readHumidity();
  //float a(a nya bisa diganti Sesuai Selera ) berguna untuk membaca Humidity atau kelembapan
  float b = dht.readTemperature();
  //float b berguna untuk Membaca temperature Dalam celcius
  float c = dht.readTemperature(true);
  //Float c berguna Untuk Membaca Temperature Dalam Fahreinheit

   //Fungsi A sama Dengan Float D,G,J adapun Penggatian Huruf Setelah kata Float agar Sensor DHT lain Dapat Terbaca 
  float d = dht2.readHumidity();
  float e = dht2.readTemperature();
  float f = dht2.readTemperature(true);

  
  float g = dht3.readHumidity();
  float h = dht3.readTemperature();
  float i = dht3.readTemperature(true);

  
  float j = dht4.readHumidity();
  float k = dht4.readTemperature();
  float l = dht4.readTemperature(true);
  
  if (isnan(a) || isnan(b) || isnan(c)){
    Serial.println(F("Failed to read from DHT sensor!"));//codingan Ini berfungsi sebagai Notifikasi Jika Sensor Tidak Terbaca
    return;
  }
//Float dibawah ini Berfungsi Menambahkan Suhu Dan Kelembapan (Humidity Dan Temperature)  
  float hic = dht.computeHeatIndex(b, a);
  float hif = dht2.computeHeatIndex(e, d);
  float Ridho =dht3.computeHeatIndex(h,g);
  float Herdi =dht4.computeHeatIndex(k,j);

 //Codingan Dibawah Ini Berfungsi Sebagai Print atau Penulis kata Sehingga Hasil Serial Print Jauh Lebih Rapi,ada Juga Codingan Dibawah ini Yang berfungsi Sebagai pemanggil Dari float Diatas
  Serial.print("Sensor 1");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print(F("Humidity: "));
  Serial.print(a);
  Serial.print(F("%  Temperature: "));
  Serial.print(b);
  Serial.print(F("°C "));
  Serial.print(c);
  Serial.print(("°F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
//delat Berfungsi sebagai Jeda Antar Pembacaan Sensor
delay(1000);

  Serial.print("  Sensor 2");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
   Serial.print(F("Humidity: "));
  Serial.print(d);
  Serial.print(F("%  Temperature: "));
  Serial.print(e);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(("°F  Heat index: "));
  Serial.print(hif);
  Serial.print(F("°C "));

 delay(1000);

  Serial.print("   Sensor 3");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print(F("Humidity: "));
  Serial.print(g);
  Serial.print(F("%  Temperature: "));
  Serial.print(h);
  Serial.print(F("°C "));
  Serial.print(i);
  Serial.print(("°F  Heat index: "));
  Serial.print(Ridho);
  Serial.print(F("°C "));
//made by 凤溪
delay(1000);
  Serial.print("Sensor 4");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print("             ");
  Serial.print(F("Humidity: "));
  Serial.print(j);
  Serial.print(F("%  Temperature: "));
  Serial.print(k);
  Serial.print(F("°C "));
  Serial.print(l);
  Serial.print(("°F  Heat index: "));
  Serial.print(Herdi);
  Serial.print(F("°C "));

  delay(3000);
    
    

  
}