Automated Mini-Greenhouse & Climate Controller — Arduino Uno simulation

An interactive Arduino Uno circuit simulation you can run free in your browser on Velxio, by edbertfederico123100.

Components

Sketch code

#include <Servo.h>
#include <LiquidCrystal.h>
#include <Adafruit_NeoPixel.h>
Servo myservo;  // create servo object to control a servo
const int sensorPin = A0;
int ledPin = 2;
const int ldrSensor = A1;
int servoPin =13;
// variable to store sensor value
int sensorvalue=0;
int relaypin =3;
const int rs = 12, en = 11, d4 = 7, d5 = 6, d6 = 5, d7 = 4;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int NUM_LEDS = 16;
Adafruit_NeoPixel ring(NUM_LEDS, ledPin, NEO_GRB + NEO_KHZ800);
void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  pinMode(sensorPin, INPUT);
  pinMode(relaypin, OUTPUT);
  myservo.attach(servoPin);
  lcd.begin(16, 2);
  ring.begin();
  ring.show();
  Adafruit_NeoPixel ring(NUM_LEDS, ledPin, NEO_GRB + NEO_KHZ800);
}

void loop() {
  int ldrValue=analogRead(ldrSensor);
  float luxValue = map(ldrValue, 10, 57, 0, 1000);
  sensorvalue = analogRead(sensorPin);
  Serial.print("Soil Moisture Level: ");
  Serial.println(sensorvalue);
  lcd.setCursor(0, 0);
  lcd.print("S.Moisture: ");
  lcd.print(sensorvalue);
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  lcd.print("Light: ");
  lcd.print(luxValue);
  if(sensorvalue>400)
  {
    digitalWrite(ledPin, HIGH);
  }
  else
  {
    digitalWrite(ledPin, LOW);
  }
  if(luxValue<500)
  {
    myservo.write(180);
    for (int i = 0; i < NUM_LEDS; i++)
    {
      ring.setPixelColor(i, ring.Color(255, 0, 0)); // Format warna: (Red, Green, Blue) maksimal 255
    }
    ring.show();
  }
  else
  {
    myservo.write(90);
    ring.clear();
    ring.show();
  }
  Serial.println(ldrValue);
  digitalWrite(relaypin, HIGH);
  delay(1000);
}

More projects by edbertfederico123100