Sisukord:
- Samm: kuidas I2c töötab
- 2. samm: kogu
- 3. samm: käitumine
- 4. samm: I2c kasutamine
- Samm: ühe juhtme kasutamine
- 6. samm: kaudne lugemine
- Samm: lihtne lugemine
- 8. samm: täielik lugemine
- 9. samm: ühendusskeem
- 10. samm: Arduino: OneWire
- 11. samm: Arduino: I2c
- 12. samm: Esp8266 (D1Mini) OneWire
- Samm 13: Esp8266 (D1Mini) I2c
- 14. samm: aitäh
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
Värskendusi ja muud leiate minu saidilt
Mulle meeldib andur, mida saab kasutada 2 juhtmega (i2c protokoll), kuid mulle meeldib odav.
See on Arduino ja esp8266 raamatukogu DHT12 seeria väga odavate temperatuuri/niiskuse andurite (alla 1 $) jaoks, mis töötavad i2c või ühe juhtmega.
Väga kasulik, kui soovite kasutada niiskuse ja temperatuuri lugemiseks ning i2c LCD -ekraanil kuvamiseks esp01 -d (kui kasutate jadaühendust, teil on ainult 2 tihvti).
AI luges, et mõnikord tundub, et see vajab kalibreerimist, kuid mul on selle puu ja saan väärtuse, mis on väga sarnane DHT22 -ga. Kui teil on see probleem kalibreeritud, avage probleem githubis ja lisan rakenduse.
Samm: kuidas I2c töötab
I2C töötab kahe juhtmega, SDA (andmeside) ja SCL (kellajoon).
Mõlemad liinid on avatud äravooluga, kuid takistitega üles tõmmatud.
Tavaliselt on liinil üks peremees ja üks või mitu orja, kuigi neid võib olla mitu, kuid sellest räägime hiljem.
Nii meistrid kui ka orjad saavad andmeid edastada või vastu võtta, seetõttu võib seade olla ühes neljast olekust: põhisaatmine, ülemvastuvõtmine, alamsaade, alamvastuvõtt.
2. samm: kogu
Minu raamatukogu leiate siit.
Alla laadida
Klõpsake paremas ülanurgas nuppu DOWNLOADS (Laadi alla), nimetage tihendamata kaust ümber DHT12 -ks.
Kontrollige, kas kaust DHT sisaldab DHT12.cpp ja DHT12.h.
Asetage DHT raamatukogu kaust oma / libraries / kausta.
Teil võib tekkida vajadus luua raamatukogude alamkaust, kui see on teie esimene kogu.
Taaskäivitage IDE.
3. samm: käitumine
See libray proovib jäljendada tavaliste DHT -teegiandurite käitumist (ja kopeerida palju koodi) ning lisan koodi, et hallata i2c olso samal viisil.
Meetod on sama DHT raamatukogu anduriga, mõned lisavad kastepunkti funktsiooni.
4. samm: I2c kasutamine
Kasutamiseks koos i2c -ga (vaikimisi aadress ja vaikimisi kasutatav SDA SCL -pin) on konstruktor järgmine:
DHT12 dht12;
ja võtke SDA SCL -i tihvti vaikeväärtus.
(Esp8266 jaoks on võimalik uuesti määratleda määratud konstruktoriga, vajalik ESP-01 jaoks). või
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> aadress
aadressi muutmiseks.
Samm: ühe juhtme kasutamine
Ühe juhtme kasutamiseks:
DHT12 dht12 (uint8_t addressOrPin, true)
addressOrPin -> pin
loogiline väärtus on oneWire või i2c režiimi valik.
6. samm: kaudne lugemine
Saate seda kasutada koos "kaudse", "lihtsa lugemise" või "täislugemisega": kaudselt, ainult esimene lugemine teeb anduri tõese lugemise, teine lugemine, mis saab 2 sekundiga. intervall on esimese lugemise salvestatud väärtus.
// Anduri lugemil on kulunud 2 sekundit, kui te jõu parameetrit ei edasta
// Temperatuuri lugemine Celsiuse järgi (vaikimisi) float t12 = dht12.readTemperature (); // Temperatuuri lugemine Fahrenheiti järgi (isFahrenheit = tõene) float f12 = dht12.readTemperature (true); // Andurite näidud võivad olla ka kuni 2 sekundit vanad (see on väga aeglane andur) float h12 = dht12.readHumidity (); // Soojusindeksi arvutamine Fahrenheiti järgi (vaikimisi) float hif12 = dht12.computeHeatIndex (f12, h12); // Soojusindeksi arvutamine Celsiuse järgi (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Kastepunkti arvutamine Fahrenheiti järgi (vaikimisi) float dpf12 = dht12.dewPoint (f12, h12); // Kastepunkti arvutamine Celsiuse järgi (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Samm: lihtne lugemine
Lihtne lugemine lugemisoleku saamiseks.
// Anduri lugemil on kulunud 2 sekundit, kui te jõu parameetrit ei edasta
bool chk = dht12.lugu (); // tõeline lugemine on ok, vale lugemise probleem
// Temperatuuri lugemine Celsiuse järgi (vaikimisi)
ujuk t12 = dht12.readTemperature (); // Temperatuuri lugemine Fahrenheiti järgi (isFahrenheit = tõene) float f12 = dht12.readTemperature (true); // Andurite näidud võivad olla ka kuni 2 sekundit vanad (see on väga aeglane andur) float h12 = dht12.readHumidity (); // Soojusindeksi arvutamine Fahrenheiti järgi (vaikimisi) float hif12 = dht12.computeHeatIndex (f12, h12); // Soojusindeksi arvutamine Celsiuse järgi (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Kastepunkti arvutamine Fahrenheiti järgi (vaikimisi) float dpf12 = dht12.dewPoint (f12, h12); // Kastepunkti arvutamine Celsiuse järgi (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
8. samm: täielik lugemine
Täielik lugemine määratud oleku saamiseks.
// Anduri lugemil on kulunud 2 sekundit, kui te jõu parameetrit ei edasta
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nLugemisandur:")); lüliti (chk) {juhtum DHT12:: OK: Serial.println (F ("OK")); murda; juhtum DHT12:: ERROR_CHECKSUM: Serial.println (F ("Kontrollsumma viga")); murda; juhtum DHT12:: ERROR_TIMEOUT: Serial.println (F ("Ajalõpu viga")); murda; juhtum DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Aegumise viga madala signaali korral, proovige panna kõrge tõmbetakistus")); murda; juhtum DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Aegumise viga madala signaali korral, proovige panna väike tõmbetakistus")); murda; juhtum DHT12:: ERROR_CONNECT: Serial.println (F ("Ühendusviga")); murda; juhtum DHT12:: ERROR_ACK_L: Serial.println (F ("AckL -viga")); murda; juhtum DHT12:: ERROR_ACK_H: Serial.println (F ("AckH viga")); murda; juhtum DHT12:: ERROR_UNKNOWN: Serial.println (F ("Tundmatu viga Tuvastatud")); murda; juhtum DHT12:: NONE: Serial.println (F ("Tulemust pole")); murda; vaikimisi: Serial.println (F ("Tundmatu viga")); murda; }
// Temperatuuri lugemine Celsiuse järgi (vaikimisi)
ujuk t12 = dht12.readTemperature (); // Temperatuuri lugemine Fahrenheiti järgi (isFahrenheit = tõene) float f12 = dht12.readTemperature (true); // Andurite näidud võivad olla ka kuni 2 sekundit vanad (see on väga aeglane andur) float h12 = dht12.readHumidity (); // Soojusindeksi arvutamine Fahrenheiti järgi (vaikimisi) float hif12 = dht12.computeHeatIndex (f12, h12); // Soojusindeksi arvutamine Celsiuse järgi (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Kastepunkti arvutamine Fahrenheiti järgi (vaikimisi) float dpf12 = dht12.dewPoint (f12, h12); // Kastepunkti arvutamine Celsiuse järgi (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
9. samm: ühendusskeem
Näidetega on ühendusskeem, oluline on kasutada õiget tõmbetakistit.
Tänu Bobadasele, dplasale ja adafruitile, et jagada koodi githubis (kust ma võtan mõned koodid ja ideed).
10. samm: Arduino: OneWire
11. samm: Arduino: I2c
12. samm: Esp8266 (D1Mini) OneWire
Samm 13: Esp8266 (D1Mini) I2c
14. samm: aitäh
Arduino mänguväljak (https://playground.arduino.cc/Main/DHT12SensorLibrary)
i2c projektisari (kollektsioon):
- Temperatuuri niiskuse andur
- Analooglaiendaja
- Digitaalne laiendaja
- LCD ekraan
Soovitan:
DHT21 digitaalne temperatuuri ja niiskuse andur koos Arduinoga: 6 sammu
DHT21 digitaalne temperatuuri- ja niiskusandur koos Arduinoga: Selles õpetuses õpime, kuidas kasutada DHT21 niiskus- ja temperatuuriandurit koos Arduinoga ning kuvada väärtused OLED -ekraanil. Vaadake videot
Temperatuuri ja niiskuse andur koos LCD ja heli tuvastamisega: 4 sammu
Temperatuuri ja niiskuse andur koos LCD ja heli tuvastamisega: Tere poisid !!! Olgu, see projekt oli minu viimase aasta projekt. Selle projekti eesmärk oli jälgida minu ülikooli töökojas toatemperatuuri ja niiskust, kuna mõned elektroonikakomponendid talitlushäirete tõttu olid ebasoodsate temperatuuride ja õhutemperatuuri tõttu
Temperatuuri ja niiskuse andur (DHT22) koos Dexteri lauaga: 7 sammu
Temperatuuri ja niiskuse andur (DHT22) koos Dexter Boardiga: Dexter board on hariv treenerikomplekt, mis muudab elektroonika õppimise lõbusaks ja lihtsaks. Tahvel koondab kõik vajalikud osad, mida algaja vajab idee muutmiseks edukaks prototüübiks. Arduino südames on tohutult palju
Arduino päikeseenergial töötav temperatuuri ja niiskuse andur kui 433 MHz Oregoni andur: 6 sammu
Arduino päikeseenergiaga töötava temperatuuri ja niiskuse andur kui 433 MHz Oregoni andur: see on päikeseenergial töötava temperatuuri ja niiskuse anduri konstruktsioon. Andur jäljendab 433 MHz Oregoni andurit ja on nähtav Telldus Net-lüüsis. Vajalik: 1x 10-LED Päikeseenergia liikumisandur " Ebayst. Veenduge, et see ütleb 3,7 V taigna
PCF8591 (i2c analoog -I/O Expander) Kiire lihtne kasutamine: 9 sammu
PCF8591 (i2c analoog -I/O laiendaja) Kiire lihtne kasutamine: raamatukogu i2c pcf8591 IC kasutamiseks arduino ja esp8266 abil. See IC võib juhtida (kuni 4) analoogsisendit ja/või 1 analoogväljundit, näiteks mõõta pinget, lugeda termistori väärtust või tuhmuda. Oskab lugeda analoogväärtust ja kirjutada analoogväärtust ainult 2 juhtmega (perfec