AutoHome - Roboti - Alba - Lucrari 2018 Nationala

Informatii generale

Descriere

AutoHome este un sistem de automatizare a unei case, compus din doua parti:
Partea hardware: Diferite dispozitive cu WiFi care pot automatiza anumite activitati zilnice si pot usura viata oamenilor, cum ar fi:

  • hranitul cainilor sau al pisicilor
  • hranitul pestilor
  • irigarea gozonului/gradinii
  • controlul temperaturii
  • controlul iluminatului
  • prelungitor inteligent, orice aparat conectat la el poate fi pornit sau oprit
    Partea software: Prin intermediul site-ului meu ( http://myautohome.ro) utilizatorii au acces la o platforma prin care isi pot controla dispozitivele inteligente. Pot fi executate comenzi de genul “aprinde becul acum” sau pot fi configurate programe zilnice de genul “aprinde becul la ora 7, hraneste cainele la ora 16:30 etc.”. Interfata este una simpla si usor de folosit. Fiind o aplicatie web este disponibila pe orice dispozitiv (telefon, calculator, tableta).

Tehnologii

Dispozitivele au la baza circuitul Wemos D1 cu microprocesorul ESP8266. Am acesta placa de dezvoltare datorita WiFi-ului, mutiplilor pini GPIO, puterii de procesare si consumului redus de energie.

Dispozitivul de hranit cainii, numit si iFeeder, este format dintr-un Wemos, un servomotor SG90, un senzor optic si un alimentator de telefon. Cand este momentul ca dispozitizul sa hraneasca cainele, servomoroul deschide o usa mica timp de 0,4s si apoi se inchide. Hana uscata cade in bol. Daca se doreste eliberarea unei cantitati mai mari servomotorul repeta acesta actiune de mai multe ori.

Dispozitivul pentru controlul iluminatului si prelungitorul inteligent sunt formate din cate un Wemos, module cu 2 sau 4 relee, si surse de alimentare de 5V.

Sistemul pentru irigarea gazonului este format din microprocesor, un releu, o sursa de alimentere de 12V si o electrovalva. Cand controller-ul trimite semnal releului acesta se inchide, bobina electrovalvei este alimentata, si electrovalva permite trecerea apei.

Site-ul (http://myautohome.ro) este folosit mentru controlul si configurarea orarului zilnic al dispozitivelor. Partea de backend este scrisa in Python, utilizand framework-ul Flask (Gunicon).
Baza de date este sql lite, si conexiunea server <-> baza de date se realizeaza SQL-Alchemy.
Servelul se afla pe un Raspberry pi 3, ruland Raspbian (Linux).
Parea de fontend este realizata cu bootstrap, javascript (ajax), css si folosind sistemul de template oferit de Flask. Interfata este simpla si usor de folosit, principalele file fiind: devices, schedule, timetables. Site-ul are si o interfata pentru administrator (in care poate vizualiza si edita baza de date) realizata cu Flask-Admin.

Cum folosesti sistemul ?
Sa luam ca exemplu hranitorul de caini. Il fixezi pe un perete astfel incat cainele sa nu poata sa-l roada, ii umpli rezervorul cu mancare si ii conectezi sursa de alimentare. Dispozitulul va porni si va incerca sa se conecteze la ruter-ul tau. Fiind prima folosire, disppozitivul trebuie configurat. Se apasa bunotul de pe aparat si acesta va trece sin modul Station in modul Station-AcesPoint. Acum poate fi vazut ca o retea WiFi, la care te vei conecta cu telefonul si vei fi redirectionat automat folosind captive-portal la pagina de configurare. Dispozitivul va scana retelele WiFi din apropiere si iti va arata o lista din care sa alegi, si un camp pentru completarea parolei. Dupa salvarea datelor acesta va trece din nou in modul Station (nu mai este vizibil ca retea WiFi) si se va conecta la router.
Urmeaza sa-ti faci cont pe platforma (daca nu ai deja). Acolo in fila “Devices” ai posibilitarea sa adaugi un sipozitiv nou. Acest lucru se face conpletand codul unic al dispozitizului tau (este scris pe spatele aparatului). Ca sa fie mai usor de gasit dispozitizul in lista ta de sispozitive poti sa-i dai un nume (“Rex”) si sa ii pui o poza (poza cu cainele).
Gata !
Acum poti sa iti hranesti cainele de la distanta doar apasand un buton sau sa-i configurezi programul zilnic de hranire.

Daca conexiunea la internet se opreste nu vei mai putea controla dispozitizul de la distanta, dar programul de hranire va continua, iar eventualele schimbari vor zi actualizate la reconectarea acestuia cu serverul. Comunicarea intre server si dispozitive se realizeaza prin websockets, folosind Sockets-io.

Cerinte sistem

Este o aplicatie web, deci cerintele de sistem sunt un browser si acces la internet.
Iar dispozitivale au nevoie de o sursa curent si acces la internet.

Realizatori

Claudiu Neamțu

  • Scoala: Colegiul Național “Horea Cloșca și Crișan”
  • Clasa: 10
  • Judet: Alba
  • Oras: Alba Iulia

Screenshots