#include <DHT.h>
#include <SPI.h> // SPI is kept in case you want to add a LoRa module later
#define DHTPIN 4 // DHT22 data pin
#define DHTTYPE DHT22 // Define the DHT type
DHT dht(DHTPIN, DHTTYPE);
#define GAS_SENSOR_PIN 34 // MQ gas sensor pin
#define PIR_SENSOR_PIN 27 // PIR motion sensor pin
void setup() {
Serial.begin(115200);
// Initialize DHT sensor
dht.begin();
// Initialize GPIOs
pinMode(GAS_SENSOR_PIN, INPUT);
pinMode(PIR_SENSOR_PIN, INPUT);
Serial.println("Sensors Initialized...");
}
void loop() {
// Read temperature and humidity from DHT22
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Read gas sensor value
int gasValue = analogRead(GAS_SENSOR_PIN);
// Read PIR motion sensor state
int pirState = digitalRead(PIR_SENSOR_PIN);
String motionStatus = (pirState == HIGH) ? "Motion Detected!" : "No Motion";
// Display the sensor readings
Serial.println("----- Sensor Readings -----");
Serial.printf("Temperature: %.2f °C\n", temperature);
Serial.printf("Humidity: %.2f %%\n", humidity);
Serial.printf("Gas Sensor Value: %d\n", gasValue);
Serial.println(motionStatus);
Serial.println("---------------------------");
// Simulate LoRa transmission (Print data as if sending via LoRa)
Serial.println("Simulating LoRa Transmission...");
Serial.print("Temp: "); Serial.print(temperature); Serial.print(" °C | ");
Serial.print("Humidity: "); Serial.print(humidity); Serial.print(" % | ");
Serial.print("Gas: "); Serial.print(gasValue); Serial.print(" | ");
Serial.print(motionStatus);
Serial.println("\nData Sent (Simulation)!\n");
delay(5000); // Wait 5 seconds before next transmission
}