Friday, April 30, 2021

_WEEK 12_ (FYP2)

 

Activity: Briefing on Preparation Writing Technical Paper.


    On this week, the briefing was conducted via Microsoft Teams. Attendance of all FYP2 students is mandatory. They need to scan the QR code that has been provided and their attendance will be taken through Microsoft Team Attendance. The workshop was conducted by coordinator incharge, EN. MOHAMAD SHAIFUL BIN OSMAN. 


Date: 28 April 2021

Time: 2:30 pm – 4:30 pm

Via: Microsoft Teams


During the briefing, the coordinator have briefed us about:


Thursday, April 22, 2021

_WEEK 11_ (FYP2)

 

Activity: Briefing on Project Presentation & Technical Demonstration.


    Generally, during this week, the briefing was conducted via Microsoft Teams. Attendance of all FYP2 students is mandatory. They need to scan the QR code that has been provided and their attendance will be taken through Microsoft Team Attendance. The workshop was conducted by coordinator incharge, EN. MOHAMAD SHAIFUL BIN OSMAN. 


Date: 21 April 2021

Time: 2:30 pm – 5:00 pm

Via: Microsoft Teams


During the briefing, the coordinator have briefed us about:

Friday, April 16, 2021

_WEEK 10_ (FYP2)

 

Activity: 2nd Virtual discussion with Supervisor. 


    This week marks the 10th week of the semester. Due to the current situation that does not allow any physical activity to be held, so any discussion with supervisors related to the progress project will be held online, either by holding an online meeting via Microsoft Teams or WhatsApp's. The meeting started at 10:00 am and ended at 11:00 am. So, this week, my overall project, including both software and hardware, is almost complete. Virtual meeting with the supervisor this time is more useful to update the progress of the project. All project outputs are highlighted again to ensure that the project functions properly and that the project's objectives, which are to monitor the PUI's breathing activity and to display the PUI's breathing activity on a smartphone through the Blynk application, can be met. 

Friday, April 2, 2021

_WEEK 9_ (FYP2)

 

Activity: Prototype assembling & Final testing on the prototype for full operation.


    As the ordered mask has arrived safely, the installation of the sensors has resumed. In fact, last semester me and my supervisor planned to use an N95 mask to produce this E-mask. Considering the wearer's safety, the appropriateness of the product, and the efficiency of the project, I've chosen to switch from the N95 mask to the Chemical / Dust Gas Mask. This is because the N95 mask feature is not very suitable to install the sensors. Among the reasons is that the N95 mask material is soft and sticks close to the face, which will cause discomfort to the PUI. 

    Besides, the sensor installed on the N95 mask will basically be in direct contact with the PUI face. Figure below shows the prototype of the project where all the circuit are installed inside the mask to make it more safe and secure. Even though this is just a prototype, the safety of the wearer should also be a priority. Furthermore, on the filter side of the mask, microcontrollers such as the ESP8266 and AA batteries have been attached. Everything fits well, and the components are neatly placed. After all of the installation work is performed, the project is tested to ensure that it functions correctly.


Inside view of the prototype:




Outside view of the prototype:




Complete hardware prototype for the project: 



    To conclude this week activity, the objective of this week is achieved. Full function of the prototype is also a success to this project. The desired objective of this project is necessary, and based on the discussion, it can be said that this "E-mask for COVID-19: Person Under Investigation (PUI)" project was a big success. 

Thursday, March 25, 2021

_WEEK 8_ (FYP2)


Activity: Thesis Writing Workshop.


    Generally, in this week, the workshop was conducted via Microsoft Teams. Attendance of all FYP2 students is mandatory. They need to scan the QR code that has been provided and their attendance will be taken through Microsoft Team Attendance. The workshop was conducted by guest speaker, EN. AHMAD SYUKRI MOHAMAD. 


Date: 24 March 2021

Time: 3:00 pm – 5:00 pm

Via: Microsoft Teams


During the workshop, the speaker have briefed us about:

  • Workshop on Chapter 4
  • Workshop on Chapter 5
  • Abstract Writing










    The workshop was intended to explain details about the thesis writing in chapter 4, chapter 5 & abstract properly. The student are required to write their thesis according to the content needed. Detailed explanations were given that day which greatly helped the students to complete their thesis. 

Monday, March 15, 2021

_WEEK 7_ (FYP2)

 

