Project tutorial
Smart Safety Cabinet

Smart Safety Cabinet

Displaying, storing of data on a LCD I2C 16X2 and SD card from a sterilized hood using Arduino.

  • 303 views
  • 0 comments
  • 3 respects

Components and supplies

181 02
Adafruit Standard LCD - 16x2 White on Blue
Displaying of data
×1
A000066 iso both
Arduino UNO & Genuino UNO
The microcontroller
×1
11026 02
Jumper wires (generic)
serves as the conductors
×30
5182558
Flash Memory Card, SD Card
Use to store the data
×1
Sd deck 585px 42avl2pfca
Bitcraze Micro SD card deck
Holds the SD card
×1
41vjwzaib4l  sx425  iprkdeou4l
DHT11 Temperature & Humidity Sensor (3 pins)
Used to measure the temperature and humidity of the hood
×1
10988 01
Temperature Sensor
to measure the temperature of the Lab
×1

Necessary tools and machines

3drag
3D Printer (generic)

Apps and online services

Arduino IDE
used to sketching of the code

About this project

INTRODUCTION

A Biological Safety Cabinet is a ventilated enclosure offering protection to the user, the product and the

environment from aerosols arising from the handling of potentially hazardous micro-organisms.

Biological Safety Cabinets are classified into three classes based upon their containment capabilities when

working with biological agents.

PROBLEM

Data collection in the BSCs is very essential. Sample temperature and humidity are important parameters in

determining the conditions necessary for growth. Again, the number of times the BSC is accessed by

personnel can also be valuable information. A device which will collect these data is very essential and not

available.

EXPECTED SOLUTION

A device which will collect the sample temperature and humidity and the number of times the BSC is accessed should solve this problem.

Feature Plans

User receiving data with smart phone

Reaching data through Cloud service.

Code

SmartSafetyCab CodeC/C++
code for setup. Upload to arduino.
 //The circuit:
 /* /Data of DHT connected to pin 2
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 10*/


// include the library code:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
// initialize the library by associating any needed LCD interface pin

#include <SD.h>
#include <SPI.h>
#include <DHT.h>

#define DHTPIN 2 //D5 on nodemcu
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
//IMPORTING LCD LIBRARY
#include <Wire.h>

int chipSelect = 10;
File labData;
 //TMP36 Pin Variables
int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to
                        //the resolution is 10 mV / degree centigrade with a
                        //500 mV offset to allow for negative temperatures
 float LabTemp;
 float voltage;
 int reading;
 int delayTime = 1000;
 float CabTemp;
  float CabHum; 
  int count=0;
/*
 * setup() - this function runs once when you turn your Arduino on
 * We initialize the serial connection with the computer
 */
void setup()
{
  Serial.begin(9600);  //Start the serial connection with the computer
                       //to view the result open the serial monitor 
  dht.begin(); // initialize the DHT
  // set up the LCD's number of columns and rows:
  
  lcd.init();                      // initialize the lcd 
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(1,0);
  lcd.print("BIOLAB");
  //delay(6000);
  lcd.setCursor(1,1);
  lcd.print("TEMP & HUMTY");
    delay(6000);
  lcd.clear();
  pinMode(10, OUTPUT);
  SD.begin(chipSelect);
}
 
void loop()                     // run over and over again
{
  count++;
 //getting the voltage reading from the temperature sensor
 reading = analogRead(sensorPin);  
 
 // converting that reading to voltage, for 3.3v arduino use 3.3
 voltage = reading * 5.0;
 voltage /= 1024.0; 
 
 // print out the voltage
// Serial.print(voltage); Serial.println(" volts");
 
 // now print out the temperature
 LabTemp = (voltage - 0.5) * 100 ;  //converting from 10 mv per degree wit 500 mV offset
 
 
 // now convert to Fahrenheit
 //float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
 //Serial.print(temperatureF); Serial.println(" degrees F");
  
 CabTemp = dht.readTemperature();
 CabHum = dht.readHumidity();
 Serial.print("(");
 Serial.print(count);
 Serial.print(")");

  labData = SD.open("temData.txt", FILE_WRITE);
  // for ( i=1; i>0; ++i);
  if (labData) {
   
    Serial.print("LTemp: ");                                              //to degrees ((voltage - 500mV) times 100)
    Serial.print(LabTemp); 
    Serial.print("*C   ");
 
    Serial.print("CabTemp: ");
    Serial.print(CabTemp);
    Serial.print("*C   ");

    Serial.print("  CabHum: ");
    Serial.print(CabHum);
    Serial.println("%");
    
    labData.print("(");
    labData.print(count);
    labData.print(")");
    labData.print("LabTemp:");
    labData.print(LabTemp);
    labData.print("*C");
    labData.print("  CabTemp:");
    labData.print(CabTemp);
    labData.print("*C");
    labData.print("  ");
    labData.print("CabHum:");
    labData.print(CabHum);
    labData.println("%");
    labData.close();
    delay(1000);
  }
  else
  {
    Serial.print("LTemp: ");                                              //to degrees ((voltage - 500mV) times 100)
    Serial.print(LabTemp); 
    Serial.print(" *C   ");
    Serial.print("CabTemp: ");
    Serial.print(CabTemp);
    Serial.print(" C");

    Serial.print("CabHum: ");
    Serial.print(CabHum);
    Serial.println(" %");

   Serial.println("error reading SD card");
  }
  delay(1000);




  lcd.setCursor (0, 0); 
  lcd.print("CTp=");
  if (CabTemp < 10) {
    lcd.print(CabTemp, 0);
    lcd.print("C ");
    
   
  } else if (CabTemp >= 10) {
    lcd.print(CabTemp, 0);
    lcd.print(" C ");
  } else {
    lcd.print("---- ");
  }
  lcd.print("LTp=");
  lcd.print(LabTemp,0);
  lcd.print("C");

  
  lcd.setCursor (0, 1);
  lcd.print("CHm= ");
  if (CabHum >= 20 && CabHum <= 90) {
    lcd.print(CabHum, 0);
    lcd.print(" %   ");
  }
  else {
    lcd.print("------ ");
  }


  delay(1000);
 
  
}

Schematics

Circuit Diagram using Fritzing
shows the wire connections
Smartsafetysketch vuvktja4gw
Data Stored on SD-Card
temperature and humidity of hood and Lab reading saved on a SD-card for future use or transfer
Labdata i2e22ogfpf

Comments

Similar projects you might like

Safe Home Smart Home: Safety Device For Every Family Member

Project tutorial by Patel Darshil

  • 4,602 views
  • 0 comments
  • 11 respects

Smart Battery Charger Multiplexer with Smart Display

Project tutorial by leonzak

  • 2,192 views
  • 4 comments
  • 13 respects

Smart Home Automation And Security System Using 1Sheeld

Project tutorial by Team SADEE

  • 7,536 views
  • 6 comments
  • 29 respects

Home Monitoring System and Smart Home Solution

Project showcase by Akash Kumar

  • 7,849 views
  • 0 comments
  • 26 respects

RF BASED SMART HOME AUTOMATION SYSTEM

by Dennis Mwanza

  • 31,818 views
  • 4 comments
  • 48 respects

Smart Home - Smart Rules using ARTIK Cloud & Photon

Project tutorial by Raghavendra Ponuganti

  • 4,552 views
  • 2 comments
  • 15 respects
Add projectSign up / Login