// MONITORING SENSOR DS18B20 THINKSPEAK
#include <OneWire.h> // library
#include <DallasTemperature.h>
#include <WiFi.h>
#include "ThingSpeak.h"
#define oneWire_PIN 23 // pin arduino
const char* ssid = "Wokwi-GUEST";
const char* password = "";
float tempSensor;
unsigned long channelID = 2099885;
const char* WriteAPIKey ="4O14Y60KRZ9ANKEV";
int intervalSensor = 2000;
long prevMillisThingSpeak = 0;
int IntervalThingSpeak = 15000;
int erro;
OneWire oneWire(oneWire_PIN); // agar wire yg di inlude agar dapat berfungsi
DallasTemperature sensors(&oneWire); // penamaan sensor Ds18b20 dengan nama sensors
WiFiClient client;
int keyIndex = 0; // your network key Index number (needed only for WEP)
int number = 0;
void setup() {
Serial.begin(115200); // Initialize serial
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client); // Initialize ThingSpeak
// dht.begin();
sensors.begin(); // agar sensor berfungsi
}
void loop() {
// Connect or reconnect to WiFi
if(WiFi.status() != WL_CONNECTED){
Serial.print("conectando WIFI");
WiFi.begin(ssid,password);
while(WiFi.status() != WL_CONNECTED){
// Connect to WPA/WPA2 network. Change this line if using open or WEP network
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
sensors.requestTemperatures(); // sensornya agar dapat membaca temperatur
tempSensor = sensors.getTempCByIndex(0);
Serial.print(tempSensor); Serial.println(" *C");
if (millis() - prevMillisThingSpeak > IntervalThingSpeak)
{
ThingSpeak.setField(1,tempSensor);
erro = ThingSpeak.writeFields(channelID,WriteAPIKey);
Serial.println("Temperature update successful.");
}
// Write to ThingSpeak. There are up to 8 fields in a channel, allowing you to store up to 8 different
// pieces of information in a channel. Here, we write to field 1.
if(erro == 200){
Serial.println("Temperature update successful.");
}
else{
Serial.println("Problem updating channel." + String(erro));
}
delay(5000); // Wait 20 seconds to update the channel again
}