Aquarium Monitor System

Autor: Negoita Alexandra-Ana

Grupa: 1220FB

Introducere

Proiectul reprezinta un sistem de monitorizare a parametrilor corespunzatori intretinerii unui acvariu, si anume:

  • Temperatura apei;
  • Temperatura din camera;
  • Nivelul apei;
  • Lumina.

Aceste informatii sunt afisate pentru utilizator pe un LCD, pentru ca acesta sa le poata tine sub control. Sistemul va tine lumina acvariului aprinsa pe parcursul zilei si o va stinge la intuneric.

Ideea acestui proiect a venit din faptul ca, avand un acvariu, am avut nevoie sa stiu daca temperatura apei este optima pentru pesti, fiind un aspect crucial in ingrijirea lor. De asemenea, cum pestii au nevoie si de intuneric, lumina acvariului trebuie sa fie stinsa pe timpul noptii in mod automat.

Descriere generală

Interactiunea cu utilizatorul

Pe cutia sistemului AMS, utilizatorul are la dispozitie:

1. Un ecran LCD pe care sunt afisati parametrii in mod corespunzator:

Ecranul are un afisaj structurat astfel:

  • Tapa - temperatura apei, urmata de valoarea acesteia;
  • Taer - temperatura din camera, urmata de valoarea acesteia;
  • LvL - nivelul apei, urmat de o valoare de la 1 la 5;
  • DAY/NIGHT - arata ce perioada a zilei detecteaza sistemul si starea luminii acvariului ( DAY - lumina este inchisa; NIGHT - lumina este aprinsa);

2. Utilizatorul are de asemenea doua comutatoare:

  • Un comutator pentru a conecta circuitul principal la prima baterie (9V);
  • Un comutator pentru a conecta sursa de lumina la cea de a doua baterie (9V);

3. Exista, de asemenea, si un potentiometru pentru a regla contrastul ecranului.

Senzorii si pozitionarea lor

  1. Sistemul de monitorizare se afla intr-o cutie transparenta, pentru a se vedea prototipul cat mai bine.
  2. Senzorul de temperatura a apei, dar si senzorul de nivel al apei se afla in afara cutiei, pentru a fi plasate cu usurinta in acvariu, pe peretii acestuia;
  3. Senzorul de temperatura a camerei se afla in interiorul cutiei, plasat cu un surub de peretele acesteia;
  4. In acest fel este pus si modulul cu fotorezistor, acesta mai avand si o perforatie pentru a putea detecta nivelul de lumina;
  5. Placa compatibilă cu Arduino UNO R3 se afla in partea de jos a cutiei, impreuna cu cele doua baterii in lateral si placa de prototipare deasupra acestora;

Schema bloc

Hardware Design

Lista pieselor folosite:

  • Placă compatibilă cu Arduino UNO R3
  • LCD 1602 cu backlight albastru
  • Senzor de temperatura rezistent la apa
  • Senzor de temperatura aer
  • Senzor nivel apa
  • Senzor intensitate luminoasa
  • Banda LED
  • Placa de prototipare
  • Comutatoare
  • Potentiometru
  • Rezistente
  • Fire

Software Design

Mediu de dezvoltare

Dezvoltarea codului a fost realizata in programul Arduino IDE.

Biblioteci folosite

  • LiquidCrystal.h → Pentru functiile necesare la LCD;
  • OneWire.h → Pentru accesarea senzorului de temperatura a apei;
  • DallasTemperature.h → Pentru functiile necesare la senzorul de temperatura a apei;
  • Adafruit_NeoPixel.h → Pentru functiile necesare la banda LED;
  • “DHT.h” → Pentru functiile necesare la senzorul de temperatura a aerului;

Blocurile de cod implementate

Senzorul de temperatura a apei Pentru citirea datelor de pe senzor se folosesc functiile specifice, date in biblioteca senzorului “DallasTemperature”.

  • begin() - Se afla in functia setup() si stabileste comunicarea seriala dintre Arduino si senzor;

In functia loop():

  • requestTemperatures() - Trimite comanda pentru senzor de a efectua o conversie a temperaturii;
  • getTempCByIndex(index) - Primeste temperatura in Celsius; Avand un singur senzor conectat, la parametrul 'index' al metodei se pune valoarea zero;

Senzorul de temperatura a aerului Pentru citirea datelor de pe senzor se folosesc functiile specifice, date in biblioteca senzorului “DHT”.

  • begin() - Se afla in functia setup() si stabileste comunicarea seriala dintre Arduino si senzor;

In functia loop():

  • readTemperature() - Primeste temperatura citita de senzor in Celsius;

Senzorul de nivel al apei Pentru citirea datelor de pe senzor se foloseste functia analogRead(), impreuna cu pinul analog, care citeste valoarea aflata pe pin;

Modulul cu fotorezistor Pentru citirea datelor de pe senzor se foloseste functia digitalRead(), impreuna cu pinul digital, care citeste valoarea aflata pe pin; Valoarea va fi HIGH sau LOW;

  • Atunci cand valoarea este egala cu LOW, inseamna ca lumina este prezenta, deci senzorul detecteaza ca este zi. In acest caz, pe LCD se va afisa textul “DAY”, iar banda LED se va aprinde;
  • Atunci cand valoarea este egala cu HIGH, inseamna ca lumina este blocata, deci senzorul detecteaza ca este noapte. In acest caz, pe LCD se va afisa textul “NIGHT”, iar banda LED se va stinge;

Banda LED NeoPixel Pentru citirea datelor de pe senzor se folosesc functiile specifice, date in biblioteca senzorului “Adafruit_NeoPixel”.

  • begin() - Se afla in functia setup() si stabileste comunicarea seriala dintre Arduino si banda LED;

In functia loop(), in conditiile date de modulul cu fotorezistor:

  • Atunci cand este zi, se apeleaza functia setPixelColor() pentru fiecare LED de pe banda. Culoarea transmisa va fi alba.
  • Atunci cand este noapte, se apeleaza functia setPixelColor() pentru fiecare LED de pe banda. Culoarea transmisa va fi neagra.
  • De asemenea, dupa fiecare modificare a culorii, este apelata functa show(), pentru ca datele actualizate sa fie transmise catre banda.

Ecranul LCD Pentru lucrul cu LCD se folosesc functiile specifice, date in biblioteca LiquidCristal.

  • begin() - Se afla in functia setup() si stabileste comunicarea seriala dintre Arduino si LCD; Se dau numarul de coloane si de randuri care vor fi folosite;

In functia setup() si loop():

  • setCursor() - Seteaza pozitia de pe care se va continua scrierea pe LCD;
  • print() - Afiseaza datele pe LCD;

Rezultate Obţinute

Concluzii

Am invatat foarte multe despre folosirea microprocesoarelor si crearea unor astfel de proiecte. De asemenea, voi folosi in continuare proiectul AMS si pentru acvariile mele, deoarece a fost facut si dupa nevoile pe care le aveam eu si isi indeplineste scopul cu eficienta.

Download

Jurnal

  • 26.04 - Descriere proiect intermediara
  • 15.05 - Finalizare circuit proiect
  • 23.05 - Prezentare faza intermediara
  • 27.05 - Proiect final

Bibliografie/Resurse

pm/prj2022/avaduva/aquarium-monitor-system.txt · Last modified: 2022/05/28 00:11 by alexandra.negoita02
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0