This shows you the differences between two versions of the page.
iothings:proiecte:2021:pulsemonitorsystem [2022/01/28 01:43] ana_maria.cretan [Software code detailed] |
iothings:proiecte:2021:pulsemonitorsystem [2022/01/28 08:40] (current) ana_maria.cretan [Software flow] |
||
---|---|---|---|
Line 17: | Line 17: | ||
{{:iothings:proiecte:2021:schematic_iot_prj_2022-01-24.png?500|}} | {{:iothings:proiecte:2021:schematic_iot_prj_2022-01-24.png?500|}} | ||
- | ====== Software code flow ====== | + | ====== Work flow ====== |
+ | The implementation consists of three connections: | ||
+ | * Connection with the pulse sensor MAX301000 - for data receiving | ||
+ | * Connection to the Adafruit IO through MQTT client - for displaying the data and its interpretation | ||
+ | * Connection to the IFTTT API - for the email alert feature | ||
The main functionality of the code is displayed by the following diagram. The //setup()// function is executed first and is used to enable the wi-fi connection, connect to the MQTT client, and config the pulse sensor. | The main functionality of the code is displayed by the following diagram. The //setup()// function is executed first and is used to enable the wi-fi connection, connect to the MQTT client, and config the pulse sensor. | ||
Line 23: | Line 28: | ||
In the setup section of the code, the Wi-Fi connection is established, followed by the MQTT connection for the web application and the configuration of the pulse sensor. | In the setup section of the code, the Wi-Fi connection is established, followed by the MQTT connection for the web application and the configuration of the pulse sensor. | ||
- | During the loop section, the connection to the MQTT client is checked first along with the switch state from the application. The data published to the web display can we stopped at any time (while connected) by turning the switch block off. | + | During the loop section, the connection to the MQTT client is checked first along with the switch state from the application. The data published to the web display can be stopped at any time (while connected) by turning the switch block off. |
- | ====== Software code detailed ====== | + | ====== Software implementation ====== |
The code is developed using Arduino IDE,and the following libraries: | The code is developed using Arduino IDE,and the following libraries: | ||
Line 55: | Line 60: | ||
* for the Oxigen level the interpretation is into the interface block \\ | * for the Oxigen level the interpretation is into the interface block \\ | ||
- | Source Code: [[https://github.com/Ana99889/IOT_prj/blob/main/arduino_source_code | GitHub Repo]] | + | For the email alert we used the following format, including the medical term of the non regular range (BPMState_ps) |
+ | <code c > | ||
+ | client.print(String("POST ") + URL + API_KEY + " HTTP/1.1\r\n" + | ||
+ | "Host: " + HOST + "\r\n" + | ||
+ | "Content-Type: application/x-www-form-urlencoded\r\n" + | ||
+ | "Content-Length: 13\r\n\r\n" + | ||
+ | "value1=" + BPMState_ps + "\r\n"); | ||
+ | } | ||
+ | </code> | ||
+ | Source code link: [[https://github.com/Ana99889/IOT_prj/blob/main/arduino_source_code | GitHub Repo]] | ||
===== Software Interface ===== | ===== Software Interface ===== | ||
Line 73: | Line 87: | ||
===== Resources ===== | ===== Resources ===== | ||
+ | * [[https://github.com/Ana99889/IOT_prj/blob/main/arduino_source_code | Source code - GitHub Repo]] | ||
* [[https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf | ESP32 Datasheet]] | * [[https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf | ESP32 Datasheet]] | ||
* [[https://datasheets.maximintegrated.com/en/ds/MAX30100.pdf | Pulse Oxi - MAX30100 Datasheet]] | * [[https://datasheets.maximintegrated.com/en/ds/MAX30100.pdf | Pulse Oxi - MAX30100 Datasheet]] |