// program 2 : send data to thingspeak dumy suhu
#include <ThingSpeak.h> // Menambahkan Library ThingSpeak
#include <WiFi.h> // Menambahkan Library WiFi
const char * SSID = "Wokwi-GUEST"; // Nama WiFI
const char * PASS = ""; // Password WiFi
WiFiClient client;
int LedMerah = 2; // Lampu1 dihubungkan ke D14
int LedKuning = 4; // Lampu2 dihubungkan ke D4
unsigned long ChannelNumber = 1943388; // Nomor Channel ThingSpeak
const char * ReadAPIKey = "DY8FQ289D06EGWMB"; // Nomor Read API key
const char * WriteAPIKey = "328UN87DLG3G497Y";
const int FieldNumber1 = 1; // Nomor field 1
const int FieldNumber2 = 2; // Nomor field 2
//==========================================================================
TaskHandle_t Task1;
#define LedFlasher 23
//============ sensor suhu dht 22 ==================
float Temp,Humidity;
void setup()
{
pinMode(LedMerah, OUTPUT);
pinMode(LedKuning, OUTPUT);
Serial.begin(115200);
Serial.println();
WiFi.begin(SSID, PASS);
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
//==============================================
xTaskCreatePinnedToCore(
Task1code, /* Function to implement the task */
"Task1", /* Name of the task */
10000, /* Stack size in words */
NULL, /* Task input parameter */
0, /* Priority of the task */
&Task1, /* Task handle. */
0); /* Core where the task should run */
}
//========================================
//Task1code: blinks an LED every 1000 ms
void Task1code( void * pvParameters ){
for(;;){
digitalWrite(LedFlasher, HIGH);
delay(250);
digitalWrite(LedFlasher, LOW);
delay(250);
}
}
void loop()
{
int A = ThingSpeak.readLongField(ChannelNumber, FieldNumber1, ReadAPIKey);
int B = ThingSpeak.readLongField(ChannelNumber, FieldNumber2, ReadAPIKey);
// Menghidupkan dan mematikan lampu1
if(A == 1){
Serial.println("LedMerah Nyala");
digitalWrite(LedMerah, HIGH);
} else if(A == 0) {
Serial.println("LedMerah Mati");
digitalWrite(LedMerah, LOW);
}
// Menghidupkan dan mematikan lampu2
if(B == 1){
Serial.println("LedKuning Nyala");
digitalWrite(LedKuning, HIGH);
} else if(B == 0){
Serial.println("LedKuning Mati");
digitalWrite(LedKuning, LOW);
}
//======== thingsppeak send data =====================
Temp = 25.5;
int Status= ThingSpeak.writeField(ChannelNumber, 3, Temp, WriteAPIKey);
if (Status == 200)
{
Serial.println("Channel Update Succesful");
}
else{
Serial.println("Problem Updating Channel. HTP error " + String(Status));
}
}