This week’s accomplishments
- Continued work on Django app(5+hrs)
- https://github.com/Quarks-1/pour-over-and-over
- Convert pouring mechanism to python Threads module
- Completely overhauled pour scheduling system to prevent webapp stalling
- Implement 5 default profiles into the setup.py file
- Further fine-tuning PID
- Add pour mechanism thread functions, to be tested this week
- Work on Final presentation (3hrs)
- Attended mandatory lab (4hrs)
Next weeks plan
- Further, fine-tune PID algo to get better temp stability
- Test water pump code with heater/pouring movement code
- Integrate all subsystems together
- Add steps display on brewing page
Status Report: On schedule
New tools/knowledge
- Python threads module
- Previously I had not used the python threads module, however through writing our webapp it was found that it was absolutely necessary. The ability to run functions concurrently as well as schedule them was important as without this feature the webapp would stall if we used while loops in the main thread. Although I had previously used threads in C, threads in python posed their own challenges like function input parameter type, as well as proper scheduling
- Python pyserial library
- Originally we had planned to use octopi for controlling the printer, but it turns out octopi can’t actually read the current position of the printer. We found out that we could just send individual GCode commands over USB using the pyserial library, which allowed us to cut out octopi entirely. I had not previously used pyserial to read data from an arduino either, so learning to do so was a new experience for me
- Django pre-loading data into the db
- Previously I had not made webapps where a setup file was run prior to starting the webapp after downloading the code. I also did not need to repopulate the database, which was something we needed for our webapp as it was a design requirement to have minimum 5 profiles at install. Learning to use the proper functions to repopulate the db was something I learned to do during this project.
- Resources used:
- Online forums such as reddit / StackOverflow / Django and Python documentation
- ChatGPT for writing test code quickly