The engineering problem that our project is aiming to address is creating a barometric map using pressure sensors in smartphones.
The accuracy of the readings should be within ±1 mb (millibars), map resolutoin of 1 sensor per kilometer and have a refresh rate of 10 minutes.
One aspect of the project will be to understand the reliability of the sensors in phones. To that end, we plan to purchase or design a pressure chamber to test the accuracy of phone sensor by comparing the reading on the phone to the pressure gauge of the chamber. The testing range of the experiment will be from 850 mb to 1060 mb.
Should the solution to the problem be to design an application, the app will be built for IOS. The app will need to provide pressure data with corresponding location and elevation data.
The decision was made to develop the iOS application. The app was developed useing Xcode, Apple's IDE software for creating apps for iPhone, iPad, Mac Apple Watch and Apple TV. A MySQL database was created to be able to store the readings gathered by the application. The MySQL database was created using PHP Storm, an IDE for writing PHP files and a web server with XAMPP to store the database.
>
The app will display 7 values: time interval, relative altitude, elevation, pressure in millibars and kilopascals, longitude and latitude. The time interval is displaying the time the application has been running. Relative altitude is displaying, in meters, the change in altitude detected since starting the app. The value should initially be 0 and as the phone goes to higher elevations, the value will rise and fall as the user goes to lower elevations. Elevation shows the user their current height above sea level in meters. The pressure value gives the value for the pressure in kilopascals and its equivalent value in millibars. The longitude and latitude give the user their current location coordinates. A new reading will be taken every second and each reading will be sent to the database. It should be noted that the phone will require either a data or WIFI connection to allow for sending the readings to the webserver. Whenever you want to stop gathering readings, simple press the stop button on the top left and you will be taken back to the main screen. When the application is stopped, all values are reset.
The accuracy of the readings were:
When the values are sent to the database, there are fields: id, time, relative altitude, elevation, pressure in both millibars and kilopascal, longitude and latitude. Each reading from the iPhone will be a new entry. The entries will be appended to an ongoing list so last as the app is running. The entries will be ordered by the id field as it serves as the primary key for the table.