Cov txheej txheem:

DIY Logging Thermometer Nrog 2 Sensors: 3 Cov Kauj Ruam (nrog Duab)
DIY Logging Thermometer Nrog 2 Sensors: 3 Cov Kauj Ruam (nrog Duab)

Video: DIY Logging Thermometer Nrog 2 Sensors: 3 Cov Kauj Ruam (nrog Duab)

Video: DIY Logging Thermometer Nrog 2 Sensors: 3 Cov Kauj Ruam (nrog Duab)
Video: Night 2024, Hlis ntuj nqeg
Anonim
DIY Logging Thermometer Nrog 2 Sensors
DIY Logging Thermometer Nrog 2 Sensors
DIY Logging Thermometer Nrog 2 Sensors
DIY Logging Thermometer Nrog 2 Sensors

Qhov haujlwm no yog kev txhim kho ntawm kuv qhov haujlwm dhau los "DIY Logging Thermometer". Nws teev cov ntsuas ntsuas ntsuas mus rau micro SD daim npav.

Kho vajtse hloov

Kuv tau ntxiv DS18B20 qhov ntsuas kub rau lub sijhawm ntsuas lub sijhawm tiag tiag, qhov twg muaj kev npaj ntawm lub rooj tsav xwm luam tawm rau lub cuab yeej no; thiab ntxiv cov xaim tsim nyog los ntawm "DS" tus pin ntawm RTC rau D2 ntawm Arduino.

Hloov software

Tom qab ntawd kuv ntxiv rau thiab hloov kho software. Cov kev hloov pauv tseem ceeb yog:

Cov zaub LCD qhia pom ob qhov kub "Hauv" thiab "Tawm".

Cov ntaub ntawv teev cia kaw hauv SD daim npav muaj ob qhov kub thiab txias, "Kub Hauv" thiab "Kub Tawm".

Vim tias ntev dua ntawm daim npav SD, qhov ua haujlwm tsis zoo rau EEPROM tau loj dua thiab vim qhov no kuv pib muaj teeb meem tsis nco. Kuv tau ua ntau qhov kev hloov pauv txhawm rau txo kev siv lub cim xeeb tsis xws luag, suav nrog kev siv cov cim cim rau txhua txoj hlua es tsis txhob siv txoj hlua.

Ib feem ntawm software uas tau txais qhov kub tau hloov pauv loj, feem ntau yog ua nrog txheeb xyuas qhov kev sojntsuam twg yog "hauv" thiab uas yog "tawm". Cov cim no feem ntau tsis siv neeg. Yog tias yog vim li cas qee qhov kev tshawb fawb tau hloov pauv ib puag ncig, nws tuaj yeem raug kho los ntawm kev tshem tawm qhov "tawm" sojntsuam thiab tom qab ntawd ntsaws nws rov qab dua. Kuv tsis tau ntsib qhov kev hloov pauv kuv tus kheej. Tus programmer lossis tus neeg siv tsis tas yuav ntaus lub sensor chaw nyob, lub software tshawb pom qhov ntsuas kub qhov chaw nyob ntawm nws tus kheej.

Raws li qhov kev sim kuv tau ua tiav, kev txheeb xyuas qhov ntsuas kub, thiab cov lus teb rau kev tshem tawm thiab hloov daim npav SD, tseem ua haujlwm tau zoo.

Kauj Ruam 1: Kev Txhim Kho Software

Cov kauj ruam no muab rau koj tag nrho software rau txoj haujlwm tiav. Kuv suav nws siv Arduino IDE 1.6.12. Nws siv 21, 400 bytes ntawm qhov kev nco nco (69%) thiab 1, 278 bytes ntawm lub cim xeeb zoo (62%).

Kuv tau muab cov lus pom hauv cov cai hauv kev cia siab tias yuav ua kom pom tseeb tias yuav muaj dab tsi tshwm sim.

Kauj Ruam 2: Ua Haujlwm Nrog Ob Qhov Kub Kub - Cov Lus Qhia

Cov software no siv lub tsev qiv ntawv "OneWire". Nws tsis siv "DallasTemperature" lossis cov tsev qiv ntawv zoo sib xws. Hloov chaw cov lus txib rau thiab cov ntaub ntawv los ntawm cov ntsuas kub tau ua tiav los ntawm daim duab thiab tuaj yeem pom thiab nkag siab yooj yim heev. Kuv pom cov npe muaj txiaj ntsig ntawm OneWire lub tsev qiv ntawv cov lus txib ntawm

www.pjrc.com/teensy/td_libs_OneWire.html

