Arduino Projects for Science

Updated June 2026
Arduino microcontrollers let researchers and students build custom scientific instruments, automated data loggers, and environmental monitoring systems for a fraction of the cost of commercial equipment. With a $25 Arduino board and inexpensive sensors, you can measure temperature, humidity, light intensity, pH, dissolved oxygen, soil moisture, air quality, and dozens of other parameters. This guide walks you through building your first Arduino science project from choosing components to deploying a working data collection system.

Arduino makes custom scientific instrumentation accessible because it combines a programmable microcontroller with a massive ecosystem of compatible sensors, shields, and libraries. The open-source hardware and software mean that every component is documented, every library is free, and thousands of community-contributed tutorials cover nearly every sensor and application. Researchers have published peer-reviewed papers describing Arduino-based instruments for hydrology, atmospheric science, marine biology, agriculture, and physics, demonstrating that these inexpensive platforms can produce data of publishable quality when properly calibrated.

Choose Your Arduino Board and Gather Components

The Arduino Uno ($20 to $25) is the standard board for most science projects. It has 14 digital input/output pins, 6 analog input pins, a USB connection for programming and serial communication, and compatibility with virtually every Arduino shield and sensor library. The Uno is well documented, widely available, and the board that most tutorials reference.

For projects that need more inputs, the Arduino Mega ($35 to $45) provides 54 digital pins and 16 analog inputs. For portable or space-constrained applications, the Arduino Nano ($5 to $15) offers the same capabilities as the Uno in a smaller form factor. For projects requiring WiFi connectivity, the Arduino Nano ESP32 ($20) or standalone ESP32 boards ($5 to $15) add wireless data transmission capability.

Beyond the board, you need a breadboard ($3 to $8) for prototyping circuits without soldering, jumper wires ($5 for an assortment), a USB cable for programming, and the specific sensors for your measurement. Common science sensors include the DHT22 for temperature and humidity ($5 to $10), the BMP280 for barometric pressure and altitude ($3 to $8), the TSL2591 for light intensity ($5 to $8), the DS18B20 waterproof temperature probe ($3 to $6), and soil moisture sensors ($2 to $5). An SD card module ($3 to $8) adds data logging capability.

Install the Arduino IDE and Connect Your Board

Download the Arduino IDE (Integrated Development Environment) from arduino.cc and install it on your computer. The IDE works on Windows, macOS, and Linux. Connect your Arduino board to your computer via the USB cable. In the IDE, go to Tools, select your board type (Arduino Uno), and select the correct serial port.

Verify your setup by loading the Blink example sketch (File, Examples, Basics, Blink) and clicking the Upload button. If the onboard LED starts blinking, your connection is working and you are ready to develop your own sketches. If the upload fails, check that you selected the correct board and port, and that your USB cable supports data transfer (some cables are charge-only).

Install the sensor libraries you need through the Library Manager (Tools, Manage Libraries). Search for your sensor name and install the recommended library. For example, the Adafruit DHT library handles DHT22 temperature and humidity sensors, and the Adafruit BMP280 library handles the BMP280 pressure sensor. Libraries provide pre-written functions that handle the low-level communication with the sensor, letting you focus on your experimental logic rather than signal protocols.

Wire Your Sensor Circuit on a Breadboard

Each sensor has a datasheet or tutorial that shows how to connect it to an Arduino. Most sensors require three or four connections: power (typically 3.3V or 5V from the Arduino), ground, and one or two data lines connected to specific Arduino pins. Use a breadboard to make these connections with jumper wires so you can easily modify the circuit during development.

For a basic temperature and humidity monitoring project using a DHT22 sensor, the wiring is straightforward: connect the sensor's VCC pin to the Arduino's 5V pin, the GND pin to the Arduino's GND, and the data pin to a digital pin (such as pin 2). A 10K ohm pull-up resistor between the data line and VCC ensures reliable communication. This entire circuit uses four wires and one resistor.

When building more complex circuits with multiple sensors, wire and test one sensor at a time. Confirm each sensor works individually before combining them. This approach makes troubleshooting much easier because you can isolate the source of any problem. Label your wires or use a consistent color scheme (red for power, black for ground, other colors for data) to keep the circuit readable.

Write and Upload Your Data Collection Sketch

An Arduino sketch (program) for data collection follows a consistent pattern. The setup() function runs once when the Arduino powers on and initializes the serial port, sensors, and SD card. The loop() function runs repeatedly and reads sensor values, formats them as text, and outputs them via serial communication or writes them to a file on the SD card. A delay between readings controls how frequently data is collected.

For data logging to an SD card, each line of data should include a timestamp and all sensor readings separated by commas (CSV format), making the output directly importable into spreadsheet software, R, or Python for analysis. If your project does not include a real-time clock module, number each reading sequentially and record the interval between readings so you can reconstruct the time axis during analysis.

Include calibration factors in your code as named constants at the top of the sketch, making them easy to find and adjust. Raw sensor readings are rarely in the units you need. A voltage reading from an analog pin needs conversion to the physical quantity (temperature, pH, light level) using the calibration equation from the sensor datasheet or your own calibration data.

Calibrate, Validate, and Deploy

Calibration is what separates a science instrument from a hobbyist gadget. Compare your Arduino sensor readings against a known reference instrument under controlled conditions. For temperature, compare against a calibrated thermometer at several temperatures spanning your expected range. For pH, use buffer solutions of known pH (4.0, 7.0, 10.0). Record the reference values and your Arduino readings, then calculate a calibration equation (usually a linear fit) that converts Arduino readings to accurate values.

Validate your calibrated system by testing it against the reference instrument under conditions similar to your actual experiment. If readings agree within your acceptable tolerance, the system is ready for deployment. Document your calibration procedure, date, reference instrument used, and calibration equation so that anyone reviewing your data can understand and reproduce your measurement methodology.

For long-term deployment, consider power supply (battery with solar panel for remote locations, USB power adapter for lab settings), weatherproofing (waterproof enclosures for outdoor use), and data storage capacity (a 32GB SD card stores millions of text-format data points). Test the complete system for at least 24 to 48 hours before relying on it for actual experimental data, checking for issues like sensor drift, data corruption, and power consumption.

Key Takeaway

An Arduino Uno with a few inexpensive sensors can produce calibrated scientific data at a total cost under $50. The key to publishable-quality results is proper calibration against reference instruments and thorough documentation of your measurement methodology.