Sadržaj:
- Korak 1: Kako I2c radi
- Korak 2: Biblioteka
- 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
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
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 Arduino i esp8266 biblioteka za DHT12 seriju vrlo niskih cijena senzora 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 mi 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 sa svoje 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 slave -ova, iako može postojati i više master -a, 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: Biblioteka
Moju biblioteku možete pronaći ovdje.
Preuzimanje
Pritisnite dugme DOWNLOADS u gornjem desnom kutu, preimenujte nekomprimiranu mapu DHT12.
Proverite da li fascikla DHT sadrži DHT12.cpp i DHT12.h.
Postavite fasciklu DHT biblioteke u vašu / libraries / fasciklu.
Možda ćete morati stvoriti podmapu biblioteka ako je to vaša prva biblioteka.
Ponovo pokrenite IDE.
Korak 3: Behaivor
Ova biblioteka pokušava oponašati ponašanje standardnih senzora DHT biblioteke (i kopirati mnogo koda), a ja dodajem kôd za upravljanje i2c i na isti način.
Metoda je ista kao kod DHT bibliotečkog senzora, s tim da neki dodaju funkciju poput točke rosišta.
Korak 4: Upotreba I2c
Za korištenje s i2c (zadana adresa i zadani SDA SCL pin) konstruktor je:
DHT12 dht12;
i preuzmite zadanu vrijednost za SDA SCL pin.
(Moguće je redefiniranje s navedenim izvođačem za esp8266, potrebnim za ESP-01). ili
DHT12 dht12 (uint8_t adresaOrPin)
addressOrPin -> adresa
za promenu adrese.
Korak 5: Upotreba jedne žice
Da biste koristili jednu žicu:
DHT12 dht12 (uint8_t adresaOrPin, tačno)
addressOrPin -> pin
logička vrijednost je odabir 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 (zadani) float hif12 = dht12.computeHeatIndex (f12, h12); // Izračunajte toplinski indeks u Celzijusima (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Računamo tačku rosišta u Fahrenheitu (zadano) float dpf12 = dht12.dewPoint (f12, h12); // Izračunaj tačku rosišta u Celzijusu (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Korak 7: Jednostavno čitanje
Jednostavno čitanje za dobijanje statusa pročitanog.
// Očitavanje senzora ima 2 sekunde proteklog vremena, osim ako ne prođete parametar sile
bool chk = dht12.read (); // istina čitanje je u redu, problem sa lažnim čitanjem
// 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 (zadani) float hif12 = dht12.computeHeatIndex (f12, h12); // Izračunajte toplinski indeks u Celzijusima (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Računamo tačku rosišta u Fahrenheitu (zadano) float dpf12 = dht12.dewPoint (f12, h12); // Izračunaj tačku rosišta u Celzijusu (isFahreheit = false) float dpc12 = dht12.dewPoint (t12, h12, false);
Korak 8: Potpuno čitanje
Potpuno pročitano da biste dobili određeni status.
// 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")); break; slučaj DHT12:: ERROR_CHECKSUM: Serial.println (F ("Greška kontrolne sume")); break; slučaj DHT12:: ERROR_TIMEOUT: Serial.println (F ("Timeout error")); break; slučaj DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Greška u vremenskom ograničenju pri niskom signalu, pokušajte s visokim otporom otpora")); break; slučaj DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Greška isteka vremena pri niskom signalu, pokušajte s niskim otporom otpora")); break; slučaj DHT12:: ERROR_CONNECT: Serial.println (F ("Greška pri povezivanju")); break; slučaj DHT12:: ERROR_ACK_L: Serial.println (F ("AckL greška")); break; slučaj DHT12:: ERROR_ACK_H: Serial.println (F ("AckH greška")); break; slučaj DHT12:: ERROR_UNKNOWN: Serial.println (F ("DETECTED Unknown error")); break; slučaj DHT12:: NONE: Serial.println (F ("Nema rezultata")); break; default: Serial.println (F ("Nepoznata greška")); break; }
// 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 (zadani) float hif12 = dht12.computeHeatIndex (f12, h12); // Izračunajte toplinski indeks u Celzijusima (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Računamo tačku rosišta u Fahrenheitu (zadano) float dpf12 = dht12.dewPoint (f12, h12); // Izračunaj tačku rosišta u Celzijusu (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, što su podelili kôd u githubu (gde 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 displej
Preporučuje se:
Kako koristiti DHT12 I2C senzor vlažnosti i temperature s Arduinom: 7 koraka
Kako koristiti DHT12 I2C senzor vlažnosti i temperature s Arduinom: U ovom ćemo vodiču naučiti kako koristiti DHT12 I2C senzor vlažnosti i temperature s Arduinom i prikazati vrijednosti na OLED zaslonu. Pogledajte video
Arduino solarni senzor temperature i vlažnosti 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 solarni pogon. Senzor emulira 433mhz Oregonski senzor i vidljiv je na Telldus Net gatewayu. Šta vam je potrebno: 1x " 10-LED Senzor pokreta solarne energije " sa Ebaya. Provjerite da li piše baterija od 3,7 V
Raspberry Pi - HIH6130 I2C Senzor vlažnosti i temperature Python Vodič: 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 nivo preciznosti 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 Analog I/O Expander) Brzo i jednostavno korištenje: 9 koraka
PCF8591 (i2c Analog I/O Expander) Brzo i jednostavno korištenje: Biblioteka za korištenje i2c pcf8591 IC sa arduinom i esp8266. Ovaj IC može kontrolirati (do 4) analogni ulaz i/ili 1 analogni izlaz poput mjernog napona, očitati vrijednost termistora ili izblijediti LED. Može čitati analognu vrijednost i pisati analognu vrijednost samo sa 2 žice (perfektno
Brzo, brzo, jeftino, lijepo izgleda LED osvjetljenje sobe (za svakoga): 5 koraka (sa slikama)
Brzo, brzo, jeftino, lijepo izgledajući LED osvjetljenje sobe (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 koje je uključeno TINY buget.Šta vam je potrebno: KabloviLED -oviOtpornici (510Ohms za 12V) SpajaliceLeglanjeLiječi i drugi osnovni