Sari la conținut
ELFORUM - Forumul electronistilor

PROIECT: DATA LOGGER - TEMPERATURA SI UMIDITATE


Pasare Dan

Postări Recomandate

Buna ziua tuturor,

Am deschis acest nou topic dorind sa prezint rezultatul hobby-ului meu principal: electronica.

 

Cu ceva timp in urma, am dat pe internet - de o firma care vindea un asemenea produs. Sper ca nu fac reclama daca includ acest link:

http://www.adelaida.ro/product_info.php ... cts_id=740

 

Produsul in sine mi-a atras atentia. Curios, m-am interesat de pretul lui - care m-a cam speriat - ceva la nivelul a cateva sute de euro.

 

Mai tarziu, intr-o discutie cu o persoana, aceasta imi povestea, cum la marile magazine alimentare, tirurile cu marfa sunt receptionate numai dupe ce li se citesc datele referitoare la temperatura si umiditatea in care a fost transportata marfa.

 

Si de aici a pornit totul - sa fac si eu un asemenea dispozitiv, binenteles - foarte low cost, dar la aceleasi performante.

 

Si am inceput cu inceputul - sa analizez de ce am nevoie, sa vad daca-l pot realiza.

 

De la inceput rezulta urmatoarele date:

-trebuie sa fie un dispozitiv de mici dimensiuni.

-trebuie sa fie autonom pentru o perioada mare de timp (din punct de vedere al alimentarii).

-trebuie sa includa o memorie de mari dimensiuni.

-trebuie sa includa comunicatia RS232 (un driver).

-trebuie sa citeasca senzori de temperatura si umiditate.

-trebuie realizat un soft pentru PC pentru colectarea datelor.

 

Realizarea unui soft pt. PC s-a rezolvat usor - folosesc Labwindows CVI, are librarie RS232 - nu e nici o problema.

 

Cum as putea sa citesc temperatura si umiditatea? La temperatura as putea alege: - RTD, termistor, termocuplu, senzor digital. Dar la umiditate - din ce m-am documentat eu - ar merge cu senzori capacitivi.

Dar - am gasit ceva si mai simplu - senzor care le contine pe amble -SHT15, SHT75.

Cred ca acesta este cel mai potrivit - are iesire digitala, deci reduc numarul componentelor.

Urmatoarea problema: ce functii sa aiba, ce facilitati:

1.Fiecare dispozitiv are un cod unic individual care nu poate fi modificat (pe 2 octeti, val maxima 65535).

2.Fiecare dispozitiv are un identificator de tip (in cazul in care vrem sa realizam o familie) (16 octeti)

3.Fiecare dispozitiv are o versiune de soft (iarasi - pentru compatibilitate cu softul pentru PC) (2octeti)

4.Fiecare dispozitiv are un nume - care se poate seta prin intermediul programului de la PC (32caractere)

5.Ceas de timp real (PCF8583) - pentru sampling, mentinerea datei si orei.

6.Memorie - cel mai convenabil - pentru ca e pe aceeasi magistrala cu PCF8583 - folosesc un 24LC256. Asta imi va asigura 32ko de date. Daca folosesc 7 astfel de memorii voi avea mai mult (calculati voi cat). In total vor putea fi puse maxim 8 device-uri pe magistrala I2C.

7. Pentru comunicatia cu PC-ul - folosesc un MAX232.

 

Acum - mai e nevoie sa fac un bilant al pinilor folositi:

2=I2C;

1=Intrerupere ceas de timp real

2=RS232

2=Senzor temperatura si umiditate.

2=2 led-uri - mereu avem nevoie de 2 led-uri.

1=intrare buton (reset - sau alte functii)

1=intrare start/stop memorare date.

Cam atat - restul - mai vedem pe parcurs.

Intre timp - atasez data sheet-urile principale, si alte elemente dupa care m-am orientat.

 

http://www.fischer-barometer.de/english ... e/opus.htm - un alt link util

Link spre comentariu
  • Răspunsuri 30
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Pasare Dan

    9

  • iulisan

    8

  • XAN77

    2

  • Dr.L

    2

Top autori în acest subiect

O a doua etapa a proiectului e sa stabilesc cerintele. Pentru aceasta am analizat softul oferit la http://www.fischer-barometer.de/english ... e/opus.htm si am stabilit urmatoarele:

SOFT PC:

1. posibilitate selectie port COM PC (baud rate fix - 9600 sau 19200 - mai vedem)

2. functie citire memorie date senzor

3. functie stergere memorie date senzor

4. functie sincronizare ceas senzor cu ceasul de la PC

5. functie setare parametrii senzor.

6. functie salvare date in fisier extern

7. functie incarcare date din fisier extern

8. help

9. afisare date sub forma de tabel

10.afisare date sub forma de grafic

11.posibilitatea selectiei afisarii grafice numai a temperaturii/umiditatii sau ambele.

12.afisarea valorii minime/medii/maxime a temp/umiditatii citite.

13. afisarea pragurilor de alarma care au fost setate in senzor

14. afisarea perioadei de esantionare

15. afisarea id-ului senzorului, tipului si numelui senzorului

