Edit: 4/17/2019 - 7:52 PM
Sharing link of the live time tracking data as requested in project description: https://docs.google.com/spreadsheets/d/1bL2JebJtUSs1Q9dgRIx83QeXee-WWNhtK7X0w5wRPqw/edit?usp=sharing
Original: 4/17/2019
Videos
Mission
The purpose of the time tracker is to create a system where I can log time can be logged and be automatically graphically represented. This data can be examined to view one's use of time and make changes to boost productivity.
Method
A photon wifi board was used to send information through IFTTT logged onto an elaborate google sheet where the data will be stored and represented graphically. And LCD character acts as a user interface, allowing for a user to send information to the spreadsheet, view the activity being recorded, and turn the photon into a low power mode. The user communicates to the photon via 4 buttons, a green confirm button, a red decline button, a blue up button, and a yellow down button. A battery shield and LiPo battery allow the time tracker to stay powered and chargeable for portable use.
The User Interface
The photon first displays to the user three options: change status, check status, and shut down.
Choosing "change status" will let the user pick from a set of predefined time categories to indicate that they are doing something different than is currently being logged/recorded. This done via the Particle.publish command. Once IFTTT detects this, a new line is added to the spreadsheet.
The second option, "check status" will simply display the last recorded time option sent during the current session. At present, the photon will not pull the last recorded time activity if the user has shutdown before sending anything. This will be added in later iterations.
The third option, "shut down" lets the user send the photon into deep sleep using the System.sleep command. Once shut down, the time tracker can be awakened again by hitting the confirm button.
The Google Sheet
The google sheet is a place for the time tracker to store and represent data. Data is recorded, interpreted, and represented.
Recording Data
The first sheet of the spreadsheet is the raw data. It lists only the time of the activity and the time it was recorded.
Interpreting Data
Raw data is first transformed into a format that is readable. With the readable data, duration of time activities are found by the distance between time entries sent the sheet. These duration are sorted by day and category.
Representing Data
Now that the data is recorded and interpreted, the google sheet puts them into two graphs: a day by day stacked histogram and a weekday stacked histogram. The day by day shows a bar for each day and all the activities that were done in the day on each graph. Each day represents 24 hours and only shows the month that the spreadsheet was made for. (There are 12 spreadsheets; one for each month.) The weekday histogram shows the distribution of hours in each weekday throughout the current month.
Components
The time tracker consists of a photon, an LCD character display, and 4 tactile buttons.
Buttons
The photon uses digital pins with internal pull down resistors to get input from the buttons. When the button is pressed digital.Read will return a high value, and a low value when unpressed. Pins D3, D4, D5, and D6 are used to recieve input voltage.
LCD Character Display
The LCD character display comes with a I2C micro-controller. As such, pins D0 and D1 were used to communicate with the display. Pull-up resistors are used with I2C.
Other Considerations
Originally, a rotary encoder and 2 buttons were used to navigate menus. However, the photon is not well suited to accept that type of input, additionally, the encoder that was being tested with had low resolution, so the 4 buttons approach was ultimately chosen.
Automatic Trigger: Lights Out [Two Way Communication]
A proof of concept automatic trigger was created using an analog.read command and a photo-resistor. When there was not enough light shining on the resistor, a "sleep" time ping would be sent to the time tracker spreadsheet. In the future, this concept will be used to determine if the user is in a particular room and will remind the user to act if they have an activity that does not match their location. [For the project, I have included two way communication. When a status is changed on the "main console" of the time tracker, the automatic light trigger's LED blinks three times. Additionally, when the photo-resistor changes the time activity to "sleep", the current activity is reflected in the "check status" menu. Hence completing need for two way communication. Shown in video 3.]
The Future
Later editions of this project will include: Pulling the current status from the cloud instead of only keeping it locally. Ability to make new categories from the photon. Automatic triggers to ensure more accurate values (GPS trackers to see when the user leave the house, photo-resistors to check when the user goes to bed, ect.)
Comments
Please log in or sign up to comment.