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
  • Senzor ultrasonic
  • Rezervor pentru apă
  • Conectori și fire pentru conexiuni

Conexiuni:

Senzor ultrasonic

  • 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 nivevl apa

  • 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ă.
17 Mai - 22 Mai Testare și calibrare Testarea sistemului și ajustarea parametrilor pentru funcționare optimă.
17 Mai - 22 Mai Documentare finală Redactarea documentației pentru proiect.
17 Mai - 22 Mai 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.1716660627.txt.gz · Last modified: 2024/05/25 21:10 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