Table of Contents

Smart Desk System - Bolontoc Daniel

Daniel Bolontoc Website

Student: Daniel BOLONTOC
Grupă: 335CB
An universitar: 2022-2023

Introducere

Sistemul inteligent pentru birou bazat pe Arduino este o soluție avansată ce monitorizează și afișează informații vitale într-o manieră eficientă și practică. Echipat cu senzori de temperatură și umiditate, acest sistem poate măsura și raporta în timp real aceste date în biroul dumneavoastră.

Cu ajutorul funcționalității sale inteligente, sistemul este capabil să ofere o imagine precisă și actualizată a condițiilor ambientale. Astfel, puteți ști întotdeauna temperatura și umiditatea exactă din birou, ceea ce poate contribui la confortul și productivitatea dumneavoastră.

Pe lângă aceasta, sistemul inteligent pentru birou este dotat și cu un afișaj integrat, care vă permite să vizualizați, în timp real, valorile temperaturii și umidității, într-un format ușor de înțeles. De asemenea, acesta afișează și ora actuală, astfel încât să puteți monitoriza în același loc informații esențiale.

Folosind tehnologia Arduino, sistemul este flexibil și poate fi personalizat în funcție de necesitățile dumneavoastră specifice. Aceasta înseamnă că puteți adăuga funcționalități suplimentare sau conectivitate cu alte dispozitive, pentru a optimiza performanța și utilitatea sistemului.

Cu un sistem inteligent pentru birou ce masoară temperatura, umiditatea și afișează ora facut cu Arduino, beneficiați de un instrument util și inteligent pentru a vă menține un mediu de lucru confortabil și productiv.

Descriere generală

Sistemul inteligent pentru birou este o soluție tehnologică avansată care utilizează diverse senzori și componente electronice pentru a monitoriza și gestiona diferite aspecte ale mediului de lucru dintr-un birou. Aceste sisteme sunt proiectate pentru a crea un mediu de lucru optim și eficient, îmbunătățind confortul, productivitatea și bunăstarea angajaților.

Cu aceste funcționalități avansate și caracteristici versatile, sistemul de monitorizare a temperaturii, umidității și orei aduce un nivel suplimentar de control și confort în biroul dumneavoastră.

Pentru cine poate fi util acest proiect?
Sistemul inteligent pentru birou este util atât pentru angajați, oferindu-le un mediu de lucru confortabil și eficient, cât și pentru companie, optimizând productivitatea și reducând costurile asociate cu gestionarea mediului de lucru.

Organigrama si Mod de functionare

Funcționalitatea sistemului:

Componente

  • Arduino UNO,
  • LCD Display + (Modul I2C) + Potentiometru integrat,
  • Senzor Temperatura si Umiditate: DHT11,
  • Ceas in timp real: MH Real-Time-Clock Module - 2,
  • Butane (PUSH),
  • Rezistente 10K,
  • Fire,
  • Baterie: CR2025
  • Breadboard.

Schema electrica a circuitului

Click pe imagine daca nu se vede clar!

Circuit fizic implementat

Software Design

Source Code - GitHub

Mediu de dezvoltare: Arduino IDE

#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <Wire.h>
#include <virtuabotixRTC.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(11, DHT11);
virtuabotixRTC myRTC(6, 7, 8);
byte degree_symbol[8] = {
  0b00111,
  0b00101,
  0b00111,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};
const int buttonPin = 2;
const int buttonPin2 = 3;
int displayMode = 0;
int buttonState = HIGH;
int lastButtonState = HIGH;
int buttonState2 = HIGH;
int lastButtonState2 = HIGH;
unsigned long lastDebounceTime = 0;
void setup() {
  lcd.init();
  lcd.backlight();
  lcd.createChar(1, degree_symbol);
  lcd.setCursor(0, 0);
  lcd.print(" Smart Desk Sys");

  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(buttonPin2, INPUT_PULLUP);

  dht.begin();
}

Dacă starea butonului principal (buttonPin) se modifică, se actualizează buttonState și, dacă noul starea este LOW (butonul a fost apăsat), displayMode este incrementat cu 1 folosind operatorul modulo 3 pentru a trece la următorul mod de afișare (temperatură, umiditate, timp).

Dacă starea butonului secundar (buttonPin2) se modifică, se actualizează buttonState2 și, dacă noul starea este LOW (butonul a fost apăsat), displayMode este incrementat cu 2 și apoi este aplicat operatorul modulo 3 pentru a trece la modul de afișare anterior (rotație în direcție inversă).

În funcție de valoarea displayMode, se afișează informațiile corespunzătoare pe afișajul LCD. Dacă displayMode este 0, se citește temperatura cu ajutorul senzorului DHT și se afișează pe afișaj împreună cu simbolul personalizat de grad. Dacă displayMode este 1, se citește umiditatea și se afișează pe afișaj. Dacă displayMode este 2, se actualizează timpul folosind modulul RTC și se afișează pe afișaj.

La sfârșitul buclei, se actualizează lastButtonState pentru a memora starea butonului principal pentru următoarea iterație a buclei:

void loop() {
  int reading = digitalRead(buttonPin);
  int reading2 = digitalRead(buttonPin2);

  if (reading != buttonState) {
    buttonState = reading;
    if (buttonState == LOW) {
      displayMode = (displayMode + 1) % 3;  // Toggle display mode between temperature, humidity, and time
    }
  }

  if (reading2 != buttonState2) {
    buttonState2 = reading2;
    if (buttonState2 == LOW) {
      displayMode = (displayMode +2) % 3;  // Toggle display mode in the opposite direction
    }
  }

  if (displayMode == 0) {
    float temperature = dht.readTemperature();
    lcd.setCursor(0, 1);
    lcd.print("Temp: ");
    lcd.print(temperature);
    lcd.write(1);
    lcd.print("C");
    lcd.print("    ");
  } else if (displayMode == 1) {
    float humidity = dht.readHumidity();
    lcd.setCursor(0, 1);
    lcd.print("Humidity: ");
    lcd.print(humidity);
    lcd.print("%");
  } else if (displayMode == 2) {
    myRTC.updateTime();
    lcd.setCursor(0, 1);
    lcd.print("Time: ");
    if (myRTC.hours < 10) {
      lcd.print("0");
    }
    lcd.print(myRTC.hours);
    lcd.print(":");
    if (myRTC.minutes < 10) {
      lcd.print("0");
    }
    lcd.print(myRTC.minutes);
    lcd.print(":");
    if (myRTC.seconds < 10) {
      lcd.print("0");
    }
    lcd.print(myRTC.seconds);
    lcd.print("   ");
  } 
  lastButtonState = reading;
}

Concluzii

Sunt AS pe lipit componente cu pistolul!

Download:

Export to PDF