Thaum muaj ob (lossis ntau dua) qhov ntsuas kub, nws dhau los ua qhov tseem ceeb los txheeb xyuas qhov twg yog qhov twg.

Kuv hu kuv ob lub cim "hauv" thiab "tawm", uas yog ib qho ntawm cov chav ua lag luam uas muaj lub ntsuas hluav taws xob hauv cov qauv ntsuas uas ib txwm "sab hauv", thiab lwm qhov ntsuas ntawm kab hluav taws xob yog li nws tuaj yeem tso rau lwm sab ntawm phab ntsa sab nraud thiab yog li "sab nraud".

Ib txoj hauv kev ib txwm los txheeb xyuas qhov kev soj ntsuam sib txawv yog txhawm rau tshawb pom cov cuab yeej chaw nyob thiab muab tso rau hauv software nrog rau cov cim cim cim. Txhua ntawm lwm qhov haujlwm uas kuv tau pom siv txoj hauv kev no, txawm hais tias lawv puas siv DallasTemperature lub tsev qiv ntawv lossis tsis yog.

Kuv lub hom phiaj yog qhov software yuav tsum tau txheeb xyuas lub ntsuas kom raug thiab muab faib kom raug rau "hauv" thiab "tawm". Qhov no yog qhov yooj yim txaus los ua los ntawm kev muab lawv tso rau ntawm Arduino tus pin cais. Hauv txoj haujlwm no, A0 txog A3 thiab A6 thiab A7 txhua tus tsis siv, yog li ib qho ntawm cov no tuaj yeem siv tau hauv qhov no. Txawm li cas los xij kuv ua tiav kom muaj kev qhia paub tus kheej ua haujlwm nrog lub ntsuas ob qho tib si ntawm tib lub npav OneWire.

Nws ua haujlwm zoo li no.

Lub tsev qiv ntawv OneWire muaj lus txib "OneWireObject.search (chaw nyob)" qhov twg "chaw nyob" yog ib qho ntawm 8 bytes thiab "OneWireObject" yog lub npe piv txwv ntawm OneWire cov khoom uas tau tsim yav dhau los. Nws tuaj yeem muaj lub npe uas koj nyiam. Kuv lub npe hu ua "ds". Thaum koj tshaj tawm qhov lus "tshawb nrhiav" no, OneWire lub tsev qiv ntawv ua qee qhov taw qhia rau ntawm ib lub npav npav. Yog tias nws pom lub ntsuas ntsuas teb, nws rov "TRUE" tus nqi boolean thiab sau rau hauv "chaw nyob" array nrog 8 byte cim tus cim ntawm lub sensor. Tus cim no suav nrog tsev neeg cov cai (thaum pib) thiab daim tshev nyiaj (thaum kawg). Hauv nruab nrab yog 6 bytes uas cim lub cim tshwj xeeb hauv nws tsev neeg.

Ib qho txiaj ntsig (chaw nyob thiab rov qab TSEEB) tau txais txhua lub sijhawm cov lus txib no tau muab, caij tsheb kauj vab hla txhua yam khoom siv ntawm OneWire npav. Thaum txhua lub cuab yeej tau teb, lub sijhawm tom ntej "tshawb nrhiav" tau tshaj tawm, qhov rov qab yog "FALSE", qhia tias txhua lub cuab yeej ntawm lub npav tau teb tas lawm. Yog tias "tshawb nrhiav" tau tshaj tawm dua, thawj lub cuab yeej teb dua - thiab ntxiv mus tas li. Cov cuab yeej ib txwm teb hauv tib qho kev txiav txim. Qhov kev txiav txim ntawm cov lus teb yog ua raws tus cim ntawm cov khoom siv ntawm lub npav OneWire. Nws zoo li yog kev tshawb nrhiav binary pib los ntawm qhov tsawg kawg ntawm cov khoom tseem ceeb ntawm tus ntaus cim. Cov txheej txheem siv los nrhiav cov cim no yog qhov nyuaj heev, thiab tau piav qhia nyob rau nplooj ntawv 51 - 54 ntawm cov ntawv "Phau ntawv ntawm iButton Cov Qauv" uas yog daim ntawv pdf ntawm https://pdfserv.maximintegrated.com/en/an/AN937.pd …

Kuv sim cov txheej txheem tshawb fawb no los ntawm 1 txog 11 lub cim ntawm ib lub npav, thiab pom cov lus teb rau cov khoom siv uas tau muab ib txwm zoo ib yam, tab sis thaum kuv ntxiv cov cuab yeej tshiab mus rau qhov kawg ntawm lub npav, tsis muaj txoj hauv kev Kuv tuaj yeem kwv yees qhov twg hauv qhov kev txiav txim tshawb nrhiav nws yuav tshwm sim. Piv txwv li, tus lej 11 uas kuv ntxiv tuaj rau ntawm txoj haujlwm No.5; thiab thawj lub sensor kuv tso rau ntawm lub npav yog aways kawg hauv qhov kev tshawb nrhiav.

