Სარჩევი:

ტემპერატურისა და ტენიანობის გაზომვა HDC1000 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
ტემპერატურისა და ტენიანობის გაზომვა HDC1000 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი

ვიდეო: ტემპერატურისა და ტენიანობის გაზომვა HDC1000 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი

ვიდეო: ტემპერატურისა და ტენიანობის გაზომვა HDC1000 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
ვიდეო: ტემპერატურისა და ტენიანობის საზომი მოწყობილობა ოთახის პირობებში M365 2024, ივლისი
Anonim
Image
Image

HDC1000 არის ციფრული ტენიანობის სენსორი ინტეგრირებული ტემპერატურის სენსორით, რომელიც უზრუნველყოფს გაზომვის სიზუსტეს ძალიან დაბალი სიმძლავრის დროს. მოწყობილობა ზომავს ტენიანობას ახალი capacitive სენსორის საფუძველზე. ტენიანობისა და ტემპერატურის სენსორები ქარხნულად დაკალიბრებულია. ის ფუნქციონირებს სრული -40 ° C– დან +125 ° C ტემპერატურის დიაპაზონში.

ამ სახელმძღვანელოში ილუსტრირებულია HDC1000 სენსორის მოდულის ინტერფეისი ნაწილაკების ფოტონთან. ტემპერატურისა და ტენიანობის მნიშვნელობების წასაკითხად, ჩვენ გამოვიყენეთ ნაწილაკი I2c ადაპტერით. ეს I2C ადაპტერი სენსორულ მოდულთან კავშირს აადვილებს და უფრო საიმედო გახდის.

ნაბიჯი 1: საჭირო აპარატურა:

საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა

მასალები, რომლებიც ჩვენ გვჭირდება ჩვენი მიზნის მისაღწევად, მოიცავს შემდეგ ტექნიკურ კომპონენტებს:

1. HDC1000

2. ნაწილაკების ფოტონი

3. I2C კაბელი

4. I2C ფარი ნაწილაკების ფოტონისთვის

ნაბიჯი 2: აპარატურის დაკავშირება:

აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება

აპარატურის დაკავშირების განყოფილება ძირითადად განმარტავს გაყვანილობის კავშირებს სენსორსა და ნაწილაკ ფოტონს შორის. სწორი კავშირების უზრუნველყოფა არის ძირითადი აუცილებლობა ნებისმიერ სისტემაზე მუშაობისას სასურველი გამომუშავებისთვის. ამრიგად, საჭირო კავშირები შემდეგია:

HDC1000 იმუშავებს I2C– ზე. აქ არის გაყვანილობის დიაგრამა, რომელიც აჩვენებს, თუ როგორ უნდა დააკავშიროთ სენსორის თითოეული ინტერფეისი.

ყუთის გარეშე, დაფა კონფიგურირებულია I2C ინტერფეისისთვის, ამიტომ ჩვენ გირჩევთ გამოიყენოთ ეს კავშირი, თუ სხვაგვარად ხართ აგნოსტიკოსი.

ყველაფერი რაც თქვენ გჭირდებათ არის ოთხი მავთული! მხოლოდ ოთხი კავშირია საჭირო Vcc, Gnd, SCL და SDA ქინძისთავები და ეს დაკავშირებულია I2C კაბელის დახმარებით.

ეს კავშირები ნაჩვენებია ზემოთ მოცემულ სურათებში.

ნაბიჯი 3: ტემპერატურისა და ტენიანობის გაზომვის კოდი:

ტემპერატურისა და ტენიანობის გაზომვის კოდი
ტემპერატურისა და ტენიანობის გაზომვის კოდი

დავიწყოთ ნაწილაკების კოდით ახლა.

ნაწილაკთან ერთად სენსორული მოდულის გამოყენებისას ჩვენ ვიყენებთ application.h და spark_wiring_i2c.h ბიბლიოთეკას. "application.h" და spark_wiring_i2c.h ბიბლიოთეკა შეიცავს ფუნქციებს, რომლებიც ხელს უწყობს სენსორსა და ნაწილაკს შორის i2c კომუნიკაციას.

