#include <ThingSpeak.h>
#include <WiFi.h>
const int potentiometerPin = 34;
const int ledPin = 15;
int potentiometerValue = 0;
float potentiometer_Vout = 3.3;
const char *ssid = "Wokwi-GUEST";
const char *pass = "";
WiFiClient client;
//thingspeak settings
unsigned long channel = 1913776; //your channel ID number
const char *apiKey = "27Z84VS8877FHW5V"; //your channel write API Key
//int lum, i = 0;
void setup() {
pinMode(potentiometerPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
delay(10);
//connect to WiFi
Serial.print("Connecting to: "); Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected\n");
ThingSpeak.begin(client); //initialize ThingSpeak
}
void loop() {
potentiometerValue = analogRead(potentiometerPin);
// Description: Map data from one range to another.
// Function prototype: map(value, fromLow, fromHigh, toLow, toHigh)
int dutyCycle = map(potentiometerValue, 0, 4095, 0, 254);
int x = ThingSpeak.writeField(channel, 2, dutyCycle, apiKey);
if (x == 200) {
Serial.print("Duty Cycle : "); Serial.println(dutyCycle);
Serial.println("Update to ThingSpeak Successful.");
}
else {
Serial.println("Data " + String(dutyCycle));
Serial.println("Problem updating data. HTTP error code " + String(x));
}
// changing the LED brightness with PWM
analogWrite(ledPin, dutyCycle);
delay(3);
Serial.println("Waiting...\n");
delay(10000);
}