Hauv qhov haujlwm no nrog ob lub ntsuas hluav taws xob, ib qho ntawm lawv tau muab tso rau hauv qhov chaw ntawm RTC module; lwm qhov yog txuas nrog siv tus txiv neej lub taub hau ntawm lub rooj tsavxwm thiab tus poj niam lub taub hau ntawm kab ntawv. Nws tuaj yeem yooj yim cais.

Thaum lub ntsuas hluav taws xob ntawm lub xov tooj (lub "tawm" sensor) raug cais, "tshawb nrhiav" cov lus txib tsim ua "TRUE" thiab "FALSE" rov qab.

Thaum lub ntsuas hluav taws xob ntawm lub xov tooj txuas nrog, "kev tshawb nrhiav" hais kom ua 3-theem kev voj voog, nrog ob "TRUE" thiab ib qho "FALSE" rov qab los.

Kuv tus txheej txheem yog tawm 1, 2 lossis 3 "tshawb nrhiav" cov lus txib, kom txog thaum qhov tsis raug rov qab los. Tom qab ntawd kuv muab 2 lo lus "tshawb nrhiav" ntxiv. Yog qhov thib ob tsis ua tiav (piv txwv li FALSE) Kuv paub tias tsuas muaj ib lub sensor ntawm lub npav thiab nws yog tus "hauv" sensor. Cov cuab yeej tus kheej tau sau tseg thiab faib rau "hauv" sensor.

Lub sijhawm tom qab, yog tias ob qho tib si thawj zaug thiab thib ob rov qab yog TSEEB, Kuv paub tias muaj ob lub cim ntawm lub npav. Kuv txheeb xyuas qhov twg ntawm lawv muaj tus kheej sib npaug rau "hauv" sensor, thiab faib lwm tus li "tawm" sensor.

Lwm qhov me me yog qhov kev sib sau ntawm cov txiaj ntsig los ntawm ob lub ntsuas tau ua tiav los ntawm kev xa "pib hloov pauv" los ntawm qhov uas paub tias yog "hla ROM" hais kom ua. Peb muaj qhov kev xaiv xa cov lus txib mus rau ib lub cuab yeej (siv nws tus cim tshwj xeeb) lossis rau txhua lub cuab yeej ntawm lub npav (hla ROM). Cov cai zoo li no:

ds.reset (); //

// xa "hla ROM" hais kom ua (yog li cov lus txib tom ntej no ua haujlwm hauv ob qho tib si) ds.write (0xCC); // Hla ROM hais kom ua ds.write (0x44, 0); // pib hloov pauv hauv ob qho kev ntsuas kub_state = tos_convert; // mus rau ncua xeev

Thaum lub sijhawm xav tau ncua sijhawm dhau los, qhov kub tau txais los ntawm txhua lub sensor ib tus zuj zus. Nov yog cov cai rau lub sensor thib ob (piv txwv li OUT sensor).

yog (flag2) {

tam sim no = ds.reset (); ds.select (DS18B20_addr_out); ds.write (0xBE); // Nyeem Scratchpad ntawm "tawm" sojntsuam cov ntaub ntawv [0] = ds.read (); cov ntaub ntawv [1] = ds.read (); kub_out = (cov ntaub ntawv [1] << 8) + cov ntaub ntawv [0]; kub_out = (6 * kub_out) + kub_ tawm / 4; // sib npaug los ntawm 6.25} lwm {// tsis flag2 - piv txwv li tawm sensor tsis txuas nrog temperature_out = 30000; // kho ntawm 300.00 C yog tias qhov ntsuas kub tsis ua haujlwm} // kawg ntawm yog (flag2)

Kuv tau ua haujlwm tawm feem ntau ntawm cov software no hauv daim duab ib leeg uas nyuam qhuav muaj qhov ntsuas kub hauv nws, yam tsis muaj teeb meem ntawm LCD, RTC thiab SD daim npav txhawb nqa. Qhov kev kos duab txhim kho no yog nyob hauv cov ntawv hauv qab no.

Kauj Ruam 3: Cov txiaj ntsig ua ntej

Cov txiaj ntsig ua ntej
Cov txiaj ntsig ua ntej

Daim ntawv no yog ua ke ntawm thawj ob ntu ib nrab hnub ntawm kev nyeem.

Pom zoo: