2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
HDC1000 - bu past haroratda o'lchashning aniqligini ta'minlaydigan o'rnatilgan harorat sensori bo'lgan namlik sensori. Qurilma namlikni yangi sig'im sensori asosida o'lchaydi. Namlik va harorat sensori zavod sozlamalarida. To'liq -40 ° C dan +125 ° C gacha bo'lgan harorat oralig'ida ishlaydi. Mana, uning zarracha foton bilan ko'rsatilishi.
1 -qadam: Sizga nima kerak.. !
1. Foton zarrachalari
2. HDC1000
3. I²C kabeli
4. Zarrachali foton uchun I²C qalqoni
2 -qadam: Ulanish:
Zarrachali foton uchun I2C qalqonini oling va uni zarracha foton pimlari ustidan sekin itaring.
Keyin I2C kabelining bir uchini HDC1000 sensoriga, ikkinchi uchini esa I2C ekraniga ulang.
Ulanishlar yuqoridagi rasmda ko'rsatilgan.
3 -qadam: Kod:
HDC1000 uchun zarracha kodini bizning GitHub omboridan- Dcube do'konidan yuklab olish mumkin.
Mana shu havola:
github.com/DcubeTechVentures/HDC1000…
HDC1000 ma'lumotlar jadvalini bu erda topishingiz mumkin:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Biz zarrachalar kodi uchun ikkita kutubxonadan foydalandik, ular application.h va spark_wiring_i2c.h. Sensor bilan I2C aloqasini osonlashtirish uchun Spark_wiring_i2c kutubxonasi kerak.
Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:
// Ixtiyoriy litsenziya bilan tarqatilgan.
// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.
// HDC1000
// Bu kod Dcube do'konida mavjud HDC1000_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.
#qo'shing
#qo'shing
// HDC1000 I2C manzili - 0x40 (64)
#aniqlang Addr 0x40
float cTemp = 0,0, fTemp = 0,0, namlik = 0,0;
int temp = 0, xum = 0;
bo'sh o'rnatish ()
{
// O'zgaruvchini o'rnating
Particle.variable ("i2cdevice", "HDC1000");
Zarracha.variable ("namlik", namlik);
Particle.variable ("cTemp", cTemp);
// I2C aloqasini boshlang
Wire.begin ();
// Serial aloqani ishga tushiring, bod tezligi = 9600
Serial.begin (9600);
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Konfiguratsiya registrini tanlang
Wire.write (0x02);
// Harorat, namlik yoqilgan, piksellar sonini = 14 bit, isitgich yoqilgan
Wire.write (0x30);
// I2C uzatishni to'xtating
Wire.endTransmission ();
kechikish (300);
}
bo'sh halqa ()
{
imzosiz int ma'lumotlari [2];
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Haroratni o'lchash buyrug'ini yuboring
Wire.write (0x00);
// I2C uzatishni to'xtating
Wire.endTransmission ();
kechikish (500);
// 2 bayt ma'lumotni so'rang
Wire.requestFrom (Addr, 2);
// 2 bayt ma'lumotni o'qing
// temp msb, temp lsb
agar (Wire.available () == 2)
{
ma'lumotlar [0] = Wire.read ();
ma'lumotlar [1] = Wire.read ();
}
// Ma'lumotni aylantirish
temp = ((ma'lumotlar [0] * 256) + ma'lumotlar [1]);
cTemp = (temp / 65536.0) * 165.0 - 40;
fTemp = cTemp * 1.8 + 32;
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Namlikni o'lchash buyrug'ini yuboring
Wire.write (0x01);
// I2C uzatishni to'xtating
Wire.endTransmission ();
kechikish (500);
// 2 bayt ma'lumotni so'rang
Wire.requestFrom (Addr, 2);
// 2 bayt ma'lumotni o'qing
// temp msb, temp lsb
agar (Wire.available () == 2)
{
ma'lumotlar [0] = Wire.read ();
ma'lumotlar [1] = Wire.read ();
}
// Ma'lumotni aylantirish
hum = ((ma'lumotlar [0] * 256) + ma'lumotlar [1]);
namlik = (hum / 65536,0) * 100,0;
// Ma'lumotlarni boshqaruv paneliga chiqarish
Particle.publish ("Nisbiy namlik:", Ip (namlik));
Particle.publish ("Selsiydagi harorat:", String (cTemp));
Particle.publish ("Farengeytdagi harorat:", String (fTemp));
kechikish (1000);
}
4 -qadam: Ilovalar:
HDC1000 isitish, shamollatish va konditsioner (HVAC), aqlli termostatlar va xona monitorlarida ishlatilishi mumkin. Ushbu sensor, shuningdek, printerlar, qo'l o'lchagichlar, tibbiy asboblar, yuklarni tashish, shuningdek, avtomobil oynalarini tozalashda o'z qo'llanilishini topadi.