Taula de continguts:
- Pas 1: Com funciona I2c
- Pas 2: Biblioteca
- Pas 3: Comportador
- Pas 4: Ús d’I2c
- Pas 5: Ús d'un cable
- Pas 6: lectura implícita
- Pas 7: lectura senzilla
- Pas 8: lectura completa
- Pas 9: diagrama de connexió
- Pas 10: Arduino: OneWire
- Pas 11: Arduino: I2c
- Pas 12: Esp8266 (D1Mini) OneWire
- Pas 13: Esp8266 (D1Mini) I2c
- Pas 14: gràcies
Vídeo: DHT12 (sensor d’humitat i temperatura barat i2c), d’ús fàcil i ràpid: 14 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Podeu trobar actualitzacions i altres al meu lloc
M'agrada el sensor que es pot utilitzar amb 2 fils (protocol i2c), però m'encanta el de baix cost.
Es tracta d’una biblioteca Arduino i esp8266 per a la sèrie DHT12 de sensors de temperatura / humitat de molt baix cost (menys d’1 $) que funcionen amb connexió i2c o un cable.
Molt útil si voleu utilitzar esp01 (si utilitzeu sèrie només teniu 2 pins) per llegir la humitat i la temperatura i mostrar-les a la pantalla LCD i2c.
He llegit que alguna vegada sembla que necessiten un calibratge, però tinc arbre d’això i tinc un valor molt similar al DHT22. Si teniu calibratge d’aquest problema, obriu el número a github i hi afegeixo implementació.
Pas 1: Com funciona I2c
I2C funciona amb els seus dos cables, l'SDA (línia de dades) i SCL (línia de rellotge).
Ambdues línies són de drenatge obert, però estan arrossegades amb resistències.
Normalment hi ha un mestre i un o diversos esclaus a la línia, tot i que hi pot haver diversos mestres, però en parlarem més endavant.
Tant els amos com els esclaus poden transmetre o rebre dades, per tant, un dispositiu pot estar en un d’aquests quatre estats: transmissió mestra, recepció del mestre, transmissió d’esclau, recepció d’esclaus.
Pas 2: Biblioteca
Podeu trobar la meva biblioteca aquí.
Per descarregar
Feu clic al botó DESCÀRREGUES de l'extrem superior dret i canvieu el nom de la carpeta sense comprimir DHT12.
Comproveu que la carpeta DHT contingui DHT12.cpp i DHT12.h.
Col·loqueu la carpeta de la biblioteca DHT a la vostra carpeta / libraries /.
És possible que hàgiu de crear la subcarpeta de biblioteques si és la vostra primera biblioteca.
Reinicieu l'IDE.
Pas 3: Comportador
Aquest libray intenta emular el comportador dels sensors de biblioteca DHT estàndard (i copio molt de codi), i afegeixo el codi per gestionar i2c també de la mateixa manera.
El mètode és el mateix que el sensor de la biblioteca DHT, amb alguns que afegeixen com a funció de punt de rosada.
Pas 4: Ús d’I2c
Per utilitzar amb i2c (adreça predeterminada i pin SDL SCA per defecte), el constructor és:
DHT12 dht12;
i agafeu el valor per defecte del pin SDL SCA.
(És possible redefinir amb un controlador especificat per a esp8266, necessari per a ESP-01). o bé
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> address
per canviar d'adreça.
Pas 5: Ús d'un cable
Per utilitzar un cable:
DHT12 dht12 (uint8_t addressOrPin, true)
addressOrPin -> pin
El valor booleà és la selecció del mode oneWire o i2c.
Pas 6: lectura implícita
Podeu utilitzar-lo amb "implícita", "lectura simple" o "lectura completa": implícita, només la primera lectura que fa una lectura real del sensor, l'altra lectura que es converteix en 2 segons. interval són el valor emmagatzemat de la primera lectura.
// La lectura del sensor té 2 segons de temps transcorregut, tret que passi el paràmetre de força
// Llegiu la temperatura com Celsius (per defecte) flotant t12 = dht12.readTemperature (); // Llegiu la temperatura com Fahrenheit (isFahrenheit = true) flotant f12 = dht12.readTemperature (true); // Les lectures del sensor també poden tenir una antiguitat de fins a 2 segons (és un sensor molt lent) flotant h12 = dht12.readHumidity (); // Calculeu l'índex de calor a Fahrenheit (per defecte) float hif12 = dht12.computeHeatIndex (f12, h12); // Calculeu l'índex de calor en centígrads (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Calculeu el punt de rosada a Fahrenheit (per defecte) flotant dpf12 = dht12.dewPoint (f12, h12); // Calculeu el punt de rosada en centígrads (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Pas 7: lectura senzilla
Lectura senzilla per obtenir un estat de lectura.
// La lectura del sensor té 2 segons de temps transcorregut, tret que passi el paràmetre de força
bool chk = dht12.read (); // veritat de lectura està bé, problema de lectura falsa
// Llegiu la temperatura com Celsius (per defecte)
flotador t12 = dht12.readTemperature (); // Llegiu la temperatura com Fahrenheit (isFahrenheit = true) flotant f12 = dht12.readTemperature (true); // Les lectures del sensor també poden tenir una antiguitat de fins a 2 segons (és un sensor molt lent) flotant h12 = dht12.readHumidity (); // Calculeu l'índex de calor a Fahrenheit (per defecte) float hif12 = dht12.computeHeatIndex (f12, h12); // Calculeu l'índex de calor en centígrads (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Calculeu el punt de rosada a Fahrenheit (per defecte) flotant dpf12 = dht12.dewPoint (f12, h12); // Calculeu el punt de rosada en centígrads (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Pas 8: lectura completa
Lectura completa per obtenir un estat especificat.
// La lectura del sensor té 2 segons de temps transcorregut, tret que passi el paràmetre de força
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nSensor de lectura:")); switch (chk) {case DHT12:: OK: Serial.println (F ("OK")); trencar; cas DHT12:: ERROR_CHECKSUM: Serial.println (F ("Error de suma de comprovació")); trencar; cas DHT12:: ERROR_TIMEOUT: Serial.println (F ("Error de temps d'espera")); trencar; cas DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Error de temps d'espera en senyal baix, intenteu posar una alta resistència a la tracció")); trencar; cas DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Error de temps d'espera en senyal baix, proveu de posar baixa resistència a la tracció")); trencar; cas DHT12:: ERROR_CONNECT: Serial.println (F ("Error de connexió")); trencar; cas DHT12:: ERROR_ACK_L: Serial.println (F ("error AckL")); trencar; cas DHT12:: ERROR_ACK_H: Serial.println (F ("error AckH")); trencar; cas DHT12:: ERROR_UNKNOWN: Serial.println (F ("Error desconegut DETECTAT")); trencar; cas DHT12:: NONE: Serial.println (F ("Cap resultat")); trencar; per defecte: Serial.println (F ("Error desconegut")); trencar; }
// Llegiu la temperatura com Celsius (per defecte)
flotador t12 = dht12.readTemperature (); // Llegiu la temperatura com Fahrenheit (isFahrenheit = true) flotant f12 = dht12.readTemperature (true); // Les lectures del sensor també poden tenir una antiguitat de fins a 2 segons (és un sensor molt lent) flotant h12 = dht12.readHumidity (); // Calculeu l'índex de calor a Fahrenheit (per defecte) float hif12 = dht12.computeHeatIndex (f12, h12); // Calculeu l'índex de calor en centígrads (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Calculeu el punt de rosada a Fahrenheit (per defecte) flotant dpf12 = dht12.dewPoint (f12, h12); // Calculeu el punt de rosada en centígrads (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Pas 9: diagrama de connexió
Amb exemples, hi ha el diagrama de connexió, és important utilitzar una resistència de tracció correcta.
Gràcies a Bobadas, dplasa i adafruit per compartir el codi a github (on agafo algunes idees i codi).
Pas 10: Arduino: OneWire
Pas 11: Arduino: I2c
Pas 12: Esp8266 (D1Mini) OneWire
Pas 13: Esp8266 (D1Mini) I2c
Pas 14: gràcies
Parc infantil Arduino (https://playground.arduino.cc/Main/DHT12SensorLibrary)
Sèrie de projectes i2c (Col·lecció):
- Sensor d'humitat de temperatura
- Expansor analògic
- Expander digital
- Pantalla LCD
Recomanat:
NodeMCU Lua Tauler barat de 6 $ amb registre de temperatura i humitat MicroPython, estadístiques Wifi i mòbils: 4 passos
NodeMCU Lua Tauler barat de 6 $ amb registre de temperatura i humitat de MicroPython, estadístiques de Wi-Fi i mòbils: bàsicament és una estació meteorològica en núvol, podeu consultar les dades del vostre telèfon o utilitzar alguns telèfons com a pantalla en viu. Amb el dispositiu NodeMCU podeu registrar dades de temperatura i humitat fora , a l'habitació, hivernacle, laboratori, sala de refrigeració o qualsevol altre lloc completel
Com utilitzar el sensor d'humitat i temperatura DHT12 I2C amb Arduino: 7 passos
Com s'utilitza el sensor d'humitat i temperatura DHT12 I2C amb Arduino: en aquest tutorial aprendrem a utilitzar el sensor d'humitat i temperatura DHT12 I2C amb Arduino i mostrarem els valors a la pantalla OLED. Mireu el vídeo
Automatitzar un hivernacle amb LoRa! (Part 1) -- Sensors (temperatura, humitat, humitat del sòl): 5 passos
Automatitzar un hivernacle amb LoRa! (Part 1) || Sensors (temperatura, humitat, humitat del sòl): en aquest projecte us mostraré com he automatitzat un hivernacle. Això vol dir que us mostraré com he construït l'hivernacle i com he connectat l'electrònica de potència i automatització. També us mostraré com programar una placa Arduino que utilitzi L
Monitor d'humitat sense fils (ESP8266 + sensor d'humitat): 5 passos
Monitor d’humitat sense fils (ESP8266 + Sensor d’humitat): compro julivert a l’olla i la major part del dia la terra estava seca. Així que decideixo fer aquest projecte, sobre la detecció de la humitat del sòl a l’olla amb julivert, per comprovar si necessito abocar terra amb aigua. Crec que aquest sensor (sensor d’humitat capacitiu v1.2) és bo perquè
ACTUALITZAT !!!! Amplificador de senyal d'antena WIFI barat i fàcil que és millor i més ràpid que els de paper !!!: 9 passos
ACTUALITZAT !!!! Amplificador de senyal d'antena WIFI barat i fàcil que és millor i més ràpid que els de paper