Arduino Data Logger

CSEF · 2013 Mathematics & Software

Overview

Objectives/Goals The goal of this project is to create a software program, usable by non-programmers, for recording continuous streams of data from sensors. The data logger is physically an Arduino microcontroller connected to a computer. The Arduino reads from electronic sensors and sends the readings to the computer which displays them to the user and saves them in files. The data logger was originally designed for the new Applied Circuits for Bioengineers course at UCSC. However, it is general purpose, usable in other classes and labs and by hobbyists. Methods/Materials The hardware involved in the data logger is sensors, the Arduino, and a computer. Many sensors and devices, analog and digital, can be connected to the Arduino, e.g. a thermistor as a temperature sensor, or a string, pulley, and photogate for timing moving objects. Most models of Arduino microcontroller are supported, as are Mac OS X, Windows, and Linux on the personal computer. The software libraries I used, Tkinter, PySerial, and the Arduino IDE, handle some of the cross-platform compatibility. This project has mostly been writing the software for the computer and Arduino. On the computer, I used the Python programming language. My program provides a simple graphical interface for configuring the Arduino and displays a live feed and charts of the data received. I wrote the code for the Arduino in C++, using only libraries provided with the IDE. Results Currently, the data logger is functional and useful, with many enhancements planned. Sampling rates of a hundred Hertz for several minutes have been achieved, despite the tiny memory on the Arduino. The students in thre UCSC circuits course provided useful feedback on the data logger and identified several bugs. The code for the data logger is available at <bitbucket.org/abe_k/arduino_data_logger>. Conclusions/Discussion I learned a lot while creating the programs for the data logger. It was my first embedded programming project, for a microcontroller with very limited speed and memory. I learned about interrupt-driven programming (both timed and external) and low-level details of the AVR chips. On the Python end, I learned about multi-threaded programming along with Tkinter GUI toolkit. I also learned good software engineering practices, such as version control and program documentation. This project was both educational and enjoyable, and the resulting program is valuable to others.

Summary statement

The purpose of this project is to create an inexpensive data logger to electronically record from sensors and save these readings.

Help received

Father provided feedback on program; UCSC circuits course tested program; Writing tutor helped with poster

Competition history

  • CSEF 2013 Mathematics & Software · Entry S1415

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Browse more like this

Source: California Science & Engineering Fair public projects

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. An account also raises your daily allowance for “Has this been done?”, and lets you create a key for the MCP server with a much higher limit than anonymous use. Browsing stays public.

Continue with Google