Elaine is your refrigerator assistant. Equipped with a light sensor, LED reminders and goal setting, personalized refrigerator thermodynamic computations, liquid-crystal display, and powered by an Atmega328p microcontroller, Elaine tracks your refrigerator use and displays the metrics on an user-friendly interface. With Elaine, you can become a smarter refrigerator-er! Stay-at-home measures have lasted for almost a year now. People are spending all day every day inside their homes. There’s not that much to do, and with the stress and/or boredom of the situation, people turn to sources of comfort. One such source of comfort is your kitchen: food and drinks in the refrigerator, snacks in the pantry, open cookies on the counter, etc. Elaine offers a simple solution that draws on psychology and simple real-time embedded systems. The end product is a successful manifestation of the problem statement, albeit slightly modified after iterations of design.
What it does
Elaine tracks your refrigerator usage: how many times you have opened it in a day, how much energy it has to use to re-cool the refrigerator, and potentially more. Elaine gives you a gentle reminder by displaying your usage statistics on an LCD screen.
How I built it
My approach to the problem is to use sensors that can measure the metrics in question for refrigerator usage. Since Elaine is all about adding different features, I want to work first on the baseline presentable, which I expect to be the serial communication to the LCD, because without any easy presentation of the data, Elaine does not support its purpose. Once that is complete, Elaine will be developed modularly, such that it will always be at least functional, albeit without all of the intended functions. Plus, keeping a modular design will be appropriate for making sure that new features can be integrated without disrupting previous features.
On the software side, I will use timers and interrupts for the light sensor, to track how many times we open the refrigerator door as well as how long it is open. For the temperature and humidity sensor, I will use ADC to measure the value of the temperature and humidity. For the LCD screen, I will need to implement serial communication in order to relay information to the LCD. The rest of the peripherals will use more of the same concepts. I will also need to do some research to get the thermodynamic equations correct.
Challenges I ran into
Three particular challenges stick out to me as I reflect on the creation of Elaine.
One was debouncing. Before correcting button debouncing in software, it would cause huge mistakes in the data that Elaine is tracking. For example, if in a single button press, 5 contact-releases were detected, this could increase somebody’s door target by 5 opens! In a similar issue, since the photoresistor is an ADC input, when the door opens, the detected ADC value would not always increase monotonically. Instead, it might quickly flip around numbers at the threshold of dark ←→ light. Not only would this add several artificial door opens, this would confuse the timer, making it such that even if the door was open for a long time, the timer would only detect the short amount of time between ADC value flips around the threshold. The third challenge I faced was serial communication with the LCD. I spent a couple days trying to reference online LCD libraries, the Arduino LCD library, and writing my own library from the reference sheet. The characters I wanted to send to the Arduino were always garbled and mistaken, and I didn’t end up finding a fix until I spent the day in office hours and asked a fellow student for a couple references. In the meantime, I learned all about LCD serial communication though, so it is not a total loss.
Accomplishments that I'm proud of
Overall, I am quite pleased with how Elaine turned out. Coordinating the peripherals so that Elaine remained as intuitive as possible was a challenge. For example, I wanted to make it such that there were only one or two things that the user has to interface with, and they should describe everything that Elaine has to offer. This meant that the button and LEDs needed to be able to switch functionality between modes, and work with the hardware available.
What's next for Elaine
Elaine started out as a roughly-formed idea that took better shape as the project went on. I started out with the motivation to promote responsible refrigerator usage for the sake of energy efficiency and mental wellness. I even went and researched what the biggest issues for refrigerator energy efficiency were, and guided my project to follow that idea. However, as I worked more on implementing Elaine, I realized that there was more utilization potential in focusing on its mentality aspect: colors and actions that made users’ actions feel more tangible to them.
The next step for Elaine would be to improve Elaine’s form factor, in order to fit with how easy I made Elaine to use. With more time, I would like to additionally add more relevant peripherals (without adding much to complicate the user-interface).