Smart Portable IOT Vaccine

Smart Vaccine Monitor using IOT

Problem statement: This project is applicable to under developed and developing nations where the vaccines storage environment (temperature) tracking is a big problem. When the environment is not optimal (temperature is not within the expected range), the efficacy of these vaccines is lost. Overview: The health workers carry vaccine in a portable box with some cold pads eg) during door to door polio vaccine campaign. Our moto is to ensure the safety and efficacy of these vaccines. While the traveling health workers go around, based on the vaccine type and recommended environment setting, sensor data will be sent to the cloud. Using data analytics, we can predict if a vaccine vial is about to get spoiled (predictive analysis), so that it can be moved to a safety spot on time. Also, the data will help us determine if a health worker has not followed the best practices, and take actions accordingly. Also, using smartphones and cloud, health workers can be prevented to administer spoiled vaccine. This idea can be extended to efficient storage and handling of other environment-sensitive medicines as well. Technical working: Intel Edison board with multiple sensors (temperature, light, air quality, gyro) attached to it, is running in a portable box with vaccines, which a health worker is carrying. The board can be connected directly to WiFi, or we can enable to Bluetooth to connect to the mobile phone of the worker. Sensor data recorded is processed in an anomaly detection algorithm inside the IoT board and if it detects environment anomaly, the buzzer starts sounding. The processed data is also periodically pushed to the cloud for further analysis. Analysed data will send a live Push Notification to the mobile phone of the health worker, and his coordinator (a meaningful and informative message is displayed) to handle the crisis situation effectively. Software components: 1. Intel XDK for IoT to write JavaScript programs 2. Putty to run setup commands and install npm modules on Galileo 3. Android SDK to write Android App to receive Push Notifications from Cloud 4. Linux programming on Amazon EC2 to setup Amazon cloud 5. Apache Tomcat to run Restful web services to receive data from Galileo. 6.NoSQL database setup to store the received data. Hardware components: 1. Intel Edison board 2.Grove kit and sensors (temperature, light, air quality, gyro,GPS) 3. WiFi card

Step 1: Apparatus Required

*Intel Edison gen 2

*Groove Led

*Groove Buzzer

*Light Sensor

*UV sensor

*Dust Sensor

*Single Axis Gyroscope

*Temperature Sensor

*Groove Buzzer

Step 2: Hardware Connections:

Led----Red Led in D3,Green Led in D2

Buzzer in D6

Dust Sensor in D7

Light Sensor in A1

Temperature Sensor in A0

UV Sensor in A2

Single Axis Gyroscope in A3

Step 3: Programs to Display All the Sensor Values in Arduino Serial Monitor:

Please Align Properly

#include <math.h>

int a;// temp float temperature; int B=3975; //B value of the thermistor float resistance;//temp

#define LIGHT_SENSOR A1// Light Sensor A0 of Arduino const int thresholdvalue=10; //The treshold for which the LED should turn on. Setting it lower will make it go on at more light, higher for more darkness float Rsensor; //Resistance of sensor in K int sensorPin = A3; // select the input pin for the sensor gyro float reference_Value = 0; int sensorValue = 0; // store the value coming from the sensor gyro

// dust sensor int pin = 8; unsigned long duration; unsigned long starttime; unsigned long sampletime_ms = 2000;//sampe 30s ; unsigned long lowpulseoccupancy = 0; float ratio = 0; float concentration = 0;

#define LED 2 void setup() { Serial.begin(9600); pinMode(6, OUTPUT); // buzzer pin

pinMode(LED, OUTPUT); // red led moule int i; // single axis gyro float sum=0.0; pinMode(sensorPin, INPUT); Serial.begin(9600); Serial.println("Please do not rotate it before calibrate!"); Serial.println("Get the reference value:"); delay(1000); for(i=0;i<1000;i++) { // read the value from the sensor: sensorValue = analogRead(sensorPin); sum += sensorValue; delay(2); } Serial.print("The reference value is:"); Serial.println(sum/1000); reference_Value=sum/1000; //single axis gyro

pinMode(8,INPUT); // dust sensor starttime = millis();//get the current time; } void loop() { int sensorValue; // uv long sum=0; for(int i=0;i<1024;i++) { sensorValue=analogRead(A2); // Ao ch to A2 for UV sum=sensorValue+sum; delay(2); } sum = sum >> 10; Serial.print("The voltage value:"); Serial.print(sum*4980.0/1023.0); Serial.println("mV"); delay(20); Serial.print("\n");//uv a=analogRead(0);// temp resistance=(float)(1023-a)*10000/a; //get the resistance of the sensor; temperature=1/(log(resistance/10000)/B+1/298.15)-273.15;//convert to temperature via datasheet ; delay(1000); Serial.print("Current temperature is "); Serial.println(temperature); //temp

int sensorValue1 = analogRead(LIGHT_SENSOR); // light sensor analogue Rsensor = (float)(1023-sensorValue)*10/sensorValue; Serial.println("the analog read data is "); Serial.println(sensorValue); Serial.println("the sensor resistance is "); Serial.println(Rsensor,DEC);//show the ligth intensity on the serial monitor light analogue sens

double angularVelocity; // gyro sensorValue = analogRead(sensorPin); angularVelocity =((double)(sensorValue-reference_Value)*4950.0)/1023.0/0.67; Serial.print(angularVelocity); Serial.println("deg/s"); delay(500); // delay in between reads for stability gyro end

duration = pulseIn(pin, LOW); //dust sensor lowpulseoccupancy = lowpulseoccupancy+duration; if ((millis()-starttime) >= sampletime_ms)//if the sampel time = = 30s { ratio = lowpulseoccupancy/(sampletime_ms*10.0); // Integer percentage 0=>100 concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve Serial.print("concentration = "); Serial.print(concentration); Serial.println(" pcs/0.01cf"); Serial.println("\n"); lowpulseoccupancy = 0; starttime = millis(); }// dust

digitalWrite(6, HIGH); // buzzer digitalWrite(LED, HIGH); // set the LED on delay(500); // for 500ms }



    • Trash to Treasure

      Trash to Treasure
    • Pie Contest

      Pie Contest
    • Remix Contest

      Remix Contest