File size: 2,170 Bytes
977db45 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #NODE mcu code
#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
#include <DHT.h>
const char* ssid = "PU_HACKATHON";
const char* password = "Parul%2025";
unsigned long myChannelNumber = 2800421;
const char* myWriteAPIKey = "NDCWC397CZJLULAB";
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define WATER_SENSOR_PIN 5
#define N_PIN A0
#define SOIL_MOISTURE_PIN A0
WiFiClient client;
void setup() {
Serial.begin(115200);
delay(100);
pinMode(N_PIN, INPUT);
dht.begin();
Serial.print("Connecting to Wi-Fi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nConnected to Wi-Fi!");
ThingSpeak.begin(client);
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int waterLevelRaw = analogRead(WATER_SENSOR_PIN);
float waterLevel = map(waterLevelRaw, 0, 1023, 0, 100);
int nValue = analogRead(N_PIN);
float nVoltage = (nValue / 1023.0) * 3.3 * 10;
int soilMoistureRaw = analogRead(SOIL_MOISTURE_PIN);
float soilMoisture = map(soilMoistureRaw, 0, 1023, 100, 0);
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C | Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Serial.print("Water Level: ");
Serial.println(waterLevel);
Serial.print("NPK Sensor Data: ");
Serial.println(nVoltage);
Serial.print("Soil Moisture: ");
Serial.println(soilMoisture);
ThingSpeak.setField(1, temperature);
ThingSpeak.setField(2, humidity);
ThingSpeak.setField(3, waterLevel);
ThingSpeak.setField(4, nVoltage);
ThingSpeak.setField(5, soilMoisture);
int statusCode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (statusCode == 200) {
Serial.println("Data uploaded to ThingSpeak successfully!");
} else {
Serial.println("Failed to upload data. Error code: " + String(statusCode));
}
delay(20000);
}
|