In proiectul „Control și informații locuință prin internet” voi prezenta un mod simplu de a obtine informațtii despre locuinta ta, dar si de a avea control asupra unor elemente ale acesteia prin intermediul internetului.

De unde si cum?

Ideea mi-a venit in urma unei curăatenii generale prin „cutiile mele cu minuni”. Am gasit in ele mai multe componente ce le puteam controla cu Arduino, iar singurul mod de a le imbina pe toate era realizarea unui proiect de home automation.

Componente necesare

 

  • 1xArduino Uno
  • 1xENC28J60
  • 1xDS18B20
  • 1xMAX7221
  • 1xDisplay 7 segmente
  • 1xRotator
  • 1xDS1990
  • 1xBuzzer
  • 1xTransmitaror-receptor 40MHz
  • 2xBec 5v
  • 3xPush button
  • 7xRezistor 1K
  • 2xRezistor 4,7K
  • 2xRezistor 10K
  • 2xLED
  • 1xLED bicolor
  • 1xPlaca PCB
  • 1xPlaca PCB test
  • 1xPlaca parchet
  • 1xSursa tensiune
  • 1xModul doua relee
  • 1xConector baterie 5v->jack 2.1
  • 1xBreadboard
  • Fire
  • Modulul ENC28J60

Modulul ENC28J60 ofera conexiune la internet placii Arduino, functionand atat in regim de client web (GET, POST), cat si in regim de server web.

Pentru o manevrare mai usoara a modulului, am realizat un cablaj ce il transforma intr-un shield pentru Arduino. Mai jos este prezentat circuitul in format .brd, dar am atasat si cateva poze din procesul de realizare al shield-ului.

Rotator

Rotatorul a fost recuperat dintr-un telefon fix. Acesta ofera 3 fire de conexiune, dar eu am avut nevoie doar de doua: GND si firul care duce la arcul ce realizeaza contactul electric in momentul invartirii rotatorului. Acesta functioneaza exact ca un buton.

Mai jos am atasat codul ce ne ajuta sa citim numarul returnat de rotator. Pentru a atentiona placa Arduino ca urmeaza sa se introduca codul de la rotator, am folosit un push button.

 DS1990

DS1990 este o cheie electronica de la Maxim Integrated ce foloseste tehnologia iButton. Mai jos este o poza cu pastila si cu suportul pentru citirea acesteia.

 

DS18B20

DS18B20 este un senzor de temperatura ce foloseste tot protocolul iButton. Temperatura preluata de la acest senzor va fi afisata pe un display cu 7 segmente, dar va fi incarcata si intr-o baza de date pentru a putea fi preluata de site si afisata.

In programul final, temperatura va fi citita in bucla de callback a modulului ethernet.

Relee

Pentru a putea controla cele doua becuri, am folosit un modul cu doua relee. Acesta alimenteaza becurile de la o sursa externa de curent. Cele doua becuri sunt actiunate atat de cele doua butoane fizice, cat si de butoanele existente pe site. Starea acestor becuri se poate urmari si pe site.

Alarma

Atunci cand parola introdusa de la rotator este gresita de 3 ori, buzzer-ul va atentiona utilizatorul prin emiterea unui sunet ce dureaza doua secunde.

 

Display

Pentru a afisa temperatura preluata de la senzorul DS18B20, am folosit un display cu 7 segmente. Acesta poate afisa o valoare cuprinsa intre -9 si 199. Afisajul este controlat cu ajutorul unui MAX7221. Mai jos exista subprogramul ce afiseaza un numar pe display.

 

Transmitator-receptor 40MHz

Deoarece nu am avut un transmitator-receptor special pentru arduino, m0am gandit sa iar modulul RF de la o masinuta cu telecomanda. Acesta are o frecventa de 40 MHz si dispunde de 5 comanzi: fata, spate, stanga dreapta si TURBO. Comanda TURBO nu este disponibila pe nicio masina, chiar daca aceasta exista pe modul.

Asadar, am desfacut modulul de transmisie de pe telecomanda si l-am pus pe o alta masinuta. Atunci cand pinul TURBO al encoder-ului este conectat la GND, acesta transmite comanda catre receptor. Am atasat un buton care sa face acest lucru. In momentul in care masina este destul de aproape de receptor si se apasa butonul respectiv, receptorul trimite comanda catre Arduino, iar Arduino executa o anumita portiune de cod.

Receptorul care initial exista in masinuta a fost demontat si conectat la Arduino. Mai exact, pinul TURBO al decoder-ului este citit de Arduino. Acesta este conectat pe A0, dar este citit ca un buton normal.

De asemenea, starea usii garajului este indicata in permanenta si pe site, iar aceasta poate fi modificata si prin apasarea butonului existent pe site.

Finalizare proiect

Toate modulele existente sunt atasate o o placa de parchet, iar pentru alimentare am folosit un incarcator de telefon. Acesta imi ofera 8,5V, dar am utilizat si un stabilizator de tensiune 7805 pentru a-l aduce la 5V.

Rotatorul si cititorul DS1990 sunt atasate pe un alt suport.

 

Site: http://homenet.host56.com

Planuri de viitor

Pe viitor doresc sa lucrez la partea de cod, astfel incat acesta sa fie cat mai eficient si sa ocupe un spatiu cat mai redus. Voi mai atasa un Arduino si un telefon Sony Ericsson K700 pentru a putea comanda casa si prin intermediul sms-urilor. Telefonul va fi folosit pe post de modul GSM, iar decodarea mesajelor va fi realizata prin intermediul unei librarii pe care am dezvoltat-o pentru a decoda mesajele in format PDU.

Pe partea de site lucrez la o functie ce imi va spune daca Arduino este conectat la internet, iar daca acesta nu este conectat, pe site vor fi afisate ultimele date obtinute de la el si vor fi eliminate butoanele pentru controlul becurilor si a garajului.

Control și informații locuință prin internet
Etichetat pe:            

4 gânduri despre „Control și informații locuință prin internet

  • Pingback: Concurs Arduino 2014 - www.roroid.ro

  • 23/02/2015 la 16:41
    Legătură permanentă

    geniala ideea,ceva de genul asta vreau si eu sa fac,mai putin partea cu garaju…
    Felicitari pe mai departe

    Răspunde
  • 06/01/2017 la 11:45
    Legătură permanentă

    Stimate Domn,

    Am văzut unele dintre aplicațiile pe care le construiți Dvd. și trebuie să vă spun că sunt impresionat de munca Dvs.
    Doresc să vă întreb dacă sunteți dispus de a construi un proiect pentru o automatizare a unei centrale pe lemne bazat pe Arudino.
    Ce m-ar interesa concret sunt următoarele:
    Citirea temperaturilor pe anumite segmente ale centralei (ex: temperatura apei din cazan, temperatura Puffer, temperatura boiler) via Internet
    Comandarea pompei pentru boiler la anumite temperaturi setabile (eventual setabile de asemenea via Internet)
    Temperaturile se pot citi cu senzori de contact.
    Mulțumesc anticipat pentru răspunsul Dvs.

    Cu stima,
    Laurențiu Dudau

    Răspunde

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *