#include <WiFi.h>
#include "ThingSpeak.h"
const int PM25_PIN = 3; // Analog pin for CO2 sensor
const int PM10_PIN = 4; // Analog pin for NO2 sensor
const int O3_PIN = 5; // Analog pin for CO sensor
const int NO2_PIN = 6; // Analog pin for NO sensor
const int NH3_PIN = 7; // Analog pin for NH3 sensor
const int SO2_PIN = 8; // Analog pin for SO2 sensor
const char* WIFI_NAME = "Wokwi-GUEST"; // WiFi SSID
const char* WIFI_PASSWORD = ""; // WiFi Password
WiFiClient client;
void connectWiFi() {
Serial.println("Connecting to WiFi...");
WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("WiFi not connected");
}
Serial.println("WiFi connected!");
Serial.println("Local IP: " + WiFi.localIP().toString());
}
void sendDataToThingSpeak(int channelNumber, const char* apiKey) {
ThingSpeak.begin(client);
int pm25Value = analogRead(PM25_PIN);
int pm10Value = analogRead(PM10_PIN);
int o3Value = analogRead(O3_PIN);
int no2Value = analogRead(NO2_PIN);
int nh3Value = analogRead(NH3_PIN);
int so2Value = analogRead(SO2_PIN);
int pm25MappedValue = map(pm25Value, 0, 4095, 0, 50);
int pm10MappedValue = map(pm10Value, 0, 4095, 0, 50);
int o3MappedValue = map(o3Value, 0, 4095, 0, 100);
int no2MappedValue = map(no2Value, 0, 4095, 0, 250);
int nh3MappedValue = map(nh3Value, 0, 4095, 0, 250);
int so2MappedValue = map(so2Value, 0, 4095, 0, 500);
Serial.println("PM2.5 Value: " + String(pm25MappedValue));
Serial.println("PM10 Value: " + String(pm10MappedValue));
Serial.println("O3 Value: " + String(o3MappedValue));
Serial.println("NO2 Value: " + String(no2MappedValue));
Serial.println("NH3 Value: " + String(nh3MappedValue));
Serial.println("SO2 Value: " + String(so2MappedValue));
ThingSpeak.setField(1, pm25MappedValue);
ThingSpeak.setField(2, pm10MappedValue);
ThingSpeak.setField(3, o3MappedValue);
ThingSpeak.setField(4, no2MappedValue);
ThingSpeak.setField(5, nh3MappedValue);
ThingSpeak.setField(6, so2MappedValue);
int status = ThingSpeak.writeFields(channelNumber, apiKey);
if (status == 200) {
Serial.println("Data pushed successfully");
} else {
Serial.println("Push error " + String(status));
}
Serial.println("---");
}
void setup() {
Serial.begin(115200);
connectWiFi();
}
void loop() {
sendDataToThingSpeak(2497529, "K13FZD4HGV6CYFHC"); // Pass channel number and API key as arguments
delay(10000);
}
// #include <WiFi.h>
// #include "ThingSpeak.h"
// const char* WIFI_NAME = "Wokwi-GUEST"; // WiFi SSID
// const char* WIFI_PASSWORD = ""; // WiFi Password
// const int myChannelNumber = 2497529; // ThingSpeak channel number
// const char* myApiKey = "K13FZD4HGV6CYFHC"; // ThingSpeak API key
// WiFiClient client;
// void connectWiFi() {
// Serial.println("Connecting to WiFi...");
// WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
// while (WiFi.status() != WL_CONNECTED) {
// delay(1000);
// Serial.println("WiFi not connected");
// }
// Serial.println("WiFi connected!");
// Serial.println("Local IP: " + WiFi.localIP().toString());
// }
// void sendDataToThingSpeak(int channelNumber, const char* apiKey) {
// ThingSpeak.begin(client);
// int pm25MappedValue = random(0, 101);
// int pm10MappedValue = random(0, 101);
// int o3MappedValue = random(0, 201);
// int no2MappedValue = random(0, 501);
// int nh3MappedValue = random(0, 501);
// int so2MappedValue = random(0, 1001);
// Serial.println("PM2.5 Value: " + String(pm25MappedValue));
// Serial.println("PM10 Value: " + String(pm10MappedValue));
// Serial.println("O3 Value: " + String(o3MappedValue));
// Serial.println("NO2 Value: " + String(no2MappedValue));
// Serial.println("NH3 Value: " + String(nh3MappedValue));
// Serial.println("SO2 Value: " + String(so2MappedValue));
// ThingSpeak.setField(1, pm25MappedValue);
// ThingSpeak.setField(2, pm10MappedValue);
// ThingSpeak.setField(3, o3MappedValue);
// ThingSpeak.setField(4, no2MappedValue);
// ThingSpeak.setField(5, nh3MappedValue);
// ThingSpeak.setField(6, so2MappedValue);
// int status = ThingSpeak.writeFields(channelNumber, apiKey);
// if (status == 200) {
// Serial.println("Data pushed successfully");
// } else {
// Serial.println("Push error " + String(status));
// }
// Serial.println("---");
// }
// void setup() {
// Serial.begin(115200);
// connectWiFi();
// }
// void loop() {
// sendDataToThingSpeak(myChannelNumber, myApiKey);
// delay(15000); // Wait 10 seconds before pushing next set of data
// }