Talaan ng mga Nilalaman:

Humidity at Temperatura Pagsukat Gamit ang HTS221 at Raspberry Pi: 4 na Hakbang
Humidity at Temperatura Pagsukat Gamit ang HTS221 at Raspberry Pi: 4 na Hakbang

Video: Humidity at Temperatura Pagsukat Gamit ang HTS221 at Raspberry Pi: 4 na Hakbang

Video: Humidity at Temperatura Pagsukat Gamit ang HTS221 at Raspberry Pi: 4 na Hakbang
Video: Bury Your Backup Servers Underground ⚰️ 2024, Hulyo
Anonim
Image
Image

Ang HTS221 ay isang ultra compact capacitive digital sensor para sa kamag-anak na halumigmig at temperatura. May kasamang elemento ng sensing at isang halo-halong signal application na tiyak na integrated circuit (ASIC) upang maibigay ang impormasyon sa pagsukat sa pamamagitan ng mga digital serial interface. Isinama sa napakaraming mga tampok na ito ay isa sa mga pinakaangkop na sensor para sa kritikal na kahalumigmigan at pagsukat ng temperatura.

Sa tutorial na ito ang interfacing ng HTS221 sensor module na may raspberry pi ay ipinakita at ang programa nito gamit ang wika ng sawa ay nakalarawan din. Upang mabasa ang halagang halumigmig at temperatura, ginamit namin ang raspberry pi na may isang I2C adapter. Ginagawa ng I2C adapter na ito ang koneksyon sa module ng sensor na mas madali at mas maaasahan.

Hakbang 1: Kinakailangan ang Hardware:

Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware

Ang mga materyal na kailangan namin para makamit ang aming layunin ay may kasamang mga sumusunod na bahagi ng hardware:

1. HTS221

2. Raspberry Pi

3. I2C Cable

4. I2C Shield para sa raspberry pi

5. Ethernet Cable

Hakbang 2: Hardware Hookup:

Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup

Karaniwang ipinapaliwanag ng seksyon ng hookup ng hardware ang mga koneksyon sa mga kable na kinakailangan sa pagitan ng sensor at ng raspberry pi. Ang pagtiyak sa tamang mga koneksyon ay ang pangunahing pangangailangan habang nagtatrabaho sa anumang system para sa nais na output. Kaya, ang mga kinakailangang koneksyon ay ang mga sumusunod:

Gagana ang HTS221 sa paglipas ng I2C. Narito ang halimbawa ng diagram ng mga kable, na nagpapakita kung paano i-wire ang bawat interface ng sensor.

Sa labas ng kahon, naka-configure ang board para sa isang interface ng I2C, dahil inirerekumenda namin ang paggamit ng hookup na ito kung hindi ka agnostiko.

Ang kailangan mo lang ay apat na wires! Apat na koneksyon lamang ang kinakailangan ng Vcc, Gnd, SCL at SDA pin at ang mga ito ay konektado sa tulong ng I2C cable.

Ang mga koneksyon na ito ay ipinakita sa mga larawan sa itaas.

Hakbang 3: Code para sa Humidity at Sukat ng Temperatura:

Code para sa Humidity at Sukat ng Temperatura
Code para sa Humidity at Sukat ng Temperatura

Ang bentahe ng paggamit ng raspberry pi ay, nagbibigay sa iyo ng kakayahang umangkop ng wika ng programa kung saan nais mong i-program ang board upang ma-interface ang sensor kasama nito. Ginagamit ang kalamangan na ito ng board na ito, ipinapakita namin dito ang programa nito sa sawa. Ang python code para sa HTS221 ay maaaring ma-download mula sa aming komunidad na github na Control Lahat ng Komunidad.

Pati na rin para sa kadalian ng mga gumagamit, ipinapaliwanag din namin ang code dito:

Bilang unang hakbang ng pag-coding kailangan mong i-download ang smbus library sa kaso ng sawa, dahil sinusuportahan ng library na ito ang mga pagpapaandar na ginamit sa code. Kaya, upang mai-download ang library maaari mong bisitahin ang sumusunod na link:

pypi.python.org/pypi/smbus-cffi/0.5.1

Maaari mong kopyahin ang gumaganang python code para sa sensor na ito mula dito din:

import smbus

oras ng pag-import

# Kumuha ng I2C bus

bus = smbus. SMBus (1)

# HTS221 address, 0x5F (95)

# Piliin ang average na rehistro ng pagsasaayos, 0x10 (16)

