Graphical User Interface (GUI) Overhaul
Existing GUI
The Graphical User Interface (GUI) of the current Prototype system designed by the previous Capstone group was, although functional, limited in capability and features. Using a PHP Server script, the Orange Box prototype was able to be connected through a URL that allowed access to a webpage that was broadcast over Wifi from the Raspberry Pi microcomputer within the unit. By entering in the Pi's IP address into a search bar of any web browser, the user is able to connect to the webpage shown below.
Current Prototypes User Interface
As shown, the existing UI has only two options for user input: date and time, and 'Download Data.' The major functionality of the software is handled by a Python script called 'Background.py'. This script handles the acquisition and organization of the data collected from the RF modules of the fish and subsequently puts them into a MySQL database hosted on the unit itself. When a user selects the 'Download Data' option, a .csv (comma-separated value) file is downloaded to the users computer and is ready to be uploaded to a program with data-visualizing capabilities, such as Microsoft Excel. A block diagram shows the structure and flow of the 'Background.py' script.
'Background.py' Block Diagram
Most of the UI design is handled within two PHP scripts. PHP is a server-based HTML language, which allows a programmer to set up a website to act as its own server. Doing so allows the user to collect the data from the unit without ever opening the unit itself; an ideal condition while exposed to the elements of the Montana Wilderness. Below ,two block diagrams show the structure of two PHP scripts, 'Readertime.php,' which handles the user input of the date and time, and 'Download.php,' which handles the user input of selecting to download the data from the prototype unit.
Readertime.php and Download.php Block Diagrams
Desired GUI Features
Mike Lance, the projects sponsor, has requested a complete overhaul of the current User Interface with additional functionality for the user of the unit. In addition to both the options of being able to input time and to download data, Multiple antenna functionality must be implemented within the software of the unit. In addition, there should also be some sort of health monitoring capabilities to inform the users of when there is a critical failure of the unit, and to shut itself down to prevent loss of data and minimize damage to the unit itself. An adjust reader-time period of the Reader Module would also be an ideal feature, to improve the overall functionality of the antenna system. Network reliability is also an issue with the current prototype and must be addressed within the software.
GUI Update: Ionic Framework App development
RFID Unit App prototype Interfaces for various Mobile Operating Systems (OS)
The next iteration of the GUI for the unit will be developed as a mobile/web app. This will allow for the user to be able to communicate, adjust variables and download data all from a smartphone or laptop that is within Bluetooth range. Additionally, the back-end of the software will use the Background.py file provided to the group from last years Capstone Design team. The three images above are the app being simulated through a web browser, each one running in its own respective mobile OS (iOS, Android, Windows.) Although the finished product will be able to be ported to each OS, we will focus on using Android for data collection, as iOS does not allow for individual files to be downloaded from the phone without overwriting the stock firmware.