This is an old revision of the document!
Data Logger and Graphing Terminal
Introduction
The project consists of a standalone data logging and visualization system based on the ESP32 microcontroller. The device reads data from analog and digital sensors (temperature/pressure, light). The data is also rendered in real time on a color TFT display. The system can be operated independently from a PC using a custom hardware interface and a standard PS/2 keyboard.
The Scope of the Project: The main scope of the project is creating a set of portable tools capable of logging and storing physical data whilst also offering the user a local control panel. The user can type commands to modify the sampling rate, graph scale, or to save/load data from memory.
Starting Idea: I wanted to build an embedded system that can integrate many communication protocols and peripherals that I studied (SPI, I2C, UART, ADC, PWM, timers, system interrupts) without using a computer. I was inspired by budget oscilloscopes.
Why It Is Useful: For regular users, the project serves as a practical and visual instrument for monitoring the environment or testing analog signals. For me as a developer, I wanted to write from scratch a driver for the PS/2 protocol (managing external interrupt timings) and coordinating multiple data buses (high-speed SPI for graphics and I2C for sensors and storing data) without blocking operations.
General Description
Block Diagram
Project Modules and User-System Interaction
The system is split into hardware and software modules. The system is partially event-driven (using interrupts).
User Input (PS/2 Keyboard and Custom Driver)
Hardware: Signals that are coming from the keyboard (5V) go through a logic level converter to protect the ESP32 (3.3V).
Software: The ISR listens to the CLK pin of the keyboard and receives the data bits at every negedge cycle. The scan codes are decoded and inserted into a buffer.
Data Reading (Sensors and Timers)
Memory (I2C EEPROM)
Graphics (SPI TFT Display)
Using the high-speed TFT_eSPI library, the screen can render the graph smoothly. The refresh rate is optimized by drawing the “delete rectangles” ahead of the new data, thus bypassing the flickering effect. The brightness of the screen is adjustable through software using a PWM signal on the backlight (LED) pin.
Hardware Design
Bill of Materials:
Microcontroller: ESP32-WROOM-32D (DevKitC V4)
Display: TFT SPI 2.4 inch display module 240×320 resolution
Input: Standard PS/2 keyboard and female PS/2 connector (modified extension cable)
Logic Level Converter: Bidirectional logic level converter - 4 channels (5V ↔ 3.3V)
Non-volatile Memory: EEPROM I2C AT24C256 (32K)
Digital Sensors: BMP180 (I2C) pressure and temperature sensor
Analog Sensors: Photoresistor (type 5528) + 10kΩ resistor (voltage divider), 10kΩ potentiometer
Infrastructure: Breadboard and wires (female-male, male-male)
Power: TBD
Electrical diagram
Aici puneţi tot ce ţine de hardware design:
listă de piese
-
diagrame de semnal
rezultatele simulării
Software Design
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
* 06.05.2026: Added introduction, general description and block and electrical diagrams.
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF