Cov txheej txheem:

Arduino 1-wire Cov Neeg Siv Khoom/Qhua Ntaus (Sensor): 4 Cov Kauj Ruam
Arduino 1-wire Cov Neeg Siv Khoom/Qhua Ntaus (Sensor): 4 Cov Kauj Ruam

Video: Arduino 1-wire Cov Neeg Siv Khoom/Qhua Ntaus (Sensor): 4 Cov Kauj Ruam

Video: Arduino 1-wire Cov Neeg Siv Khoom/Qhua Ntaus (Sensor): 4 Cov Kauj Ruam
Video: Qhia txuas xaim hluav taws xob daim: 02 2024, Hlis ntuj nqeg
Anonim
Arduino 1-xaim Cov Neeg Siv Khoom/Qhua Ntaus (Sensor)
Arduino 1-xaim Cov Neeg Siv Khoom/Qhua Ntaus (Sensor)

Thov nyeem Cov Lus Taw Qhia thiab Kauj Ruam 2 ntawm kuv cov lus qhia txog yuav tsim Arduino 1-wire Display (144 Chars) txhawm rau kom tau txais xov xwm ntau ntxiv txog qhov xwm txheej thiab cov tsev qiv ntawv muaj. Raws li tau piav qhia nyob ntawd peb yuav siv OneWire-Hub lub tsev qiv ntawv (OneWire qhev ntaus ntawv emulator) los ntawm orgua (xyuam xim muaj lwm rab diav rawg ncig) txhawm rau tsim cov khoom siv 1-xaim (piv txwv li cov ntsuas) siv Arduino.

Kauj ruam 1: Software

Qhov tseem ceeb tshaj plaws yog ua kom lub cuab yeej uas tuaj yeem rov qab los txhua yam ntawm tus nqi hauv qhov yooj yim. Lub ntsiab lus tias tus qauv software tuaj yeem siv los nyeem tag nrho cov txiaj ntsig ncaj qha (tsis muaj kev sib tham lossis xav tau kev hloov pauv binary). Txog qhov ntawd peb xav tau qhov yooj yim heev vim 1-xov tooj ntaus ntawv uas tuaj yeem rov ntab thiab tau txais kev txhawb nqa dav. Qhov kev xaiv nkaus xwb kuv paub yog DS18B20 Tus pas ntsuas kub (DS2438 Roj Teeb Saib yog qhov nthuav thiab muaj txiaj ntsig ib yam tab sis nyuaj heev thiab yog li qeeb ntawm lwm qhov tsis zoo). Lub tsev qiv ntawv OneWire-Hub muaj qhov piv txwv hu ua DS18B20_asInterface uas ua raws qhov peb xav tau. Nws tsim cov pawg DS18B20 uas txhua tus sawv cev rau ib tus nqi ntab peb xav rov qab los ntawm peb lub sensor (s). Cov kev txwv ntawm no yog qhov kev daws teeb meem thiab qhov muaj txiaj ntsig yuav tsum yog nyob ntawm thaj tsam -55, 0… 125, 0. Qhov ntawd tuaj yeem ua tiav yooj yim - hauv qhov xwm txheej phem tshaj yuav tsum tau rov kho dua - thiab qhov tseeb zoo dua qhov txiaj ntsig uas tuaj yeem sawv cev los ntawm piv txwv. DS2438 qhov tseem ceeb (1.5 txog 10V). Xwb, ntau qhov txiaj ntsig loj tuaj yeem tsim los ntawm kev siv:

setTemperatureRaw (zoo li qub _cast (tus nqi * 16.0f));

tab sis nyeem thiab ua cov txiaj ntsig no yuav tsis raug txhawb los ntawm txhua lub software vim nws tawm ntawm qhov tshwj xeeb.

Dab tsi koj yuav tsum paub txog yog qhov pib qhov tsawg kawg ntawm cov qhev raug txwv rau 8 tab sis tuaj yeem hloov pauv hauv "OneWireHub_config.h" los ntawm kev nce HUB_SLAVE_LIMIT txog 32. Tsis tas li koj yuav tsum nco ntsoov lees txais ONEWIRE_TIME_MSG_HIGH_TIMEOUT yog xav tau los ntawm koj 1-xaim network (piv txwv li x10), raws li tau piav qhia hauv Kauj Ruam 2 ntawm Arduino 1-wire Display (144 Chars). Thiab kom siv IDE Version> = 1.8.3 los sau thiab xa cov cai rau koj Arduino.

Nov yog qhov piv txwv cov cai ntawm lub cuab yeej kuv tsim los tsis ntev los no. Raws li kuv xav tias koj tsis siv tib qho kev sib xyaw ua ke uas kuv ua Kuv yuav tsis mus ntxiv rau hauv cov ntsiab lus ntawm no, txheeb xyuas cov cai thiab nug cov lus nug yog tias koj xav tau kev pab.

Kauj ruam 2: Kho vajtse

Kho vajtse
Kho vajtse

Yeej yog txhua yam koj tuaj yeem txuas rau Arduino tuaj yeem siv los ua koj lub cuab yeej xaiv. Tsuas yog txwv tsis pub nyeem ntawv lub sensor yuav tsum nrawm li sai tau txhawm rau kom muaj sijhawm txaus rau 1-xaim kev sib txuas lus los ua qhov chaw (muab Kauj Ruam 2 ntawm kuv cov lus qhia txog Arduino 1-wire Display (144 Chars) nyob rau hauv kev txiav txim kom tau txais qhov piv txwv).

Piv txwv ntawm cov cuab yeej ua tau tuaj yeem yog chaw nres tsheb huab cua zoo li piv txwv:

https://shop.boxtec.ch/wetter-messer-p-41289.html

