Coder Social home page Coder Social logo

sistem-climatizare's Introduction

Sistem Climatizare Inteligent

Cuprins
  1. Descriere
  2. Utilizare
  3. Echipa de dezvoltare

Sistemul de climatizare inteligent este conceput pentru a functiona cat mai simplu venind in ajutorul utilizatorilor pentru ca isi modifica singur temperatura si puterea cu care se circula aerul.

Aplicatia sistemului permite si alegerea de setari default si adaugarea se seturi de setari custom potrivite pentru necesitatile fiecaruia. Sistemul este conectat la un sistem de senzori de miscare care determina si modifica numarul de persoane din camera si la un termostat care transmite temperatura curenta din camera.

  • Python 3.10
  • API MQTT si AsyncAPI
  • REST API HTTP si OpenAPI
  • Firebase
  • Eclipse Mosquitto
  • Paho-mqtt
  • Pytest

Sistemul de climatizare este bagat in priza si apasat pe butonul de deschidere.

Se acceseseaza URL-ul: localhost:8088/[suffix]

[suffix] poate fi:

fisere_custom -> se afiseaza numele setarilor (Se va afisa cel putin numele Default si restul numelor setarilor adaugate)

fisiere_custom/[nume_setare] -> se afiseaza detalii despre setarea cu numele [nume_setare]

adaugare_setare -> se scriu detalii despre setare: nume setare, numar persoane, temperatura. Se apasa butonul Submit pentru finalizare.

alegere_setare -> se scrie numele setarii pentru ca sistemul de climatizare sa functioneze in functie de parametrii. Pentru simplitate se afiseaza si numele setarilor.

stergere_setare -> se scrie numele setarii pentru a fi sters. Pentru simplitate se afiseaza si numele setarilor.

backup_upload -> se scriu emailul si parola pentru autentificare cont. Setarile introduse in sistemul de climatizare (adaugate prin accesarea URL-ului localhost:8088/adaugare_setare) se vor stoca intr-o baza de date externa in cazul in care sistemul de climatizare se strica sau se doreste ca setarile sa se retina stocate altundeva decat pe sistemul de climatizare, ca mai apoi sa fie descarcate accesand URL-ul localhost:8088/backup_download (Vezi mai jos)

backup_download -> se scriu emailul si parola pentru autentificare cont. Se vor descarca in sistemul de climatizare setarile stocate in baza de date externa. Setarile cu acelasi nume din baza de date externa vor suprascrie setarile existente in sistemul de climatizare.

Note:

  1. Numele setarilor se regasesc intodeauna intre ghilimele. (Exemplu: 'Default' -> Numele setarii este Default)
  2. Setarea standard Default se va afla intodeauna in aplicatie si nu poate fi sters.
  3. Emailul si parola pentru autentificare backup_upload si backup_download: [email protected] (Emailul) si qwerty (Parola).
  4. In cazul in care, accesarea URL-urilor nu se face corect (nu se introduce numele unei setari existente, se incearca un alt URL care nu este specificat mai sus, se greseste emailul si/sau parola, etc.) se va afisa o pagina de eroare (codificari precum: ERR_EMPTY_RESPONSE sau HTTP ERROR 400)
  5. Setarea Default nu se poate sterge.
  • Pyhton versiunea 3.10
  • Librarie Python paho-mqtt versiune 1.6.1
  • Librarie Python pyrebase4 versiune 4.5.0
  • Librarie Python requests 2.27.1
  • Librarie Python requests-toolbelt 0.9.1
  • Eclipse Mosquitto 2.0.14

Aceasta categorie este pentru observarea functionalitatii scripturilor din aplicatie. O aplicatie reala (cu hardware propiu zis o sa ruleze toate scripturile din aplicatie si eventual, la cerere, adica din folderul sistem_climatizare/setari_utilizator) va utiliza componente hardware, reale precum: display (ecran pentru afisare temperatura, echivalent in aplicatie cu fisierul display.py), senzor_temperatura (echivalent software senzori_centralizare/temperature_sensor.py), circuite si placa de baza (echivalent software hardware.py) si senzori de intrare/iesire la usa (echivalent software sistem_climatizare/senzori_centralizare).

Pe scurt:

  • Se ruleaza app.py din folderul sistem_climatizare/api_http cu Python. (Pentru observarea functionalitatilor legate de REST API)

  • Se ruleaza toate scripturile de Python (inafara de cele din folderul sistem_climatizare/setari_utilizator care se ruleaza la cerere din app.py si fara sistem_climatizare/teste evident) si Eclipse Mosquitto. (Pentru observarea functionalitatilor legate de MQTT)

Sistemul de climatizare va avea in realitate un ecran atasat care va afisa temperatura transmisa de senzorul de temperatura (temperatura din camera, nu temperatura data de sistemul de incalzire al aparatului). Sistemul de incalzire al aparatului se va auto-regla in functie de senzorii de intrare/iesire.

Altfel spus, daca un numar de persoane intra in camera, camera se va incalzi mai lent pana la temperatura aleasa din fisierul de setare din RAM (sistem_climatizare/setari_utilizator/ram/fisier_ram.json), sau invers, daca ies persoane din camera, sa va incalzi mai repede (mai multe persoane inseamna mai multa caldura in camera, si invers).

Fisierul din RAM va exista intodeauna, precum si fisierul de setare Default. Fisierul din RAM este defapt o singura setare care se modifica in timp real (de aici si numele RAM) din multele setari din folderul setari_custom (de exemplu, daca iese o persoana, se scade numarul de la parametrul Numar_Persoane din fisierul setari_utilizator/fisier_ram.json), iar sistemul de caldura real controlat de fisierul hardware.py va incalzi camera in functie de numarul de persoane din camera. Daca utilizatorul inchide aparatul si il redeschide mai tarziu, fisierul RAM va ramane in aceeasi stare ca atunci cand a fost inchis.

Daca utilizatorul doreste sa aleaga alta setare, se va apela de pe pagina web, ruta .../alegere_setare care va incarca in fisierul RAM, o alta setare din cele din folderul setari_custom.

  • Barbu Iulia
  • Bodea George
  • Harsa Andrei
  • Hazaparu Daria
  • Mindruleanu Matei
  • Staicu Octavian

sistem-climatizare's People

Contributors

reksiocroft avatar georgebodea avatar george-bodea avatar iuliaaa2110 avatar m4731 avatar dariahazaparu avatar

Stargazers

 avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

Forkers

m4731 reksiocroft

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.