Home Monitoring System
Introducere
Proiectul realizeaza monitorizarea temperaturii dintr-o incapere, la distanta, prin accesarea unei pagini web.
Scopul este acela de a dezvolta, in timp, un sistem complex de monitorizare al locuintei prin adaugarea unor senzori de umiditate,fum,etc, dupa preferinte.
De ce ar fi util un astfel de sistem? Sa presupunem ca plecam din oras pentru o lunga perioada din timp. Prin accesarea unei pagini web, putem vizualiza daca s-au intamplat evenimente majore in locuinta, putand astfel fi prevenite consecintele dezastruoase.
Descriere generala
Hardware Design
Schema de baza proiect
Modul ethernet:
Software Design
void ADC_init(void)
ADMUX |= _BV(REFS0);
ADCSRA |= _BV(ADEN) | _BV(ADATE) |_BV(ADPS1) |_BV(ADPS2)| _BV(ADPS0);
int ADC_get(uint8_t channel)
ADMUX = _BV(REFS0);
ADMUX |= channel;
ADCSRA |= _BV(ADSC);
loop_until_bit_is_set(ADCSRA, ADIF);
return ADC;
Aflare temperatura:
int temp;
temp=(46*ADC_get(0))/10;
temp=temp-2730;
// autmatically reload page every minute:
plen=fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\nPragma: no-cache\r\nRefresh: 60\r\n\r\n"));
plen=fill_tcp_data_p(buf,plen,PSTR("</h2>\n"));
plen=fill_tcp_data_p(buf,plen,PSTR("<pre>\n"));
plen=fill_tcp_data_p(buf,plen,PSTR("<h2>Temperatura in acest moment este:</h2> "));
itoa(temp,buffer,10);
Point(buffer);
plen=fill_tcp_data(buf,plen,buffer);
plen=fill_tcp_data_p(buf,plen,PSTR("'C "));
plen=fill_tcp_data_p(buf,plen,PSTR("</pre>\n"));
Rezultate Obtinute
Concluzii
Probleme intampinate:
Conectarea mufei de ethernet cu integrat, intrucat nu mi-a fost usor sa gasesc, corespondenta pinilor din schema cu cei de pe placa
Aflarea corespondentei dintre valoarea furnizata si ADC a durat ceva mai mult, pana am inteles exact cum functioneaza LM335.
De asemenea, am intampinat probleme in momentul incarcarii programului, prin intermediul bootloader-ului.Pe placuta se mai gaseste un senzor de temperatura DB18S20 (senzor digital care elimina folosirea convertorului analog-digital) si un LCD. In momentul in care incercam sa incarc functiile necesare senzorului DB18S20, pornind de la programul webserver, apareau erori la scriere, si bootloader-ul era suprascris. L-am reinstalat folosind PonyProg. Incarcand un program pentru LCD pe portul serial, am observat ca nu apar erori.
LCD-ul a fost implementat pentru a ma ajuta la debugging si a-mi da seama mai usor unde intampineam probleme.
Download
Resurse