Independent Study
From Copelco
Colin Copeland
Independent Study Writeup
http://eeap.cs.earlham.edu/
Contents |
Proposal
Describe the nature of your study. Outline your proposed work to show as precisely as possible (1) how the proposed study complements your academic program of study; (2) how the independent study will be evaluated.
---
I took a class installing a Solar Hot Water Heater at Miller Farm with Charlie Peck this summer, worked with Cope Environmental Center periodically, and participate in the Green Science and Hardware Interfacing Project (HIP) groups. I worked with Alex Haworth and Alex Lemann this summer on the Earlham Energy Awareness Project (EEAP), which is an incentive program to increase energy awareness of students living in campus housing. Unfortunately, EEAP has yet to officially launch.
So, I plan to:
1) Refactor Earlham Energy Awareness Project (EEAP) code to clean up old unreliable code and use data structures more inline with the Ruby on Rails MVC framework. By cleaning up the code, it will be easier to validate various consumption calculations, including the reward/payback information. Further, I plan to rework the Admin Interface to help future EEAP members with data entry, error checking, etc.
2) Develop a real time energy monitoring system for Warren and Wilson, which will require work with electricians in maintenance to install proper monitoring equipment. Create an interface to view data online. Possibly work with a psychology major to perform feedback study (e.g. only giving one dorm the data).
Project
EEAP Website
Standards
The EEAP website is now XHTML-Strict, required many little changes that fixed cross platform browser problems.
JS
- Learned some javascript for tabbed interfaces on the inspect pages for graphs and performance.
Baseline Model
- Month Baseline - 3 year average Gathers consumption information for the past three years, this is the baseline for the month, or the target to beat. Also, compares the baseline to the current consumption this month and calculates the conserved values. Functionality for calculating payback information as well. [month_baseline.rb]
- Semester Baseline - Uses an array of month baselines for the duration of the semester to calculate semester totals and averages. Includes total money earned (payback) and average conservation all semester for each commodity. [semester_baseline.rb]
- Semester Baseline Set - Array of semester baselines for each house for the entire semester. Used on the compare page. [semester_baseline_set.rb]
EEAPnode
- Purchased 3 TS-7400's, 3 WattNode's, and 9 CTs as part of the [EEAP Expansion Proposal]. A miss match with logic levels in their documentation made us purchase 3 LVC245 buffer chips.
- Learned how development works on the board, cross compiling to ARM, etc.
- Code - Polls DIO_13 for logic high using mmap in user space.
- Kernel module - Developing a module to receive interrupts on DIO_13 going high. [module]
Admin Interface
An interface for administrators to enter, view, and delete data.
Data Integrity Tools
- Readings Duplicate Check - Spits back any duplicate rows in the readings table. Mainly used by Haworth to check to see if he entered duplicate data before we created constraints on the db.
- Readings Count Check - An interface to see how many readings each consumer has for each commodity for each year. Quick check to see if data was entered correctly (too many for a particular year, too few, etc).
- Full Data Graphs - Graphs every reading for each year for each consumer. Useful for finding anomalies (spikes in graphs).
Weather Interface
http://eeap.cs.earlham.edu/inspect/weather
An interface to HIPs weather station data: weather cam, current weather, a plot of month's high, low, and average temperature, and a plot of the heating degree days. A perl script is run every morning to analyze the weather db and insert appropriate rows into the eeap weather table (the weather db records readings every 15 minutes, with no daily averages, highs, lows, or any degree day information).
eeap_development=# \d weather_stats
Table "public.weather_stats"
Column | Type | Modifiers
---------------------+-----------------------------+---------------------------
id | integer | not null default
date | timestamp without time zone |
high | double precision |
low | double precision |
avg | double precision |
heating_degree_days | double precision |
cooling_degree_days | double precision |
Indexes:
"weather_stats_pkey" PRIMARY KEY, btree (id)
Perl script run by cron every day (includes SQL stuff): http://cs.earlham.edu/~eeap/cvsweb/cvsweb.cgi/eeap/script/get_weather_data_for_eeap.pl?rev=1.3
Database Views/Store Procedures
Rails baseline model is slow. This functionality has been recoded in [SQL].