Activity: Construct the Circuit on Breadboard & Testing.


    This week, I started building the circuit on the breadboard. Referring to figure above, it shows the parts of the circuit diagram for this E-mask project. The circuit consists of a NodeMCU ESP8266 Wi-Fi module, a BMP180 barometric pressure sensor and DHT11 temperature and humidity sensor. In this circuit diagram, the BMP180 pressure and DHT11 humidity sensors are connected according to the correct pin on the ESP8266 module. Based on the diagram above, this is a final implementation for the circuit diagram that has been made for the construction of the prototype throughout this semester.




    It can be concluded that the above activity conducted experiments in the circuit. However, the created circuit cannot operate effectively due to the lack of an appropriate cover to measure the pressure and air exhaled. While conducting this experiment, I only used the box as a cover to measure the required parameters because at that time the mask I ordered had not yet reached Malaysia. Overall, the experiment's testing went well, and all components worked well. This concludes the 7th week's activity, and I will try to resolve this issue as soon as possible.

Friday, March 12, 2021

_WEEK 6_ (FYP2)



Activity: Combine Source Code for the E-mask. 




    Overall during this week, coding for Wi-Fi ESP8266 module is obtained and the adjustments is done appropriately to the project. Aside from that, the Blynk application necessitates code. The code is based on past work and assistance from seniors. The Blynk application has been successfully installed and is communicating with the controller. Moreover, the Blynk application is configured with the relevant buttons in accordance with the microcontroller. When I found all of the coding for this project, I attempted to integrate it all into one code. Several sections of the code are derived from Google and prior UniKL BMI Projects. The Blynk application is downloaded, and some study is conducted to better understand how it works. In a nutshell, the coding has been tested and works as required. The next step is to build a circuit on the breadboard to ensure that the project works properly.


The following is the source code that has been successfully compiled:

#include <Adafruit_Sensor.h>  //In order to use DHT sensor we have to include this library first.

#define BLYNK_PRINT Serial  //Defining the object Serial. 

//______________________Include Libraries___________________________

#include <DHT.h>  //Including the DHT11 library.

#include <ESP8266WiFi.h>  //Including the ESP8266 Wi-Fi library in order to use them.

#include <BlynkSimpleEsp8266.h>  //Library for linking up Blynk with ESP8266.

#include <Wire.h>  //For using I2C connection of BMP180 in order to connect it to the board.

#include <Adafruit_BMP085.h>  //Including the library for BMP180.

Adafruit_BMP085 bmp;  //Defining the object BMP180.

#define I2C_SCL 12  //Connect SCL pin of BMP180 to GPIO12 (D6) of NodeMCU.

#define I2C_SDA 13  //Connect SDA pin of BMP180 to GPIO13 (D7) of NodeMCU.

float dst,bt,bp,ba;  //Declare float variable.

float h,t;  //Declare float variable.

float bpRef = 0;  //Declare float variable.

float hRef  = 0;  //Declare float variable.

int BreathCount = 0;  //Declare int variable.

int IntervalCount = 0;  //Declare int variable.

char dstmp[20],btmp[20],bprs[20],balt[20];  //Declare char variable.

bool bmp085_present = true;  //Declare Boolean variable.

bool BreathCountEn = false;  //Declare Boolean variable.

bool StartMeasureDone = false;  //Declare Boolean variable. 

char auth[] = "4rzRdKHPsOkrwM_560QzyzYvKrCRJLRi”.  

//Authentication Key will be there in the Blynk Application.

//_______________Mention the SSID and Password_____________________

char SSID[] = "MekLingg";  //SSID of my Wi-Fi hotspot.

char pass[] = "AzlinAnuar27";  //Password of my Wi-Fi.

int DHTErrorCnt = 0;  //Declare int variable.

#define DHTPIN 2  //Connect the DHT11 sensor's data pin to GPIO2 (D4) of NodeMCU.   

#define DHTTYPE DHT11  //Mention the type of sensor  which is DHT11.

DHT dht(DHTPIN, DHTTYPE);  //Defining the pin and the DHT type.

BlynkTimer timer;  //Defining the object timer.

WidgetLCD lcd(V1);  //Defining the object LCD (V1).

void sendSensor()

