Team members: Rikin Mehta, Yuji Chai, Christopher Willenborg
8th February 2016
We envision building a system that will regulate the temperature of a room using data collected by sensors or some open data base for external temperature. The data collected will be processed by a data processing unit, and this unit will instruct our motors on how to adjust the height of the opening of the window to best regulate the internal temperature of the room to increase the comfort. The processing unit will also control the power supply to an Air Conditioning Unit or fan that the occupants in the room may wish to implement as to better regulate the temperature 24 hours of everyday and throughout all times of the year. If time prevails we would also like to implement a digital display that would allow the user to change the desired temperature range on site more easily.
Attachments:
High-level design.JPG (image/jpeg)
Automatic_Temp_Regulator_Final_Report.pdf (application/pdf)
15th February 2016
We created the high-level design block diagram for the project.
We got a head start on the requirements list. A servo motor would be required to control the height of the opening of the window. Several servo motor tutorials were available online. We watched a video on how a servo motor works. In addition, we got an insight into linear motors too which might be more efficient for our design. We also went through a guide on Sparkfun which gave us a background of the principles of several motors.
22nd February 2016
We researched about the parts required for the project. We looked at various kinds of servo motors: some had a very high torque (and were equally expensive). We found one in our ECE 110 kit which would be big enough for our prototype. We also looked at different temperature sensors. Some of them gave results to an accuracy of about +- 0.5 deg C. However, the one in our ECE 110 kit had a lower accuracy of about +- 1 deg C. Temperature accuracy is not one of the major factors for our project. Therefore, we would be using components from our ECE 110 kit itself. We plan to run trials with the components already available. If we require stronger servo motors, we would order them at a later stage.
29th February 2016
We tested the servo motor and the temperature sensor in our ECE 110 kit. We played around with the code on Arduino. We tried to make both the motor and the sensor work together. Unfortunately, we failed to do so. In the next session, we shall work on writing the code to take the data from the sensors and use it to change the angle of our motor.
14th March 2016
Today, we managed to run the motor and the temperature sensor simultaneously. We were initially facing an issue with the temperature sensor: there were large fluctuations in temperature every second. We used a second power source and connected the motor to a second power supply. We also managed to run another temperature sensor along with the original circuit. So, the temperature outside and inside the room can both be recorded simultaneously. The final stage of this project would be to create upper and lower bounds for the sensors inside and outside using 'if' statements in our code. If we finish our project early, we might work on alternative solutions using a similar circuit setup and code.
28th March 2016
We fixed the issue of the large fluctuations in the temperature readings on the temperature sensor. This was done by powering the servo motor using another RedBoard and then connecting both Redboards, one that powered the motor and the other that powered the rest of the circuit. In addition, one of the TAs recommended us to use buttons, that would increase the opening of the window, and a hexadecimal display, that would display the temperature, in our project. We would use the hexadecimal display from Ultimate Drummers' project from last year.
4th April 2016
Today, we attempted to get the hexadecimal display to display the values we wanted, but we were slowed down in adapting the code from the previous year to accommodate our project. The goal is to display the current ambient room temperature on one side of the display and the targeted temperature on the other side. If we can manage to get this finished, then we would add a couple of push-buttons that would update the displayed targeted temperature and our variables in our code accordingly.
11th April 2016
Today, we managed to display the current ambient room temperature in the room on our hex display. We ran into a slight issue when the temperature sensor tried to change the value on the hex display (i.e. changes in between degrees), but we were able to quickly solve this problem with the addition of a small time delay. This allowed for the numbers to remain solid and not try and switch back and forth between the two values. We had to integrate our two separate codes that we wrote (one set for the servo and temperature sensor and another for the hex display), which took a good deal of time. We setup pushbuttons on the protoboard in preparation to write code to control the target temperature that is displayed, and the code that we would write would have the target temperature be controlled by the pushbuttons.
18th April 2013
We reconstructed our circuit today and almost everything was working as intended. We did discover a problem with our servo. It was vigorously vibrating when it was at its maximum arm positions and we could not think of why this might be. We figured out that we set the arm angle to 180 degrees in the code and we remembered that the arm does not have full 180 degree rotation. We changed the code to slightly less than 180 degrees and greater than 0 and the motor stopped vibrating at a certain point. We assume that the motor was trying to switch back and forth between the max angle that it could reach and that of 180 degrees.
25th April 2016
We went to the ECE Mechanical Shop last week during the week to see if they could build us some sort of frame for our motor to act as it would on a window. They said that they were extremely busy, but they would do their best to whip something up for us. In our ECE Honors Lab section we reconstructed the circuit and ran the code looking for errors and did not find any, which was nice. We tried to come up with various ways in which our code or circuit could falter and did not find any that came to mind. We will hope that they can make us something for the demo to make our project look more presentable in time and finish our lab report.