Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino MKR WiFi 1010 Multi-Sensor Environmental Monitoring System

View and Edit Project In Cirkit DesignerImage of Arduino MKR WiFi 1010 Multi-Sensor Environmental Monitoring System

Circuit Documentation

Summary

This document provides a detailed overview of a circuit designed using an Arduino MKR WiFi 1010 microcontroller. The circuit includes various sensors such as a water level sensor, gas sensor, light sensor, steam sensor, and a DHT11 temperature and humidity sensor. Additionally, a rotary encoder is used for user input. The Arduino reads data from these sensors and outputs the readings via serial communication.

Component List

Arduino MKR WiFi 1010

Water Level Sensor

MKE-S08 MQ-2 Sensor

TEMT6000

Steam Sensor

KY-015 DHT11

Rotary Encoder

Wiring Details

Arduino MKR WiFi 1010

Water Level Sensor

MKE-S08 MQ-2 Sensor

TEMT6000

Steam Sensor

KY-015 DHT11

Rotary Encoder

Documented Code

// Pin definitions
const int waterLevelSensorPin = A0;
const int gasSensorPin = A1;
const int lightSensorPin = A2;
const int steamSensorPin = A3;
const int dht11Pin = 4;
const int rotaryEncoderDtPin = 5;
const int rotaryEncoderSwPin = 6;
const int rotaryEncoderClkPin = 7;

// Include necessary libraries
#include <DHT.h>

// DHT11 sensor setup
#define DHTTYPE DHT11
DHT dht(dht11Pin, DHTTYPE);

void setup() {
  // Initialize serial communication
  Serial.begin(9600);

  // Initialize DHT11 sensor
  dht.begin();

  // Set pin modes
  pinMode(waterLevelSensorPin, INPUT);
  pinMode(gasSensorPin, INPUT);
  pinMode(lightSensorPin, INPUT);
  pinMode(steamSensorPin, INPUT);
  pinMode(dht11Pin, INPUT);
  pinMode(rotaryEncoderDtPin, INPUT);
  pinMode(rotaryEncoderSwPin, INPUT);
  pinMode(rotaryEncoderClkPin, INPUT);
}

void loop() {
  // Read water level sensor
  int waterLevel = analogRead(waterLevelSensorPin);
  Serial.print("Water Level: ");
  Serial.println(waterLevel);

  // Read gas sensor
  int gasLevel = analogRead(gasSensorPin);
  Serial.print("Gas Level: ");
  Serial.println(gasLevel);

  // Read light sensor
  int lightLevel = analogRead(lightSensorPin);
  Serial.print("Light Level: ");
  Serial.println(lightLevel);

  // Read steam sensor
  int steamLevel = analogRead(steamSensorPin);
  Serial.print("Steam Level: ");
  Serial.println(steamLevel);

  // Read DHT11 sensor
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" *C");

  // Read rotary encoder
  int dtValue = digitalRead(rotaryEncoderDtPin);
  int swValue = digitalRead(rotaryEncoderSwPin);
  int clkValue = digitalRead(rotaryEncoderClkPin);
  Serial.print("Rotary Encoder - DT: ");
  Serial.print(dtValue);
  Serial.print(", SW: ");
  Serial.print(swValue);
  Serial.print(", CLK: ");
  Serial.println(clkValue);

  // Delay for a short period before the next loop
  delay(1000);
}