Embedded Systems — Internship Tasks

Objective, Features, Technologies and tasks to learn Embedded Systems fundamentals and practical skills.

Objective

Learn the fundamentals of embedded systems design through hands-on tasks: microcontroller programming, interfacing sensors and actuators, real-time control, and simple IoT connectivity. By the end of these tasks interns will be able to design, implement, and test small embedded projects and document results.


Features

  • Hands-on microcontroller programming (Arduino / STM32 / ESP32)
  • Sensor & actuator interfacing (GPIO, ADC, PWM, I2C, SPI, UART)
  • Basic real-time behavior using timers and interrupts
  • Simple data logging and visualization (serial / web)
  • Optional wireless connectivity (Wi‑Fi / Bluetooth) for IoT workflows

Technologies

C / C++ Arduino IDE / PlatformIO ESP32 / STM32 / AVR I2C, SPI, UART

Tasks (4)

Goal

Read temperature from a sensor and display current value on a 16x2 LCD. Log readings over serial.

Requirements
  • Hardware: Arduino UNO, LM35/DS18B20, 16x2 I2C LCD, breadboard, wires
  • Software: Arduino IDE, LiquidCrystal_I2C (or equivalent)
Deliverables
  1. Working circuit & Arduino sketch.
  2. Short video (30–60s) showing live reading on LCD.
  3. One-page README with wiring diagram and explanation.

Goal

Control DC motor speed using PWM and stop when an ultrasonic sensor detects an obstacle.

Requirements
  • Hardware: Arduino/ESP32, L293D or motor driver, DC motor, HC-SR04 ultrasonic sensor
  • Software: Arduino IDE, use hardware PWM pins
Deliverables
  1. Code implementing PWM speed control and obstacle stop.
  2. Wiring diagram and brief test results (distance vs response).

Goal

Collect sensor data (e.g., temperature and light) and save timestamped entries to an SD card (CSV).

Requirements
  • Hardware: Arduino with SPI, SD card module, RTC module (DS1307/DS3231) optional
  • Software: SD.h, SPI.h, optional RTClib
Deliverables
  1. CSV file from SD showing at least 100 samples.
  2. Code and explanation of sampling rate and power considerations.

Goal

Create a basic web dashboard served by an ESP32 that shows live sensor data and allows toggling a digital output (LED/relay).

Requirements
  • Hardware: ESP32, sensor (e.g., DHT11/DHT22), LED/relay
  • Software: ESP32 core for Arduino, WiFi.h, ESPAsyncWebServer or WebServer
Deliverables
  1. ESP32 sketch with embedded HTML/JS for dashboard.
  2. Screenshot of dashboard and short demo notes.

How to Submit Your Tasks

  1. For each task:
    • Create a separate document (DOC, DOCX, or PDF) for each task (Task 1, Task 2, Task 3, Task 4).
    • Add all required screenshots, code snippets, commands, and links as per the deliverables.
  2. Upload your documents:
    • Upload each task document to Google Drive or GitHub (create a public repository or shareable folder).
    • Make sure the sharing permissions allow anyone with the link to view your files.
  3. Submit your links:
    • Copy the public links for each task document.
    • Go to the Task Submission page.
    • Paste your document links in the submission form, clearly mentioning the task number for each link.

Tip: Organize your files and links clearly for faster review and feedback!

Suggested duration: 4–6 weeks for the full set (can be separated into smaller milestones).
Evaluation Checklist
  1. Code compiles and runs.
  2. Proper wiring and safety checks.
  3. Documentation (README + wiring diagram).
  4. Short demo (video or GIF) or live demo session.