cover photo

COURSEWORK

Pratham's IOT-001 course work. Lv 1

Pratham ChouguleAUTHORACTIVE
work cover photo
This Report is yet to be approved by a Coordinator.

15 / 3 / 2026


TASK 1: 3D Printing

Objective

To understand the basic working of a 3D printer and the process of preparing a model for printing.

Introduction

3D printing is a process of creating objects layer by layer using materials like PLA filament.

STL File

STL (Stereolithography) is a file format used for 3D models in printing. It contains the shape of the object.

Slicing

The STL file is converted into G-code using slicing software like Ultimaker Cura or Creality Slicer. The G-code gives instructions to the printer.

Printer Settings

  • Bed Temperature: ~50–60°C for PLA
  • Nozzle Temperature: ~190–220°C
  • Infill Density: Controls the strength of the print.

Conclusion

Learned about STL files, slicing, and basic 3D printer settings, and prepared a model for printing under coordinator supervision.

TASK 2: API – Weather App

Introduction

An API (Application Programming Interface) allows different applications to communicate and share data with each other over the internet.

Working of an API

  1. The user makes a request in the app.
  2. The app sends the request to the API server.
  3. The API processes the request and sends data back (usually in JSON format).
  4. The app displays the information to the user.

Application Used

For this task, a Weather App was created using the OpenWeather API.

Tools Used

  • HTML
  • CSS
  • JavaScript
  • OpenWeather API

Result

The app allows the user to enter a city name and it displays the current weather information such as temperature and weather condition.

Conclusion

This task helped to understand how APIs work and how real-time data can be fetched and displayed in a web application.

Diagram

image

Github repository

https://github.com/PrathamC0732/API-Weather-app.git

TASK 3: Working with GitHub

Objective

To learn GitHub workflows including GitHub Actions, Issues, and Pull Requests.

Steps Performed

1. Fork Repository

Forked the given repository to my GitHub account.

2. Clone Repository

Cloned the repository to my local system.

3. Create Issue

Created a new issue in the Issues tab to report or discuss a task.

4. Make Changes

Edited the required file as mentioned in the README.

5. Push Changes

Pushed the changes to the GitHub repository.

6. Create Pull Request

Opened a Pull Request to submit the changes for review.

7. GitHub Actions

Observed the workflow in:

GitHub Actions automatically runs workflows for tasks like testing and building the project.

Conclusion

This task helped understand the GitHub workflow including Issues, Pull Requests, and GitHub Actions used for collaborative software development.

Image

git.img

Code

https://github.com/PrathamC0732/git-task.git

Task 4: Build Your Own Brain – Linear Regression from Scratch

Objective

The goal of this task is to understand Linear Regression by implementing it from scratch using Python and comparing it with the scikit-learn implementation.

Dataset

The California Housing dataset was used to train and test the model.

Method

Linear Regression was implemented manually using Gradient Descent to minimize prediction error. Then the same dataset was trained using sklearn.linear_model.LinearRegression.

Evaluation

Both models were evaluated using:

  • MSE (Mean Squared Error)
  • MAE (Mean Absolute Error)
  • R² Score

A graph was also plotted showing the data points and the line of best fit.

Result

The custom model worked correctly but the scikit-learn model performed slightly better because it uses optimized algorithms.

Conclusion

This task helped in understanding how Linear Regression and Gradient Descent work internally in machine learning.

Image

linear.img

Task 5: The Matrix Puzzle — Decode with NumPy & Reveal the Image

Objective

To decode a scrambled matrix and reveal a hidden image using NumPy and visualize it with Matplotlib.

Tools Used

Python, NumPy, Matplotlib

Procedure

Loaded the scrambled matrix, applied NumPy operations like reshaping and rearranging the values, and then displayed the matrix as an image using Matplotlib.

Result

The scrambled data was successfully decoded and the hidden image was revealed.

Conclusion