16. tiparire tabel date, deschidere cu excel, cu notepad, tiparire grafic.

17. functie linearizare date pentru reducerea erorilor de citire.

 

Parametrii care vor putea fi setati de utilizator:

1. Portul COM de conectare a senzorului

2. Nume senzor

3. Perioada de esantionare

4. Activare/dezact prag inferior alarma temp

5. Activare/dezact prag superior alarma temp

6. Activare/dezact prag inferior alarma umidit

7. Activare/dezact prag inferior alarma umidit

8.Setare prag inferior alarma temp

9.Setare prag superior alarma temp

10.Setare prag inferior alarma umiditate

11.Setare prag superior alarma umiditate

 

O posibila interfata grafica a programului (pe care-l voi realiza in Labwindows CVI) este cea din atasament.

 

Maine continuarea - daca va intereseaza

Link spre comentariu

Mai tarziu, intr-o discutie cu o persoana, aceasta imi povestea, cum la marile magazine alimentare, tirurile cu marfa sunt receptionate numai dupe ce li se citesc datele referitoare la temperatura si umiditatea in care a fost transportata marfa.

Pentru treaba asta nu e nevoie de o scula omologata metrologic?Un logger din ala costa cam 280 Euro, tu la cit crezi ca te va ajunge?
Link spre comentariu

