This project aims to build a functional, low-cost, and extensible blood glucose monitor using the Arduino Uno board, based on the ATmega328P microcontroller.
The goal is to create a simplified version of commercial glucometers that can be easily reproduced for educational purposes or used in low-resource environments. It focuses on making glucose level measurement more accessible for people.
The initial idea came from exploring how test strips work electrochemically and attempting to replicate the measuring device using analog and digital components.
I believe this project is useful for understanding the integration of bio-sensing, analog signal amplification, and embedded systems, offering both educational value and the potential to evolve into a practical, low-cost health monitoring tool.
The electrochemical test strips generate a small electrical current through a redox reaction. This current is proportional to the concentration of glucose in the sample. However, the generated current is extremely small, typically in the range of nanoamperes to microamperes and cannot be measured directly by the ATmega328P's ADC. To overcome this, the project uses an operational amplifier (op-amp) that converts the current signal from the test strip into a measurable voltage, using a feedback resistor to set the gain of the amplifier. The amplified voltage is then digitized using the built-in ADC, the value is then processed to calculate the glucose concentration, based on calibration parameters corresponding to the specific test strips used.
For development and testing purposes, a potentiometer is used to simulate the small and variable current generated by an electrochemical test strip. The potentiometer provides a controllable analog voltage input which, after amplification, is read by the ADC to mimic real sensor behavior.
Modules used:
This project integrates a set of analog and digital components to create a functional blood glucose monitor, capable of measuring glucose concentration in the blood by analyzing the electrochemical current generated from a test strip (simulated using a potentiometer).
Component | Arduino Pin(s) | Reason for Selection |
Sensor Output (from OP07) | A2 | Analog input pin used to read the amplified voltage proportional to glucose level via ADC. |
LEDs | D3, D5, D6, D9, D10, D11 | PWM-capable digital pins allow brightness modulation of LEDs to indicate different alert levels clearly. |
LCD 1602 I2C Module | SDA, SCL | Dedicated I2C pins on Arduino Uno, used for communication with the LCD to display glucose values and status. |
Push Button | D2 | Digital pin with hardware interrupt capability used to detect button presses instantly and trigger actions. |
Power Supply for Op-Amp | 5V and GND | Provides the necessary power for the OP07 amplifier with a common ground reference to the Arduino board. |
This modular and extensible design allows for future upgrades such as Bluetooth integration, OLED displays, or buzzer alarms. It demonstrates the synergy between bio-sensing, analog electronics, and embedded systems in an accessible, low-cost platform.
The firmware was developed using the Arduino IDE, targeting the ATmega328P microcontroller on the Arduino Uno platform. Code is written in C/C++ using only core Arduino libraries:
'Wire.h
' – for I2C communication,'LiquidCrystal_I2C.h
' – for interfacing with the LCD display.No third-party libraries beyond the standard Arduino ecosystem were required.
The application firmware performs the following main steps:
During the operation of the project, the current value generated by the potentiometer, which simulates the current from an electrochemical test strip, is read through the Arduino’s analog input pin. Based on this current, the code calculates the estimated glucose concentration and displays it on the 1602 LCD screen.
According to the calculated glucose level, RGB LEDs are controlled via PWM signals to indicate different glycemic states:
These results were validated through manual testing by adjusting the potentiometer and observing the corresponding changes on the display and LED intensity, confirming the correct operation of the system in simulating glucose measurement.
The system responds quickly to changes in current and provides a clear user interface through the LCD display and visual LED indicators.
This project successfully demonstrates a basic but functional glucometer built with Arduino. By simulating the sensor signal with a potentiometer and using an operational amplifier, we were able to measure small currents and convert them into glucose levels. The system provides clear feedback through an LCD display and colored LEDs, offering both visual and numerical information to the user.
Source code:
[https://www.ti.com/lit/ds/symlink/op07.pdf TI OP07 Datasheet]
[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6790891/ PMC Article on Electrochemical Glucose Biosensors]
[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3904486/ NIH PMC Article on Glucose Meter Principles]
[https://www.arduino.cc/en/Tutorial/PWM Arduino PWM Tutorial]
[https://www.arduino.cc/en/Serial/Begin Arduino Serial]