This task helped in learning matrix manipulation using NumPy and visualizing data as images using Matplotlib.

Image

matrix.img

Task 6: Portfolio Webpage

Objective

To create a responsive personal portfolio website that showcases personal details, interests, projects, and social media profiles, and upload it to a Git repository.

Technologies Used

  • HTML
  • CSS3
  • JavaScript (optional)
  • Git & GitHub
  • One compiler

Implementation Steps

  1. Created the basic structure using HTML.
  2. Styled the webpage using CSS or a framework.
  3. Added sections like About, Projects, and Contact.
  4. Tested the website on different screen sizes.
  5. Uploaded the project to GitHub using Git.

Result

A responsive portfolio website was successfully created and pushed to a GitHub repository.

Conclusion

This task helped in understanding web design, responsive layouts, and version control using Git and GitHub.

Image

portfolio.img

Github repository

https://github.com/PrathamC0732/Pratham_portfolio.git

Task 7:Tinkercad Radar System Using Ultrasonic Sensor

Aim

To simulate a circuit in Tinkercad using an ultrasonic sensor to measure distance and display it on the Serial Monitor, and create a simple radar system using a servo motor.

Introduction

Tinkercad is an online tool used to design and simulate electronic circuits.
An ultrasonic sensor measures distance by sending sound waves and receiving the echo.
A servo motor rotates to specific angles.
In this project, the servo rotates the sensor to scan an area like a simple radar system.

Components

  • Arduino Uno
  • Ultrasonic Sensor (HC-SR04)
  • Servo Motor
  • Breadboard
  • Jumper Wires

Procedure

  1. Open Tinkercad and create a new circuit.
  2. Add Arduino Uno, ultrasonic sensor, and servo motor.
  3. Connect VCC to 5V and GND to GND.
  4. Connect TRIG to pin 9 and ECHO to pin 10.
  5. Connect servo signal to pin 6.
  6. Write the Arduino code and start simulation.
  7. Check the distance values on the Serial Monitor while the servo rotates.

Image

ard_utr_img

Arduino Code

https://github.com/PrathamC0732/-Arduino-code-for-ultrasonic-senser.git

TASK 8: Speed Control of DC Motor using Arduino and L298N

Aim

To control the speed of a 5V BO DC motor using an Arduino UNO and L298N motor driver using PWM technique.

Components Required

  • Arduino UNO
  • L298N Motor Driver Module
  • 5V BO DC Motor
  • Jumper Wires
  • Power Supply / Battery
  • Breadboard (optional)

Theory

DC motor speed can be controlled by varying the voltage supplied to the motor. In Arduino, this is commonly done using PWM (Pulse Width Modulation). PWM changes the duty cycle of the signal, which effectively changes the average voltage supplied to the motor.

The L298N Motor Driver is used to control the motor because Arduino cannot directly supply enough current to drive a motor. The driver acts as an interface between the Arduino and the motor.

Circuit Connections

  • ENA → Arduino Pin 9 (PWM)
  • IN1 → Arduino Pin 8
  • IN2 → Arduino Pin 7
  • Motor terminals → OUT1 and OUT2 of L298N
  • GND → Arduino GND
  • VCC → 5V Power Supply

Image

DC_motrimg

Arduino Code

https://github.com/PrathamC0732/DC-Motor-arduino-Code.git

TASK 9: LED Toggle Using ESP32

Objective

To learn the working of the ESP32 microcontroller and create a standalone web server that can control an LED connected to the ESP32 GPIOs using the Arduino IDE.

Components

  • ESP32 Dev Board
  • LED
  • Resistor (220Ω)
  • Breadboard & Jumper Wires

Steps

1. Setup Arduino IDE for ESP32

  1. Install Arduino IDE (latest version)

  2. Open Arduino IDE
    → Go to File > Preferences

  3. Find Additional Board Manager URLs”

  4. Go to Tools > Board > Boards Manager

  5. Search ESP32
    → Click Install

  6. After installing
    → Go to Tools > Board
    → Select ESP32 Dev Module

