Mundarija:

MCP9803 va Raspberry Pi yordamida haroratni o'lchash: 4 qadam
MCP9803 va Raspberry Pi yordamida haroratni o'lchash: 4 qadam

Video: MCP9803 va Raspberry Pi yordamida haroratni o'lchash: 4 qadam

Video: MCP9803 va Raspberry Pi yordamida haroratni o'lchash: 4 qadam
Video: BMP280 Pressure & Temperature Sensor with Python over I2C (Raspberry Pi) 2024, Iyul
Anonim
Image
Image

MCP9803-2 simli yuqori aniqlikdagi harorat sensori. Ular foydalanuvchi tomonidan dasturlashtiriladigan registrlar bilan jihozlangan bo'lib, ular haroratni sezishni osonlashtiradi. Bu sensor juda ko'p zonali haroratni nazorat qilish tizimi uchun javob beradi.

Ushbu qo'llanmada MCP9803 sensori modulining malina pi bilan o'zaro aloqasi ko'rsatilgan va uning Java tili yordamida dasturlashi ham tasvirlangan. Harorat qiymatlarini o'qish uchun biz I2C adapterli malina pi dan foydalanganmiz, bu I2C adapteri sensor moduliga ulanishni oson va ishonchli qiladi.

1 -qadam: Uskuna kerak:

Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi

Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:

1. MCP9803

2. Raspberry pi

3. I2C kabeli

4. Malina pi uchun I2C qalqoni

5. Ethernet kabeli

2 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi, asosan, sensori va malina pi o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:

MCP9803 I2C orqali ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.

Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz.

Sizga faqat to'rtta sim kerak! Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.

Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.

3 -qadam: Haroratni o'lchash kodi:

Haroratni o'lchash kodi
Haroratni o'lchash kodi

Malinali pi -ni ishlatishning afzalligi shundaki, u sizga sensorni interfeysga ulash uchun taxtani dasturlashni xohlagan dasturlash tilining moslashuvchanligini ta'minlaydi. Ushbu kengashning afzalliklaridan foydalanib, biz bu erda Java dasturlashini namoyish qilamiz. MCP9803 uchun java kodini bizning Github hamjamiyatidan yuklab olish mumkin, bu Dcube do'koni.

Foydalanuvchilarning qulayligi uchun biz bu erda ham kodni tushuntiramiz:

Kodlashning birinchi bosqichi sifatida siz java holatida pi4j kutubxonasini yuklab olishingiz kerak, chunki bu kutubxona kodda ishlatiladigan funktsiyalarni qo'llab -quvvatlaydi. Shunday qilib, kutubxonani yuklab olish uchun quyidagi havolaga kirishingiz mumkin:

pi4j.com/install.html

Bu sensor uchun ishlaydigan java kodini bu erdan ham ko'chirishingiz mumkin:

com.pi4j.io.i2c. I2CBus -ni import qilish;

com.pi4j.io.i2c. I2CDevice -ni import qilish;

com.pi4j.io.i2c. I2CFactory -ni import qilish;

java.io. IOException import; umumiy sinf MCP9803

{

public static void main (String args ) istisno qiladi

{

// I2C avtobusini yarating

I2CBus avtobus = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C qurilmasini oling, MCP9803 I2C manzili 0x48 (72)

I2CDevice qurilmasi = Bus.getDevice (0x48);

// Konfiguratsiya registrini tanlang

// Uzluksiz konvertatsiya rejimi, Quvvat manbai, taqqoslash rejimi, 12-bitli aniqlik

device.write (0x01, (bayt) 0x60);

Thread.sleep (500);

// 0x00 (0) manzilidan 2 bayt ma'lumotni o'qing

// temp msb, temp lsb

bayt ma'lumotlar = yangi bayt [2];

device.read (0x00, ma'lumotlar, 0, 2);

// Ma'lumotni 12 bitga aylantiring

int temp = ((ma'lumotlar [0] & 0xFF) * 256 + (ma'lumotlar [1] & 0xF0)) / 16;

agar (harorat> 2047)

{

harorat -= 4096;

}

er -xotin cTemp = temp * 0.0625;

er -xotin fTemp = cTemp * 1.8 + 32;

// Ma'lumotni ekranga chiqarish

System.out.printf ("Selsiydagi harorat: %.2f C %n", cTemp);

System.out.printf ("Farengeytdagi harorat: %.2f F %n", fTemp);

}

}

Sensor va karta o'rtasidagi i2c aloqasini osonlashtiradigan kutubxona pi4j, uning turli paketlari I2CBus, I2CDevice va I2CFactory ulanishni o'rnatishga yordam beradi.

com.pi4j.io.i2c. I2CBus -ni import qilish;

com.pi4j.io.i2c. I2CDevice -ni import qilish;

com.pi4j.io.i2c. I2CFactory -ni import qilish;

java.io. IOException ni import qilish;

yozish () va o'qish () funktsiyalari sensorga ma'lum rejimda ishlashini ta'minlash uchun maxsus buyruqlarni yozish va sensorning chiqishini o'qish uchun ishlatiladi.

Sensorning chiqishi ham yuqoridagi rasmda ko'rsatilgan.

4 -qadam: Ilovalar:

Ilovalar
Ilovalar

MCP9803 shaxsiy kompyuter va tashqi qurilmalar, qattiq disklar, har xil ko'ngilochar tizimlar, ofis tizimlari va ma'lumotlar uzatish tizimlarini o'z ichiga oladigan ko'plab qurilmalarda ishlatilishi mumkin. Bu sensorni har xil murakkab tizimlarga kiritish mumkin.

Tavsiya: