Description
High blood pressure, or hypertension, is a serious condition that can cause damage to the heart and other organs and increase the risk of heart attack and stroke. The question is when should hypertension be treated with medication? Most people have the condition at least occasionally, such as while at the doctor's office. It would be helpful to have a convenient way to automatically take many blood pressure readings throughout the day and over time to see how often one's blood pressure is high. Such a device, called an Ambulatory Blood Pressure Monitor (ABPM), could also be valuable to researchers looking to correlate the instances of heart disease, stroke, heart attack, and other ailments with sufferers' blood pressure readings over time. Such devices exist, but often cost thousands of dollars and are too bulky to use conveniently. Individual blood pressure monitoring and new research studies would be aided by ABPMs whose technology makes them cheaper and easier to use. Mobile devices such as smart phones are ideal candidates to control such devices. They have ample processing power and wireless capability. Applications are easily installed on them, and their use is widespread. People can install an application that could wirelessly control a blood pressure monitor, display the readings on the mobile device, and transmit the readings to a central server for further use. For example, the data could be used as part of a study in which many users' readings are analyzed to detect patterns in blood pressure fluctuations and determine the significance of such fluctuations. Also, the data, once transmitted, could be accessed via a web page so that doctors could conveniently check their patients' readings. This thesis documents the creation of an ABPM solution, including an investigation into some alternative technologies. An off-the-shelf blood pressure monitor was purchased and hacked into in order to allow control by an Arduino board (an open-source electronics device). A Bluetooth module, attached to the Arduino, facilitates two-way communication between the Arduino and the mobile device (an Android phone) which displays the readings. Finally, the phone sends the blood pressure readings to a RESTful web service running on a remote computer where the data are stored and can be accessed via a web page