{

//_______________Check the working of BMP180 sensor__________________        

 if (!bmp.begin())

          {

              Serial.println("Could not find a valid BMP085 sensor, check wiring!");  //while (1) {}

          }

//_________Getting the Humidity and temperature value from DHT11_________

h = dht.readHumidity();  //Get Humidity %.    

          t = dht.readTemperature();  //dht.readTemperature (true) for Fahrenheit.

//_________________Check the working of DHT11 sensor_____________

 if (isnan(h) || isnan(t))

          {

              if(DHTErrorCnt++>10)  //If fail to read from DHT11,Send Debug message

              {

               Serial.println ("Failed to read from DHT sensor!");

                DHTErrorCnt = 0;

              }

          }

//_________Reading the value of Pressure, Temperature, Altitude from the BMP180________

          float bp =  bmp.readPressure()/100;  //Division by 100 makes it in millibars.

          float ba =  bmp.readAltitude();

          float bt =  bmp.readTemperature();

          float dst = bmp.readSealevelPressure()/100;

      if(BreathCountEn == false)  //Before start measuring, get the reference pressure and Humidity 1st.

          {

            bpRef += bp;

            hRef  += h;

            IntervalCount++;

          }

       if(IntervalCount>=4 && BreathCountEn == false)  //Average the reference by 4 and enable the Breath count.

          {

            bpRef /=4;

            hRef  /=4;

            BreathCountEn = true;

            lcd.clear();

            lcd.print(5, 0, "E-Mask");  //Use: (position X:0-15, position Y:0-1,

"Message you want to print")

            lcd.print(5, 1, "Ready !"); 

          }

          if(BreathCountEn && bp > bpRef)BreathCount+=1;  //If pressure reading > reference pressure, increase breath count by 1.

          if((BreathCount > 0 || h > hRef)&& StartMeasureDone == false)  //If Humidity reading > reference Humidity, start measuring.

          {

             lcd.clear();

         lcd.print(2, 0, "Measuring...");  //Use: (position X:0-15, position Y:0-1, "Message you want to print")

             lcd.print(2, 1, "Breath Count");

             StartMeasureDone = true;

          }

 //_____Printing the values of the above read value on to the Virtual Pins in the Blynk App____

          Blynk.virtualWrite(V5 , h);  //Send Humidity to Blynk.

          Blynk.virtualWrite(V6 , t);  //Send Temperature to Blynk.

          Blynk.virtualWrite(V10, bp);  //Send Pressure to Blynk.

          Blynk.virtualWrite(V12, bt);  //Send Temperature to Blynk.

          Blynk.virtualWrite(V13, BreathCount);  //Send Breath Count to Blynk.

//______Printing the values of the above read value on Arduino Serial Terminal_____   

          Serial.print(bp); Serial.println("mbar");  

          Serial.print(bt); Serial.println("degrees C");

          Serial.print(h); Serial.println("% Humi");

          Serial.print(t); Serial.println("degrees C");

          Serial.print(BreathCount); Serial.println("Breath Count");

          Serial.print(bpRef); Serial.println("bp Ref"); 

}

void BreathRateInOneMin()

{

 Serial.print(BreathCount); Serial.println("Count");

 timer.setTimeout(60000, BreathRateInOneMin);

 if(BreathCount >=12 && BreathCount<=20)  //Breath count is considered Normal within 12 to 20 beats per minute.

 {

  //Blynk.notify("Normal Breath");

  lcd.clear();

  lcd.print(2, 0, "Normal Breath");  //Use: (position X:0-15, position Y:0-1, "Message you want to print")

  lcd.print(9, 1, BreathCount);

 }

 else if(BreathCount> 20 || BreathCount < 12)  //Else breath count is considered Abnormal if >20 or <12 beats per minute.

 {

  if(BreathCount == 0)  //Else if = 0, No Breath activity.

  {

//Blynk.notify("No Breath Activity!");

  lcd.clear();

  lcd.print(0, 0, "No Activity");  //Use: (position X:0-15, position Y:0-1,

"Message you want to print")

  lcd.print(9, 1, BreathCount);

  }

  else

  {

    //Blynk.notify("Abnormal Breath!");

   lcd.clear();

   lcd.print(0, 0, "Abnormal Breath!");  //Use: (position X:0-15, position Y:0-1, "Message you want to print")

   lcd.print(9, 1, BreathCount);

   Blynk.notify("Abnormal Breath !!!");

  }

 }

 BreathCount = 0;

}

void setup()

{

         Serial.begin(9600);  //Initializing the Serial Monitor with a Baud Rate of 9600.

          Blynk.begin(auth, ssid, pass);  //Start Blynk Application.

          dht.begin();  //Initializing the DHT sensor.

          Wire.begin(I2C_SDA, I2C_SCL);  //Initializing the I2C connection. 

          delay(10);  //Delay 10ms to complete.

          lcd.clear();  //Use it to clear the LCD Widget.

          lcd.print(3, 0, "Diagnostic");  //Use: (position X:0-15, position Y:0-1, "Message you want to print")

        lcd.print(5, 1, "Test!");  //Please use timed events when LCD printing in void loop to avoid sending too many commands.

//It will cause a FLOOD Error, and connection will be dropped.

timer.setInterval(1000L, sendSensor);  //Interval 1 second to read sensors.

timer.setTimeout(60000, BreathRateInOneMin);  //Interval 1 minute to check Breath count.

}

void loop()

{

  Blynk.run();  //Continue run Blynk Application.

  timer.run();  //Continue run timer.

} 

//Source code above is written by Norazlin binti Anuar for FYP2 project Semester Jan 2021.

//Program in Arduino IDE for “ E-mask for COVID-19: Person Under Investigation (PUI)”

_WEEK 19_ (FYP2)

  Activity: Hardcover print & Complete Thesis Submission.      Generally, this was the final week for the progress report of my Final Ye...