Talaan ng mga Nilalaman:
- Hakbang 1: Ano ang Kailangan Mo.. !
- Hakbang 2: Mga Koneksyon:
- Hakbang 3: Code:
- Hakbang 4: Mga Aplikasyon:
Video: Arduino Nano - HTS221 Kamag-anak na Humidity at Temperatura Sensor Tutorial: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
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. Narito ang demonstrasyon kasama ang arduino nano.
Hakbang 1: Ano ang Kailangan Mo.. !
1. Arduino Nano
2. HTS221
3. I²C Cable
4. I²C Shield para sa Arduino Nano
Hakbang 2: Mga Koneksyon:
Kumuha ng isang kalasag I2C para sa Arduino Nano at dahan-dahang itulak ito sa mga pin ng Nano.
Pagkatapos ikonekta ang isang dulo ng I2C cable sa HTS221 sensor at ang iba pang mga dulo sa I2C kalasag.
Ang mga koneksyon ay ipinapakita sa larawan sa itaas.
Hakbang 3: Code:
Ang arduino code para sa HTS221 ay maaaring ma-download mula sa aming github repository- DCUBE Community.
Narito ang link para sa pareho:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Isinasama namin ang library Wire.h upang mapabilis ang komunikasyon ng I2c ng sensor gamit ang Arduino board.
Maaari mo ring kopyahin ang code mula dito, ibinibigay ito tulad ng sumusunod:
// Ipinamamahagi ng isang lisensyang malaya ang kalooban.
// Gumamit nito sa anumang paraan na nais mo, kumita o libre, naibigay na umaangkop ito sa mga lisensya ng mga nauugnay na gawa nito.
// HTS221
// Ang code na ito ay dinisenyo upang gumana sa HTS221_I2CS I2C Mini Module
# isama
// HTS221 I2C address ay 0x5F
# tukuyin ang Addr 0x5F
walang bisa ang pag-setup ()
{
// Initialise I2C na komunikasyon bilang MASTER
Wire.begin ();
// Initialise serial communication, itakda ang baud rate = 9600
Serial.begin (9600);
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Piliin ang average register ng pagsasaayos
Wire.write (0x10);
// Temperatura ng average na sample = 256, average sample ng Humidity = 512
Wire.write (0x1B);
// Stop I2C Transmission
Wire.endTransmission ();
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Piliin ang control register1
Wire.write (0x20);
// Power ON, Patuloy na pag-update, rate ng output ng data = 1 Hz
Wire.write (0x85);
// Stop I2C Transmission
Wire.endTransmission ();
pagkaantala (300);
}
walang bisa loop ()
{
unsigned int data [2];
unsigned int val [4];
unsigned int H0, H1, H2, H3, T0, T1, T2, T3, hilaw;
// Mga halaga ng calliberation ng kahalumigmigan
para sa (int i = 0; i <2; i ++)
{
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write ((48 + i));
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 1 byte ng data
Wire.requestFrom (Addr, 1);
// Basahin ang 1 byte ng data
kung (Wire.available () == 1)
{
data = Wire.read ();
}
}
// I-convert ang data ng Humidity
H0 = data [0] / 2;
H1 = data [1] / 2;
para sa (int i = 0; i <2; i ++)
{
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write ((54 + i));
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 1 byte ng data
Wire.requestFrom (Addr, 1);
// Basahin ang 1 byte ng data
kung (Wire.available () == 1)
{
data = Wire.read ();
}
}
// I-convert ang data ng Humidity
H2 = (data [1] * 256.0) + data [0];
para sa (int i = 0; i <2; i ++)
{
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write ((58 + i));
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 1 byte ng data
Wire.requestFrom (Addr, 1);
// Basahin ang 1 byte ng data
kung (Wire.available () == 1)
{
data = Wire.read ();
}
}
// I-convert ang data ng Humidity
H3 = (data [1] * 256.0) + data [0];
// Mga halaga ng calliberation ng temperatura
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write (0x32);
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 1 byte ng data
Wire.requestFrom (Addr, 1);
// Basahin ang 1 byte ng data
kung (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write (0x33);
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 1 byte ng data
Wire.requestFrom (Addr, 1);
// Basahin ang 1 byte ng data
kung (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write (0x35);
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 1 byte ng data
Wire.requestFrom (Addr, 1);
// Basahin ang 1 byte ng data
kung (Wire.available () == 1)
{
hilaw = Wire.read ();
}
hilaw = hilaw at 0x0F;
// I-convert ang mga halaga ng calliberation ng temperatura sa 10-bit
T0 = (((raw & 0x03) * 256) + T0;
T1 = (((raw & 0x0C) * 64) + T1;
para sa (int i = 0; i <2; i ++)
{
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write ((60 + i));
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 1 byte ng data
Wire.requestFrom (Addr, 1);
// Basahin ang 1 byte ng data
kung (Wire.available () == 1)
{
data = Wire.read ();
}
}
// I-convert ang data
T2 = (data [1] * 256.0) + data [0];
para sa (int i = 0; i <2; i ++)
{
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write ((62 + i));
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 1 byte ng data
Wire.requestFrom (Addr, 1);
// Basahin ang 1 byte ng data
kung (Wire.available () == 1)
{
data = Wire.read ();
}
}
// I-convert ang data
T3 = (data [1] * 256.0) + data [0];
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Magpadala ng rehistro ng data
Wire.write (0x28 | 0x80);
// Stop I2C Transmission
Wire.endTransmission ();
// Humiling ng 4 bytes ng data
Wire.requestFrom (Addr, 4);
// Basahin ang 4 bytes ng data
// halumigmig msb, halumigmig lsb, temp msb, temp lsb
kung (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// I-convert ang data
float halumigmig = (val [1] * 256.0) + val [0];
halumigmig = ((1.0 * H1) - (1.0 * H0)) * (1.0 * halumigmig - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
int temp = (val [3] * 256) + val [2];
float cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Output data sa serial monitor
Serial.print ("Kamag-anak na kahalumigmigan:");
Serial.print (halumigmig);
Serial.println ("% RH");
Serial.print ("Temperatura sa Celsius:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatura sa Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
pagkaantala (500);
}
Hakbang 4: 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:
Pagmamanman ng Temperatura sa Temperatura at Humidity Gamit ang Cloud ng ESP32 at AskSensors: 6 na Hakbang
Pagsubaybay sa Temperatura ng Temperatura at Humidity Sa Cloud ng ESP32 at AskSensors: Sa tutorial na ito matututunan mo kung paano subaybayan ang temperatura at halumigmig ng iyong silid o desk gamit ang DHT11 at ang ESP32 na konektado sa cloud. Ang aming mga pag-update ng tutorial ay matatagpuan dito. DHT11 Mga detalye: Ang sensor ng DHT11 ay maaaring masukat ang temperatura
Humidity at Temperatura Pagsukat Gamit ang HIH6130 at Arduino Nano: 4 na Hakbang
Humidity at Temperatura Pagsukat Gamit ang HIH6130 at Arduino Nano: HIH6130 ay isang kahalumigmigan at temperatura sensor na may digital output. Ang mga sensor na ito ay nagbibigay ng antas ng kawastuhan na ± 4% RH. Gamit ang pangmatagalang katatagan na nangunguna sa industriya, totoong kompensasyong digital I2C na binayaran ng temperatura, pagiging maaasahan ng nangunguna sa industriya, kahusayan ng Enerhiya
ESP8266 Pagsubaybay sa Temperatura ng Nodemcu Paggamit ng DHT11 sa isang Local Webserver - Kumuha ng Temperatura ng Temperatura at Humidity sa Iyong Browser: 6 na Hakbang
ESP8266 Pagsubaybay sa Temperatura ng Nodemcu Paggamit ng DHT11 sa isang Local Webserver | Kumuha ng Temperatura ng Temperatura at Kahalumigmigan sa Iyong Browser: Kumusta mga tao ngayon gagawa kami ng isang kahalumigmigan & temperatura monitoring system gamit ang ESP 8266 NODEMCU & Sensor ng temperatura ng DHT11. Ang temperatura at halumigmig ay makukuha mula sa DHT11 Sensor & makikita ito sa isang browser kung aling webpage ang magiging manag
Monitor ng Temperatura sa Temperatura at Humidity: 6 Hakbang
Room Temperature and Humidity Monitor: Sinusukat ng aking proyekto, QTempair ang temperatura ng kuwarto, halumigmig at kalidad ng hangin. Ang proyektong ito ay nagbabasa ng data mula sa mga sensor, ipinapadala ang data sa database at ang data na iyon ay ipapakita sa isang website. Maaari kang makatipid ng isang temperatura sa mga setting sa
Madali ang IoT: Nakukuha ang Data ng Remote na Panahon: UV at Temperatura ng Temperatura at Humidity: 7 Hakbang
Madali ang IoT: Nakukuha ang Data ng Remote na Panahon: UV at Temperatura ng Temperatura at Humidity: Sa tutorial na ito, makukuha namin ang malayuang data bilang UV (Ultra-Violet radiation), temperatura ng hangin at halumigmig. Ang data na iyon ay magiging napakahalaga at gagamitin sa hinaharap na kumpletong Weather Station. Ipinapakita ng block Diagram kung ano ang makukuha natin sa dulo