li jinhao
Published

Wearable Human Temperature&Humidity Monitor

Through temperature and humidity Sensor and air pressure, OLED, LEDs and buzzers indicate possible acute diseases that threaten human healt

BeginnerFull instructions provided5 hours194
Wearable Human Temperature&Humidity Monitor

Things used in this project

Hardware components

Seeeduino Lotus V1.1 - ATMega328 Board with Grove Interface
Seeed Studio Seeeduino Lotus V1.1 - ATMega328 Board with Grove Interface
×1
Grove - Piezo Buzzer
Seeed Studio Grove - Piezo Buzzer
×1
Seeed Studio Grove - RED LED
×1
Seeed Studio Grove - Temperature & Humidity Sensor (DHT11)
×1
Seeed Studio grove Air Pressure Sensor
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Laser cutter (generic)
Laser cutter (generic)

Story

Read more

Code

Wearable human temperature and humidity monitor

Arduino
//----- [oled] - (A) -------v
#include <U8x8lib.h>
U8X8_SSD1306_128X64_ALT0_HW_I2C
oled(/* reset=*/U8X8_PIN_NONE);
//-------------------------------------^
//----- [] - (A) -------v
#include "DHT.h"
#define DHTPIN 3  // D3
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float temperature;
float humidity;
//----------------------------------------------^
//---------- [] - (A) --------v
#include "Seeed_BMP280.h"
#include <Wire.h>
BMP280 bmp280;
float pressure;
float altitude;
//--------------------------------------------^
#define BUZZ_PIN 5
#define MY_LED 4


void setup() {

  // put your setup code here, to run once:
  Serial.begin(9600);
  //--------[oled] - (B) --------v
  oled.begin();
  oled.setFlipMode(1);  //01
  oled.setFont(u8x8_font_chroma48medium8_r);
  //------------------------------------------^
  //--------[] - (B) --------v
  dht.begin();
  temperature = 0;
  humidity = 0;
  //----------------------------------------------^
  //-------- [] - (B) ---------v
  if (!bmp280.init()) {
    Serial.println("Device not connected or broken!");
  }
  pressure = 0;
  //----------------------------------------^
  pinMode(MY_LED, OUTPUT);
}

void loop() 
{
  // put your main code here, to run repeatedly:

  //--------[oled] - (C) --------v
  oledPrint(0, "     WARNING" );
  oledPrint(1, "TEMP   " + String(temperature));  //
  oledPrint(2, "HUM    " + String(humidity));
  oledPrint(3, "ATM    " + String(pressure));  //
  //------------------------------------------^
  //--------[] - (C) ---------v
  //
  temperature = getTemperature();
  //
  humidity = getHumidity();
  //------------------------------------------^
  //-----------[] - (C) -----------v
  pressure = getPressure();
  altitude = getAltitude();
  //-------------------------------------------^
  

    if (temperature > 30) {
      analogWrite(BUZZ_PIN, 2000);
      delay(100);
      analogWrite(BUZZ_PIN, LOW);
      delay(100);
      digitalWrite(MY_LED, HIGH);
      delay(100);
      digitalWrite(MY_LED, LOW);
      delay(100);
      analogWrite(BUZZ_PIN, 2000);
      delay(100);
      analogWrite(BUZZ_PIN, 0);
      delay(100);
      digitalWrite(MY_LED, HIGH);
      delay(100);
      digitalWrite(MY_LED, LOW);
      delay(100);
      analogWrite(BUZZ_PIN, 2000);
      delay(100);
      analogWrite(BUZZ_PIN, 0);
      delay(100);
      digitalWrite(MY_LED, HIGH);
      delay(100);
      digitalWrite(MY_LED, LOW);
      delay(100);
      analogWrite(BUZZ_PIN, 2000);
      delay(100);
      analogWrite(BUZZ_PIN, 0);
      delay(100);
      digitalWrite(MY_LED, HIGH);
      delay(100);
      digitalWrite(MY_LED, LOW);
      delay(100);
    } 
    else if (temperature > 27) {
    analogWrite(BUZZ_PIN, 2000);
    delay(200);
    analogWrite(BUZZ_PIN, 0);
    delay(200);
    digitalWrite(MY_LED, HIGH);
    delay(200);
    digitalWrite(MY_LED, LOW);
    delay(200);
    analogWrite(BUZZ_PIN, 2000);
    delay(200);
    analogWrite(BUZZ_PIN, 0);
    delay(200);
    digitalWrite(MY_LED, HIGH);
    delay(200);
    digitalWrite(MY_LED, LOW);
    delay(200);
   }
    else {
      analogWrite(BUZZ_PIN, 0);

      digitalWrite(MY_LED, LOW);
    }
  }

  //--------[oled] - (D) --------v
  /**
 * oledPrint
 * oled_line4
 * oled_str,16
 */
  void oledPrint(int oled_line, String oled_str) {
    oled.clearLine(oled_line);  //oled_line
    oled.setCursor(0, oled_line);
    oled.print(oled_str);
  }
  //-------------------------------------^
  //--------[] - (D) ---------v
  // 250
  // 
  float getHumidity() {
    return dht.readHumidity();
  }

  float getTemperature() {
    //true == ; false == 
    return dht.readTemperature(false);
  }
  //----------------------------------------------^
  //-------------[] - (D) -----------v
  float getPressure() {
    return bmp280.getPressure();
  }

  float getAltitude() {
    return bmp280.calcAltitude(bmp280.getPressure());
  }
  //---------------------------------------------^

Credits

li jinhao
2 projects • 1 follower
Contact

Comments

Please log in or sign up to comment.