Sisällysluettelo:
- Vaihe 1: Miten I2c toimii
- Vaihe 2: Kirjasto
- Vaihe 3: Käyttäytyminen
- Vaihe 4: I2c -käyttö
- Vaihe 5: Yhden langan käyttö
- Vaihe 6: Epäsuora lukeminen
- Vaihe 7: Yksinkertainen luku
- Vaihe 8: Täysi luku
- Vaihe 9: Liitäntäkaavio
- Vaihe 10: Arduino: OneWire
- Vaihe 11: Arduino: I2c
- Vaihe 12: Esp8266 (D1Mini) OneWire
- Vaihe 13: Esp8266 (D1Mini) I2c
- Vaihe 14: Kiitos
Video: DHT12 (halpa i2c -kosteus- ja lämpötila -anturi), nopea helppokäyttöinen: 14 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Löydät päivityksiä ja muuta sivustoltani
Pidän anturista, jota voidaan käyttää 2 -johtimisella (i2c -protokolla), mutta rakastan halpaa.
Tämä on Arduino- ja esp8266 -kirjasto DHT12 -sarjan erittäin edullisille lämpötila-/kosteusantureille (alle 1 $), jotka toimivat i2c: n tai yhden johdinliitännän kanssa.
Erittäin hyödyllinen, jos haluat käyttää esp01: tä (jos käytät sarjaliitäntää, sinulla on vain 2 nastaista) kosteuden ja lämpötilan lukemiseen ja sen näyttämiseen i2c -nestekidenäytöllä.
AI luki, että joskus näyttää siltä, että se tarvitsee kalibrointia, mutta minulla on tämä puu ja saan arvon, joka on hyvin samanlainen kuin DHT22. Jos sinulla on tämän ongelman kalibrointi, avaa ongelma githubissa ja lisään toteutuksen.
Vaihe 1: Miten I2c toimii
I2C toimii kahdella johdolla, SDA (datalinja) ja SCL (kellolinja).
Molemmat linjat ovat avoimia tyhjennyksiä, mutta ne on vedetty ylös vastuksilla.
Yleensä linjalla on yksi isäntä ja yksi tai useampi orja, vaikka isäntiä voi olla useita, mutta puhumme siitä myöhemmin.
Sekä isännät että orjat voivat lähettää tai vastaanottaa dataa, joten laite voi olla jossakin näistä neljästä tilasta: isäntälähetys, isäntävastaanotto, orjalähetys, orjavastaanotto.
Vaihe 2: Kirjasto
Kirjastoni löydät täältä.
Ladata
Napsauta LATAA -painiketta oikeassa yläkulmassa ja nimeä pakkaamaton kansio uudelleen DHT12.
Tarkista, että DHT -kansio sisältää DHT12.cpp ja DHT12.h.
Aseta DHT -kirjastokansio / libraries / kansio.
Sinun on ehkä luotava kirjastojen alikansio, jos se on ensimmäinen kirjasto.
Käynnistä IDE uudelleen.
Vaihe 3: Käyttäytyminen
Tämä kirjasto yrittää jäljitellä tavallisten DHT -kirjastoantureiden käyttäytymistä (ja kopioi paljon koodia), ja lisään koodin i2c olso -järjestelmän hallintaan samalla tavalla.
Menetelmä on sama kuin DHT -kirjastosensori, ja jotkut lisäävät kuten kastepistetoiminnon.
Vaihe 4: I2c -käyttö
Käytettäväksi i2c: n kanssa (oletusosoite ja oletus -SDA SCL -nasta) konstruktori on:
DHT12 dht12;
ja ota SDA SCL -tapin oletusarvo.
(On mahdollista määrittää uudelleen määritetyllä esp8266-ohjaimella, jota tarvitaan ESP-01: lle). tai
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> osoite
muuttaa osoitetta.
Vaihe 5: Yhden langan käyttö
Yhden langan käyttäminen:
DHT12 dht12 (uint8_t addressOrPin, true)
addressOrPin -> nasta
Boolen arvo on oneWire- tai i2c -tilan valinta.
Vaihe 6: Epäsuora lukeminen
Voit käyttää sitä "implisiittisen", "yksinkertaisen lukemisen" tai "kokonaislukemisen" kanssa: implisiittinen, vain ensimmäinen luku lukee anturin oikein, toinen luku, joka tulee 2 sekunnissa. väli on ensimmäisen lukeman tallennettu arvo.
// Anturin lukemisessa on kulunut 2 sekuntia, ellet anna voimaparametria
// Lue lämpötila celsiusasteina (oletus) float t12 = dht12.readTemperature (); // Lue lämpötila Fahrenheitina (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Anturilukemat voivat olla jopa 2 sekuntia "vanhoja" (se on hyvin hidas anturi) float h12 = dht12.readHumidity (); // Laske lämpöindeksi Fahrenheit -asteina (oletus) float hif12 = dht12.computeHeatIndex (f12, h12); // Laske lämpöindeksi celsiusasteina (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Laske kastepiste Fahrenheit -asteina (oletus) float dpf12 = dht12.dewPoint (f12, h12); // Laske kastepiste celsiusasteina (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Vaihe 7: Yksinkertainen luku
Yksinkertainen luku, jotta saat lukemisen tilan.
// Anturin lukemisessa on kulunut 2 sekuntia, ellet anna voimaparametria
bool chk = dht12. luku (); // tosi lukeminen on ok, väärä luku ongelma
// Lue lämpötila celsiusasteena (oletus)
float t12 = dht12.readTemperature (); // Lue lämpötila Fahrenheitina (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Anturilukemat voivat olla jopa 2 sekuntia "vanhoja" (se on hyvin hidas anturi) float h12 = dht12.readHumidity (); // Laske lämpöindeksi Fahrenheit -asteina (oletus) float hif12 = dht12.computeHeatIndex (f12, h12); // Laske lämpöindeksi celsiusasteina (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Laske kastepiste Fahrenheit -asteina (oletus) float dpf12 = dht12.dewPoint (f12, h12); // Laske kastepiste celsiusasteina (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Vaihe 8: Täysi luku
Täysi luku saadaksesi määritetyn tilan.
// Anturin lukemisessa on kulunut 2 sekuntia, ellet anna voimaparametria
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nLue anturi:")); kytkin (chk) {tapaus DHT12:: OK: Serial.println (F ("OK")); tauko; tapaus DHT12:: ERROR_CHECKSUM: Serial.println (F ("Tarkistussummavirhe")); tauko; tapaus DHT12:: ERROR_TIMEOUT: Serial.println (F ("Aikakatkaisuvirhe")); tauko; tapaus DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Aikakatkaisuvirhe alhaisella signaalilla, yritä asettaa suuri vetovoima")); tauko; tapaus DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Aikakatkaisuvirhe alhaisella signaalilla, yritä asettaa alhainen vetovoima")); tauko; tapaus DHT12:: ERROR_CONNECT: Serial.println (F ("Yhteysvirhe")); tauko; tapaus DHT12:: ERROR_ACK_L: Serial.println (F ("AckL -virhe")); tauko; tapaus DHT12:: ERROR_ACK_H: Serial.println (F ("AckH -virhe")); tauko; tapaus DHT12:: ERROR_UNKNOWN: Serial.println (F ("Tuntematon virhe DETECTED")); tauko; tapaus DHT12:: NONE: Serial.println (F ("Ei tulosta")); tauko; oletus: Serial.println (F ("Tuntematon virhe")); tauko; }
// Lue lämpötila celsiusasteena (oletus)
float t12 = dht12.readTemperature (); // Lue lämpötila Fahrenheitina (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Anturilukemat voivat olla jopa 2 sekuntia "vanhoja" (se on hyvin hidas anturi) float h12 = dht12.readHumidity (); // Laske lämpöindeksi Fahrenheit -asteina (oletus) float hif12 = dht12.computeHeatIndex (f12, h12); // Laske lämpöindeksi celsiusasteina (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Laske kastepiste Fahrenheit -asteina (oletus) float dpf12 = dht12.dewPoint (f12, h12); // Laske kastepiste celsiusasteina (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Vaihe 9: Liitäntäkaavio
Esimerkkeinä on kytkentäkaavio, on tärkeää käyttää oikeaa vetovoimaa.
Kiitos Bobadas, dplasa ja adafruit, jakaa koodi githubissa (jossa otan koodin ja ideoita).
Vaihe 10: Arduino: OneWire
Vaihe 11: Arduino: I2c
Vaihe 12: Esp8266 (D1Mini) OneWire
Vaihe 13: Esp8266 (D1Mini) I2c
Vaihe 14: Kiitos
Arduinon leikkipaikka (https://playground.arduino.cc/Main/DHT12SensorLibrary)
i2c -projektisarja (kokoelma):
- Lämpötilan kosteusanturi
- Analoginen laajennin
- Digitaalinen laajennin
- LCD -näyttö
Suositeltava:
Epätavallinen mukautettu laatikko/kotelo (nopea, helppo, modulaarinen, halpa): 7 vaihetta
Epätavallinen mukautettu laatikko/kotelo (nopea, helppo, modulaarinen, halpa): Tämän käyttöohjeen tarkoitus on näyttää sinulle, kuinka tehdä halpoja, mukautettuja, modulaarisia laatikoita/koteloita. työkalut ja budjetti.Tämä on ensimmäinen Instructables (myös englanti ei ole ensimmäinen kieleni), joten ole hyvä
PCF8591 (i2c Analog I/O Expander) Nopea ja helppokäyttöinen: 9 vaihetta
PCF8591 (i2c Analog I/O Expander) Nopea ja helppokäyttöinen: Kirjasto käyttää i2c pcf8591 IC: tä arduinon ja esp8266: n kanssa. Tämä IC voi ohjata (kunnes 4) analogista tuloa ja/tai 1 analogista lähtöä, kuten mitata jännitettä, lukea termistorin arvoa tai himmentää lediä.Voi lukea analogisen arvon ja kirjoittaa analogisen arvon vain 2 johdolla
Nopea ja halpa LED -puristusvalo: 7 vaihetta
Nopea ja halpa LED -puristusvalo: harrastan tähtitieteitä, ja yksi työkaluista on punainen taskulamppu (Jos sytytät valkoisen valosi ja pilaat tähtitieteen kaverisi yönäkymän, hän luultavasti katkaisee korttelisi). Mutta uusien valkoisten LEDien suosion myötä punaiset LED -taskulamput
Halpa ja nopea kannettava iPhone / PMP -jalusta: 3 vaihetta (kuvilla)
Halpa ja nopea kannettava iPhone / PMP -jalusta: Matkustan melko vähän ja olen aina etsinyt telineitä mille tahansa PMP: lle (henkilökohtaiselle mediasoittimelle) / iPodille / PSP: lle / iPhonelle tai mille tahansa laitteelle, jota tällä hetkellä käytän elokuvien katseluun lentämisen aikana. saalis on, että telineiden on oltava pieniä ja helppoja t
Nopea, nopea, halpa, hyvännäköinen LED -huoneen valaistus (kaikille): 5 vaihetta (kuvilla)
Nopea, nopea, halpa, hyvännäköinen LED-huonevalaistus (kaikille): Tervetuloa kaikki :-) Tämä on ensimmäinen ohjeeni, joten kommentit ovat tervetulleita :-) Toivon voivani näyttää teille, kuinka tehdä nopea LED-valaistus, joka on TINY buget.Mitä tarvitset: Kaapelit LED -valotKestävyys