Სარჩევი:
- ნაბიჯი 1: როგორ მუშაობს I2c
- ნაბიჯი 2: ბიბლიოთეკა
- ნაბიჯი 3: ქცევა
- ნაბიჯი 4: I2c გამოყენება
- ნაბიჯი 5: ერთი მავთულის გამოყენება
- ნაბიჯი 6: ნაგულისხმევი კითხვა
- ნაბიჯი 7: მარტივი წაკითხვა
- ნაბიჯი 8: სრული წაკითხვა
- ნაბიჯი 9: კავშირის დიაგრამა
- ნაბიჯი 10: Arduino: OneWire
- ნაბიჯი 11: არდუინო: I2c
- ნაბიჯი 12: Esp8266 (D1Mini) OneWire
- ნაბიჯი 13: Esp8266 (D1Mini) I2c
- ნაბიჯი 14: მადლობა
ვიდეო: DHT12 (i2c იაფი ტენიანობის და ტემპერატურის სენსორი), სწრაფი მარტივი გამოყენება: 14 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
თქვენ შეგიძლიათ იპოვოთ განახლებები და სხვა ჩემს საიტზე
მე მომწონს სენსორი, რომლის გამოყენებაც შესაძლებელია 2 მავთულით (i2c პროტოკოლით), მაგრამ მე მიყვარს იაფი.
ეს არის Arduino და esp8266 ბიბლიოთეკა DHT12 სერიისთვის ძალიან დაბალი ტემპერატურის/ტენიანობის სენსორებისთვის (1 $ -ზე ნაკლები), რომლებიც მუშაობენ i2c ან ერთი მავთულის შეერთებით.
ძალიან სასარგებლოა თუ გსურთ გამოიყენოთ esp01 (თუ იყენებთ სერიალს თქვენ გაქვთ მხოლოდ 2 პინი) ტენიანობისა და ტემპერატურის წასაკითხად და i2c LCD ეკრანზე ჩვენებისთვის.
AI წავიკითხე, რომ ზოგჯერ ჩანს, რომ საჭიროა კალიბრაცია, მაგრამ მე მაქვს ამის ხე და ვიღებ მნიშვნელობას DHT22– ის მსგავსი. თუ თქვენ გაქვთ ამ პრობლემის დაკალიბრება, გახსენით საკითხი github– ზე და მე დავამატებ განხორციელებას.
ნაბიჯი 1: როგორ მუშაობს I2c
I2C მუშაობს მის ორ მავთულზე, SDA (მონაცემთა ხაზი) და SCL (საათის ხაზი).
ორივე ეს ხაზი ღიაა, მაგრამ გაყვანილია რეზისტენტებით.
როგორც წესი, ხაზზე არის ერთი ბატონი და ერთი ან მრავალი მონა, თუმცა შეიძლება იყოს მრავალი ბატონი, მაგრამ ამაზე მოგვიანებით ვისაუბრებთ.
ბატონებსა და მონაებს შეუძლიათ მონაცემების გადაცემა ან მიღება, შესაბამისად, მოწყობილობა შეიძლება იყოს ამ ოთხივე მდგომარეობიდან ერთში: სამაგისტრო გადაცემა, სამაგისტრო მიღება, მონა გადაცემა, მონა მიღება.
ნაბიჯი 2: ბიბლიოთეკა
აქ შეგიძლიათ ნახოთ ჩემი ბიბლიოთეკა.
Ჩამოტვირთვა
დააწკაპუნეთ DOWNLOADS ღილაკს ზედა მარჯვენა კუთხეში, დაარქვით სახელი არაკომპრესირებულ საქაღალდეს DHT12.
შეამოწმეთ, რომ DHT საქაღალდე შეიცავს DHT12.cpp და DHT12.h.
განათავსეთ DHT ბიბლიოთეკის საქაღალდე თქვენი / ბიბლიოთეკები / საქაღალდე.
შეიძლება დაგჭირდეთ ბიბლიოთეკების ქვესაქაღალდის შექმნა, თუ ეს თქვენი პირველი ბიბლიოთეკაა.
გადატვირთეთ IDE.
ნაბიჯი 3: ქცევა
ეს ბიბლია ცდილობს მიბაძოს DHT ბიბლიოთეკის სტანდარტული სენსორების ქცევას (და დააკოპიროს ბევრი კოდი), და მე დავამატებ კოდს i2c olso– ს მართვისთვის იმავე გზით.
მეთოდი იგივეა DHT ბიბლიოთეკის სენსორით, ზოგიერთს დამატებული აქვს ნამი წერტილის ფუნქცია.
ნაბიჯი 4: I2c გამოყენება
I2c– ით (ნაგულისხმევი მისამართი და ნაგულისხმევი SDA SCL pin) კონსტრუქტორი არის:
DHT12 dht12;
და მიიღეთ ნაგულისხმევი მნიშვნელობა SDA SCL პინისთვის.
(შესაძლებელია ხელახლა განისაზღვროს მითითებული კონტრაქტორით esp8266– სთვის, საჭიროა ESP-01– ისთვის). ან
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> მისამართი
მისამართის შესაცვლელად.
ნაბიჯი 5: ერთი მავთულის გამოყენება
ერთი მავთულის გამოსაყენებლად:
DHT12 dht12 (uint8_t მისამართიOrPin, ჭეშმარიტი)
addressOrPin -> პინი
ლოგიკური მნიშვნელობა არის oneWire ან i2c რეჟიმის შერჩევა.
ნაბიჯი 6: ნაგულისხმევი კითხვა
თქვენ შეგიძლიათ გამოიყენოთ იგი "ნაგულისხმევი", "მარტივი წაკითხვა" ან "სრული წაკითხვა": ნაგულისხმევი, მხოლოდ პირველი წაკითხული აკეთებს სენსორის ნამდვილ კითხვას, მეორე წაკითხული ხდება 2 წამში. ინტერვალი არის პირველი წაკითხვის შენახული მნიშვნელობა.
// სენსორის წაკითხვას აქვს 2 წამი გასული დრო, თუ თქვენ არ გაივლით ძალის პარამეტრს
// წაიკითხეთ ტემპერატურა ცელსიუსით (ნაგულისხმევი) float t12 = dht12.readTemperature (); // წაიკითხეთ ტემპერატურა როგორც ფარენჰეიტი (isFahrenheit = true) float f12 = dht12.readTemperature (true); // სენსორული მაჩვენებლები ასევე შეიძლება იყოს 2 წამამდე "ძველი" (ეს არის ძალიან ნელი სენსორი) float h12 = dht12.readHumidity (); // გამოთვალეთ სითბოს ინდექსი ფარენჰეიტში (ნაგულისხმევი) float hif12 = dht12.computeHeatIndex (f12, h12); // გამოთვალეთ სითბოს ინდექსი ცელსიუსში (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // ფარენჰეიტში გამოთვალეთ dew წერტილი (ნაგულისხმევი) float dpf12 = dht12.dewPoint (f12, h12); // გამოთვალეთ dew წერტილი ცელსიუსში (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
ნაბიჯი 7: მარტივი წაკითხვა
მარტივი წაკითხვა წაკითხულის სტატუსის მისაღებად.
// სენსორის წაკითხვას აქვს 2 წამი გასული დრო, თუ თქვენ არ გაივლით ძალის პარამეტრს
bool chk = dht12.read (); // ჭეშმარიტი კითხვა კარგია, ყალბი წაკითხვის პრობლემა
// ტემპერატურის კითხვა ცელსიუსით (ნაგულისხმევი)
float t12 = dht12.readTemperature (); // წაიკითხეთ ტემპერატურა როგორც ფარენჰეიტი (isFahrenheit = true) float f12 = dht12.readTemperature (true); // სენსორული მაჩვენებლები ასევე შეიძლება იყოს 2 წამამდე "ძველი" (ეს არის ძალიან ნელი სენსორი) float h12 = dht12.readHumidity (); // გამოთვალეთ სითბოს ინდექსი ფარენჰეიტში (ნაგულისხმევი) float hif12 = dht12.computeHeatIndex (f12, h12); // გამოთვალეთ სითბოს ინდექსი ცელსიუსში (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // ფარენჰაიტში გამოთვალეთ dew წერტილი (ნაგულისხმევი) float dpf12 = dht12.dewPoint (f12, h12); // გამოთვალეთ dew წერტილი ცელსიუსში (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
ნაბიჯი 8: სრული წაკითხვა
სრულად წაიკითხეთ, რომ მიიღოთ სტატუსი.
// სენსორის წაკითხვას აქვს 2 წამი გასული დრო, თუ თქვენ არ გაივლით ძალის პარამეტრს
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ n სენსორის წაკითხვა:")); გადართვა (chk) {საქმე DHT12:: OK: Serial.println (F ("OK")); შესვენება; საქმე DHT12:: ERROR_CHECKSUM: Serial.println (F ("Checksum error")); შესვენება; საქმე DHT12:: ERROR_TIMEOUT: Serial.println (F ("ვადის ამოწურვის შეცდომა")); შესვენება; საქმე DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("დროითი შეცდომა დაბალ სიგნალზე, სცადეთ დააყენოთ მაღალი გამტარი წინააღმდეგობა")); შესვენება; საქმე DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("დროითი შეცდომა დაბალ სიგნალზე, სცადეთ დააყენოთ დაბალი გამტარიანობის წინააღმდეგობა")); შესვენება; საქმე DHT12:: ERROR_CONNECT: Serial.println (F ("დაკავშირების შეცდომა")); შესვენება; საქმე DHT12:: ERROR_ACK_L: Serial.println (F ("AckL შეცდომა")); შესვენება; საქმე DHT12:: ERROR_ACK_H: Serial.println (F ("AckH შეცდომა")); შესვენება; საქმე DHT12:: ERROR_UNKNOWN: Serial.println (F ("უცნობი შეცდომა აღმოჩენილია")); შესვენება; საქმე DHT12:: NONE: Serial.println (F ("შედეგი არ არის")); შესვენება; ნაგულისხმევი: Serial.println (F ("უცნობი შეცდომა")); შესვენება; }
// ტემპერატურის კითხვა ცელსიუსით (ნაგულისხმევი)
float t12 = dht12.readTemperature (); // წაიკითხეთ ტემპერატურა როგორც ფარენჰეიტი (isFahrenheit = true) float f12 = dht12.readTemperature (true); // სენსორული მაჩვენებლები შეიძლება იყოს 2 წამამდე "ძველი" (ეს არის ძალიან ნელი სენსორი) float h12 = dht12.readHumidity (); // გამოთვალეთ სითბოს ინდექსი ფარენჰეიტში (ნაგულისხმევი) float hif12 = dht12.computeHeatIndex (f12, h12); // გამოთვალეთ სითბოს ინდექსი ცელსიუსში (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // ფარენჰაიტში გამოთვალეთ dew წერტილი (ნაგულისხმევი) float dpf12 = dht12.dewPoint (f12, h12); // გამოთვალეთ dew წერტილი ცელსიუსში (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
ნაბიჯი 9: კავშირის დიაგრამა
მაგალითებით, არსებობს კავშირის დიაგრამა, მნიშვნელოვანია გამოიყენოთ სწორი გამყვანი რეზისტორი.
მადლობა Bobadas, dplasa და adafruit, რომ გავაზიარო კოდი github– ში (სადაც ვიღებ კოდს და იდეებს).
ნაბიჯი 10: Arduino: OneWire
ნაბიჯი 11: არდუინო: I2c
ნაბიჯი 12: Esp8266 (D1Mini) OneWire
ნაბიჯი 13: Esp8266 (D1Mini) I2c
ნაბიჯი 14: მადლობა
არდუინოს მოედანი (https://playground.arduino.cc/Main/DHT12SensorLibrary)
i2c პროექტის სერია (კოლექცია):
- ტემპერატურის ტენიანობის სენსორი
- ანალოგური გაფართოება
- ციფრული გაფართოება
- LCD ეკრანი
გირჩევთ:
როგორ გამოვიყენოთ DHT12 I2C ტენიანობისა და ტემპერატურის სენსორი არდუინოსთან ერთად: 7 ნაბიჯი
როგორ გამოვიყენოთ DHT12 I2C ტენიანობის და ტემპერატურის სენსორი არდუინოსთან ერთად: ამ გაკვეთილში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ DHT12 I2C ტენიანობის და ტემპერატურის სენსორი არდუინოსთან და აჩვენეთ ღირებულებები OLED ეკრანზე. უყურეთ ვიდეოს
შექმნა-გაფრთხილება-გამოყენება Ubidots-ESP32+ტემპერატურის და ტენიანობის სენსორი: 9 ნაბიჯი
Creating-Alert-Using-Ubidots-ESP32+Temp and Humidity Sensor: ამ გაკვეთილში ჩვენ გავზომავთ ტემპერატურისა და ტენიანობის სხვადასხვა მონაცემებს Temp და ტენიანობის სენსორის გამოყენებით. თქვენ ასევე ისწავლით თუ როგორ უნდა გაუგზავნოთ ეს მონაცემები უბიდოტს. ასე რომ თქვენ შეგიძლიათ გაანალიზოთ იგი ნებისმიერი ადგილიდან სხვადასხვა პროგრამისთვის. ასევე ემაის შექმნით
Raspberry Pi - HIH6130 I2C ტენიანობის და ტემპერატურის სენსორი Python სამეურვეო: 4 ნაბიჯი
ჟოლო Pi - HIH6130 I2C ტენიანობის და ტემპერატურის სენსორი პითონი სამეურვეო პროგრამა: HIH6130 არის ტენიანობის და ტემპერატურის სენსორი ციფრული გამომუშავებით. ეს სენსორები უზრუნველყოფენ სიზუსტეს of 4% RH. ინდუსტრიის წამყვანი გრძელვადიანი სტაბილურობით, ჭეშმარიტი ტემპერატურის კომპენსირებული ციფრული I2C, ინდუსტრიის წამყვანი საიმედოობით, ენერგოეფექტურობით
Raspberry Pi - HIH6130 I2C ტენიანობის და ტემპერატურის სენსორი Java სამეურვეო პროგრამა: 4 ნაბიჯი
ჟოლო Pi - HIH6130 I2C ტენიანობის და ტემპერატურის სენსორი Java სამეურვეო პროგრამა: HIH6130 არის ტენიანობის და ტემპერატურის სენსორი ციფრული გამომუშავებით. ეს სენსორები უზრუნველყოფენ სიზუსტეს of 4% RH. ინდუსტრიის წამყვანი გრძელვადიანი სტაბილურობით, ჭეშმარიტი ტემპერატურის კომპენსირებული ციფრული I2C, ინდუსტრიის წამყვანი საიმედოობით, ენერგოეფექტურობით
PCF8591 (i2c ანალოგი I/O Expander) სწრაფი მარტივი გამოყენება: 9 ნაბიჯი
PCF8591 (i2c Analog I/O Expander) სწრაფი მარტივი გამოყენება: ბიბლიოთეკა i2c pcf8591 IC– ს გამოსაყენებლად არდუინოსთან და esp8266– თან. ამ IC– ს შეუძლია გააკონტროლოს (4 – მდე) ანალოგური შეყვანა და/ან 1 ანალოგური გამომავალი, როგორიცაა საზომი ძაბვა, წაიკითხოს თერმისტორის მნიშვნელობა ან გაამუქოს led