nejsem elektronik, tak doufam, ze me nekdo opravi, pokud se v necem pletu ... ale neni to tak trochu kanon na vrabce?
vetsina soucasnych desek ma nekolik vstupu pro teplotni cidla, coz obvykle byva neco jako desetikiloohmovy termistor ... nestacilo by tedy vzit kus kvalitniho kabelu, pripojit na nej odpovidajici termistor, druhy konec pichnout do desky a teplotu odecitat pres lmsensors? (pricemz fajnsmekri by si samozrejme hodnoty jeste prohnali prevodni funkci ziskanou pri kalibraci podle referencniho teplomeru)
- takove reseni pouzivam jako orientacni pro sledovani teploty uvnitr bedny uz pres rok, je to skoro zadarmo (termistor, 20 cm kabliku, odlomeny kus stareho konektoru), a jediny potencialni problem vidim v delce propojovaciho kabelu ...
ano presne tak, cim dlhsi kabel tym vacsi odpor ma a potom treba kalibrovat kazde cidlo na kazdy kabel. Dalo by sa to riesit tak, ze v blizkosti termistoru sa da MCU, ktore by premienalo analogovy signal na digitalny a ten bude vysielat po kabli do PC, ale toto nie je jednoduchsi sposob, kedze treba programovat MCU.
Ale na druhej strane treba poznamenat, ze ani pri dig. prenose nemoze byt donekonecna dlhy kabel, pretoze nastava skreslenie tvaru hran impulzov.
Ma pravdu! Ale ne proto, ze ten LPT vyuziva. Kdyz jsem videl delku toho kabelu pripojovanyho na LPT, a bourku v povzdali, docela me zamrazilo...a nebylo to tim, ze bych rozsedl mrazici sprej.
Prvni mensi vyboj v povzdali a port bude KO.
Jinak, podobnou vec jsem delal, ale jeste v dobach DOSu s gameportem. Jenomze delat to takhle je ptakovina. Gameport ma analogovy vstupy. Musite si je sice pred pouzitim zkalibrovat, ale to neni problem. To mereni je celkem presny, ja to delal tak, ze jsem nameril deset udaju, vyhodil jsem nejmensi a nejvetsi a zbytek zprumeroval. Navic mam pocit, ze v Linuxu jde gameport obsluhovat nejak rozumne, takze by na to ta vec nemusela bezet ani s root pravy. (Nebo se mylim? Jak je to vlastne v Linuxu s Joystickem?)
Pokud je vystup z cidla 1-4 kHz, co kdyz na rychlem pocitaci mereni probehne rychleji nez dejme tomu 300us? A naopak, co kdyz na pomalem pocitaci ma kernel spoustu jinych veci na praci a prepina nepravidelne mezi procesy? Pro rozumnou presnost mereni by to asi melo byt modul, nebo lepe RTAI modul :-).
Ruzne ovladani HW v realnem case se da delat pod linuxem i bez RT rozsireni (snad je to i lepsi ;-) ja jsem zkousel vyrabet IRIG-B tak, ze jsem za pomoci BSD casovacu (setitimer()) visel na vnitrni 10ms smycce kernelu. Jenom musi takovy programek opustit vcas opustit CPU (ale to je v RT aplikacich bezne :o) a pokud to nestihnete (viz mpg123 na slabsim zeleze) pak vam nepomuze ani "nice(-18)" :-)))
At si Linus co chce rika, at si mamka slzy utira, jeste porad komercnim UNIXum uplne neodzvonilo. Aspon ne vsem a ne ve vsech oblastech :o(
Zajimavy je problem s casovanim. U joystic portu lze mimo jine cist hodnoty odporu - ale clovek musi spravne (tedy konzistentne) merit cas. Ja zkousel delat smycky v perlu :) a casy odecitat s pomoci nejakeho realtime modulu, ale je to slabe, nevim, jestli tomu lze verit...
Nejsou nejake zkusenosti s realtime odecitanim casu na linuxu?
Tady (u stridy) se pochopitelne clovek statisticky dostane ke spravnejsi hodnote s delsim merenim a jde jen o pomery a ne absolutni cisla.
Nevím jak autor přišel k tomu zapojení, le je to pěkné prase. Spojovat "natvrdo" výstupy z budičů, to je doscela silné kafe. A proboha proč ?!?
"..napájí se ze dvou PINu tak, aby se zmenšil odběr"
Co tím autor myslel ? dběr je přece daný výrobcem čidla a nedá se zmenšit. Mysle snad autor na zmenšení zátěže ?
Při odběru 1mW na 5V je zátěž 0,2 mA. Přitom LPT je komatibilní s TTL, tedy výstupní proud -20/+4 mA. Tedy napájení (z jednoho výstupního pinu) by mělo stačit pro 20 čidel a v pohodě by "utáhlo" i osm čidel - na každý datový pin jedno.
Návody tohoto typu jsou tu jistě vítané, ale proboha lidi, neměl by to ještě před zveřejněním někdo zkouknout ??
Shrneme-li to, jediny problem je spojeni 2 nezavislych napajeni (chapu, jako dite jsem uvaril 2 4.5V baterky, kdyz jsem chtel odpalit raketu).
Kapacita je tam na obrouseni hran nabehu - hadam - snad taky odruseni? Proc vadi dlouhej kabel?
Jinak je to ok. Dobre?
Jakou presnost umite pri cteni odporu na joystiku?
Nejlepe ve stupnich celsia...
Hmm, jeste by jsem byl opatrnejsi, mozna pridal na dratky nejaky transil a urcite zaradil do serie odpory, tak 100ohm. Jinak se muze stat, ze naindukovane napeti na delsim kabelu odela paraelni port a to by mohlo mrzet, zvlast treba u notebooku. Jinak je to fajn napad, jen by potreboval ucesat.
Ano, přesně tak. Chtěl jsem odpovědět v podobném duchu, ale už mě někdo předběhnul :)
Zapojit dvě diody přece není problém. Horší to bude s úbytkem, který je (pro Si) až 0.7 V. Na toto by se hodily Ge hrotové diody, v nouzi Schotky.
Dále by nebylo od věci zapojit do série odpory řádově desítky Ohm - na průběhu signálu se nijak neprojeví a opět to může zachránit port, pokud by se do toho kabelu něco naindukovalo. A při té délce kabelu se tam něco v pohodě naindukovat může !
Do elektroniky a pocitacu delam pres 15 let a musim rict, pri zapojeni dvou vystupu paralelne se me jezi vsechny chlupy. Ono se to dela bezne, ale to jsou spojeny i vstupy. Pak je zajisteno, ze nepujdou proti sobe. Strach z vyzkratovani napajeni chapu, ale pokud se port nevhodne inicializuje tak dojde prakticky k temuz a nez probehne nastaveni z biosu muze bejt pozde. Jinak dobrej napad, ale vystupy nespojovat!!
PS: s termistorovyma cidlama bez kalibrace a 10 metru kabelem nedosahnete ani presnoti lepsi nez cca 2 stC. Ono se to nezda moc, ale neni to dost ani na rozliseni mrzne/nemrzne.
Udelat na pripojeni dvou soucastek k paralelnimu portu hned dve zasadni navrharske chyby, to uz je umeni! Tak to dopadne, kdyz se zacne hardwarem zabyvat programator:))) Krome spojeni vystupu dvou budicu je tam jeste naprosto nesmyslne umistena blokovaci kapacita. Ten kondenzator patri co nejblize k cidlu a ne na druhou stranu kabelu jak je tu prezentovano.
Problemy jsou predevsim dva:
1. umisteni kondenzatoru. Mate pravdu, spravnejsi by bylo umistit ho co nejbliz k cidlu. V tomto pripade jsem ho umistil tak, jak je to vyfoceno, protoze se mi kondenzator nevesel k cidlu. Cidlo melo totiz byt tak male, aby ho bylo mozne prostrcit skrz co nejmensi diru ve zdi.
2. napajeni. Toto zapojeni neni znejcistcich, ale je asi nejjednodussi. Zajimavy napad je doplnit toto zapojeni o dve diody tak, aby se nemohlo zacit "pretahovat" napajeni.
Pokud nebudete pouzivat tento zpusob napajeni, tak nezbyva nez "vytahnout" napajeni zevnitr pocitace (nebo pouzit baterie). Potom ale uz toto zapojeni ztraci na jednoduchosti a prenosnosti.
Co se tyka zapojeni termistoru na GAME port, tak to by bylo opravdu nejjednodussi. Ale takove zapojeni jsem na internetu nikde nevidel.
Co se tyka mereni stridy na velice rychlych pocitacich, tak bohuzel nepatrim mezi ty stastne majitele rychlych stroju. Testoval jsem to spise na starsich strojich (486), protoze tech je dost a za maly peniz.
Spojovani budicu neni az takova prasecina. Je to prasecina v pripade LPT, protoze ty budice v LPT NAVRHOVALO PRASE. Pokud ale mate EPP je to ochotny (uz z principu EPP _musi_ byt ochotny) prezit leccos.
BTW ty budice jsou v LPT takhle navrhovany proc? DUVOD? (Lysohlavky, Marihuana, Hasis,...,lidska blbost) Nemyslim, ze by to muselo byt ,,hot plug''. Na to je tam trochu moc dratu (tohle si vzdycky vybavim lidi, kteri navrhujou IO a zakopnou o PCMCIA, tam je tech dratu moooc a musi to byt hotplug, hi), ale mohlo to byt DPDL aspon zkratuvzdorny. To se da udelat celkem jednoduse omezenim proudu, kterej je ochotnej dodat napajeci system budicu. Jako ochrana nic moc, ale lepsi nez dratem do oka...jenze tam neni ani to...
Když už budeme používat gameport, stačí vzít vhodný termistor - 100k připojit ho na jeden ze čtyř vstupů pro snímání polohy, což není nic jiného než A/D převodník... obslužný software viz. kernel joystick driver - jo a pokud připojíte na druhou osu aspoň jakýkoliv odpor, tak vám to kernel zdetekuje jako analagový joystick... pak už jen zkalibrovat podle teploměru... jeden gameport = 4 čidla....
S termistorem na GAMEportu jsou dva problemy: Uvnitr se fyzicky meri cas. konstanta RC (jetam prachsprosta 555), jenze kondenzator je pouzit keramika ~2n2, coz je "teplomer" sam o sobe, jen prevodni krivka je neznama...
Jde se jen "oprit" o to, ze v jednom PC je 1 typ kondu, ktere budou vcelku slusne cestovat spolu, takze bych na druhou "souradnici" pripojil pevny odpor a ovladacem JOYSTICKu cetl oba odpory a vyhodnocoval jejich pomer - ten pak bude nezavisly na "cestovani" kondenzatoru
Jen ten ovladac musi vracet cislo presne umerne merenemu intervalu...
Dalsi problem je s rusenim - staci kratka spicka, co "proleze" do 555 a ukonci merici cyklus - "namerite" vyrazne vyssi teplotu, nez je realna...
V kazdem pripade - vyvody +5V jistit PolySwitchem (vratna pojistka) a vstup chranit 2 schottkyho diodami na GND a +5V, ci lepe nizkokapacitnim 5V TRANSILem ke GND
(zkrat a prepeti v kabelu se muze objevit vzdycky)
Staci zadat do googlu dotaz "regulace otacek" a vyhodi to docela dost odkazu. Jinak doporucuju http://pavouk.comp.cz/fan/regul.html, hned to prvni zapojeni (DTK), je to docela v pohode (sem silny laik v oblasti prace s pajkou), vsechny soucastky z toho zapojeni sem sehnal v GME, reguluje to pekne, mam to pres pul roku ve zdroji.
Enjoy.
Jako zcela primitivni teplotni regulator ventilatorku v PC pouzivam bezne NTC termistory cca 100 - 220 Ohmu zapojene v serii s ventilatorem a prilepene k chladici. Jednoduzsi uz to snad ani byt nemuze...
Pro mereni externi teploty bych radeji volil teplotni cidlo s digitalni, avsak casove mene kritickou sbernici (napr. I2C ci SPI).
Přesnost, citlivost a linearita temistoru je
výrazně horší než u řešení popsaného v článku. U čidla SMT-160-30 výrobce garantuje maximální (absolutní!) odchylku, která číní maximálně 0.7 stupňů u pouzdra TO-18 a 1.2 stupňu u pouzdra TO-92. Čidlo nemá analogový výstup jako termistor, ale DIGITÁLNÍ, takže se to
a) báječně zpracovává
b) je možné mít čidlo na až 20 metrů dlouhém drátu (dle výrobce). Což je s termistorem nemyslitelné.
Mrzí mě, že se autor trochu nerozepsal o chybě meření - ta totiž závisí nejen na pouzdře,
ale taky na samplovací frekvenci a době měření.
Výrobce uvadí vzorec, podle kterého se dá chyba
měření spočítat.
Nechápu, proč autor použil méně přesnou variantu
(pouzdro TO-92), místo TO-18. Cituji:
Bez větších problémů tak získáte teploměr, který měří s přesností na stupně celsia, ...
Chyba je tedy +- 1.2 stupně a to jsem zanedbal chybu
vzniklou při zpracování signálu.
Ještě dodávám, že v Brně v GM electronic NEMAJÍ
tu přesnější variantu :-( Mají pouze TO-92, hlupáci.
asi to, ze je to konstrukcne jednoduche a levne. pokud chcete neco sofistikovanejsiho, muzete zkusit treba http://stoupa.sh.cvut.cz/teplomer/
pro presnejsi mereni stridy by to snad slo realizovat pomoci specialniho modulu do jadra, podobne jako tuhle vec resi LIRC. tim by problemy se schedulerem odpadly, protoze pri kazde hrane (aspon u ridicich linek serial portu) se generuje preruseni a obsluzna rutina akorat precte time stamp counter.
Ja myslim, ze to mereni stridy je proste statisticke, takze na nejakem zpozdeni od scheduleru (ktere je nezavisle na signalu z teplomeru) proste nezalezi (Jenom trosku zvetsi rozptyl, ale to staci zvysit pocet mereni). Dokonce by to asi bylo presnejsi, kdyby se mezi merenimy nahodne dlouho cekalo.
Nejjednodussi navod je
http://www.brianlane.com/linux/dthowto.txt . Ten odkazuje na s. 20 dokumentu http://pdfserv.maxim-ic.com/arpdf/AppNotes/app74.pdf (pozor: 600 kB), ovsem schema je na s. 21.
Diody 1N5818 se u nas sehnat daji (GM Electronic), zenerky 3,9V a 6,2V jsou bez diskuze.
Ovsem nedari se mi sehnat to teplotni cidlo DS1820. Nevedel by nekdo? Bez nej to nevyzkousim :(
A co třeba nepoužít následující kombinaci : 1×555, 1×rezistor, 1×kondenzátor, 1×termistor a zapojito to jako multivibrátor. Teplota leze ven jako frekvence, určí se z kombinace vzorce na určení frekvence 555 a závistosti odporu konkrétního termistoru na teplotě. Cena vyjde cca (10+1+2+10)= 25 kč. (bez konektoru)
Pokud pak použijete na zpracování PIC(jednochip), který vám výrobce pošle zadarmo jako vzorek ( http://sample.microchip.com ) tak to můžete cpát rovnou jako čísla do ser. portu, nebo v kombinaci se starým mobilem posílat přes GSM jako SMS. Například 16F877 má 33 I/O pinů = 31 vstupů pro čidla (2 piny jako Rx a Tx na mobil). V kombinaci se třeba oskarovým "Odepiš" máte docela dobrý dálkový teploměr...
Zdravim
Spojovat vystupy je samozrejme blbost, to uz bylo receno, ale jinak je to super.
Ja jsem totiz PRESNE tohle prave hledal, potrebuju merit teplotu v bedne ve ktery mam wifi router. Proste aby se mi v lete neupekl. Koupim dva tyhle integrace, jeden dam dovbnitr, druhej ven na barak a mam to. Soft snad upravit zvladnu (i kdyz jsem pascalista) a nejaky skript v PHP je hracka, treba casem udelam i ten gnuplot.
Zdenek
Ked si spojime aktualne pocasie a web, dostaneme jednoduche riesenie: phpWeather. Tento open source projekt sa venuje parsovaniu tzv. METARov. Metar je zaznam, ktory raz za isty casovy interval (spravidla hodina) produkuju vacsie letiska. Takze staci byt v blizkosti nejakeho a aktualne pocasie mate zabezpecene. Pre ludi z Bratislavy, Prahy ci Brna ziadny problem... :-)
Referencie:
http://nepto.sk/ (ukazka strucneho vypisu)
http://nepto.sk/speciality/pocasie/ (dlhy vypis)
http://phpweather.sf.net/ (domovska stranka projektu)
Hello, coz treba misto, velmi slusne receno, ne uplne korektniho reseni nepouzit hotove cidlo, ktere je jednak elektricky naprosto v poradku a teplotu vam vrati rovnou jako textovy retezec? http://www.papouch.com/tm.html. Stoji asi 4 stovky, ale je to hotove vyzkousene reseni a bez rizika, ze si uzivatel oddela port na pocitaci.
OT pro neoblomne: Proc si nevezmete 5V z USB, nebo klavesnicoveho portu?
To hezke upozornovat na teplomer od papoucha, ale nema program pro linux - pouzivam toto cidlo jiz delsi dobu s programem Petra Patocky z www.webcams.cz, ktery umi i odeslat teplotu do databaze na serveru s moznosti dalaiho pouziti.
Pokud toto ma nekdo vyresene na linuxu, byl bych rad za jeho rady ci pokud da k dyspozici i program - budu vdecny.
Potreboval bych sejmout doma teplotu a automaticky odeslat do databaze na server po X min.
Ma to nekdo ?
Tak sem se dival na http://thermo.uninet.cz... Muj nazor je, ze autor - ci provozovatel (co ja vim..) - je docela vydriduch. Skoro bych mel chut rict zlodej, ale prece jen neco prodava... Naklady na ten inzerovanej teplomer i s tim procesorem (pravdepodobne PIC12Cxxx) urcite nepresahnou 300 nebo 400Kc. Stejne tak metr kabelu za 15Kc neni prilis lidske.
Stalo by za to delat nejakej volne sirenej software, navod, popripade nabidnout moznost to vyrobit.
Je-li nekdo, kdo se jiz podobnym projektem zabyva at mi da vedet. Nabizim spolupraci. A jestli ne, stalo by za to, kdyby se nekdo zabyvat zacal. A pokud ne, zacnu se zabyvat ja!
Mam teplomer zakoupeny od http://www.uninet.cz/teplota a chtel bych ho rozbehnout na linuxu - momentalne mi bezi pod win bezproblemove.
Nemate nekdo zkusenosti s timto tepl.cidlem a jak ho rozbehat pod linuxem ?
Dle informaci je tam pouzito cidlo Dalas - nevim co je to za cidlo a vice jsem se o nem nedozvedel - jsem v elektronice uplny laik a na linuxu take.
Diky za kazde informace popripadnou pomoc.
treba na bit 4 pin 13 a volat 2x cteni(stejne je pootreba si upravit vystup u programku a asi dodelat naky vstup kdyz se u kompu meni IO port, aby se to nemuselo kompilovat (viz nase wifi masiny nemaj gcc, ale nastaveni vselijaky ;]))
mozna by to chtello pridat diodu aby nedoslo k prepolovani a predrazenej odpor kvuli skratu????