pai, consider ca pretul final va fi de ordinul a 2mil lei vechi (700.000 senzorul si restul piese si carcasa - asta un pret maxim - cred ca mai realist - fara carcasa, ar fi 1.200.000 lei vechi.Precizia senzorului - daca te uiti in datasheet este echivalenta cu a sistemului prezentat de alte firme. Daca aplic si linearizarile si corectiile expuse in datasheet - eu zic ca o sa fie ok. Senzorul nu necesita calibrare, banuiesc ca are si un certificat de calitate, etc. Probabil o trebui si un certificat de etalonare - dar eu deocamdata il fac ca hobby.

Link spre comentariu

Am stabilit alaltaieri interfata si elementele principale ale programului din PC. E cazul sa ma ocup acu si de montajul electronic. Am spus ca trebuie sa memoreze date - asta inseamna o memorie.Trebuie sa memoreze si data si timpul - o solutie facila ar fi un RTC (adica PCF8583). Acesta se interfateaza pe I2C. In virtutea acestui lucru, alegem si memoria (un 24LC256). Astea ne va asigura 32768octeti. - Sistemul altor firme memorau pana la 60.000 de valori - deci sigur avem nevoie de memorie mai mare. Insa eu am alta parere - vreau sa fac un sistem low cost, cu piese care se gasesc usor in Romania, cunoscute si care le am la indemana. Plus ca, temperatura intr-o incinta (si umiditatea) in general variaza lent. Asa ca citiri la 10 minute sau mai mult ar trebuii sa ne dea informatii clare despre conditiile climatice pe care dorim sa le monitorizam.Deci - ceas de timp real PCF8583 si 24LC256 (sau cascadam memoriile daca e cazul si obtinem un maxim de 229376 octeti.Ce mai avem nevoie - pentru comunicatia RS232 - un convertor - adica MAX232.Aici sunt cateva probleme - convertorul asta - consuma nu gluma (5-10mA) la 5V - si eu vreau sa am consum cat mai mic. O idee interesanta ar fi ca acesta sa se alimenteze din portul PC-ului - liniile DTR, RTS, etc. O schema dupa care m-am orientat e cea din atasament.Altceva - ce am mai avea nevoie - un controller. Dar asta mai tarziu, dupa ce abordam un alt subiect important:CONSUMUL - in mod sigur un factor decisiv pentru un astfel de dispozitiv, alaturi de memorie.Pai sa vedem - sistemul concurential mergea la 3.6V si cica tinea 2 ani. Impresionant (din poze am vazut ca bateria nu era mare, deci sigur avea un consum extrem de mic).Eu ma gandesc sa folosesc baterii care se gasesc uzual in comert.Daca as alimenta sistemul la 3V, as vrea ca durata de viata a bateriilor sa fie de un an, bateriile si capacitatiile pe care le-as avea la indemana (uzuale) ar fi:CR2032 (~225mAh)=> pentru un an supply =0.025mA consum2*1.5V, AAA (900mAh => pentru un an 900mAh/8760=0.102mAh2*1.5V AA (2500mAh) => pentru un an =0.285mAhDeci sistemul ar trebui sa consume - in cel mai rau caz 285uAh, si in cel mai bun caz 25uAh. - Ei asta e o provocare.Dar ce mai implica alimentarea sistemului la 3Vcc?Bateriile au limita de viata la 0.9V, maxim 1.6V. Daca folosim 2, pentru 3V, asta inseamna maxim 3.2V, minim 1.8V.Asta inseamna ca trebuie sa folosim componente care sa mearga de la 2V in sus.Memoria 24LC256 - merge de la 3V, dar e si varianta 24AA256 si 24FC256 care merg de la 2V, consum la scriere 3mA, in repaus 1uA.Ceas de timp real PCF8383 - min 1V pentru ceas, 2.5V pentru i2c, consum ceas - maxim 50uA, consum I2c, maxim 300uA.Senzor SHT15 - 2.4V minim, 550uA consum masuratoare, 1uA consum iddle.Toate bune si frumoasa - si pentru ca senzorul SHT15 mai are o optiune prin care semnaleaza low batt (2.5V) ne vom folosii de acest fapt pentru a semnaliza baterie scazuta. Consumul maxim daca toate comp sunt in mod iddle este de 52uA.Acum - ce uC folosim:pai - facem bilantul intrarilor si iesirilor - plus ne gandim la complexitatea programului ca sa ne orientam asupra memoriei. In mod sigur programul o sa aibe o dimensiune relativ maricica. Pinii de care avem nevoie:2*RS2321* semnalizare conectat la PC2*I2C1*intrerupere RTC2*SHT15, 2*LED1*comutator1*ResetCam asta ar fi tot.Zilele urmatoare - poate o schema si un schelet de algoritm.

Link spre comentariu

dar nu merge alimentat la o tensiune mai mare? chiar daca o sa iasa mai mare,creste si autonomia(oricum trebuie folosite baterii de calitate,care sa nu curga in timp)si avand in vedere ca in idle in afara de ceas,celelalte circuite nu au de ce sa stea pornite(poate doar memoria) le poti alimenta printr-un mos-fet doar cat se face citirea

Link spre comentariu

sau poti folosi integrate convertoare dc-dc step-up care iti ridica de la 1V intrare la 3,3 sau 5 avand cca 90% eficienta si sa poti folosi astfel memorii, senzori etc normale nu versiuni cu gama extinsa de tensiune de alimentare. Se pare ca sunt mai greu de gasit astfel de integrate, sau nu stiu eu vreun nume ce se gaseste si e accesibil .

Link spre comentariu

dar un senzor de umiditate mai ieftin ar afecta asa mult calitatea aparatului ? De exemplu SYH-2-Senzor de umiditate 20-95%RH de la capodimonte costa vreo 5 lei, intradevar nu e digital dar nu conteaza prea mult ca o sa ai A/Duri la MCU iar iesirea analogica am vazut ca este f liniara, dar e muult mai ieftin .

Link spre comentariu

am preferat sa merg cu tensiunea de alim de 3v, pentru ca am optiunea din SHT care imi vede tensiunea sub 2.5V. Merge si mai mult - pana la 5v, dar nu mai am aceasta optiune de depistare tensiune scazuta.Apoi, in general si memoria 24LC256 - sigur o sa mearga si la 2.5V si mai jos.Un senzor mai ieftin - merge, binenteles - dar sunt cateva probleme.1. Daca folosesc unul cu iesire analogica, trebuie sa folosesc un uc cu convertor analog digital, sau cu CAD.2. Am incercat sa extind gama de masura temp si umiditate, astfel incat sa fie similar produselor similare aflate pe piata.3. Informatiile de calibrare sunt deja incluse in SHT - nu mai e nevoie de nimic altceva.Treaba cu scoaterea de sub alimentare a memoriei, SHT-ului merge - dar consider consumul lor in repaus - insignifiant.Consumul mare o sa-l aiba uC-ul. Daca ma rezum numai la familia PIC16, daca o sa am nevoie si de CAD, atunci nu o sa am o optiune importanta - 2 mode oscilator,4MHz si 37KHz de la PIC16F648A - pentru reducerea consumului.Daca in loc de lucrul cu 2 frecvente, optez pentru modul sleep si trezirea prin intrerupere, va trebui sa am grija ca acesta sa fie activat prin intreruperi externe, de la RTC, si de la USART. Este o varianta foarte optima si asta.Insa m-am gandit in felul urmator - pentru simplificare:PIC16F648A (memorie mai mare, 2 frecv - uC-ul merge mereu)intrare INT de la RTC (PCF8583)intrare RS232 (alim).citire semnal batt low de la SHT.Cred ca asta are reprezenta un minim de componente. Costul nu stiu cat de mult se reduce, avand in vedere pretul SHT-ului.Intre timp - mai ma gandesc,

Link spre comentariu

In general, ce ma nemultumeste pe mine mai mult, este capacitatea memoriei. Deci, daca aveti vre-un sfat pentru o memorie, care sa corespunda urmatoarelor cerinte:- capsula cu numar redus de pini (de preferinta DIP)- alimentare 2.5 -5.5V, sau mai jos- consum redus, inclusiv in cadrul operatiilor de scriere/citire si in mod iddle- capacitate minim 64Ko - sau mult mai mult - memorare chiar si cand nu se afla sub tensiune.- sa se gaseasca usor in romania la distribuitorii cunoscuti.Cam atat - deci - sunt deschis la sugestii.

Link spre comentariu

sau mai bine, card CF, e rezistent la conditii mai vitrege de temp si umiditate. cred ca la proiectul asta ar trebui sa iei in considerare ca temp/umiditatea pot influenta modulul si acesta ar trebui "sigilat" cumva fata de exterior (sau poate ai scris si asta dar eu nu am citit tot :d )

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări