Turinys:
- 1 žingsnis: Kaip veikia „I2c“
- 2 žingsnis: biblioteka
- 3 žingsnis: Elgesys
- 4 žingsnis: I2c naudojimas
- 5 žingsnis: vieno laido naudojimas
- 6 žingsnis: numanomas skaitymas
- 7 žingsnis: paprastas skaitymas
- 8 žingsnis: visiškai perskaitykite
- 9 veiksmas: prijungimo schema
- 10 veiksmas: „Arduino“: „OneWire“
- 11 veiksmas: „Arduino“: I2c
- 12 veiksmas: „Esp8266“(„D1Mini“) „OneWire“
- 13 žingsnis: Esp8266 (D1Mini) I2c
- 14 žingsnis: ačiū
Video: DHT12 („i2c“pigus drėgmės ir temperatūros jutiklis), greitas ir paprastas naudojimas: 14 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Atnaujinimus ir kitus galite rasti mano svetainėje
Man patinka jutiklis, kurį galima naudoti su 2 laidais („i2c“protokolas), bet man patinka nebrangus.
Tai yra „Arduino“ir esp8266 biblioteka, skirta DHT12 serijos labai nebrangiems temperatūros/drėgmės jutikliams (mažiau nei 1 USD), kurie veikia su „i2c“arba vienu laidiniu ryšiu.
Labai naudinga, jei norite naudoti esp01 (jei naudojate serijinį, turite tik 2 kontaktus), kad nuskaitytumėte drėgmę ir temperatūrą ir parodytumėte ją „i2c“LCD ekrane.
AI skaitė, kad kartais atrodo, kad reikia kalibruoti, bet aš turiu šį medį ir gaunu vertę, labai panašią į DHT22. Jei kalibruojate šią problemą, atidarykite „github“problemą ir pridėsiu įgyvendinimą.
1 žingsnis: Kaip veikia „I2c“
„I2C“veikia su dviem laidais: SDA (duomenų linija) ir SCL (laikrodžio linija).
Abi šios linijos yra atviro nutekėjimo, tačiau ištraukiamos su rezistoriais.
Paprastai linijoje yra vienas šeimininkas ir vienas ar keli vergai, nors gali būti keli šeimininkai, tačiau apie tai kalbėsime vėliau.
Tiek šeimininkai, tiek vergai gali perduoti arba priimti duomenis, todėl įrenginys gali būti vienoje iš šių keturių būsenų: pagrindinis perdavimas, pagrindinis priėmimas, vergo perdavimas, vergo priėmimas.
2 žingsnis: biblioteka
Mano biblioteką rasite čia.
Atsisiųsti
Viršutiniame dešiniajame kampe spustelėkite mygtuką ATSISIŲSTI, pervardykite nesuspaustą aplanką DHT12.
Patikrinkite, ar DHT aplanke yra DHT12.cpp ir DHT12.h.
Įdėkite DHT bibliotekos aplanką į savo / libraries / aplanką.
Jums gali tekti sukurti bibliotekų pakatalogį, jei tai jūsų pirmoji biblioteka.
Iš naujo paleiskite IDE.
3 žingsnis: Elgesys
Ši libray bando imituoti standartinių DHT bibliotekos jutiklių elgseną (ir nukopijuoti daug kodo), o aš pridedu kodą, kad tokiu pačiu būdu valdyčiau „i2c olso“.
Metodas yra tas pats, kaip ir DHT bibliotekos jutiklis, kai kurie papildo rasos taško funkciją.
4 žingsnis: I2c naudojimas
Norėdami naudoti su „i2c“(numatytasis adresas ir numatytasis SDA SCL kaištis), konstruktorius yra:
DHT12 dht12;
ir paimkite numatytąją SDA SCL kaiščio vertę.
(Galima iš naujo apibrėžti naudojant nurodytą esp8266 konstruktorių, reikalingą ESP-01). arba
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> adresas
pakeisti adresą.
5 žingsnis: vieno laido naudojimas
Norėdami naudoti vieną laidą:
DHT12 dht12 (uint8_t addressOrPin, true)
addressOrPin -> kaištis
loginė vertė yra „oneWire“arba „i2c“režimo pasirinkimas.
6 žingsnis: numanomas skaitymas
Jį galite naudoti su „numanomu“, „paprastu skaitymu“arba „pilnai perskaitytu“: netiesiogiai, tik pirmasis skaitymas atlieka tikrą jutiklio nuskaitymą, kitas skaitymas - per 2 sekundes. intervalas yra pirmojo skaitymo išsaugota vertė.
// Jutiklio nuskaitymas turi praeiti 2 sekundes, nebent perduosite jėgos parametrą
// Skaityti temperatūrą kaip Celsijų (numatytoji) float t12 = dht12.readTemperature (); // Skaityti temperatūrą kaip Farenheitą (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Jutiklio rodmenys taip pat gali būti iki 2 sekundžių seno (jo labai lėtas jutiklis) plūdė h12 = dht12.readHumidity (); // Apskaičiuoti šilumos indeksą Farenheitu (numatytasis) float hif12 = dht12.computeHeatIndex (f12, h12); // Apskaičiuoti šilumos indeksą Celsijaus (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Apskaičiuoti rasos tašką Farenheitu (numatytasis) float dpf12 = dht12.dewPoint (f12, h12); // Apskaičiuoti rasos tašką Celsijaus (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
7 žingsnis: paprastas skaitymas
Paprastas skaitymas, norint gauti skaitymo būseną.
// Jutiklio nuskaitymas turi praeiti 2 sekundes, nebent perduosite jėgos parametrą
bool chk = dht12. skaityti (); // tikras skaitymas yra gerai, klaidingo skaitymo problema
// Skaityti temperatūrą kaip Celsijų (numatytasis)
plūdė t12 = dht12.readTemperature (); // Skaityti temperatūrą kaip Farenheitą (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Jutiklio rodmenys taip pat gali būti iki 2 sekundžių seno (jo labai lėtas jutiklis) plūdė h12 = dht12.readHumidity (); // Apskaičiuoti šilumos indeksą Farenheitu (numatytasis) float hif12 = dht12.computeHeatIndex (f12, h12); // Apskaičiuoti šilumos indeksą Celsijaus (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Apskaičiuoti rasos tašką Farenheitu (numatytasis) float dpf12 = dht12.dewPoint (f12, h12); // Apskaičiuoti rasos tašką Celsijaus (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
8 žingsnis: visiškai perskaitykite
Visiškai perskaitykite, kad gautumėte nurodytą būseną.
// Jutiklio nuskaitymas turi praeiti 2 sekundes, nebent perduosite jėgos parametrą
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nSkaitykite jutiklį:")); jungiklis (chk) {atvejis DHT12:: OK: Serial.println (F („OK“)); pertrauka; atvejis DHT12:: ERROR_CHECKSUM: Serial.println (F („Kontrolinės sumos klaida“)); pertrauka; atvejis DHT12:: ERROR_TIMEOUT: Serial.println (F („Timeout error“)); pertrauka; atvejis DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F („Laiko skirtumo klaida esant žemam signalui, pabandykite įkelti didelį atsparumą prisitraukimui“)); pertrauka; atvejis DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F („Laiko skirtumo klaida esant žemam signalui, pabandykite uždėti mažą pasipriešinimą“)); pertrauka; atvejis DHT12:: ERROR_CONNECT: Serial.println (F („Prisijungimo klaida“)); pertrauka; atvejis DHT12:: ERROR_ACK_L: Serial.println (F („AckL klaida“)); pertrauka; atvejis DHT12:: ERROR_ACK_H: Serial.println (F („AckH klaida“)); pertrauka; atvejis DHT12:: ERROR_UNKNOWN: Serial.println (F („Aptikta nežinoma klaida“)); pertrauka; atvejis DHT12:: NĖRA: Serial.println (F („Nėra rezultato“)); pertrauka; numatytasis: Serial.println (F („Nežinoma klaida“)); pertrauka; }
// Skaityti temperatūrą kaip Celsijų (numatytasis)
plūdė t12 = dht12.readTemperature (); // Skaityti temperatūrą kaip Farenheitą (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Jutiklio rodmenys taip pat gali būti iki 2 sekundžių seno (jo labai lėtas jutiklis) plūdė h12 = dht12.readHumidity (); // Apskaičiuoti šilumos indeksą Farenheitu (numatytasis) float hif12 = dht12.computeHeatIndex (f12, h12); // Apskaičiuoti šilumos indeksą Celsijaus (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Apskaičiuoti rasos tašką Farenheitu (numatytasis) float dpf12 = dht12.dewPoint (f12, h12); // Apskaičiuoti rasos tašką Celsijaus (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
9 veiksmas: prijungimo schema
Pavyzdžiui, yra prijungimo schema, svarbu naudoti teisingą traukimo rezistorių.
Ačiū Bobadas, dplasa ir adafruit, kad pasidalintumėte kodu „github“(kur aš paimu keletą kodų ir idėjų).
10 veiksmas: „Arduino“: „OneWire“
11 veiksmas: „Arduino“: I2c
12 veiksmas: „Esp8266“(„D1Mini“) „OneWire“
13 žingsnis: Esp8266 (D1Mini) I2c
14 žingsnis: ačiū
„Arduino“žaidimų aikštelė (https://playground.arduino.cc/Main/DHT12SensorLibrary)
„i2c“projektų serija (kolekcija):
- Drėgmės temperatūros jutiklis
- Analoginis plėtiklis
- Skaitmeninis plėtiklis
- LCD ekranas
Rekomenduojamas:
Kaip naudoti DHT12 I2C drėgmės ir temperatūros jutiklį su „Arduino“: 7 žingsniai
Kaip naudotis DHT12 I2C drėgmės ir temperatūros jutikliu su „Arduino“: Šioje pamokoje sužinosime, kaip naudoti „DHT12 I2C“drėgmės ir temperatūros jutiklį su „Arduino“, ir parodysime vertes OLED ekrane. Žiūrėkite vaizdo įrašą
„Arduino“saulės energijos temperatūros ir drėgmės jutiklis kaip 433 MHz „Oregon“jutiklis: 6 žingsniai
„Arduino“saulės energijos temperatūros ir drėgmės jutiklis kaip 433 MHz „Oregon“jutiklis: tai saulės energija varomo temperatūros ir drėgmės jutiklio konstrukcija. Jutiklis imituoja 433 MHz „Oregon“jutiklį ir matomas „Telldus Net“šliuzuose. Ko jums reikia: 1x „10-LED“Saulės energijos judesio jutiklis " iš Ebay. Įsitikinkite, kad parašyta 3,7 V tešla
Temperatūros ir drėgmės jutiklis su „Arduino“(N): 14 žingsnių
Temperatūros ir drėgmės jutiklis Su „Arduino“(N): jutiklis (DHT11) renka drėgmę ir temperatūrą. Tada paima šią informaciją ir išsaugo ją SD kortelėje, kurią galime analizuoti „Google“dokumentuose
PCF8591 (i2c analoginis įvesties/išvesties plėtiklis) Greitas ir paprastas naudojimas: 9 žingsniai
PCF8591 („i2c Analog I/O Expander“) Greitas ir paprastas naudojimas: biblioteka, skirta naudoti „i2c pcf8591 IC“su arduino ir esp8266. Šis IC gali valdyti (iki 4) analoginį įėjimą ir (arba) 1 analoginį išėjimą, pvz., Išmatuoti įtampą, nuskaityti termistoriaus vertę arba išblukinti šviesos diodą. Gali nuskaityti analoginę vertę ir parašyti analoginę vertę tik su 2 laidais (perfec
Greitas, greitas, pigus, gerai atrodantis LED kambario apšvietimas (visiems): 5 žingsniai (su nuotraukomis)
Greitas, greitas, pigus, gerai atrodantis LED kambario apšvietimas (visiems): Sveiki visi :-) Tai yra mano pirmasis pamokomas dalykas, todėl laukiame komentarų :-) Ką tikiuosi jums parodyti, kaip greitai sukurti LED apšvietimą TINY buget. Ko jums reikia: KabelisLEDsResistoriai (510Ohms 12V) StapelsLituoklis Pjaustytuvai ir kiti pagrindai