Мазмуну:

DS18B20 сенсорун Arduino UNO менен калибрлөө: 3 кадам (сүрөттөр менен)
DS18B20 сенсорун Arduino UNO менен калибрлөө: 3 кадам (сүрөттөр менен)

Video: DS18B20 сенсорун Arduino UNO менен калибрлөө: 3 кадам (сүрөттөр менен)

Video: DS18B20 сенсорун Arduino UNO менен калибрлөө: 3 кадам (сүрөттөр менен)
Video: Удаленно контролировать энергопотребление дома | ПЗЭМ-004Т | Облако Интернета вещей RemoteXY 2024, Июль
Anonim
DS18B20 сенсорун Arduino UNO менен калибрлөө
DS18B20 сенсорун Arduino UNO менен калибрлөө
DS18B20 сенсорун Arduino UNO менен калибрлөө
DS18B20 сенсорун Arduino UNO менен калибрлөө
DS18B20 сенсорун Arduino UNO менен калибрлөө
DS18B20 сенсорун Arduino UNO менен калибрлөө

ЖООПКЕРЧИЛИК:

Сиз сүрөттөрдө көргөн түзмөк башка долбоордо фильмди иштеп чыгуу процесси үчүн термостат катары колдонулат. Сиз бул долбоорду бул жерден таба аласыз. Сенсорду же бир нечесин калибрлөө үчүн, сизге бул долбоордо таба турган нерсеңиз керек, башка эч нерсе жок, жана бул абдан жөнөкөй! Кеттик!

1 -кадам: Түзмөгүңүздү даярдаңыз

Түзмөгүңүздү даярдаңыз
Түзмөгүңүздү даярдаңыз

Бул жерде сизге керектүү нерселердин тизмеси келтирилген:

  1. Arduino UNO (же MEGA)
  2. DS18B20 сенсорлору
  3. 4kOhm - 5kOhm каршылыгы (мен 5k1Ohm колдондум)
  4. ЖК экран баалуулуктарды окуу үчүн (ноутбукту колдонуп, сериялык монитордон эле окуй аласыз)
  5. Сенсорду колдонгон жана кандайдыр бир түрдө баалуулуктарды көрсөтүүчү эскиз

Биринчиден, сиз модулуңузду жана сенсорду контроллериңизге туташтырышыңыз керек. Мен ЖКнын татаал бөлүгүн таштап кетем, сен интернеттен издейсиң, мен сенсорду кантип туташтыруу керектигин айтам.

Адатта, бул сенсорлор үч түстүү зым менен келет: Кара, Кызыл, Сары. Биринчи экөө энергия үчүнчүсү маалымат үчүн. Кара түстү GNNге, кызылды Vccке (5V) жана сарыга аналогдук киришке туташтырыңыз, айталы A0.

Эми байланыштарды аягына чыгаруу үчүн сары менен кызылдын ортосундагы каршылыкты туташтырыңыз.

ЖКны да сайыңыз (мен жалпысынан 4 зымды колдонуу үчүн i2c туташуусу бар жөнөкөй 16x2 ЖК сунуштайм) жана сиз зымдар жана кабелдер менен бүттүңүз.

Эми эскиз өтө жөнөкөй:

#"OneWire.h" кошуу

#"DallasTemperature.h" кошуңуз #ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1) аныктаңыз; DallasTemperature sensor1 (& ourWire1); #"LiquidCrystal_I2C.h" кошуу

LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue = 0;