2. Circuit Connection

  • Connect the LED anode (+) to GPIO 2 (example pin) through a 220Ω resistor.
  • Connect the LED cathode (–) to GND.

Image

LED_TGL.img

Arduino Code for LED Toggle

https://github.com/PrathamC0732/LED-Toggle-ardunio-code.git

TASK 10: Soldering Prerequisites

Objective

To learn the basic soldering tools and perform simple soldering on a perf board.

Equipment Used

  • Soldering Iron
  • Solder Wire
  • Soldering Wick
  • Perf Board
  • LED and wire

Procedure

  1. Observed and learned the use of soldering equipment in the lab.
  2. Heated the soldering iron.
  3. Placed the LED circuit components on the perf board.
  4. Used solder wire and soldering iron to join the components.
  5. Removed excess solder using a soldering wick.

Result

Successfully soldered a simple LED circuit on a perf board under the supervision of a coordinator.

Image

soldering_img.

TASK 11: 555 Astable Multivibrator (60% Duty Cycle)

Objective

To design a 555 astable multivibrator with 60% duty cycle, build the circuit on a breadboard, and observe the output using a DSO.

Components

  • NE555 Timer IC
  • Resistors (R1, R2)
  • Capacitor (C)
  • Breadboard
  • Power supply
  • Connecting wires
  • Digital Storage Oscilloscope (DSO)

Procedure

  1. Place the 555 IC on the breadboard.
  2. Connect R1, R2 and capacitor in astable configuration.
  3. Connect pin 8 to VCC and pin 1 to GND.
  4. Join pin 2 and pin 6 together.
  5. Take output from pin 3.
  6. Connect DSO probe to pin 3 to observe the waveform.

Observation

A continuous square wave was observed on the DSO with approximately 60% duty cycle.

Result

The 555 astable multivibrator circuit was successfully built and its output waveform was observed using the DSO.

Image

555.img

TASK 12: Karnaugh Maps and Logic Circuit – Burglar Alarm

Objective

Design a simple burglar alarm using logic gates and Karnaugh Map. The alarm should turn ON when the door is opened without pressing the key button.

Inputs and Output

  • D – Door (0 = Closed, 1 = Open)
  • K – Key (0 = Not Pressed, 1 = Pressed)
  • A – Alarm (LED/Buzzer)
DKA
000
010
101
110

Karnaugh Map

D\K01
000
110

Simplified Boolean Expression:

A = D · K'

Circuit

Use:

  • NOT gate for Key
  • AND gate for Door and NOT Key

When the door opens and the key is not pressed, the LED/Buzzer turns ON.

Conclusion

Karnaugh Map helps simplify the logic. The burglar alarm works using the expression A = D · K'.

Images

K-MAP (0 0)

K-MAP.img

K-MAP (0 1)

K-MAP.img

K-MAP (1 0)

K-MAP.img

K-MAP (1 1)

K-MAP.img

TASK 13: Datasheet Report

Topic: L293D Motor Driver IC

Introduction

The L293D is a motor driver IC used to control DC motors using microcontrollers. It allows control of motor direction and speed because microcontrollers cannot directly drive motors.

IC Description

L293D is a 16-pin dual H-bridge IC that can control two DC motors.

  • Motor voltage: 4.5V – 36V
  • Output current: 600 mA per channel
  • It contains internal protection diodes to prevent damage from back EMF.

H-Bridge

The IC works using the H-bridge circuit, which allows the motor to rotate in forward and reverse directions by changing the input signals.

PWM

PWM (Pulse Width Modulation) is used to control motor speed. By changing the duty cycle of the signal applied to the enable pin, the motor speed can be increased or decreased.

Conclusion

L293D is commonly used in robotics and motor control circuits to control the direction and speed of DC motors using H-bridge and PWM techniques.

UVCE,
K. R Circle,
Bengaluru 01