CHAPTER 5 IMPLEMENTATION AND TESTING 5.1 Implementation In this Medical Devices project using IoT System programming is used on Arduino IDE microcontroller. The results of this project contains four designs, namely: 1. MAX30100 2. MLX90614 3. ESP8266 4. SIM900A 5.1.1. MAX30100 Results of the design of heartbeat series MAX30100 series on Arduino Uno can be seen in the following figure: Illustration 5.1: MAX30100 21
22 The heart rate sensor of the MAX30100 series uses a positive voltage of 3.3 volts and a negative voltage coming from Arduino Uno in the GND port. Then both cables are connected to port A4 which means SDA and port A5 which means SCL in Arduino Uno. SDA is serial data, while SCL is synchronous clock path. After that, because the MAX30100 requires a voltage to communicate I2C then the pull up is connected to 5V arduino uno directly and given the resistance(resistor) equal to 10K on SDA and SCL in the sensor. 5.1.2. MLX90614 The design results of infrared body temperature sensor series MLX90614 on Arduino can be seen in the following figure: Illustration 5.2: MLX90614
23 The MLX90614 series body temperature sensor uses a 5 volt positive voltage and a negative voltage coming from Arduino Uno in GND port. Then means SDA and port A5 which means SCL in Arduino Uno. SDA is serial data, while SCL is synchronous ctwo cables taken from the SDA and SCL sensors are connected to port A4 which lock path. 5.1.3. ESP8266 Results of ESP8266 serial wifi design module on Arduino can be seen in the following figure: Illustration 5.3: ESP8266 On ESP8266 it takes 3.3 volt voltage. In addition, ESP8266 also requires RX and TX. Here RX and TX on ESP8266 are connected on pins 10 and 11 as communication between ESP8266 and Arduino Uno.
24 5.1.4. SIM900A Results of GSM Shield SIM900 series design on Arduino can be seen in the following figure: Illustration 5.4: SIM900A In series GSM Shield 900A connected with 5 volt voltage and negative voltage coming from Arduino Uno in GND port. Here ESP8266 is also connected simultaneously with SIM900 which usually receive data. ESP8266 and SIM900 both require TX and RX, but the serial hardware contained in the Arduino has only one pair. The devices in Arduino Uno are actually only recommended for use on one module only. If in one
25 module using two serial software at once classified as ineffective in the process. 5.2 Testing In this testing, experiments were carried out on the heartbeat of the MAX30100 series, the MLX90614 body temperature sensor, the ESP8266 wifi module, and the GSM Shield SIM900A. In this project there are three testing, namely: 5.2.1 Functional testing The results of the heart rate test rate of MAX30100 compared with manual experiment with pulse in hand, infrared temperature sensor series MLX90614 compared with thermometer experiment up to 10 respondents. The ESP8266 data transmission experiments connect on wifi and send data to the thingspeak server' and hosting server. Send an SMS experiment to a different provider using Modul GSM SIM900A series. Trial server system. 1. Results of body temperature measurement MLX90614 Table 5.1: Measurement Results of MLX90614 Responden 1 Responden 2 Responden 3 Responden 4 Sensor 0,5 cm= 36 C 1 cm= 33 C 1,5 cm= 32 C 0,5 cm= 36 C 1 cm= 33 C 1,5 cm= 32 C 0,5 cm= 35 C 1 cm= 33 C 1,5 cm= 32 C 0,5 cm= 36 C 1 cm= 33 C Termometer 35,90 C 35,60 C 35C 36,10C
26 1,5 cm= 32 C 0,5 cm= 35 C Responden 5 35,20 C 1 cm= 34 C 1,5 cm= 33 C 0,5 cm= 36 C Responden 6 35,40 C 1 cm= 35 C 1,5 cm= 34 C 0,5 cm= 36 C Responden 7 36,20 C 1 cm= 33 C 1,5 cm= 31 C 0,5 cm= 35 C Responden 8 35,30 C 1 cm= 34 C 1,5 cm= 33 C 0,5 cm= 35 C Responden 9 35,20 C 1 cm= 33 C 1,5 cm= 32 C 0,5 cm= 36 C Responden 10 35,80 C 1 cm= 33 C 1,5 cm= 32 C Conclusion: There is a difference of 0.81% to the experimental results of the sensor and thermometer at an optimal distance of 0.5 cm. 2. Results of heart rate measurement MAX30100 Table 5.2: Measurement Results of MAX30100 Responden Manual Sensor Responden 1 72 BPM 78 BPM Responden 2 81 BPM 83 BPM Responden 3 103 BPM 111 BPM Responden 4 70 BPM 75 BPM Responden 5 71 BPM 75 BPM Responden 6 82 BPM 88 BPM Responden 7 110 BPM 116 BPM
27 Responden 8 96 BPM 96 BPM Responden 9 75 BPM 75 BPM Responden 10 69 BPM 75 BPM Conclusion: There is a difference of 0.50% against the results of manual experiments and sensors. 3. Result of ESP8266 send data to thingspeak server and hosting server using wireless connection. Table 5.3: Result of Send Data to Thingspeak Server No Wifi Send to thingspeak (second) 1 MNC Play 20 2 MNC Play 21 3 MNC Play 21 4 MNC Play 20 5 MNC Play 21 Table 5.4: Result of Send Data to Hosting Server No Wifi Send to thingspeak (second) 1 MNC Play 20 2 MNC Play 20 3 MNC Play 20 4 MNC Play 21 5 MNC Play 20 Source code for connection to wireless: 1.void ESPSet() { 2. myserial.print("at+cwmode=1\r\n"); /*Mode 1 jadi station(menggunakan wifi sekitar)*/ 3. delay(300); 4. myserial.print("at+cwjap=\""); /*Prints the SSID and pass of Access Point ESP8266 is connected to*/ 5. myserial.print("locked"); 6. myserial.print("\",\""); 7. myserial.print("yammie456");
28 8. myserial.print("\"\r\nc"); 9. myserial.print("at+cifsr\r"); /*mengecek IP LOCAL ADDRESS*/ 10. delay(3000); 11. } Source code delivery to the thingspeak server: 1. String kirimts = "AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",80\r\n"; 2.void kirimthingspeak() { 3. url = "GET /update?api_key=dpd85bsxiqw1n2fz"; 4. url = url + "&field1=" + suhu; 5. url = url + "&field2=" + jantungrata; 6. url = url + " HTTP/1.1\r\nHost: api.thingspeak.com\r\nconnection: close\r\n\r\n"; 7. pengirimandata(url, kirimts); 8. } 9.void pengirimandata(string url, String kirim) { 10. Serial.println("1. Ukur Panjang dan Connect ke TCP"); 11. panjang = url.length(); 12. myserial.print(kirim); 13. delay(5000); 14. Serial.println("2. Kirim panjang ke ESP"); 15. myserial.print("at+cipsend="); 16. myserial.print(panjang); 17. myserial.print("\r\n"); 18. delay(200); 19. Serial.println("3. Eksekusi URL"); 20. myserial.print(url); 21. Serial.println(url); 22. delay(200); 23. } Source code for connection to wifi. 1.void ESPSet() { 2. myserial.print("at+cwmode=1\r\n"); /*Mode 1 jadi station(menggunakan wifi sekitar)*/ 3. delay(300); 4. myserial.print("at+cwjap=\""); /*Prints the SSID and pass of Access Point ESP8266 is connected to*/ 5. myserial.print("locked"); 6. myserial.print("\",\""); 7. myserial.print("yammie456"); 8. myserial.print("\"\r\nc"); 9. myserial.print("at+cifsr\r"); /*mengecek IP LOCAL ADDRESS*/ 10. delay(3000); 11. }
29 Source code delivery to server hosting: 1. String kirimht = "AT+CIPSTART=\"TCP\",\"medicaliot.xyz\",80\r\n"; 2.void kirimhosting() { 3. url = "GET /ambildata.php?data="; 4. url = url + suhu + "-" + jantungrata + "-" + pasien; 5. url = url + " HTTP/1.1\r\nHost: medicaliot.xyz\r\nconnection: close\r\n\r\n"; 6. pengirimandata(url, kirimht); 7. } 8.void pengirimandata(string url, String kirim) { 9. Serial.println("1. Ukur Panjang dan Connect ke TCP"); 10. panjang = url.length(); 11. myserial.print(kirim); 12. delay(5000); 13. Serial.println("2. Kirim panjang ke ESP"); 14. myserial.print("at+cipsend="); 15. myserial.print(panjang); 16. myserial.print("\r\n"); 17. delay(200); 18. Serial.println("3. Eksekusi URL"); 19. myserial.print(url); 20. Serial.println(url); 21. delay(200); 22. } 4. The test results of sending SMS to different destination provider with GSM Shield SIM900A series to different destination numbers. No Table 5.5: Result of Send SMS to Different Number Send SMS Provider (seconds) (Recieve) 1 2 Simpati 2 4 Mentari 3 4 Indosat IM3 Conclusion: The best provider used to be sent is Simpati. Source code checks the patient's situation: 1.if (suhu >= batassuhu suhu <= batasbawahsuhu jantung >= batasatasjantung jantung <= batasbawahjantung ) { 2. Serial.println ("Status: Keadaan Berbahaya"); 3. if (pengiriman == 0) { 4. SendMessage();
30 5. pengiriman = 1; 6. } 7. } else { 8. pengiriman = 0; 9. Serial.println("Status: Normal"); 10. } Source code sends SMS to destination number if patient condition is not normal: 11. void SendMessage() 12. { 13. Serial.println ("Sending Message..."); 14. Serial3.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode 15. delay(1000); 16. //Serial.println ("Set SMS Number"); 17. Serial3.println("AT+CMGS=\"" + nomor + "\"\r"); //Mobile phone number to send message 18. delay(1000); 19. //Serial.println ("Set SMS Content"); 20. String datasuhu; 21. datasuhu = String(suhu); 22. String SMS = "Pasien 1: Tercy, Status: Berbahaya, Suhu: " + datasuhu + " Celcius, " + " Jantung: " + jantung + " BPM"; 23. Serial.println(var[3]); 24. Serial3.println(SMS); 25. delay(100); 26. Serial3.println((char)26);// ASCII code of CTRL+Z 27. delay(1000); 28. //Serial.println ("Message has been sent ->SMS Selesai dikirim"); } 5. Result of system trial on the hosting server: Table 5.6: Result of Server System. No System Response 1 Login Doctor Success 2 Show Patient s Data Success 3 Show State Patient s Data Success 4 Alarm on when patient s condition abnormal Success
31 5 Login Admin Success 6 Input Patient s Data Success 7 Input Doctor s Data Success 8 Input Doctor s in Charge Data Success 9 Input Patient s Handler Success 10 Show Patient s Data Success 11 Show Doctor s Data Success 12 Show Doctor s in Charge Success Data 13 Show Patient s Handler Data Success 14 Open system without login Failed Conclusion: This system already good to use. 5.2.2. Performance Testing The testing of the time of delivery of 10 data, 100 data, 1000 data at once, then do the testing time of acceptance and acceptance of data and how the amount of incoming data on the hosting server and thingspeak server. The results of the experiment are:
32 Illustration 5.5: Send 10 Data to Hosting Server Illustration 5.6: Result of send 10 data to hosting server
33 Illustration 5.7: Send 100 Data to Hosting Server Illustration 5.8: Result of send 100 data to hosting server
34 Illustration 5.9: Send 1000 Data to Hosting Server Illustration 5.10: Result of send 1000 data to hosting server(1)
35 Illustration 5.11: Result of send 1000 data to hosting server(2) Illustration 5.12: Send 10 Data to Thingspeak Server
36 Illustration 5.13: Result of send 10 Data to Thingspeak Server Illustration 5.14: Send 100 Data to Thingspeak Server
37 Illustration 5.15: Result of send 100 Data to Thingspeak Server Illustration 5.16: Send 1000 Data to Thingspeak Server
38 Illustration 5.17: Result of send 1000 Data to Thingspeak Server Table 5.7: Send Directly Data Simultaneously to Thingspeak Server. No Send Data Data Send Data Received Result (Data (second) (second) Received) 1 10 data 48.049 72 3 data 2 100 data 103.204 92 7 data 3 1000 data 1065.4 898 70 data Conclusion: The thingspeak server only can accept 1 data per 15 seconds. Table 5.8: Send Directly Data Simultaneously to Hosting Server. No Send Data Data Send Data Received Result (Data (second) (second) Received) 1 10 data 2.558 2 2 data 2 100 data 22.549 20 11 data 3 1000 data 229.223 289 115 data Conclusion: The hosting server only can accept 1 data within a period of
39 1.2 to 2 seconds. 5.2.3. Perceptional testing Has done the division of questionnaire and answer 10 respondents to testing the body temperature sensor series MLX90614 and heartbeat sensor series MAX30100 that has been done. The result is the following: Table 5.9: Respondents answer about questionnaire NO DESKRIPSI TANGGAPAN YA TIDAK 1 Jari tangan yang ditempelkan pada sensor detak jantung nyaman? 100% 0% 2 Apakah alat pendeteksi detak jantung mempunyai bentuk yang cocok pada jari? 60% 40% 3 Apakah alat pendeteksi detak jantung memliki kelemahan? 50% 50% 4 Apakah alat pendeteksi detak jantung tidak menghantarkan aliran listrik dijari? 5 Apakah alat pendeteksi detak jantung ini memancarkan sinar yang membuat mata silau? 6 Apakah alat pendeteksi suhu tubuh cocok digunakan untuk masa depan? 7 Apakah alat pendeteksi suhu tubuh ini tergolong praktis tanpa sentuhan langsung? 70% 30% 60% 40% 80% 20% 60% 40% 8 Apakah alat pendeteksi suhu tubuh ini memiliki kelemahan? 40% 60% 9 Apakah ukuran alat pendeteksi suhu tubuh kecil? 80% 20% 10 Apakah alat pendeteksi suhu tubuh memancarkan inframerah yang tidak terlihat oleh mata? 80% 20% Conclusion: Based on the respondent answer sensors MAX30100 suitable for use as a heart rate sensor and sensor MLX90614 is also suitable for use as a body
temperature sensor. 40