This is an old revision of the document!


Smart Pet Water Dispenser

Introducere

Soluție inovatoare concepută pentru a asigura confortul și sănătatea animalelor de companie prin furnizarea automatizată a apei proaspete. Acest dispozitiv utilizează tehnologii avansate pentru a monitoriza nivelul apei, a reumple rezervorul la nevoie și a oferi notificări în timp real către proprietari. Plecând de la ideea de a simplifica și automatiza procesul de aprovizionare cu apă pentru animalele de companie, proiectul își propune să ofere o soluție eficientă și inteligentă, atât pentru proprietari, cât și pentru animalele lor de companie.

Descriere generală

Hardware Design

Lista de piese:

  • Microcontroller (Arduino Uno sau Arduino Nano)
  • Senzor de nivel de apă
  • Pompă de apă submersibilă
  • Modul WiFi (ESP8266)
  • Modul RTC (Real-Time Clock)
  • Baterie sau sursă de alimentare
  • Carcasă pentru protejarea componentelor
  • Rezervor pentru apă
  • Conectori și fire pentru conexiuni

Conexiuni:

Senzor de nivel al apei (HC-SR04)

  • VCC la 3.3V de la Arduino
  • GND la GND de la Arduino
  • Trig la pinul digital 9 de la Arduino
  • Echo la pinul digital 10 de la Arduino

Pompă de apă (controlată prin tranzistor)

  • E (emitter) de la tranzistor NPN la GND de la Arduino
  • B (bază) de la tranzistor NPN printr-o rezistență de 220Ω la pinul digital 3 de la Arduino (PWM)

Senzor de calitate a apei (turbiditate)

  • VCC la 3.3V de la Arduino
  • GND la GND de la Arduino
  • S (semnal) la pinul analogic A0 de la Arduino trecut prin rezistente pentru a schimba din 3.3V → 1V

Software Design

Mediu de Dezvoltare (IDE) : Arduino IDE

Librarii Utilizate:

  • ESP8266WiFi.h: Permite conectivitatea WiFi pentru modulul ESP8266.
  • PubSubClient.h: Permite comunicarea MQTT pentru publicarea și abonarea la topicuri.

Structura:

  • Librării și Constante:
    • Include librăriile necesare.
    • Definește credențialele WiFi, detaliile broker-ului MQTT, pinii senzorilor și variabilele globale.
  • Funcții:
    • setup_wifi(): Conectează ESP8266 la rețeaua WiFi specificată.
    • callback(char topic, byte payload, unsigned int length): Funcție de tip callback pentru procesarea mesajelor MQTT primite.
    • reconnect(): Reconectează la broker-ul MQTT dacă conexiunea este pierdută.
    • setup(): Inițializează comunicarea serială, WiFi, MQTT și pinii senzorilor.
    • loop(): Bucla principală care verifică conexiunea MQTT și verifică periodic prezența animalului de companie.
    • checkPetPresence(): Folosește senzorul ultrasonic pentru a detecta prezența unui animal și verifică nivelul apei dacă nu este detectat niciun animal.
    • readSensor(): Citește senzorul de nivel al apei și returnează citirea curentă.

Algoritmi Implementați

  • Conexiunea WiFi:
    • Încearcă să se conecteze la rețeaua WiFi specificată.
    • Afișează starea conexiunii și adresa IP odată conectat.
  • Conexiunea și Reconectarea MQTT:
    • Se conectează la broker-ul MQTT cu un ID de client unic.
    • Se abonează la topicul MQTT specificat.
  • Citirea Senzorului Ultrasonic:
    • Trimite un puls de declanșare și măsoară durata pulsului de ecou.
    • Calculează distanța bazată pe durata pulsului.
  • Verificarea Nivelului de Apă:
    • Citește valoarea analogică de la senzorul de nivel al apei.
    • Pornește pompa dacă nivelul apei este prea scăzut.
    • Trimite un mesaj MQTT dacă pompa a fost activată de mai multe ori.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Săptămâna Sarcină Descriere
21 Apr – 5 Mai Documentare inițială Cercetare privind componentele și soluțiile similare.
21 Apr – 5 Mai Achiziționare componente Achiziționarea microcontrolerului, senzorilor, pompei, etc.
21 Apr – 5 Mai Prototipare hardware Asamblarea circuitului pe breadboard.
13 Mai – 17 Mai Programare inițială Scrierea codului pentru citirea senzorilor și controlul pompei.
13 Mai – 17 Mai Integrare senzori Implementarea funcționalităților pentru senzorii de nivel și calitate a apei.
13 Mai – 17 Mai Control PWM și întreruperi Configurarea PWM pentru pompa de apă și întreruperilor pentru nivelul scăzut de apă.
Testare și calibrare Testarea sistemului și ajustarea parametrilor pentru funcționare optimă.
Documentare finală Redactarea documentației pentru proiect.
Prezentare și revizuire Prezentarea proiectului și revizuirea finală pe baza feedback-ului.

Download

https://github.com/YANNICKKO/SmartWaterDispenser

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/ccontasel/yannick.koning.1716660475.txt.gz · Last modified: 2024/05/25 21:07 by yannick.koning
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