void setup () {lcd.init (); lcd.backlight (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); RawValue float = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Сезим. 1"); lcd.print (RawValue, 1); }

Көрүнүп тургандай, биз Даллас Температура китепканасын жана i2c туташуусу бар ЖК экранды колдонобуз.

Орнотууда биз ЖКны жана сенсорду иштетебиз жана циклде биз жөн гана температураны сурайбыз жана баалуулукту RawValue ичинде ЖКда көрсөтүү үчүн сактайбыз.

Эгер сиз аны жөнөкөй кылгыңыз келсе, жөн гана төмөнкү эскиз менен сериялык мониторду колдонуңуз

#кошуу "Wire.h" #кошуу "OneWire.h" #include "DallasTemperature.h" #аныктоо ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1);

float RawValue = 0;

жараксыз орнотуу () {

кечигүү (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

void loop () {sensor1.requestTemperatures (); RawValue float = sensor1.getTempCByIndex (0); Serial.print ("Сезим. 1"); Serial.println (RawValue, 1); }

Эми сенсорду калибрлөө үчүн долбоордун өзөгүндө мени ээрчиңиз.

2 -кадам: Эки чекиттүү калибрлөө

Эки чекиттүү калибрлөө
Эки чекиттүү калибрлөө
Эки чекиттүү калибрлөө
Эки чекиттүү калибрлөө
Эки чекиттүү калибрлөө
Эки чекиттүү калибрлөө

Бир нерсени биринчи билиш керек

Термо-сенсорду калибрлөө үчүн, температураны билген нерсени өлчөө керек. Үй шартында муну жасоонун жөнөкөй жолу-бул "үч чекиттүү" ванна деп аталган кайнак сууну жана ээрүүчү муздун ваннасын колдонуу. Мындай учурларда биз билебиз, суу деңиз деңгээлинде 100 ° Сде кайнайт. Так өлчөө үчүн бийиктигиңизди билишиңиз керек жана ошол жердеги кайноо температурасын эсептеп алышыңыз керек экенин унутпаңыз.

Бул жерден текшере аласыз!

Чынын айтсам, бийиктикти эмес, атмосфералык басымды текшериш керек. Бирок бул жол жетишерлик так.

Үч чекиттүү ванна же муз ваннасы-бул катуу, суюк жана газ абалында суунун бар болгон температурасы, бул температура 0, 01 ° С. Биз жөнөкөйлөтүү үчүн 0 ° C колдонобуз.

Сенсор окуган маанини жана болушу керек болгон нерсени билип, DS18B20 чийки баасын туура нерсеге өзгөртө алабыз.

ЭСКЕРТҮҮ: сенсорду жөн эле эфир (35 ° C), пентан (36, 1 ° C), ацетон (56 ° C) сыяктуу кайнап турган чекитине коюп, калибрлөө үчүн дагы температураны колдонсоңуз болот. Этанол (78, 37 ° C), бирок ошол кайнак заттар күйүүчү газдарды чыгарат! Андыктан кылба!

Кайнак суу:

Казанга бир аз суу салып, кайнаганга чейин ысытыңыз (газдын көбүгү пайда болуп, суу өзү козголуп жатат). Сенсорду суудан башка эч нерсеге тийбеген жерге батырыңыз. Бир нече мүнөт күтө туруңуз жана LCD же сериялык мониторду окуңуз

Температура жок дегенде бир мүнөт бою ошол бойдон калышы керек. Андай болсо, ошол бааны жазыңыз. Бул сиздин: RawHigh баасы.

Үч чекиттүү ванна:

Эми чоң стаканды алыңыз (сизге чоң нерсенин да, казандын да кереги жок) жана чек арага чейин муз текчелери менен толтуруңуз. Кичинекей өлчөмдөгү муз кубиктерин колдонууга аракет кылыңыз. Эми айнектин 80% ын муздак суу менен толтуруңуз. Эгерде рычаг ылдый түшүүгө аракет кылса, аны муз менен толтуруңуз.

Эми сенсорду суу/муздун ичине салып, бир жарым мүнөт күтө туруңуз. Жок дегенде 30 секунд бою ошол бойдон калышы керек болгон температураны окуңуз. Андай болсо, аны RawLow баалуулугуңузга жазыңыз.

3 -кадам: Сиз алган баалуулуктарды туура жолдо колдонуңуз

Ошентип, азыр сиз кээ бир маанилүү баалуулуктарга ээ болдуңуз:

  • RawHigh
  • RawLow
  • ReferenceHigh
  • ReferenceLow

Шилтемелердин мааниси, албетте, кайнак суу үчүн 99.9 ° C (менин бийиктигимде 22м), жана муздак ванна үчүн 0 ° C. Эми бул маанилердин диапазондорун эсептеңиз:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Эми сиз бул сенсорду башка долбоордо колдонууга даярсыз, ал сизге туура өлчөөнү берет. Кантип? Бул жерде алган баалуулугуңузду ошол сенсор менен түзөсүз.

Келечектеги долбооруңузда сиз бул жерде окуган баалуулуктарды колдонушуңуз керек жана мен муну ушул жерде колдонгон аттарды колдонуу менен сунуштайм.

Void setup () бөлүмүнүн алдында өзгөрмөлөрдү төмөнкүдөй жарыялаңыз:

float RawHigh = 99.6; float RawLow = 0.5; float ReferenceHigh = 99.9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

Сенсорду колдонгон сайын, CorrectedValue эсептөө үчүн төмөнкү формуланы колдонсоңуз болот:

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue, албетте, сенсордун окуусу.

Дал ушул!

Эми сиз DS18B20 сенсорун же сиз колдоно турган башка сенсорду кантип калибрлөөнү билесиз! Көңүл ачуу!

Сунушталууда: