INHOUDSOPGAWE:
- Stap 1: Hoe I2c werk
- Stap 2: Biblioteek
- Stap 3: Behaivor
- Stap 4: I2c -gebruik
- Stap 5: Een draad gebruik
- Stap 6: Implisiete lees
- Stap 7: Eenvoudige lees
- Stap 8: Lees volledig
- Stap 9: Verbindingsdiagram
- Stap 10: Arduino: OneWire
- Stap 11: Arduino: I2c
- Stap 12: Esp8266 (D1Mini) OneWire
- Stap 13: Esp8266 (D1Mini) I2c
- Stap 14: Dankie
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
U kan opdaterings en ander op my webwerf vind
Ek hou van sensor wat met 2 -draad (i2c -protokol) gebruik kan word, maar ek hou van die goedkoop een.
Dit is 'n Arduino- en esp8266 -biblioteek vir die DHT12 -reeks baie goedkoop temperatuur-/humiditeitsensors (minder as 1 $) wat werk met i2c of eendraadverbinding.
Dit is baie handig as u esp01 wil gebruik (as u seriële gebruik, het u slegs 2 penne) om humiditeit en temperatuur te lees en dit op die i2c LCD te vertoon.
AI lees dat dit soms lyk asof dit kalibrasie nodig het, maar ek het 'n boom hiervan en kry 'n baie soortgelyke waarde as DHT22. As u hierdie probleem kalibreer, maak die probleem op github oop en ek voeg implementering by.
Stap 1: Hoe I2c werk
I2C werk met sy twee drade, die SDA (data lyn) en SCL (kloklyn).
Albei hierdie lyne is oop-dreineer, maar word met weerstande opgetrek.
Gewoonlik is daar een meester en een of meer slawe op die spel, alhoewel daar verskeie meesters kan wees, maar ons sal later daaroor praat.
Beide meesters en slawe kan data stuur of ontvang, daarom kan 'n toestel in een van hierdie vier toestande wees: meester -oordrag, meester -ontvangs, slawe -oordrag, slawe -ontvangs.
Stap 2: Biblioteek
U kan my biblioteek hier vind.
Om af te laai
Klik op die DOWNLOADS -knoppie in die regter boonste hoek, hernoem die ongecomprimeerde gids DHT12.
Kontroleer of die DHT -lêergids DHT12.cpp en DHT12.h bevat.
Plaas die DHT -biblioteekmap u / biblioteke / gids.
Miskien moet u die biblioteek se submap skep as dit u eerste biblioteek is.
Herbegin die IDE.
Stap 3: Behaivor
Hierdie biblioteek probeer om die gedrag van standaard DHT -biblioteeksensors na te boots (en baie kode te kopieer), en ek voeg die kode by om i2c olso op dieselfde manier te bestuur.
Die metode is dieselfde as die DHT -biblioteeksensor, met 'n bietjie byvoeging soos dauwpuntfunksie.
Stap 4: I2c -gebruik
Die konstruktor is om te gebruik met i2c (standaardadres en standaard SDA SCL -pen):
DHT12 dht12;
en neem die standaardwaarde vir SDA SCL -pen.
(Dit is moontlik om te herdefinieer met die gespesifiseerde konstruktor vir esp8266, benodig vir ESP-01). of
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> adres
adres te verander.
Stap 5: Een draad gebruik
Om een draad te gebruik:
DHT12 dht12 (uint8_t addressOrPin, waar)
addressOrPin -> pin
booleaanse waarde is die keuse van die oneWire- of i2c -modus.
Stap 6: Implisiete lees
U kan dit gebruik met "implisiete", "eenvoudige lees" of "vollees": implisiet, slegs die eerste lees wat die sensor waarlik lees, die ander lees wat in 2 sekondes word. interval is die gestoorde waarde van eerste lees.
// Die lesing van die sensor het 2 sekondes verloop van tyd, tensy u die kragparameter slaag
// Lees temperatuur as Celsius (die standaard) float t12 = dht12.readTemperature (); // Lees temperatuur as Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Sensorlesings kan ook tot 2 sekondes oud wees (dit is 'n baie stadige sensor) dryf h12 = dht12.readHumidity (); // Bereken hitte -indeks in Fahrenheit (die standaard) float hif12 = dht12.computeHeatIndex (f12, h12); // Bereken hitte -indeks in Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Bereken dauwpunt in Fahrenheit (die standaard) dryf dpf12 = dht12.dewPoint (f12, h12); // Bereken dauwpunt in Celsius (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Stap 7: Eenvoudige lees
Eenvoudige lees om 'n leesstatus te kry.
// Die lesing van die sensor het 2 sekondes verloop van tyd, tensy u die kragparameter slaag
bool chk = dht12.read (); // ware lees is ok, vals leesprobleem
// Lees temperatuur as Celsius (standaard)
float t12 = dht12.readTemperature (); // Lees temperatuur as Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Sensorlesings kan ook tot 2 sekondes oud wees (dit is 'n baie stadige sensor) dryf h12 = dht12.readHumidity (); // Bereken hitte -indeks in Fahrenheit (die standaard) float hif12 = dht12.computeHeatIndex (f12, h12); // Bereken hitte -indeks in Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Bereken dauwpunt in Fahrenheit (die standaard) float dpf12 = dht12.dewPoint (f12, h12); // Bereken dauwpunt in Celsius (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Stap 8: Lees volledig
Lees volledig om 'n gespesifiseerde status te kry.
// Die lesing van die sensor het 2 sekondes verloop van tyd, tensy u die kragparameter slaag
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nLees sensor:")); switch (chk) {case DHT12:: OK: Serial.println (F ("OK")); breek; saak DHT12:: ERROR_CHECKSUM: Serial.println (F ("Checksum -fout")); breek; saak DHT12:: ERROR_TIMEOUT: Serial.println (F ("Timeout -fout")); breek; saak DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Timeout error on low signal, try put high pullup weerstand")); breek; geval DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Timeout error on low signal, try put low pullup weerstand")); breek; saak DHT12:: ERROR_CONNECT: Serial.println (F ("Verbindingsfout")); breek; saak DHT12:: ERROR_ACK_L: Serial.println (F ("AckL -fout")); breek; saak DHT12:: ERROR_ACK_H: Serial.println (F ("AckH -fout")); breek; saak DHT12:: ERROR_UNKNOWN: Serial.println (F ("Onbekende fout opgemerk")); breek; saak DHT12:: GEEN: Serial.println (F ("Geen resultaat")); breek; standaard: Serial.println (F ("Onbekende fout")); breek; }
// Lees temperatuur as Celsius (standaard)
float t12 = dht12.readTemperature (); // Lees temperatuur as Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Sensorlesings kan ook tot 2 sekondes oud wees (dit is 'n baie stadige sensor) dryf h12 = dht12.readHumidity (); // Bereken hitte -indeks in Fahrenheit (die standaard) float hif12 = dht12.computeHeatIndex (f12, h12); // Bereken hitte -indeks in Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Bereken dauwpunt in Fahrenheit (die standaard) float dpf12 = dht12.dewPoint (f12, h12); // Bereken dauwpunt in Celsius (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Stap 9: Verbindingsdiagram
Met voorbeelde is daar die verbindingsdiagram; dit is belangrik om die korrekte pullup -weerstand te gebruik.
Dankie aan Bobadas, dplasa en adafruit, om die kode in github te deel (waar ek kode en idees neem).
Stap 10: Arduino: OneWire
Stap 11: Arduino: I2c
Stap 12: Esp8266 (D1Mini) OneWire
Stap 13: Esp8266 (D1Mini) I2c
Stap 14: Dankie
Arduino speelgrond (https://playground.arduino.cc/Main/DHT12SensorLibrary)
i2c -projekreeks (versameling):
- Temperatuur humiditeit sensor
- Analoog uitbreider
- Digitale uitbreider
- LCD -skerm
Aanbeveel:
Hoe om die DHT22 -humiditeits- en temperatuursensor met Arduino te gebruik: 6 stappe
Hoe om die DHT22 -humiditeits- en temperatuursensor met Arduino te gebruik: In hierdie tutoriaal leer ons hoe u die DHT22 -humiditeits- en temperatuursensor met Arduino kan gebruik en die waardes op die OLED -skerm kan sien. Kyk na die video
Hoe om die DHT12 I2C -humiditeits- en temperatuursensor met Arduino te gebruik: 7 stappe
Hoe om die DHT12 I2C humiditeits- en temperatuursensor te gebruik met Arduino: In hierdie tutoriaal leer ons hoe u die DHT12 I2C humiditeits- en temperatuursensor met Arduino kan gebruik en die waardes op die OLED -skerm kan sien. Kyk na die video
Ongewone pasgemaakte boks/omhulsel (vinnig, maklik, modulêr, goedkoop): 7 stappe
Ongewone pasgemaakte boks/omhulsel (vinnig, maklik, modulêr, goedkoop): die doel van hierdie instruksies is om u te wys hoe u 'n goedkoop, pasgemaakte, modulêre boks/omhulsel kan maak. Ek gaan u wys hoe om dit met beperkte gereedskap en begroting. Dit is my eerste instruksies (ook Engels is nie my eerste taal nie), so wees asseblief
Echo Dot Hanger, maklik, vinnig en goedkoop !: 7 stappe
Echo Dot Hanger, maklik, vinnig en goedkoop !: Deur mrcisaleaffan Gepubliseer 26 Julie 2018 As u van hierdie instruksies hou, stem dan daarvoor in die " Creative Misuse " Inleiding: Echo Dot Hanger, maklik, vinnig en goedkoop Die afgelope Kersfees het ek 'n Alexa Echo slim luidspreker ontvang. Sink
DIY MusiLED, musiek gesinkroniseerde LED's met 'n klik Windows en Linux-toepassing (32-bis en 64-bis). Maklik om te herskep, maklik om te gebruik, maklik om te vervoer: 3 stappe
DIY MusiLED, musiek gesinkroniseerde LED's met 'n klik Windows en Linux-toepassing (32-bis en 64-bis). Maklik om te herskep, maklik om te gebruik, maklik om te vervoer: met hierdie projek kan u 18 LED's (6 rooi + 6 blou + 6 geel) aan u Arduino-bord koppel en die real-time seine van u rekenaar analiseer en dit na die LED's om hulle te verlig volgens die klopeffekte (Snare, High Hat, Kick)