Sadržaj:
- Korak 1: Kako I2c radi
- Korak 2: Knjižnica
- Korak 3: Behaivor
- Korak 4: Upotreba I2c
- Korak 5: Upotreba jedne žice
- Korak 6: Implicitno čitanje
- Korak 7: Jednostavno čitanje
- Korak 8: Potpuno čitanje
- Korak 9: Dijagram povezivanja
- Korak 10: Arduino: OneWire
- Korak 11: Arduino: I2c
- Korak 12: Esp8266 (D1Mini) OneWire
- Korak 13: Esp8266 (D1Mini) I2c
- Korak 14: Hvala
Video: DHT12 (i2c senzor jeftine vlažnosti i temperature), brzo i jednostavno korištenje: 14 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Ažuriranje i ostalo možete pronaći na mojoj web stranici
Sviđa mi se senzor koji se može koristiti s 2 žice (i2c protokol), ali volim jeftin.
Ovo je biblioteka Arduino i esp8266 za seriju DHT12 vrlo niske cijene osjetnika temperature/vlažnosti (manje od 1 USD) koji rade s i2c ili jednom žicom.
Vrlo korisno ako želite koristiti esp01 (ako koristite serijski imate samo 2 pina) za čitanje vlažnosti i temperature i prikaz na i2c LCD -u.
AI sam pročitao da se ponekad čini da je potrebna kalibracija, ali ja imam ovo drvo i dobivam vrijednost vrlo sličnu DHT22. Ako imate kalibraciju ovog problema, otvorite problem na githubu i ja dodajem implementaciju.
Korak 1: Kako I2c radi
I2C radi s dvije žice, SDA (podatkovna linija) i SCL (linija sata).
Obje ove linije su otvorene, ali su povučene otpornicima.
Obično je na liniji jedan master i jedan ili više robova, iako može postojati više majstora, ali o tome ćemo kasnije.
I nadređeni i podređeni mogu prenositi ili primati podatke, stoga uređaj može biti u jednom od ova četiri stanja: glavni prijenos, glavni prijem, slave prijenos, slave prijem.
Korak 2: Knjižnica
Moju biblioteku možete pronaći ovdje.
Preuzeti
Pritisnite gumb DOWNLOADS u gornjem desnom kutu, preimenujte nekomprimiranu mapu DHT12.
Provjerite sadrži li mapa DHT DHT12.cpp i DHT12.h.
Postavite mapu knjižnice DHT u svoju / knjižnice / mapu.
Možda ćete morati stvoriti podmapu knjižnica ako je to vaša prva knjižnica.
Ponovo pokrenite IDE.
Korak 3: Behaivor
Ova knjižnica pokušava oponašati ponašanje standardnih senzora knjižnice DHT (i kopirati mnogo koda), a ja dodajem kôd za upravljanje i2c također na isti način.
Metoda je ista kao kod DHT knjižničnog senzora, s tim da neki dodaju funkciju poput točke rosišta.
Korak 4: Upotreba I2c
Za upotrebu s i2c (zadana adresa i zadani SDA SCL pin) konstruktor je:
DHT12 dht12;
i uzeti zadanu vrijednost za SDA SCL pin.
(Moguće je redefinirati s navedenim izvođačem za esp8266, potrebnim za ESP-01). ili
DHT12 dht12 (uint8_t adresaOrPin)
addressOrPin -> adresa
za promjenu adrese.
Korak 5: Upotreba jedne žice
Za korištenje jedne žice:
DHT12 dht12 (uint8_t adresaOrPin, točno)
addressOrPin -> pin
Booleova vrijednost odabir je načina rada oneWire ili i2c.
Korak 6: Implicitno čitanje
Možete ga koristiti s "implicitnim", "jednostavnim čitanjem" ili "punim čitanjem": Implicitno, samo prvo čitanje radi istinsko očitavanje senzora, drugo čitanje postaje u 2 sekunde. interval su pohranjene vrijednosti prvog čitanja.
// Očitavanje senzora ima 2 sekunde proteklog vremena, osim ako ne prođete parametar sile
// Očitavanje temperature kao Celsius (zadano) float t12 = dht12.readTemperature (); // Očitajte temperaturu kao Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Očitavanja senzora mogu biti i do 2 sekunde "stara" (to je vrlo spor senzor) plovak h12 = dht12.readHumidity (); // Izračunajte toplinski indeks u Fahrenheitu (zadano) float hif12 = dht12.computeHeatIndex (f12, h12); // Izračunajte toplinski indeks u Celzijusima (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Izračunaj točku rosišta u Fahrenheitu (zadano) float dpf12 = dht12.dewPoint (f12, h12); // Izračunaj rosište u Celzijusima (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Korak 7: Jednostavno čitanje
Jednostavno čitanje za dobivanje statusa pročitanog.
// Očitavanje senzora ima 2 sekunde proteklog vremena, osim ako ne prođete parametar sile
bool chk = dht12.read (); // true read je ok, false read problem
// Očitavanje temperature kao Celzijusa (zadano)
float t12 = dht12.readTemperature (); // Očitajte temperaturu kao Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Očitavanja senzora mogu biti i do 2 sekunde "stara" (to je vrlo spor senzor) plovak h12 = dht12.readHumidity (); // Izračunajte toplinski indeks u Fahrenheitu (zadano) float hif12 = dht12.computeHeatIndex (f12, h12); // Izračunajte toplinski indeks u Celzijusima (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Izračunaj točku rosišta u Fahrenheitu (zadano) float dpf12 = dht12.dewPoint (f12, h12); // Izračunaj rosište u Celzijusima (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Korak 8: Potpuno čitanje
Potpuno čitanje za dobivanje određenog statusa.
// Očitavanje senzora ima 2 sekunde proteklog vremena, osim ako ne prođete parametar sile
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nČitaj senzor:")); switch (chk) {case DHT12:: OK: Serial.println (F ("OK")); pauza; slučaj DHT12:: ERROR_CHECKSUM: Serial.println (F ("Pogreška kontrolne sume")); pauza; slučaj DHT12:: ERROR_TIMEOUT: Serial.println (F ("Timeout error")); pauza; slučaj DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Pogreška vremenskog ograničenja pri niskom signalu, pokušajte postaviti visoki otpor pullupa")); pauza; slučaj DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Pogreška vremenskog ograničenja pri niskom signalu, pokušajte s niskim otporom otpora")); pauza; slučaj DHT12:: ERROR_CONNECT: Serial.println (F ("Pogreška pri povezivanju")); pauza; slučaj DHT12:: ERROR_ACK_L: Serial.println (F ("AckL pogreška")); pauza; slučaj DHT12:: ERROR_ACK_H: Serial.println (F ("AckH pogreška")); pauza; slučaj DHT12:: ERROR_UNKNOWN: Serial.println (F ("DETECTED Unknown error")); pauza; slučaj DHT12:: NONE: Serial.println (F ("Nema rezultata")); pauza; zadano: Serial.println (F ("Nepoznata pogreška")); pauza; }
// Očitavanje temperature kao Celzijusa (zadano)
float t12 = dht12.readTemperature (); // Očitajte temperaturu kao Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Očitavanja senzora mogu biti i do 2 sekunde "stara" (to je vrlo spor senzor) plovak h12 = dht12.readHumidity (); // Izračunajte toplinski indeks u Fahrenheitu (zadano) float hif12 = dht12.computeHeatIndex (f12, h12); // Izračunajte toplinski indeks u Celzijusima (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Izračunaj točku rosišta u Fahrenheitu (zadano) float dpf12 = dht12.dewPoint (f12, h12); // Izračunaj rosište u Celzijusima (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Korak 9: Dijagram povezivanja
Uz primjere, postoji dijagram povezivanja, važno je koristiti ispravan otpornik.
Hvala Bobadas -u, dplasi i adafruit -u, za dijeljenje koda u githubu (gdje preuzimam neke kodove i ideje).
Korak 10: Arduino: OneWire
Korak 11: Arduino: I2c
Korak 12: Esp8266 (D1Mini) OneWire
Korak 13: Esp8266 (D1Mini) I2c
Korak 14: Hvala
Arduino igralište (https://playground.arduino.cc/Main/DHT12SensorLibrary)
serija projekata i2c (zbirka):
- Senzor temperature vlage
- Analogni ekspander
- Digitalni ekspander
- LCD zaslon
Preporučeni:
Kako koristiti DHT12 I2C osjetnik vlage i temperature s Arduinom: 7 koraka
Kako koristiti DHT12 I2C osjetnik vlažnosti i temperature s Arduinom: U ovom ćemo vodiču naučiti kako koristiti DHT12 I2C osjetnik vlažnosti i temperature s Arduinom te prikazati vrijednosti na OLED zaslonu. Pogledajte video
Arduino senzor temperature i vlažnosti na solarni pogon kao 433mhz Oregonski senzor: 6 koraka
Arduino senzor temperature i vlažnosti na solarni pogon kao 433mhz Oregonski senzor: Ovo je konstrukcija senzora temperature i vlažnosti na solarnu energiju. Senzor emulira 433mhz Oregonski senzor i vidljiv je na Telldus Net gatewayu. Što vam je potrebno: 1x " 10-LED Senzor pokreta solarne energije " s Ebaya. Provjerite piše li baterija od 3,7 V
Raspberry Pi - HIH6130 I2C Senzor vlažnosti i temperature Python Tutorial: 4 koraka
Raspberry Pi - HIH6130 I2C Senzor vlažnosti i temperature Python Vodič: HIH6130 je senzor vlažnosti i temperature s digitalnim izlazom. Ovi senzori pružaju razinu točnosti od ± 4% RH. Uz dugoročnu stabilnost, vodeću u industriji, digitalni I2C s kompenzacijom temperature, vodeću pouzdanost u industriji, energetsku učinkovitost
PCF8591 (i2c analogni I/O ekspander) Brzo i jednostavno korištenje: 9 koraka
PCF8591 (i2c Analog I/O Expander) Brzo i jednostavno korištenje: Knjižnica za korištenje i2c pcf8591 IC sa arduinom i esp8266. Ovaj IC može upravljati (do 4) analognim ulazom i/ili 1 analognim izlazom poput mjernog napona, očitavati vrijednost termistora ili blijediti LED. Može čitati analognu vrijednost i pisati analognu vrijednost sa samo 2 žice (perfek
Brzo, brzo, jeftino, lijepo izgledajuće LED osvjetljenje prostorije (za svakoga): 5 koraka (sa slikama)
Brzo, brzo, jeftino, dobro izgleda LED svjetlo za sobu (za svakoga): Dobro došli svima :-) Ovo je moje prvo uputstvo pa su komentari dobrodošli :-) Ono što se nadam da ću vam pokazati je kako napraviti brzo LED osvjetljenje SITNI buget. Što vam je potrebno: KabloviLED -iOtpornici (510Ohms za 12V) SpajaliceLeglanje, rezači i drugo