Project Development
- Finishing of my Wood Products:
- Sanding my wood product
- Sanding my wood product
- Painting it.
- Covering it with plastic
- Redesigning the head of the pig[electronics box] as a 3d product instead of making it boxy
- Blender
- Pepakura
- 3D printing
Finishing of my Wood Products:







To 3d print, we used organic as our support material because it helps reduce a lot of time and infill from being wasted.

However we realized that due to temperature fluctuations at the lab, the prints were becoming ruined so we insulated it with plastic originally used for my project.

After printing the 1st design, I realized that it was smaller than what I initially planned on so I reprinted it with the head as a different part and the ears differently connecting them with hot glue gun in the end. This is an image of Sir Rico holding the pigs head.

My 2nd print that turned out pretty decent


This is the boared that I used.




Huge thank you goes to Lopen Thukten who helped me paint it so that technology meets tradition and make it aesthetically appealing.

To add a sense of my own aesthetics, i decided to do a grafitti of vinyl stickers and this is how it turned out!

Afterwards I braided the wires as a part of system integration making sure that they were hidden very well.I screwed the pcb and the relay to the head. There were braided together and then passed through the CNCed part and then taken to their respective connections underneath the pot. I also used zip ties to make sure they are grouped in the cleanest way possible.

This is the code that I generated with the help of AI-ChatGPT so the credit goes to AI
#include "DHT.h" #include#include #include #define DHTPIN 2 #define DHTTYPE DHT11 #define SOIL_PIN 3 #define PUMP_RELAY_PIN 8 // Water pump #define FAN_RELAY_PIN 10 // Fan for high temp #define TEMP_HIGH_THRESHOLD 30 // Temp above which fan turns on #define TEMP_LOW_THRESHOLD 20 // Temp below which heater turns on #define SOIL_THRESHOLD_PERCENT 30 // Below this %, water the soil #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 #define I2C_SDA 6 #define I2C_SCL 7 DHT dht(DHTPIN, DHTTYPE); TwoWire I2C_OLED = TwoWire(0); Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &I2C_OLED, OLED_RESET); void setup() { Serial.begin(115200); dht.begin(); analogReadResolution(12); pinMode(PUMP_RELAY_PIN, OUTPUT); pinMode(FAN_RELAY_PIN, OUTPUT); digitalWrite(PUMP_RELAY_PIN, HIGH); digitalWrite(FAN_RELAY_PIN, HIGH); I2C_OLED.begin(I2C_SDA, I2C_SCL, 100000); if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } display.clearDisplay(); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.println("Initializing..."); display.display(); delay(1000); } void loop() { float temp = dht.readTemperature(); float hum = dht.readHumidity(); int soilRaw = analogRead(SOIL_PIN); int soilPercent = map(soilRaw, 4095, 0, 0, 100); // === Temperature control === if (!isnan(temp)) { if (temp >= TEMP_HIGH_THRESHOLD) { digitalWrite(FAN_RELAY_PIN, LOW); } else if (temp < TEMP_LOW_THRESHOLD) { digitalWrite(FAN_RELAY_PIN, HIGH); } else { digitalWrite(FAN_RELAY_PIN, HIGH); } } // === Soil Moisture control === if (soilPercent < SOIL_THRESHOLD_PERCENT) { digitalWrite(PUMP_RELAY_PIN, LOW); } else { digitalWrite(PUMP_RELAY_PIN, HIGH); } // === OLED Display === display.clearDisplay(); display.setCursor(0, 0); if (isnan(temp) || isnan(hum)) { display.println("DHT Error!"); } else { display.print("Temp: "); display.print(temp); display.println(" C"); display.print("Hum : "); display.print(hum); display.println(" %"); display.print("Fan : "); display.println(temp >= TEMP_HIGH_THRESHOLD ? "ON" : "OFF"); display.print("Heat: "); display.println(temp < TEMP_LOW_THRESHOLD ? "ON" : "OFF"); } display.print("Soil: "); display.print(soilPercent); display.println(" %"); display.print("Pump: "); display.println(soilPercent < SOIL_THRESHOLD_PERCENT ? "ON" : "OFF"); display.display(); // === Serial Monitor Output === Serial.print("Temp: "); Serial.print(temp); Serial.print(" C, "); Serial.print("Humidity: "); Serial.print(hum); Serial.print(" %, "); Serial.print("Soil: "); Serial.print(soilPercent); Serial.println(" %"); delay(2000); }
HEROSHOT

This is a video that showcases the 1st function of my project which is automatic irrigation as water pump is activated when soil moisture is below a certain threshold. I supplied heat to the dht11 using my hands.
This is the command i used to compress this video: ffmpeg -i function1.mp4 -vcodec libx264 -crf 28 -an function1_compressed.mp4
This video demonstrates the second function of my project: automatic temperature regulation and improved air ventilation. The DC fan activates when the temperature exceeds a predefined threshold.
This is the command i used to compress this video: ffmpeg -i function2.mp4 -vcodec libx264 -crf 28 -an function2_compressed.mp4

A very healthy and happy pepper plant in it.

Files
You can access the files here
Boards that i used-power and my main MCU
All of the designs for my final project
Video and Poster
You can access the files here
Slide
Video
Link to the weeks that I worked on my final project previously.
You can explore my progress throughout the Fab Academy on my Assignments page. I worked on my final project from the very beginning, taking small but consistent steps. After the midterm, I significantly accelerated my progress. You can view each assignment individually, or see the full development journey on my Final Project Development Tracking page.License
The liscensing that I chose is CC-BY-NC-SA which is short for Creative Commons Attribution-NonCommercial-ShareAlike that allows others to use my work, remix it, and build upon it, but only for non-commercial purposes. They must also give me credit and share any new creations under the same CC BY-NC-SA license. You can learn more about it here