# 0x1B (27) Mga average na sample ng temperatura = 256, average na mga sample ng Humidity = 512

bus.write_byte_data (0x5F, 0x10, 0x1B)

# HTS221 address, 0x5F (95)

# Piliin ang control register1, 0x20 (32)

# 0x85 (133) Power ON, Patuloy na pag-update, rate ng output ng data = 1 Hz

bus.write_byte_data (0x5F, 0x20, 0x85)

oras. pagtulog (0.5)

# HTS221 address, 0x5F (95)

# Basahin ang mga halaga ng Pagkakalibrate mula sa hindi pabagu-bago ng memorya ng aparato

# Mga halagang pagkakalibrate ng Humidity

# Basahin ang data pabalik mula sa 0x30 (48), 1 byte

val = bus.read_byte_data (0x5F, 0x30)

H0 = val / 2

# Basahin ang data pabalik mula sa 0x31 (49), 1 byte

val = bus.read_byte_data (0x5F, 0x31)

H1 = val / 2

# Basahin ang data pabalik mula sa 0x36 (54), 2 bytes

val0 = bus.read_byte_data (0x5F, 0x36)

val1 = bus.read_byte_data (0x5F, 0x37)

H2 = (((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Basahin ang data pabalik mula sa 0x3A (58), 2 bytes

val0 = bus.read_byte_data (0x5F, 0x3A)

val1 = bus.read_byte_data (0x5F, 0x3B)

H3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Mga halagang pagkakalibrate ng Temperatura

# Basahin ang data pabalik mula sa 0x32 (50), 1 byte

T0 = bus.read_byte_data (0x5F, 0x32)

T0 = (T0 & 0xFF)

# Basahin ang data pabalik mula sa 0x32 (51), 1 byte

T1 = bus.read_byte_data (0x5F, 0x33)

T1 = (T1 & 0xFF)

# Basahin ang data pabalik mula sa 0x35 (53), 1 byte

hilaw = bus.read_byte_data (0x5F, 0x35)

hilaw = (raw at 0x0F)

# I-convert ang temperatura Mga halaga ng pagkakalibrate sa 10-bit

T0 = (((raw at 0x03) * 256) + T0

T1 = (((raw at 0x0C) * 64) + T1

# Basahin ang data pabalik mula sa 0x3C (60), 2 bytes

val0 = bus.read_byte_data (0x5F, 0x3C)

val1 = bus.read_byte_data (0x5F, 0x3D)

T2 = (((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Basahin ang data pabalik mula sa 0x3E (62), 2 bytes

val0 = bus.read_byte_data (0x5F, 0x3E)

val1 = bus.read_byte_data (0x5F, 0x3F)

T3 = (((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Basahin ang data pabalik mula sa 0x28 (40) na may rehistro na 0x80 (128), 4 bytes

# halumigmig msb, halumigmig lsb, temp msb, temp lsb

data = bus.read_i2c_block_data (0x5F, 0x28 | 0x80, 4)

# I-convert ang data

halumigmig = (data [1] * 256) + data [0]

halumigmig = ((1.0 * H1) - (1.0 * H0)) * (1.0 * halumigmig - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0)

temp = (data [3] * 256) + data [2]

kung temp> 32767:

temp - = 65536

cTemp = (((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1.8) + 32

# Data ng output sa screen

i-print ang "Kamag-anak na Humidity:%.2f %%"% halumigmig

i-print ang "Temperatura sa Celsius:%.2f C"% cTemp

i-print ang "Temperatura sa Fahrenheit:%.2f F"% fTemp

Ang bahagi ng code na nabanggit sa ibaba ay may kasamang mga aklatan na kinakailangan para sa wastong pagpapatupad ng mga python code.

import smbus

oras ng pag-import

Ang code ay maaaring maipatupad sa pamamagitan ng pag-type ng nabanggit na utos sa command prompt.

$> sawa HTS221.py

Ang output ng sensor ay ipinapakita din sa larawan sa itaas para sa sanggunian ng gumagamit.

Hakbang 4: Mga Aplikasyon:

Mga Aplikasyon
Mga Aplikasyon

Maaaring gamitin ang HTS221 sa iba't ibang mga produktong consumer tulad ng mga air humidifiers at refrigerator atbp. Natagpuan din ng sensor na ito ang aplikasyon nito sa isang mas malawak na arena kasama ang Smart home automation, Industrial automation, respiratory equipments, asset at mga kalakal sa pagsubaybay.

Inirerekumendang: