Obsah:
- Zásoby
- Krok 1: Okruhy
- Krok 2: Metóda
- Krok 3: TMP36 - počiatočná skúška
- Krok 4: Výsledky substitúcie potenciometra
- Krok 5: Priemerné hodnoty a výsledok
- Krok 6: DS18B20 - Počiatočné testovanie
- Krok 7: DS18B20 funguje dobre
- Krok 8: DHT22 a DHT11
- Krok 9: Výsledky DHT22
- Krok 10: Test DTH11
- Krok 11: BME680
- Krok 12: Ktorý mám použiť?
- Krok 13: Ďalšie myšlienky a experimentovanie
- Krok 14: Úplný graf
- Krok 15: Závery
Video: Testovanie teplotných senzorov - ktorý z nich pre mňa?: 15 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Jeden z prvých senzorov, ktoré chcú vyskúšať nováčikovia vo fyzických počítačoch, je meranie teploty. Štyrmi najobľúbenejšími snímačmi sú TMP36, ktorý má analógový výstup a potrebuje analógovo-digitálny prevodník, DS18B20, ktorý používa jednovodičové pripojenie, DHT22 alebo o niečo lacnejší DHT11, ktorý potrebuje iba digitálny kolík, ale tiež poskytuje čítanie vlhkosti a nakoniec BME680, ktorý používa I2C (s SPI aj na niektorých oddeľovacích doskách) a udáva teplotu, vlhkosť, plyn (VOC) a atmosférický tlak, ale stojí o niečo viac.
Chcem vidieť, ako sú presné, a objaviť všetky výhody alebo nevýhody. Už vlastním presný ortuťový teplomer, ktorý mi zostal z farebnej fotografickej tlače v časoch chemického spracovania, a porovnávam ich s. (Nikdy nič nevyhadzujte - budete to potrebovať neskôr!)
Na tieto testy použijem CircuitPython a vývojovú dosku Adafruit Itsybitsy M4. Pre všetky zariadenia sú k dispozícii vhodné ovládače.
Zásoby
Môj pôvodný zoznam:
- Mikrokontrolér Itsybitsy M4 Express
- kábel micro USB - na programovanie
- TMP36
- DS18B20
- Rezistor 4,7K Ohm
- DHT22
- BME680
- Viacmetrový
- Breadboard alebo pásová doska
- Spojovací drôt
Krok 1: Okruhy
Oranžové vodiče sú 3,3 V.
Čierne vodiče sú GND
V spodnej časti dosky sú testovacie body na meranie napätia. (Analógový výstup 3,3v, GND a TMP36)
Stredové zásuvky sú zľava doprava:
- TMP36: 3,3v, výstup analógového signálu, GND
- DS18B20: GND, výstup digitálneho signálu, 3,3 V.
- DHT22: 3,3v, výstup signálu, prázdny, GND
- BME680: 3,3v, SDA, SCL, prázdny, GND
Zadný konektor na pripojenie k doske IB M4E zľava doprava
- 3,3v
- TMP36 - analógový výstup na kolíku A2
- GND
- Digitálny výstup DS18B20 na pin D3 - zelený
- Digitálny výstup DHT22 na pin D2 - žltý
- SDA - biela
- SCL - ružová
Rezistor 4,7K Ohm je ťahom zo signálu na 3,3 V pre 0-drôtové pripojenie na DS18B20.
Na zadnej strane dosky sú 2 vyrezané stopy:
Pod ľavým koncom ružových a bielych drôtov. (Pod žltým drôtom.)
Krok 2: Metóda
Pre každý senzor napíšem krátky skript, ktorý niekoľkokrát odčíta teplotu (a ďalšie položky, ak sú k dispozícii) a skontroluje teplotu podľa môjho ortuťového (Hg) teplomera. Budem skúmať, ako blízko je teplota v porovnaní s údajmi ortuti a či sú údaje stabilné/konzistentné.
Tiež sa pozriem do dokumentácie, aby som zistil, či údaje zodpovedajú očakávanej presnosti a či je možné urobiť niečo pre zlepšenie.
Krok 3: TMP36 - počiatočná skúška
Ľavá noha je 3,3 V, pravá noha je GND a stredná noha je analógové napätie predstavujúce teplotu pomocou nasledujúceho vzorca. Teplota = (milivolty - 500) / 10
750 milivoltov teda dáva teplotu 25 ° C
Zdá sa, že tu existuje niekoľko problémov. Teplota z „normálneho“ortuťového teplomera je oveľa nižšia ako z TMP36 a hodnoty nie sú veľmi konzistentné - dochádza k „chveniu“alebo šumu.
Senzor TMP36 vysiela napätie úmerné teplote. Toto musí prečítať A/D prevodník pred vypočítaním teploty. Odčítajme napätie priamo zo strednej nohy snímača pomocou multimetra a porovnajme ho s výsledkom z A/D. Odčítanie zo stredovej nohy s mojím multimetrom je 722 milivoltov, oveľa nižšie a veľmi stabilné čítanie.
Sú dve veci, ktoré môžeme vyskúšať. Nahraďte potenciometer za TMP36 a napätie vo výpočte upravte na skutočné napätie mikrokontroléra. Potom uvidíme, či je vypočítané napätie bližšie a či je znížený šum/jitter.
Zmerajme skutočné napätie, ktoré sa používa na mojom mikrokontroléri a A/D. Predpokladalo sa, že je to 3,3 V, ale v skutočnosti je to iba 3,275 V.
Krok 4: Výsledky substitúcie potenciometra
Toto je oveľa lepšie. Hodnoty sú v rozmedzí niekoľkých milivoltov s oveľa menším hlukom. To naznačuje, že hluk pochádza skôr z TMP36 ako z A/D. Údaje na merači sú vždy stabilné - bez chvenia. (Merač môže „vyhladzovať“nervózny výstup.)
Jedným zo spôsobov, ako zlepšiť situáciu, môže byť priemerné čítanie. Vykonajte rýchlo desať meraní a použite priemer. Počas zmeny programu tiež vypočítam štandardnú odchýlku, aby som naznačil šírenie výsledkov. Budem tiež počítať počet nameraných hodnôt v rámci 1 štandardnej odchýlky od priemeru - čím vyššie, tým lepšie.
Krok 5: Priemerné hodnoty a výsledok
Stále je tu veľký hluk a hodnoty z TMP36 sú stále vyššie ako z ortuťového teplomera. Na zníženie šumu som medzi signál a GND zaradil kondenzátor 100NF
Potom som hľadal ďalšie riešenia na internete a našiel som tieto: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk navrhuje zahrnúť medzi signál a GND odpor 47 kOhm.
www.desert-home.com/2015/03/battery-operate… Zatiaľ čo tento chlapík navrhuje zoradiť 15 meraní do poriadku a spriemerovať centrum 5.
Upravil som skript a obvod, aby zahrnoval tieto návrhy, a zahrnul som čítanie z ortuťového teplomera.
Nakoniec! Teraz máme stabilné hodnoty v rozsahu presnosti popisu zariadenia.
Bolo dosť veľa úsilia uviesť senzor do prevádzky, ktorý má výrobcovu presnosť iba:
Presnosť - najvyššia (najnižšia): ± 3 ° C (± 4 ° C) Stoja len asi 1,50 dolára (2 libry)
Krok 6: DS18B20 - Počiatočné testovanie
Buďte veľmi opatrní. Tento balík vyzerá veľmi podobne ako TMP36, ale nohy sú naopak, s 3,3 V vpravo a GND vľavo. Výstup signálu je v strede. Aby toto zariadenie fungovalo, potrebujeme odpor 4,7 k Ohm medzi signálom a 3,3 V. Toto zariadenie používa jednovodičový protokol a musíme stiahnuť niekoľko ovládačov do priečinka lib programu Itsybitsy M4 Express.
To stojí asi 4 doláre / 4 libry Technické špecifikácie:
- Použiteľný teplotný rozsah: -55 až 125 ° C (-67 ° F až +257 ° F)
- Voliteľné rozlíšenie 9 až 12 bitov
- Používa 1 -Wire rozhranie - na komunikáciu vyžaduje iba jeden digitálny pin
- Jedinečné 64 bitové ID napálené do čipu
- Jeden pin môže zdieľať viac senzorov
- ± 0,5 ° C Presnosť od -10 ° C do +85 ° C
- Alarmový systém teplotných limitov
- Čas dopytu je kratší ako 750 ms
- Použiteľné s napájaním 3,0 V až 5,5 V.
Hlavným problémom tohto senzora je, že používa rozhranie Dallas 1-Wire a nie všetky mikrokontroléry majú vhodný ovládač. Máme šťastie, existuje ovládač pre Itsybitsy M4 Express.
Krok 7: DS18B20 funguje dobre
To ukazuje skvelý výsledok.
Stabilná sada hodnôt bez ďalšej práce a režijných nákladov. Hodnoty sú v očakávanom rozsahu presnosti ± 0,5 ° C v porovnaní s mojím ortuťovým teplomerom.
Existuje aj vodotesná verzia za približne 10 dolárov, ktorú som v minulosti používal s rovnakým úspechom.
Krok 8: DHT22 a DHT11
DHT22 používa termistor na získanie teploty a stojí asi 10 dolárov / 10 libier a je presnejším a drahším bratom menšieho DHT11. Tiež používa jednovodičové rozhranie, ale NIE je kompatibilný s protokolom Dallas používaným s DS18B20. Sníma teplotu a vlhkosť. Tieto zariadenia niekedy vyžadujú pull up odpor medzi 3,3 V a signálnym kolíkom. Tento balík už má jeden nainštalovaný.
- Nízke náklady
- Napájanie 3 až 5 V a I/O
- Maximálne využitie prúdu 2,5 mA počas konverzie (pri vyžiadaní údajov)
- Dobré pre hodnoty vlhkosti 0-100% s presnosťou 2-5%
- Dobré pre teploty od -40 do 80 ° C s presnosťou ± 0,5 ° C
- Vzorkovacia frekvencia nie viac ako 0,5 Hz (raz za 2 sekundy)
- Veľkosť tela 27 mm x 59 mm x 13,5 mm (1,05 palca x 2,32 palca x 0,53 palca)
- 4 piny, rozstup 0,1"
- Hmotnosť (iba DHT22): 2,4 g
V porovnaní s DHT11 je tento snímač presnejší, presnejší a pracuje vo väčšom rozsahu teploty/vlhkosti, ale je väčší a drahší.
Krok 9: Výsledky DHT22
Sú to vynikajúce výsledky s minimálnym úsilím. Hodnoty sú celkom stabilné a v rámci očakávanej tolerancie. Odčítanie vlhkosti je bonusom.
Merania môžete vykonávať iba každú sekundu.
Krok 10: Test DTH11
Môj ortuťový teplomer ukázal 21,9 stupňov C. Toto je dosť starý DHT11, ktorý som získal zo starého projektu a hodnota vlhkosti sa veľmi líši od hodnôt DHT22 spred niekoľkých minút. Stojí to asi 5 dolárov / 5 libier.
Jeho popis obsahuje:
- Dobré pre hodnoty vlhkosti 20-80% s presnosťou 5%
- Dobré na meranie teploty 0-50 ° C s presnosťou ± 2 ° C - menej ako DTH22
Zdá sa, že teplota je stále v rozsahu presnosti, ale neverím čítaniu vlhkosti z tohto starého zariadenia.
Krok 11: BME680
Tento senzor obsahuje možnosti snímania teploty, vlhkosti, barometrického tlaku a VOC plynu v jednom balení, ale je tu najdrahší zo skúšaných senzorov. Stojí to zhruba 18,50 libry / 22 dolárov. Existuje podobný produkt bez plynového senzora, ktorý je o niečo lacnejší.
Toto je zlatý štandardný senzor z piatich. Teplotný snímač je presný a s vhodnými ovládačmi sa veľmi ľahko používa. Táto verzia používa I2C, ale doska Adafruit Breakout Board môže používať aj SPI.
Rovnako ako BME280 a BMP280 môže tento presný snímač od spoločnosti Bosch merať vlhkosť s presnosťou ± 3%, barometrický tlak s absolútnou presnosťou ± 1 hPa a teplotu s presnosťou ± 1,0 ° C. Pretože sa tlak mení s nadmorskou výškou a merania tlaku sú také dobré, môžete ho použiť aj ako výškomer s presnosťou ± 1 meter alebo lepšou!
Dokumentácia uvádza, že potrebuje určitý „čas horenia“pre snímač plynu.
Krok 12: Ktorý mám použiť?
- TMP36 je veľmi lacný, malý a obľúbený, ale jeho používanie je dosť náročné a môže byť nepresné.
- DS18B20 je malý, presný, lacný, veľmi ľahko sa používa a má vodotesnú verziu.
- DTH22 tiež indikuje vlhkosť, má primeranú cenu a ľahko sa používa, ale môže byť príliš pomalý.
- BME680 robí oveľa viac ako ostatné, ale je drahý.
Ak chcem len teplotu, použil by som DS18B20 s presnosťou ± 0,5 ° C, ale môj obľúbený je BME680, pretože robí oveľa viac a je možné ho použiť vo veľkom počte rôznych projektov.
Jedna posledná myšlienka. Uistite sa, že máte teplotný senzor v dostatočnej vzdialenosti od mikroprocesora. Niektoré Raspberry Pi HAT umožňujú zahrievanie senzora teplom z hlavnej dosky, čo spôsobuje falošné čítanie.
Krok 13: Ďalšie myšlienky a experimentovanie
Ďakujem gulliverrr, ChristianC231 a pgagen za vaše pripomienky k tomu, čo som doteraz robil. Ospravedlňujem sa za oneskorenie, ale bol som na dovolenke v Írsku, bez prístupu k svojej elektronickej súprave niekoľko týždňov.
Toto je prvý pokus o to, aby senzory spolupracovali.
Napísal som skript, aby som postupne prečítal senzory a každých 20 sekúnd vytlačil hodnoty teploty.
Súpravu som vložil na hodinu do chladničky, aby všetko vychladlo. Pripojil som ho k počítaču a požiadal Mu, aby vytlačil výsledky. Výstup bol potom skopírovaný, zmenený na súbor.csv (premenné oddelené čiarkami) a grafy čerpajú z výsledkov v programe Excel.
Vyberanie súpravy z chladničky trvalo asi tri minúty, kým sa zaznamenali výsledky, takže v tomto intervale došlo k určitému zvýšeniu teploty. Mám podozrenie, že tieto štyri senzory majú rôzne tepelné kapacity, a preto by sa zahrievali rôznymi rýchlosťami. Očakáva sa, že rýchlosť zahrievania sa zníži, keď sa senzory priblížia k izbovej teplote. Zaznamenal som to ako ortuťový teplomer na 24,4 ° C.
Široké teplotné rozdiely na začiatku kriviek môžu byť spôsobené rôznymi tepelnými kapacitami senzorov. Som rád, že čiary sa zbližujú ku koncu, keď sa približujú k izbovej teplote. Mám obavy, že TMP36 je vždy oveľa vyšší ako ostatné senzory.
Pozrel som sa na listy s údajmi, aby som znova skontroloval opísanú presnosť týchto zariadení
TMP36
- Presnosť ± 2 ° C nad teplotou (typ.)
- ± 0,5 ° C linearita (typ.)
DS18B20
± 0,5 ° C Presnosť od -10 ° C do +85 ° C
DHT22
teplota ± 0,5 ° C
BME680
teplota s presnosťou ± 1,0 ° C
Krok 14: Úplný graf
Teraz môžete vidieť, že senzory sa nakoniec vyrovnali a súhlasili s teplotou viac -menej v rámci opísanej presnosti. Ak sa odoberie 1,7 stupňa z hodnôt TMP36 (očakáva sa ± 2 ° C), existuje dobrá zhoda medzi všetkými snímačmi.
Pri prvom spustení tohto experimentu spôsobil snímač DHT22 problém:
výstup main.py:
14.9, 13.5, 10.3, 13.7
15.7, 14.6, 10.5, 14.0
16.6, 15.6, 12.0, 14.4
18.2, 16.7, 13.0, 15.0
18.8, 17.6, 14.0, 15.6
19.8, 18.4, 14.8, 16.2
21.1, 18.7, 15.5, 16.9
21.7, 19.6, 16.0, 17.5
22.4, 20.2, 16.5, 18.1
23.0, 20.7, 17.1, 18.7
Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)
Traceback (posledný hovor naposledy):
Súbor „main.py“, riadok 64, v
Súbor „main.py“, riadok 59, na adrese get_dht22
NameError: lokálna premenná, na ktorú sa odkazuje pred priradením
Preto som skript upravil, aby sa s týmto problémom vyrovnal, a reštartoval som nahrávanie:
Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)
25.9, 22.6, -999.0, 22.6
Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)
25.9, 22.8, -999.0, 22.7
25.9, 22.9, 22.1, 22.8
25.9, 22.9, 22.2, 22.9
Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)
27.1, 23.0, -999.0, 23.0
Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)
27.2, 23.0, -999.0, 23.1
25.9, 23.3, 22.6, 23.2
Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)
28.4, 23.2, -999.0, 23.3
Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)
26.8, 23.1, -999.0, 23.3
26.5, 23.2, 23.0, 23.4
26.4, 23.3, 23.0, 23.5
26.4, 23.4, 23.1, 23.5
26.2, 23.3, 23.1, 23.6
S druhým behom som nemal problém. Dokumentácia Adafruit varuje, že senzory DHT niekedy zmeškajú namerané hodnoty.
Krok 15: Závery
Táto krivka jasne ukazuje, že vyššia tepelná kapacita niektorých senzorov zvyšuje ich reakčný čas.
Všetky senzory zaznamenávajú stúpajúce a klesajúce teploty.
Nie sú veľmi rýchle na to, aby sa usadili na novej teplote.
Nie sú veľmi presné. (Sú dosť dobré na meteorologickú stanicu?)
Možno budete musieť svoj snímač kalibrovať na dôveryhodný teplomer.
Odporúča:
Sieť teplotných senzorov: 6 krokov
Sieť teplotných senzorov: Teplota a vlhkosť sú životne dôležité údaje vo vašom laboratóriu, kuchyni, výrobnej linke, kancelárii, vražedných robotoch a dokonca aj vo vašom dome. Ak potrebujete monitorovať viacero miest alebo miestností alebo priestorov, potrebujete niečo, čo je spoľahlivé, kompaktné, presné a
Zostava a testovanie bodovej matice LED MAX7219: 6 krokov (s obrázkami)
Zostava a testovanie bodovej matice LED MAX7219 Dot-Matrix Display je zobrazovacie zariadenie, ktoré obsahuje diódy vyžarujúce svetlo zarovnané do tvaru matice. Tieto ihličkové displeje sa používajú v aplikáciách, kde sú potrebné symboly, grafika, znaky, abecedy a číslice zobrazovať spoločne
Ako používať Tinkercad na testovanie a implementáciu hardvéru: 5 krokov (s obrázkami)
Ako používať Tinkercad na testovanie a implementáciu hardvéru: Simulácia obvodov je technika, pri ktorej počítačový softvér simuluje správanie elektronického obvodu alebo systému. Nové konštrukcie je možné testovať, vyhodnocovať a diagnostikovať bez toho, aby ste skutočne skonštruovali obvod alebo systém. Simulácia obvodu môže byť
Stresové testovanie Raspberry Pi: 6 krokov (s obrázkami)
Stresové testovanie Raspberry Pi: Keď bol Raspberry Pi prvýkrát vydaný, bol som zmietaný v humbuku pri kúpe jedného, ale nakoniec som strávil viac času s Arduinom, pretože sú vhodnejšie pre projekty elektroniky. Mám dva originálne Raspberry Pi v kôlni a myslel som si, že je to
Pero na testovanie úrovne logiky TTL: 5 krokov (s obrázkami)
Pero na testovanie logiky TTL: pero na testovanie polarity a Pero na testovanie logickej úrovne TTL. Toto pero na testovanie polarity sa mierne líši, pretože je schopné testovať úrovne TTL a zobrazuje stav na 7 -segmentovom displeji pomocou písmen: „H“; (Vysoká) pre logickú úroveň „