Ntxiv lossis hloov koj tsuas yog xav siv Arduino nws tus kheej ua koj lub ntsuas. Koj tuaj yeem nyeem ntxiv txog qhov ntawd hauv kuv qhov kev qhia paub txog Arduino Lesser Paub Cov Nta - qhov muaj peev xwm ua tau yog qhov hluav taws xob thiab qhov kub hauv tsev.

Nov yog qhov piv txwv cov duab ntawm lub cuab yeej uas kuv tsim los tsis ntev los no. Raws li kuv xav tias koj tsis siv tib qho kev sib xyaw ua ke uas kuv ua Kuv yuav tsis mus ntxiv rau hauv cov ntsiab lus ntawm no, txheeb xyuas cov cai thiab nug cov lus nug yog tias koj xav tau kev pab.

Kauj Ruam 3: Kuaj Cov Ntaus

Txuas nws rau koj lub network thiab txheeb xyuas koj cov software rau txhua tus ROM IDs tam sim no thiab qhov txiaj ntsig lawv rov qab los li qhov kub thiab txias.

Kauj Ruam 4: Cov Ntawv Ntxiv: ATtiny85

Cov ntawv txuas ntxiv: ATtiny85
Cov ntawv txuas ntxiv: ATtiny85

Cov cuab yeej siv ib leeg (txwv kev txwv) kuj tuaj yeem ua tiav ntawm ATtiny85. Qhov no xav tau ob peb kauj ruam thaum peb ua haujlwm ATtiny85 siv Arduino Uno ua ISP nrog kev pab ntawm Arduino IDE:

  • Txuas

    • https://playground.boxtec.ch/doku.php/arduino/att…
    • https://sebastian.expert/could-not-find-usbtiny-d…
    • https://learn.sparkfun.com/tutorials/tiny-avr-pro…
    • https://forum.arduino.cc/index.php?topic=425532.0
    • https://forum.arduino.cc/index.php?topic=128963.0
  1. siv Arduino IDE> = 1.8.3
  2. nruab ATtiny xaiv rau IDE

    1. Cov Ntaub Ntawv> Nyiam> Tus Thawj Saib Xyuas Ntxiv URLs:
    2. Cuab Yeej> Pawg Thawj Coj: ??? > Board Manager …
    3. tshawb rau: "me me" thiab nruab
  3. upload ISP kos duab rau Uno

    Cov ntaub ntawv> Piv txwv> ArduinoISP> ArduinoISP

  4. ntxig ATtiny85 rau lub cajmeem (xoom-quab yuam) lub qhov (socket) thiab xaim nws:

    1. Arduino Pin MOSI D11 rau ATtiny Pin 5
    2. Arduino Pin MISO D12 rau ATtiny Pin 6
    3. Arduino Pin SCK D13 rau ATtiny Pin 7
    4. Arduino Pin Pib D10 rau ATtiny Pin 1
    5. Arduino Pin GND rau ATtiny Pin 4
    6. Arduino Pin VCC rau ATtiny Pin 8
    7. (> = 10uF cap ntawm Arduino Uno RESET tus pin yuav xav tau)
  5. xaiv ATtiny85 (saib daim duab):

    • Pawg thawj coj: "ATtiny25/45/85"
    • Timer 1 Clock: "CPU"
    • BOD: "B. O. D. Xiam Oob Qhab"
    • LTO (1.6.11 + nkaus xwb): "Xiam Oob Qhab"
    • Nti: "ATtiny85"
    • Moos: "8 MHz (sab hauv)" (ATtiny85 thiab ATtiny84 tau tshaj)
    • Moos: "16 MHz (PLL)" (lwm qhov chaw rau ATtiny85 nkaus xwb)
    • Chaw nres nkoj: ???
  6. xaiv Programmer:

    Cov Cuab Yeej> Tus tsim tawm: "Arduino as ISP" (NOT "ArduinoISP"!)

  7. teeb fuse nqis (moos, thiab lwm yam):

    Cuab Yeej> Hlawv Bootloader

  8. upload cov cai no (programmer yuam kev LED xav tau tawm, lwm qhov pib dua nws)
  9. ATtinyX5 Pin Layout (ATtiny85):

    1. Tus Pin 1: PB5 (RST)
    2. Pin 2: PB3 (A3) - xaiv tau txuas ntawm 220ohm rau 1 <-TX
    3. Tus Pin 3: PB4 (A2) - txuas nrog 1 -xaim DATA
    4. Tus Pin 4: GND - txuas nrog GND
    5. Pin 5: PB0 (PWM) - txuas nrog sensor I2C SDA
    6. Pin 6: PB1 (PWM) - txuas nrog LED nrog 4.7k rau GND
    7. Tus Pin 7: PB2 (A1) - txuas nrog sensor I2C SCL
    8. Pin 8: VCC - txuas nrog 5V

Ua haujlwm nrog ATTiny85 xav tau kev ua haujlwm me ntsis ntxiv raws li koj xav tau kom tau txais cov tsev qiv ntawv ntxiv rau I2C comm (adafruit/TinyWireM) thiab cov ntawv tso tawm (TinyDebugSerial). Ib qho ntxiv vim lub cim xeeb yog qhov txwv heev koj yuav xav ua haujlwm ntau nrog #txhais ua piv txwv kom tshem tawm cov kev debugging. Hauv qhov piv txwv koj tuaj yeem pom txhua qhov no muab pov ua ke.

Rau kev sim thawj kauj ruam yog tshuaj xyuas seb LED teeb nrog qhov raug qhov tseeb, 0.5Hz. Tom qab ntawd txuas nws mus rau 1wire tsheb npav thiab tshawb xyuas lub cuab yeej tshiab.

Pom zoo: