Съдържание:

Измерване на температурата с помощта на MCP9803 и Raspberry Pi: 4 стъпки
Измерване на температурата с помощта на MCP9803 и Raspberry Pi: 4 стъпки

Видео: Измерване на температурата с помощта на MCP9803 и Raspberry Pi: 4 стъпки

Видео: Измерване на температурата с помощта на MCP9803 и Raspberry Pi: 4 стъпки
Видео: How to use Allegro ACS712 AC/DC Current Sensor with Arduino 2024, Ноември
Anonim
Image
Image

MCP9803 е 2-жичен температурен сензор с висока точност. Те са въплътени с програмируеми от потребителя регистри, които улесняват приложенията за измерване на температурата. Този сензор е подходящ за много сложна многозонова система за мониторинг на температурата.

В този урок е демонстрирано взаимодействието на сензорния модул MCP9803 с малинов pi и е илюстрирано и неговото програмиране с помощта на Java език. За да прочетете температурните стойности, използвахме малинов pi с I2C адаптер, който прави връзката към сензорния модул лесна и по -надеждна.

Стъпка 1: Изисква се хардуер:

Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. MCP9803

2. Малина пи

3. I2C кабел

4. I2C щит за малиново пи

5. Ethernet кабел

Стъпка 2: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

MCP9803 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици.

Всичко, от което се нуждаете, са четири проводника! Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 3: Код за измерване на температурата:

Код за измерване на температурата
Код за измерване на температурата

Предимството на използването на малинов pi е, че ви осигурява гъвкавостта на езика за програмиране, на който искате да програмирате платката, за да свържете интерфейса на сензора с нея. Използвайки това предимство на тази дъска, ние демонстрираме, че това е програмиране на Java. Java кодът за MCP9803 може да бъде изтеглен от нашата Github общност, която е Dcube Store.

Освен за улеснение на потребителите, ние обясняваме кода и тук:

Като първа стъпка на кодиране трябва да изтеглите библиотеката pi4j в случай на java, защото тази библиотека поддържа функциите, използвани в кода. Така че, за да изтеглите библиотеката, можете да посетите следната връзка:

pi4j.com/install.html

Можете да копирате работещия java код за този сензор и от тук:

внос com.pi4j.io.i2c. I2CBus;

внос com.pi4j.io.i2c. I2CDevice;

внос com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; публичен клас MCP9803

{

public static void main (String args ) хвърля Exception

{

// Създаване на I2C шина

I2CBus шина = I2CFactory.getInstance (I2CBus. BUS_1);

// Вземете I2C устройство, MCP9803 I2C адресът е 0x48 (72)

I2CDevice устройство = Bus.getDevice (0x48);

// Изберете конфигурационен регистър

// Режим на непрекъснато преобразуване, включване, режим на сравнение, 12-битова резолюция

device.write (0x01, (байт) 0x60);

Thread.sleep (500);

// Прочетете 2 байта данни от адрес 0x00 (0)

// temp msb, temp lsb

байт данни = нов байт [2];

device.read (0x00, данни, 0, 2);

// Конвертираме данните в 12-бита

int temp = ((данни [0] & 0xFF) * 256 + (данни [1] & 0xF0)) / 16;

ако (temp> 2047)

{

temp -= 4096;

}

двоен cTemp = temp * 0.0625;

двоен fTemp = cTemp * 1.8 + 32;

// Извеждане на данни на екрана

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 () се използват за записване на някои конкретни команди към сензора, за да го накарат да работи в определен режим и четене съответно на изхода на сензора.

Изходът на сензора също е показан на горната снимка.

Стъпка 4: Приложения:

Приложения
Приложения

MCP9803 може да се използва в широка област от устройства, които включват персонален компютър и периферни устройства, твърди дискове, различни развлекателни системи, офис системи и системи за комуникация на данни. Този сензор може да бъде вграден в различни сложни системи.

Препоръчано: