Мазмуну:

HYT939 жана Raspberry Pi менен нымдуулукту өлчөө: 4 кадам
HYT939 жана Raspberry Pi менен нымдуулукту өлчөө: 4 кадам

Video: HYT939 жана Raspberry Pi менен нымдуулукту өлчөө: 4 кадам

Video: HYT939 жана Raspberry Pi менен нымдуулукту өлчөө: 4 кадам
Video: Как использовать LM35 для измерения температуры в градусах Цельсия, Фаренгейта и Кельвина 2024, Июль
Anonim
Image
Image

HYT939 I2C байланыш протоколу боюнча иштеген санарип нымдуулук сенсору. Нымдуулук медициналык системаларга жана лабораторияларга келгенде негизги параметр болуп саналат, ошондуктан бул максаттарга жетүү үчүн биз HYT939ду малина pi менен интерфейске келтирүүгө аракет кылдык. Бул окуу куралында HYT939 сенсордук модулунун малина пи менен интерфейси көрсөтүлөт жана анын Java тили менен программаланышы да сүрөттөлгөн.

Нымдуулук баалуулуктарын окуу үчүн I2c adapter. This I2C адаптери менен малина пи колдонгонбуз, сенсор модулуна туташууну жеңил жана ишенимдүү кылат.

1 -кадам: Аппараттык камсыздоо талап кылынат:

Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат

Тапшырманы аткаруу үчүн керектүү жабдыктар төмөндөгүдөй:

1. HYT939

2. Raspberry Pi

3. I2C кабели

4. Raspberry Pi үчүн I2C Shield

5. Ethernet кабели

-

2 -кадам: Аппараттык туташуу:

Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу

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

HYT939 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.

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

Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.

Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.

3 -кадам: Нымдуулукту өлчөө үчүн Java коду:

Нымдуулукту өлчөө үчүн Java коду
Нымдуулукту өлчөө үчүн Java коду
Нымдуулукту өлчөө үчүн Java коду
Нымдуулукту өлчөө үчүн Java коду

Малина пи колдонуунун артыкчылыгы, башкача айтканда, сенсорго интерфейс үчүн тактаны программалоону каалаган программалоо тилинин ийкемдүүлүгүн камсыздайт. Бул тактанын артыкчылыгын колдонуп, биз бул жерде анын Java программасын көрсөтөбүз. HYT939 үчүн java кодун биздин github коомчулугунан жүктөп алса болот, бул Dcube Store.

Колдонуучулардын ыңгайлуулугу үчүн, биз бул жерде кодду түшүндүрүп жатабыз:

Коддоонун биринчи кадамы катары java болгон учурда pi4j китепканасын жүктөп алуу керек, анткени бул китепкана коддо колдонулган функцияларды колдойт. Ошентип, китепкананы жүктөө үчүн төмөнкү шилтемеге кире аласыз:

pi4j.com/install.html

Бул сенсордун java кодун бул жерден көчүрүп алсаңыз болот:

com.pi4j.io.i2c. I2CBus импорттоо;

com.pi4j.io.i2c. I2CDevice импорттоо;

com.pi4j.io.i2c. I2CFactory импорттоо;

java.io. IOException импорттоо;

коомдук класс HYT939

{

public static void main (String args ) Exception ыргытат

{

// I2CBus түзүү

I2CBus автобус = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C түзмөгүн алыңыз, HYT939 I2C дареги 0x28 (40)

I2CDevice түзмөгү = bus.getDevice (0x28);

// Кадимки режим буйругун жөнөтүү

device.write ((байт) 0x80);

Thread.sleep (500);

// 4 байт маалыматтарды окуңуз

// нымдуулук msb, нымдуулук lsb, temp msb, temp lsb

байт маалымат = жаңы байт [4];

device.read (маалыматтар, 0, 4);

// Маалыматтарды 14 битке айландырыңыз

кош нымдуулук = (((маалымат [0] & 0x3F) * 256) + (маалымат [1] & 0xFF)) * (100.0 / 16383.0);

кош cTemp = ((((маалыматтар [2] & 0xFF) * 256) + (маалыматтар [3] & 0xFC)) / 4) * (165.0 / 16383.0) - 40;

кош fTemp = (cTemp * 1.8) + 32;

// Экранга маалыматтарды чыгаруу

System.out.printf ("Салыштырмалуу нымдуулук: %.2f %% RH %n", нымдуулук);

System.out.printf ("Цельсий боюнча температура: %.2f C %n", cTemp);

System.out.printf ("Фаренгейттеги температура: %.2f F %n", fTemp);

}

}

Сенсор менен тактанын ортосундагы i2c байланышын жеңилдеткен китепкана pi4j, анын ар кандай пакеттери I2CBus, I2CDevice жана I2CFactory байланышты түзүүгө жардам берет.

импорттоо com.pi4j.io.i2c. I2CBus; импорттоо com.pi4j.io.i2c. I2CDevice; com.pi4j.io.i2c. I2CFactory импорттоо; java.io. IOException импорттоо;

write () жана read () функциялары сенсорго белгилүү бир режимде иштеши үчүн жана сенсордун чыгарылышын окуу үчүн кээ бир өзгөчө буйруктарды жазуу үчүн колдонулат. Коддун кийинки бөлүгү бул функциялардын колдонулушун көрсөтөт.

// Кадимки режимдеги команданы жөнөтүү device.write ((байт) 0x80); Thread.sleep (500); // Окуу 4 байт маалымат // нымдуулук мсб, нымдуулук lsb, темп msb, temp lsb байт маалымат = жаңы байт [4]; device.read (маалыматтар, 0, 4);

Сенсордун чыгышы дагы жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

HYT939 натыйжалуу санарип нымдуулук сенсору болуп Медициналык системаларда, Автоклавдарда колдонулат. Басымдын шүүдүрүм чекитин өлчөө жана кургатуу системалары да бул сенсор модулунун колдонулушун табышат. Тиешелүү нымдуулуктун деңгээли эксперименттерди жүргүзүү үчүн негизги параметр болуп саналган ар кандай лабораторияларда бул сенсорду нымдуулукту өлчөө үчүн жайгаштырууга болот.

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