მომხმარებლის ნაწილის მოხერხებულობისთვის ქვემოთ მოცემულია ნაწილაკების მთელი კოდი:

#ჩართეთ

#ჩართეთ

// HDC1000 I2C მისამართი არის 0x40 (64)

#განსაზღვრეთ Addr 0x40

ორმაგი cTemp = 0.0, fTemp = 0.0, ტენიანობა = 0.0;

int temp = 0, hum = 0;

ბათილად დაყენება ()

{

// ცვლადის დაყენება

ნაწილაკი. ცვლადი ("i2cdevice", "HDC1000");

ნაწილაკი. ცვალებადი ("ტენიანობა", ტენიანობა);

ნაწილაკი. ცვლადი ("cTemp", cTemp);

// I2C კომუნიკაციის ინიციალიზაცია

Wire.begin ();

// სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud განაკვეთი = 9600

სერიული.დაწყება (9600);

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// კონფიგურაციის რეგისტრის არჩევა

Wire.write (0x02);

// ტემპერატურა, ტენიანობა ჩართულია, გარჩევადობა = 14 ბიტი, გამათბობელი ჩართულია

Wire.write (0x30);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

დაგვიანება (300);

}

ბათილი მარყუჟი ()

{

ხელმოუწერელი int მონაცემები [2];

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// ტემპერატურის გაზომვის ბრძანების გაგზავნა

Wire.write (0x00);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

დაგვიანება (500);

// მოითხოვეთ მონაცემების 2 ბაიტი

მავთული. მოთხოვნა (Addr, 2);

// წაიკითხეთ 2 ბაიტი მონაცემები

// temp msb, temp lsb

თუ (Wire. Available () == 2)

{

მონაცემები [0] = Wire.read ();

მონაცემები [1] = Wire.read ();

}

// მონაცემების კონვერტაცია

temp = ((მონაცემები [0] * 256) + მონაცემები [1]);

cTemp = (temp / 65536.0) * 165.0 - 40;

fTemp = cTemp * 1.8 + 32;

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// ტენიანობის გაზომვის ბრძანების გაგზავნა

Wire.write (0x01);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

დაგვიანება (500);

// მოითხოვეთ მონაცემების 2 ბაიტი

მავთული. მოთხოვნა (Addr, 2);

// წაიკითხეთ 2 ბაიტი მონაცემები

// temp msb, temp lsb

თუ (Wire. Available () == 2)

{

მონაცემები [0] = Wire.read ();

მონაცემები [1] = Wire.read ();

}

// მონაცემების კონვერტაცია

hum = ((მონაცემები [0] * 256) + მონაცემები [1]);

ტენიანობა = (hum / 65536.0) * 100.0;

// მონაცემების გამოტანა საინფორმაციო დაფაზე

Particle.publish ("ფარდობითი ტენიანობა:", სიმებიანი (ტენიანობა));

დაგვიანება (1000);

Particle.publish ("ტემპერატურა ცელსიუსში:", სიმებიანი (cTemp));

დაგვიანება (1000);

Particle.publish ("ტემპერატურა ფარენჰეიტში:", სიმებიანი (fTemp));

დაგვიანება (1000);

}

Particle.variable () ფუნქცია ქმნის ცვლადებს სენსორის გამომუშავების შესანახად და Particle.publish () ფუნქცია აჩვენებს გამომავალს საიტის დაფაზე.

სენსორის გამომავალი ნაჩვენებია ზემოთ მოცემულ სურათზე თქვენი მითითებისთვის.

ნაბიჯი 4: პროგრამები:

პროგრამები
პროგრამები

HDC1000 შეიძლება გამოყენებულ იქნას გათბობის, ვენტილაციისა და კონდიცირების (HVAC), ჭკვიანი თერმოსტატების და ოთახის მონიტორებში. ეს სენსორი ასევე პოულობს მის გამოყენებას პრინტერებში, ხელის მრიცხველებში, სამედიცინო მოწყობილობებში, ტვირთების გადაზიდვაში, ასევე ავტომობილის საქარე მინაზე.

გირჩევთ: