Table of Contents

Home Monitoring System

Introducere

Home Monitoring System este un dispozitiv ce măsoară temperatura, umiditatea, cantitatea de lumină din casă și detectează mișcări. Se poate activa o alarmă pentru mișcare și se pot aprinde leduri de semnalizare. Controlul și vizualizarea datelor se realizează prin platforma Blynk, via WiFi.

Tot prin aplicația Blynk vom putea urmări grafice pentru a vedea cum a variat temperatura sau umiditatea din casa. Toată interacțiunea utilizatorului cu dispozitivul se va realiza printr-un dispozitiv mobil.

Descriere generală

Proiectul folosește un NodeMCU cu ESP8266. Acesta este împărțit în 2 module:

Sistemul extrage date de la senzorul de temperatură/umiditate, senzorul de mișcare și de la fotorezistor și le trimite către platforma Blynk de 10 ori pe secundă(conform recomandărilor Blynk IoT). Dacă sunt activate notificările de mișcare sau alarma din aplicație, atunci se vor transmite mesajele necesare către utilizator și se va porni buzzer-ul/LED-ul albastru. Tot în cadrul aplicației vom avea și LED-uri digitale ce vor arăta dacă senzorul PIR a detectat mișcare sau daca fotorezistorul înregistrează o valoare peste un anumit prag setat in cod.

Alarma se declanșează dacă senzorul de mișcare are 2 activări consecutive în mai puțin de 15 secunde pentru a evita rezultate fals-pozitive.

Diagrama bloc a proiectului:

Hardware Design

Componente necesare:

Schema electrică:

Software Design

Pentru programarea plăcii NodeMCU am folosit Arduino IDE si API-ul Blynk.

În faza de setup vom seta LED-ul albastru de semnalizare pe ON pentru a marca faptul ca device-ul bootează. Se inițializeză variabilele pentru măsurarea timpului, apoi senzorul DHT22, se realizează conexiunea cu serverul Blynk, se activează un timer pentru trimterea datelor în aplicație și se seteaza modul pinilor de I/O. La final, vom activa buzzer-ul pentru a anunța că dispozitivul a terminat procesul de pornire și stingem LED-ul albastru.

În cod vom regăsi mai multe funcții de tipul BLYNK_WRITE(VIRTUAL_PIN) (detalii despre această funcție se pot găsi aici) pentru butoanele din aplicație ce vor controla:

Aceste funcții vor modifica variabile de stare ce sunt folosite în funcția loop.

Funcția loop funcționează după următorul scenariu:

  1. Rulează instrucțiunile Blynk
  2. Rulează timerul ce trimite date către Blynk
  3. Verifică dacă senzorul PIR a detectat mișcare
    1. Verifică dacă această mișcare este a doua în ultimele 15 secunde
      • În caz afirmativ se verifică daca trebuie să se trimită notificări către utilizator și dacă trebuie să se activeze alarma
      • În caz negativ doar va activa LED-ul virtual din aplicație și va actualiza timpul ultimei mișcări.
  4. Dacă nu s-a detectat o nouă mișcare, setează toate variabilele de mișcare pe LOW.

Controlul LED-ului albastru se realizează direct prin Blynk. Tot prin Blynk se setează și culoarea LED-ului RGB.

Rezultate Obţinute

Interfața aplicației create în Blynk(de la stânga la dreapta: ecran simplu, ecran cu notificare de mișcare și ecran cu butoane active):

Proiectul final:

Asamblarea proiectului:

Concluzii

Construcția dispozitivului a pornit în vară, ca un proiect personal, de la ideea unui senzor de temperatură și de mișcare pentru casă, ulterior dovedindu-se util și pentru alte situații(verificarea statusului unui bec din casă/a mișcării dintr-o anumită încăpere) prin continuarea proiectului. Acesta a fost dezvoltat mai departe pentru PM și va continua să fie îmbunătățit pe parcurs.

Download

Schematic Proiect - PDF

Cod sursă - Home Monitoring System

Jurnal

Bibliografie/Resurse

Documentație Blynk IoT
Documentație NodeMCU
Arduino IDE

Export to PDF