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
Resources
Related projects
CSEF · 2015
Creating an Accurate Temperature Sensor Incorporating a Thermistor and Arduino Uno
ISEF · 2023
Low-Cost Solar Powered Water Quality Monitoring Device With 24/7 Uploading to Public Access Website
CSEF · 2017
A Novel Shower Usage Monitoring System that Promotes Water Conservation
CSEF · 2015
Newton and Arduino Loop the Loop: Development of an Inertial Navigation System for Model Aircraft
CSEF · 2016
Building a Homerun
CSEF · 2015
D.I.Y. Automatic Dog Feeder
CSEF · 2015
A Low-cost, Easy-to-Install, Internet-Enabled Shower Usage Monitor as a Nudge Engine for Residential Water Conservation
ISEF · 2022
Creation of a Portable Device for Environmental Measurements Using a 3D Printing Design
Closest projects by meaning, across every fair and year in the corpus.
Browse more like this
Source: California Science & Engineering Fair public projects