Simple Urban Farming Project

Introduction: Simple Urban Farming Project

For sustainable communities we need to be equipped ourselves with right tools & equipment to adapt with the changes.

Here's a simple project if you are thinking about setting up a small to wide scale Urban farming to monitor your plant's condition even on your busy schedules.

This device is expandable to use Internet to post data to the Cloud & send notification to your phone the condition of your farm, so you don't need to bother to monitor every now & then.

This project can monitor the following: - Temperature - Water Level - Light - Push notification to your Smart Phones (expandable to additional features)

Watch the Video here

Step 1: Make Your Own Casing

Below is the raw file sets of code that you can refer, there are many ways of doing this. I posted here my sample so that you can start from here to modify. Goodluck! Let me know if you have questions :)

int ledNorm = 8; // if temperature sensor is Normal
int ledPhoto = 9; // if it's Dark it will light up int led = 10; // reserve LED for additional feature int ledDanger = 13; // if temperature sensor reach 30C

const int photoPin = A2; // photo sensor is connected A1 analog int SensorValue = 0;

// include the library code: #include

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// named constant for the pin the Temperature sensor is connected to const int sensorPin = A0; // room temperature in Celcius const float baselineTemp = 20.0;

void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // initialize the serial communications: Serial.begin(9600); pinMode(ledNorm, OUTPUT); pinMode(ledPhoto, OUTPUT); pinMode(led, OUTPUT); pinMode(photoPin,INPUT); pinMode(ledDanger, OUTPUT); } // this code is for PHOTO SENSOR void photoLight()

{ Serial.println(SensorValue); SensorValue = analogRead(photoPin); delay(5); if (SensorValue == 0 ) { digitalWrite(ledPhoto, HIGH); } else { digitalWrite(ledPhoto, LOW); } }

void loop() { // this code is for TEMPERATURE SENSOR int sensorVal = analogRead(sensorPin); float voltage = (sensorVal / 1024.0) * 5.0; float temperature = (voltage - 0.5) * 100;

lcd.setCursor(0,0); lcd.print("Degree C = "); lcd.print(temperature); delay(1000); if (temperature > 30 ) // if temperature sensor reach 30C { digitalWrite(ledNorm, LOW); digitalWrite(ledDanger, HIGH); } else { digitalWrite(ledNorm, HIGH); digitalWrite(ledDanger, LOW); } photoLight(); }

Be the First to Share


    • Anything Goes Contest

      Anything Goes Contest


    DIY Hacks and How Tos

    Hello there! We're glad you want to share something with the
    Instructables community! And we’re here to help you out. Due to some recent
    changes on the site, we are no longer able to publish stand-alone videos and
    other forms of incomplete posts. In order to be published live on the site,
    Instructables must consist of the following things:

    - Multiple steps
    showing how you made your project

    - Written
    instructions in each step

    - Your own original

    Beyond making your Instructable simply publishable, this
    guide (
    explains what is required to have your Instructables featured by our site
    editors. It’s very helpful, and definitely worth checking out. We would love to
    review your project again after you have made the necessary edits, and we will
    publish your project if it is eligible. If you have any questions, please feel
    free to ask right here or send us an email at


    Community Manager