Talaan ng mga Nilalaman:
- Hakbang 1: Paano Gumagana ang I2c
- Hakbang 2: Library
- Hakbang 3: Behaivor
- Hakbang 4: Paggamit ng I2c
- Hakbang 5: Isang Paggamit ng Wire
- Hakbang 6: Implicit Basahin
- Hakbang 7: Simpleng Basahin
- Hakbang 8: Buong Basahin
- Hakbang 9: Diagram ng Koneksyon
- Hakbang 10: Arduino: OneWire
- Hakbang 11: Arduino: I2c
- Hakbang 12: Esp8266 (D1Mini) OneWire
- Hakbang 13: Esp8266 (D1Mini) I2c
- Hakbang 14: Salamat
Video: DHT12 (i2c Cheap Humidity and Temperature Sensor), Mabilis na Madaling Paggamit: 14 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Maaari kang makahanap ng pag-update at iba pa sa aking site
Gusto ko ang sensor na maaaring magamit sa 2 wire (i2c protocol), ngunit gusto ko ang mura.
Ito ay isang Arduino at esp8266 library para sa serye ng DHT12 ng napakababang temperatura / mga sensor ng halumigmig na gastos (mas mababa sa 1 $) na gumagana sa i2c o isang koneksyon sa kawad.
Napaka kapaki-pakinabang kung nais mong gumamit ng esp01 (kung gumagamit ka ng serial mayroon ka lamang 2 pin) upang mabasa ang halumigmig at temperatura at ipakita ito sa i2c LCD.
Nabasa ng AI na minsan ay nangangailangan ng pag-calibrate, ngunit mayroon akong puno nito at nagkakaroon ako ng halaga na katulad sa DHT22. Kung mayroon kang pagkakalibrate sa problemang ito, buksan ang isyu sa github at nagdaragdag ako ng pagpapatupad.
Hakbang 1: Paano Gumagana ang I2c
Gumagana ang I2C kasama ang dalawang wires, ang SDA (linya ng data) at SCL (linya ng orasan).
Ang parehong mga linya na ito ay bukas-kanal, ngunit hinugot sa mga resistors.
Kadalasan mayroong isang master at isa o maraming mga alipin sa linya, bagaman maaaring maraming mga masters, ngunit pag-uusapan natin ito mamaya.
Ang parehong mga masters at alipin ay maaaring magpadala o makatanggap ng data, samakatuwid, ang isang aparato ay maaaring nasa isa sa apat na estado na ito: master transmit, master accept, slave transmit, slave accept.
Hakbang 2: Library
Mahahanap mo rito ang aking silid aklatan.
Magdownload
I-click ang pindutang DOWNLOADS sa kanang sulok sa itaas, palitan ang pangalan ng hindi naka-compress na folder na DHT12.
Suriin na ang folder ng DHT ay naglalaman ng DHT12.cpp at DHT12.h.
Ilagay ang folder ng DHT library sa iyong / mga aklatan / folder.
Maaaring kailanganin mong likhain ang mga library ng mga folder kung ito ang iyong unang silid-aklatan.
I-restart ang IDE.
Hakbang 3: Behaivor
Ang libray na ito ay subukang gayahin ang ugali ng karaniwang mga sensor ng library ng DHT (at kopyahin ang maraming code), at idinagdag ko ang code upang pamahalaan ang i2c olso sa parehong pamamaraan.
Ang pamamaraan ay pareho ng sensor ng library ng DHT, na may ilang pagdaragdag tulad ng pag-andar ng dew point.
Hakbang 4: Paggamit ng I2c
Upang magamit sa i2c (default address at default SDA SCL pin) ang tagapagbuo ay:
DHT12 dht12;
at kunin ang default na halaga para sa SDA SCL pin.
(Posibleng muling tukuyin ang tinukoy na contructor para sa esp8266, kinakailangan para sa ESP-01). o
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> address
upang baguhin ang address.
Hakbang 5: Isang Paggamit ng Wire
Upang magamit ang isang kawad:
DHT12 dht12 (uint8_t addressOrPin, totoo)
addressOrPin -> pin
Ang halaga ng boolean ay ang pagpili ng oneWire o i2c mode.
Hakbang 6: Implicit Basahin
Maaari mong gamitin ito sa "implicit", "simpleng basahin" o "fullread": Implicit, ang unang basahin lamang na gumagawa ng isang tunay na basahin ang sensor, ang iba pang nabasa na naging sa 2secs. agwat ay ang nakaimbak na halaga ng unang nabasa.
// Ang nabasa ng sensor ay mayroong 2secs ng lumipas na oras, maliban kung pumasa ka sa parameter ng puwersa
// Basahin ang temperatura bilang Celsius (ang default) float t12 = dht12.readTemperature (); // Read temperatura as Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Ang mga pagbasa ng sensor ay maaari ding hanggang sa 2 segundo 'luma' (ito ay isang napakabagal ng sensor) lumutang h12 = dht12.readHumidity (); // Compute heat index sa Fahrenheit (ang default) float hif12 = dht12.computeHeatIndex (f12, h12); // Compute heat index in Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Compute dew point in Fahrenheit (the default) float dpf12 = dht12.dewPoint (f12, h12); // Compute dew point in Celsius (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Hakbang 7: Simpleng Basahin
Simpleng basahin upang makakuha ng katayuan ng nabasa.
// Ang nabasa ng sensor ay mayroong 2secs ng lumipas na oras, maliban kung pumasa ka sa parameter ng puwersa
bool chk = dht12.read (); // totoong basahin ay ok, maling basahin ang problema
// Basahin ang temperatura bilang Celsius (ang default)
float t12 = dht12.readTemperature (); // Read temperatura as Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Ang mga pagbasa ng sensor ay maaari ding hanggang sa 2 segundo 'luma' (ito ay isang napakabagal ng sensor) lumutang h12 = dht12.readHumidity (); // Compute heat index sa Fahrenheit (ang default) float hif12 = dht12.computeHeatIndex (f12, h12); // Compute heat index in Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Compute dew point in Fahrenheit (the default) float dpf12 = dht12.dewPoint (f12, h12); // Compute dew point in Celsius (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Hakbang 8: Buong Basahin
Buong basahin upang makakuha ng isang tinukoy na katayuan.
// Ang nabasa ng sensor ay mayroong 2secs ng lumipas na oras, maliban kung pumasa ka sa parameter ng puwersa
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nRead sensor:")); switch (chk) {case DHT12:: OK: Serial.println (F ("OK")); pahinga; kaso DHT12:: ERROR_CHECKSUM: Serial.println (F ("Checksum error")); pahinga; kaso DHT12:: ERROR_TIMEOUT: Serial.println (F ("Timeout error")); pahinga; case DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Timeout error sa mababang signal, subukang ilagay ang paglaban ng mataas na pullup")); pahinga; case DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Timeout error sa mababang signal, subukang ilagay ang mababang resistensya ng pullup")); pahinga; kaso DHT12:: ERROR_CONNECT: Serial.println (F ("Connect error")); pahinga; kaso DHT12:: ERROR_ACK_L: Serial.println (F ("AckL error")); pahinga; kaso DHT12:: ERROR_ACK_H: Serial.println (F ("AckH error")); pahinga; kaso DHT12:: ERROR_UNKNOWN: Serial.println (F ("Hindi kilalang error DETected")); pahinga; kaso DHT12:: WALA: Serial.println (F ("Walang resulta")); pahinga; default: Serial.println (F ("Hindi kilalang error")); pahinga; }
// Basahin ang temperatura bilang Celsius (ang default)
float t12 = dht12.readTemperature (); // Read temperatura as Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Ang mga pagbasa ng sensor ay maaari ding hanggang sa 2 segundo 'luma' (ito ay isang napakabagal ng sensor) lumutang h12 = dht12.readHumidity (); // Compute heat index sa Fahrenheit (ang default) float hif12 = dht12.computeHeatIndex (f12, h12); // Compute heat index in Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Compute dew point in Fahrenheit (the default) float dpf12 = dht12.dewPoint (f12, h12); // Compute dew point in Celsius (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Hakbang 9: Diagram ng Koneksyon
Sa mga halimbawa, mayroong diagram ng koneksyon, mahalagang gumamit ng wastong pullup risistor.
Salamat kay Bobadas, dplasa at adafruit, upang ibahagi ang code sa github (kung saan kumukuha ako ng ilang code at ideya).
Hakbang 10: Arduino: OneWire
Hakbang 11: Arduino: I2c
Hakbang 12: Esp8266 (D1Mini) OneWire
Hakbang 13: Esp8266 (D1Mini) I2c
Hakbang 14: Salamat
Palaruan ng Arduino (https://playground.arduino.cc/Main/DHT12SensorLibrary)
serye ng proyekto ng i2c (Koleksyon):
- Temperatura sensor ng kahalumigmigan
- Analog expander
- Digital expander
- LCD Display
Inirerekumendang:
M5STACK Paano Maipakita ang Temperatura, Humidity at Presyon sa M5StickC ESP32 Paggamit ng Visuino - Madaling Gawin: 6 Hakbang
M5STACK Paano Maipakita ang Temperatura, Humidity at Presyon sa M5StickC ESP32 Paggamit ng Visuino - Madaling Gawin: Sa tutorial na ito matututunan namin kung paano i-program ang ESP32 M5Stack StickC na may Arduino IDE at Visuino upang Maipakita ang Temperatura, Humidity at Presyon gamit ang ENV sensor (DHT12, BMP280, BMM150)
Paano Gumamit ng DHT12 I2C Humidity at Temperature Sensor Sa Arduino: 7 Hakbang
Paano Gumamit ng DHT12 I2C Humidity at Temperature Sensor Sa Arduino: Sa tutorial na ito matututunan natin kung paano gamitin ang DHT12 I2C Humidity at Temperature Sensor sa Arduino at ipakita ang mga halaga sa OLED Display. Panoorin ang video
Humidity, Pressure at Temperature Computation Paggamit ng BME280 at Photon Interfacing .: 6 Mga Hakbang
Humidity, Pressure and Temperature Computation Paggamit ng BME280 at Photon Interfacing .: Natagpuan namin ang iba't ibang mga proyekto na nangangailangan ng temperatura, presyon at pagsubaybay sa halumigmig. Sa gayon napagtanto namin na ang mga parameter na ito ay talagang may mahalagang papel sa pagkakaroon ng isang pagtatantya ng nagtatrabaho kahusayan ng isang sistema sa iba't ibang mga condo sa atmospera
PCF8591 (i2c Analog I / O Expander) Mabilis na Madaling Paggamit: 9 Mga Hakbang
PCF8591 (i2c Analog I / O Expander) Mabilis na Madaling Paggamit: Library upang magamit ang i2c pcf8591 IC na may arduino at esp8266. Maaaring kontrolin ng IC na ito (hanggang 4) ang analog input at / o 1 analog output tulad ng pagsukat ng boltahe, basahin ang halaga ng thermistor o fade a led. Maaari bang basahin ang halagang analog at isulat ang halagang analog na may lamang 2 wire (perfec
DIY MusiLED, Music Synchronized LEDs Sa Isang pag-click sa Windows at Linux Application (32-bit & 64-bit). Madaling Muling Gawin, Madaling Gamitin, Madaling Port: 3 Mga Hakbang
DIY MusiLED, Music Synchronized LEDs Sa Isang pag-click sa Windows at Linux Application (32-bit & 64-bit). Madaling Muling Mamuhay, Madaling Gamitin, Madaling Port: Ang proyekto na ito ay makakatulong sa iyo upang ikonekta ang 18 LEDs (6 Red + 6 Blue + 6 Yellow) sa iyong Arduino Board at pag-aralan ang mga signal ng real-time na signal ng iyong computer at i-relay ang mga ito sa ang mga LEDs upang magaan ang mga ito ayon sa mga beat effects (Snare, High Hat, Kick)