`#include <dummy.h>
#include <ThingSpeak.h>
#include <HTTPClient.h>
#include <WiFi.h>
#include <WiFiClient.h>
// WiFi Settings
const char* ssid = "Your WiFi SSID";
const char* password = "Your WiFi Password";
// ThingSpeak Settings
unsigned long myChannelNumber1 = 123456;
const char* myReadAPIKey1 = "Your Read API Key for Channel 1";
unsigned long myChannelNumber2 = 123457;
const char* myReadAPIKey2 = "Your Read API Key for Channel 2";
unsigned long myChannelNumber3 = 123458;
const char* myReadAPIKey3 = "Your Read API Key for Channel 3";
unsigned long myChannelNumber4 = 123459;
const char* myReadAPIKey4 = "Your Read API Key for Channel 4";
unsigned long myChannelNumber5 = 123460;
const char* myWriteAPIKey5 = "Your Write API Key for Channel 5";
// Moisture Threshold Settings
int lowerThreshold1 = 500; // Lower threshold for Field 1
int lowerThreshold2 = 450; // Lower threshold for Field 2
int lowerThreshold3 = 400; // Lower threshold for Field 3
int lowerThreshold4 = 350; // Lower threshold for Field 4
int upperThreshold = 600; // Upper threshold for all fields
// Solenoid Valve Settings
int solenoidValve1 = 33; // Solenoid valve pin for Field 1
int solenoidValve2 = 22; // Solenoid valve pin for Field 2
int solenoidValve3 = 21; // Solenoid valve pin for Field 3
int solenoidValve4 = 37; // Solenoid valve pin for Field 4
// Pump Settings
int pumpPin = 39; // Pump pin
// Variables
int moisture1, moisture2, moisture3, moisture4;
void setup() {
Serial.begin(115200);
pinMode(solenoidValve1, OUTPUT);
pinMode(solenoidValve2, OUTPUT);
pinMode(solenoidValve3, OUTPUT);
pinMode(solenoidValve4, OUTPUT);
pinMode(pumpPin, OUTPUT);
digitalWrite(pumpPin, LOW);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..."
ThingSpeak.begin(WiFiclient);
void loop()
if (WiFi.status() == WL_CONNECTED) {
moisture1 = ThingSpeak.readLongField(myChannelNumber1, 1, myReadAPIKey1);
moisture2 = ThingSpeak.readLongField(myChannelNumber2, 1, myReadAPIKey2);
moisture3 = ThingSpeak.readLongField(myChannelNumber3, 1, myReadAPIKey3);
moisture4 = ThingSpeak.readLongField(myChannelNumber4, 1, myReadAPIKey4);
if (moisture1 < lowerThreshold1 && moisture1 < upperThreshold) {
digitalWrite(solenoidValve1, HIGH);
digitalWrite(pumpPin, HIGH);
}
if (moisture2 < lowerThreshold2 && moisture2 < upperThreshold) {
digitalWrite(solenoidValve2, HIGH);
digitalWrite(pumpPin, HIGH);
}
if (moisture3 < lowerThreshold3 && moisture3 < upperThreshold) {
digitalWrite(solenoidValve3, HIGH);
digitalWrite(pumpPin, HIGH);
}
if (moisture4 < lowerThreshold4 && moisture4 < upperThreshold) {
digitalWrite(solenoidValve4, HIGH);
digitalWrite(pumpPin, HIGH);
}
delay(10000); // Delay for 10 seconds
digitalWrite(solenoidValve1, LOW);
digitalWrite(solenoidValve2, LOW);
digitalWrite(solenoidValve3, LOW);
digitalWrite(solenoidValve4, LOW);
digitalWrite(pumpPin, LOW);
}
delay(30000); // Delay for 30 seconds before reading again {
} `#include <Arduino.h>
#include <HTTPClient.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <dummy.h>
#include <ThingSpeak.h>
WiFiClient client;
// WiFi Settings
const char* ssid = "Your WiFi SSID";
const char* password = "Your WiFi Password";
// ThingSpeak Settings
unsigned long myChannelNumber1 = 123456;
const char* myReadAPIKey1 = "Your Read API Key for Channel 1";
unsigned long myChannelNumber2 = 123457;
const char* myReadAPIKey2 = "Your Read API Key for Channel 2";
unsigned long myChannelNumber3 = 123458;
const char* myReadAPIKey3 = "Your Read API Key for Channel 3";
unsigned long myChannelNumber4 = 123459;
const char* myReadAPIKey4 = "Your Read API Key for Channel 4";
unsigned long myChannelNumber5 = 123460;
const char* myWriteAPIKey5 = "Your Write API Key for Channel 5";
// Moisture Threshold Settings
int lowerThreshold1 = 500; // Lower threshold for Field 1
int lowerThreshold2 = 450; // Lower threshold for Field 2
int lowerThreshold3 = 400; // Lower threshold for Field 3
int lowerThreshold4 = 350; // Lower threshold for Field 4
int upperThreshold = 600; // Upper threshold for all fields
// Solenoid Valve Settings
int solenoidValve1 = 33; // Solenoid valve pin for Field 1
int solenoidValve2 = 22; // Solenoid valve pin for Field 2
int solenoidValve3 = 21; // Solenoid valve pin for Field 3
int solenoidValve4 = 37; // Solenoid valve pin for Field 4
// Pump Settings
int pumpPin = 37; // Pump pin
// Variables
int moisture1, moisture2, moisture3, moisture4;
void setup() {
Serial.begin(115200);
pinMode(solenoidValve1, OUTPUT);
pinMode(solenoidValve2, OUTPUT);
pinMode(solenoidValve3, OUTPUT);
pinMode(solenoidValve4, OUTPUT);
pinMode(pumpPin, OUTPUT);
digitalWrite(pumpPin, LOW);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
WiFiClient client;
ThingSpeak.begin(WiFiclient);
void loop()
if (WiFi.status() == WL_CONNECTED) {
moisture1 = ThingSpeak.readLongField(myChannelNumber1, 1, myReadAPIKey1);
moisture2 = ThingSpeak.readLongField(myChannelNumber2, 1, myReadAPIKey2);
moisture3 = ThingSpeak.readLongField(myChannelNumber3, 1, myReadAPIKey3);
moisture4 = ThingSpeak.readLongField(myChannelNumber4, 1, myReadAPIKey4);
if (moisture1 < lowerThreshold1 && moisture1 < upperThreshold) {
digitalWrite(solenoidValve1, HIGH);
digitalWrite(pumpPin, HIGH);
}
if (moisture2 < lowerThreshold2 && moisture2 < upperThreshold) {
digitalWrite(solenoidValve2, HIGH);
digitalWrite(pumpPin, HIGH);
}
if (moisture3 < lowerThreshold3 && moisture3 < upperThreshold) {
digitalWrite(solenoidValve3, HIGH);
digitalWrite(pumpPin, HIGH);
}
if (moisture4 < lowerThreshold4 && moisture4 < upperThreshold) {
digitalWrite(solenoidValve4, HIGH);
digitalWrite(pumpPin, HIGH);
}
delay(10000); // Delay for 10 seconds
digitalWrite(solenoidValve1, LOW);
digitalWrite(solenoidValve2, LOW);
digitalWrite(solenoidValve3, LOW);
digitalWrite(solenoidValve4, LOW);
digitalWrite(pumpPin, LOW);
}
delay(30000); // Delay for 30 seconds before reading again {
}