Мазмұны:
- 1 -қадам: I2c қалай жұмыс істейді
- 2 -қадам: Кітапхана
- 3 -қадам: Behaivor
- 4 -қадам: I2c қолдану
- 5 -қадам: Бір сымды қолдану
- 6 -қадам: Жасырын оқу
- 7 -қадам: Қарапайым оқу
- 8 -қадам: Толық оқу
- 9 -қадам: Қосылу диаграммасы
- 10 -қадам: Arduino: OneWire
- 11 -қадам: Arduino: I2c
- 12 -қадам: Esp8266 (D1Mini) OneWire
- 13 -қадам: Esp8266 (D1Mini) I2c
- 14 -қадам: рахмет
Бейне: DHT12 (i2c арзан ылғалдылық пен температура сенсоры), жылдам қарапайым қолдану: 14 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Сіз менің сайтымнан жаңартуларды және басқаларды таба аласыз
Маған 2 сымды қолдана алатын сенсор ұнайды (i2c протоколы), бірақ маған қымбат емес.
Бұл i2c немесе бір сымды қосылыммен жұмыс істейтін DHT12 өте төмен температура/ылғалдылық датчиктерінің (1 доллардан төмен) Arduino және esp8266 кітапханасы.
Ылғалдылық пен температураны оқу және оны i2c СКД -де көрсету үшін esp01 (егер сіз сериялық қолдансаңыз, сізде тек 2 түйреуіш) бар болса, өте пайдалы.
AI оқыды, кейде калибрлеу қажет сияқты, бірақ менде бұл ағаш бар және DHT22 -ге өте ұқсас мәнді аламын. Егер сізде бұл мәселені калибрлеу болса, github -да мәселені ашыңыз және мен енгізуді қосамын.
1 -қадам: I2c қалай жұмыс істейді
I2C екі сыммен жұмыс істейді, SDA (деректер желісі) және SCL (сағаттық желі).
Бұл екі желі де ашық, бірақ резисторлармен тартылған.
Әдетте желіде бір шебер мен бір немесе бірнеше құл бар, бірақ бірнеше шеберлер болуы мүмкін, бірақ біз бұл туралы кейінірек айтатын боламыз.
Мастерлер де, құлдар да деректерді жібере немесе ала алады, сондықтан құрылғы осы төрт күйдің бірінде болуы мүмкін: басты жіберу, басты қабылдау, құлдық жіберу, құлдық қабылдау.
2 -қадам: Кітапхана
Сіз менің кітапханамды осы жерден таба аласыз.
Жүктеу үшін
Жоғарғы оң жақ бұрыштағы ЖҮКТЕУ түймесін басыңыз, қысылмаған қалтаның атын DHT12 өзгертіңіз.
DHT қалтасында DHT12.cpp және DHT12.h бар екенін тексеріңіз.
DHT кітапхана қалтасын / libraries / қалтасына қойыңыз.
Егер сіздің бірінші кітапханаңыз болса, сізге кітапханалар ішкі қалтасын жасау қажет болуы мүмкін.
IDE қайта іске қосыңыз.
3 -қадам: Behaivor
Бұл кітапхана DHT кітапханасының стандартты сенсорларының мінез -құлқына еліктеуге тырысады (және көптеген кодты көшіреді), мен де i2c olso басқару үшін кодты осылай қосамын.
Бұл әдіс DHT кітапханасының сенсорымен бірдей, кейбіреулерінде шық нүктесі сияқты функция бар.
4 -қадам: I2c қолдану
I2c (әдепкі адрес және әдепкі SDA SCL түйреуіш) көмегімен пайдалану үшін конструктор:
DHT12 dht12;
және SDA SCL түйреуіші үшін әдепкі мәнді алыңыз.
(ESP-01 үшін қажет esp8266 үшін көрсетілген конструктормен қайта анықтауға болады). немесе
DHT12 dht12 (uint8_t addressOrPin)
addressOrPin -> мекенжай
мекенжайды өзгерту үшін.
5 -қадам: Бір сымды қолдану
Бір сымды пайдалану үшін:
DHT12 dht12 (uint8_t addressOrPin, ақиқат)
addressOrPin -> түйреу
логикалық мән - бұл OneWire немесе i2c режимін таңдау.
6 -қадам: Жасырын оқу
Сіз оны «жасырын», «қарапайым оқу» немесе «толық оқу» арқылы қолдана аласыз: Жасырын, сенсордың шын оқуын тек бірінші оқылым, екіншісі 2 секундта болатын оқу. интервал - бірінші оқылымның сақталған мәні.
// Егер сенсорлық күштің параметрін жібермесең сенсордың оқуы 2 секундқа созылады
// Оқу температурасы Цельсий ретінде (әдепкі) float t12 = dht12.readTemperature (); // Температураны Фаренгейт (isFahrenheit = true) өзгермелі ретінде оқыңыз f12 = dht12.readTemperature (true); // Сенсордың көрсеткіштері 2 секундқа дейін болуы мүмкін (оның сенсоры өте баяу) h12 = dht12.readHumidity (); // Фаренгейт бойынша жылу индексін есептеңіз (әдепкі) өзгермелі hif12 = dht12.computeHeatIndex (f12, h12); // Цельсий бойынша жылу индексін есептеу (isFahreheit = false) өзгермелі hic12 = dht12.computeHeatIndex (t12, h12, false); // Fahrenheit (әдепкі) өзгермелі қалқымалы нүктесін есептеу dpf12 = dht12.dewPoint (f12, h12); // Цельсий бойынша шық нүктесін есептеу (isFahreheit = false) қалқыма dpc12 = dht12.dewPoint (t12, h12, жалған);
7 -қадам: Қарапайым оқу
Оқу мәртебесін алу үшін қарапайым оқу.
// Егер сенсорлық күштің параметрін жібермесең сенсордың оқуына 2 секунд уақыт кетеді
bool chk = dht12.read (); // шын оқу дұрыс, жалған оқу мәселесі
// Цельсий бойынша температураны оқу (әдепкі)
float t12 = dht12.readTemperature (); // Температураны Фаренгейт (isFahrenheit = true) өзгермелі ретінде оқыңыз f12 = dht12.readTemperature (true); // Сенсордың көрсеткіштері 2 секундқа дейін болуы мүмкін (оның сенсоры өте баяу) h12 = dht12.readHumidity (); // Фаренгейт бойынша жылу индексін есептеңіз (әдепкі) өзгермелі hif12 = dht12.computeHeatIndex (f12, h12); // Цельсий бойынша жылу индексін есептеу (isFahreheit = false) өзгермелі hic12 = dht12.computeHeatIndex (t12, h12, false); // Fahrenheit (әдепкі) өзгермелі қалқымалы нүктесі dpf12 = dht12.dewPoint (f12, h12); // Цельсий бойынша шық нүктесін есептеңіз (isFahreheit = false) өзгермелі dpc12 = dht12.dewPoint (t12, h12, жалған);
8 -қадам: Толық оқу
Белгіленген күйді алу үшін толық оқу.
// Егер сенсорлық күштің параметрін жібермесең сенсордың оқуына 2 секунд уақыт кетеді
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F («\ nОқу сенсоры:»)); switch (chk) {case DHT12:: OK: Serial.println (F («OK»)); үзіліс; DHT12:: ERROR_CHECKSUM: Serial.println (F («Бақылау сомасының қатесі»)); үзіліс; DHT12:: ERROR_TIMEOUT: Serial.println (F («Күту уақыты қатесі»)); үзіліс; DHT12:: ERROR_TIMEOUT_LOW жағдайы: Serial.println (F («Төмен сигналда күту уақыты қатесі, жоғары тартылу қарсылығын орнатып көріңіз»)); үзіліс; DHT12:: ERROR_TIMEOUT_HIGH жағдайы: Serial.println (F («Аз сигналда күту уақыты қатесі, төмен тартылу қарсылығын орнатып көріңіз»)); үзіліс; DHT12:: ERROR_CONNECT жағдайы: Serial.println (F («Қосылу қатесі»)); үзіліс; DHT12:: ERROR_ACK_L: Serial.println (F («AckL қатесі»)); үзіліс; DHT12:: ERROR_ACK_H жағдайы: Serial.println (F («AckH қатесі»)); үзіліс; DHT12:: ERROR_UNKNOWN: Serial.println (F («Белгісіз қате анықталды»)); үзіліс; DHT12:: NONE: Serial.println (F («Нәтиже жоқ»)); үзіліс; әдепкі: Serial.println (F («Белгісіз қате»)); үзіліс; }
// Цельсий бойынша температураны оқу (әдепкі)
float t12 = dht12.readTemperature (); // Температураны Фаренгейт (isFahrenheit = true) өзгермелі ретінде оқыңыз f12 = dht12.readTemperature (true); // Сенсордың көрсеткіштері 2 секундқа дейін болуы мүмкін (сенсор өте баяу) h12 = dht12.readHumidity (); // Фаренгейт бойынша жылу индексін есептеңіз (әдепкі) өзгермелі hif12 = dht12.computeHeatIndex (f12, h12); // Цельсий бойынша жылу индексін есептеу (isFahreheit = false) өзгермелі hic12 = dht12.computeHeatIndex (t12, h12, false); // Fahrenheit (әдепкі) өзгермелі қалқымалы нүктесі dpf12 = dht12.dewPoint (f12, h12); // Цельсий бойынша шық нүктесін есептеңіз (isFahreheit = false) өзгермелі dpc12 = dht12.dewPoint (t12, h12, жалған);
9 -қадам: Қосылу диаграммасы
Мысалдарда қосылу схемасы бар, дұрыс тартқыш резисторды қолдану маңызды.
Github -да кодты бөлісу үшін Bobadas, dplasa және adafruit арқасында (мен кейбір кодтар мен идеяларды қабылдаймын).
10 -қадам: Arduino: OneWire
11 -қадам: Arduino: I2c
12 -қадам: Esp8266 (D1Mini) OneWire
13 -қадам: Esp8266 (D1Mini) I2c
14 -қадам: рахмет
Arduino ойын алаңы (https://playground.arduino.cc/Main/DHT12SensorLibrary)
i2c жобалар сериясы (Топтама):
- Температура ылғалдылығы сенсоры
- Аналогты кеңейтуші
- Сандық кеңейткіш
- СКД дисплей
Ұсынылған:
DHT12 I2C ылғалдылық пен температура сенсорын Arduino көмегімен қалай қолдануға болады: 7 қадам
DHT12 I2C ылғалдылығы мен температура сенсорын Arduino көмегімен қалай қолдануға болады: Бұл оқулықта біз DHT12 I2C ылғалдылығы мен температура сенсорын Arduino көмегімен қалай қолдану керектігін және OLED дисплейінде мәндерді көрсетуді үйренеміз
Raspberry Pi SHT25 ылғалдылық пен температура сенсоры Python оқулығы: 4 қадам
Raspberry Pi SHT25 ылғалдылық пен температура сенсоры Python оқулығы: SHT25 I2C ылғалдылық пен температура сенсоры ± 1,8%RH ± 0,2 ° C I2C шағын модулі. SHT25 жоғары дәлдіктегі ылғалдылық пен температура сенсоры калибрленген, сызықты сенсорлық сигнал беретін формалық фактор мен интеллект тұрғысынан өнеркәсіптік стандартқа айналды
Ылғалдылық пен температура сенсоры: 5 қадам
Ылғалдылық пен температура сенсоры: Стендтік топырақ сенсоры өсімдіктердегі ылғалдылық деңгейін анықтау үшін бір зондты қолданады. Ол сонымен қатар микроконтроллердегі ішкі температура сенсорынан қоршаған ортаның температурасын анықтай алады. Бұл құрылғы дәнекерлеуді қажет етпейді
Raspberry Pi - HIH6130 I2C ылғалдылық пен температура сенсоры Python оқулығы: 4 қадам
Raspberry Pi - HIH6130 I2C ылғалдылық пен температура сенсоры Python оқулығы: HIH6130 - бұл цифрлық шығысы бар ылғалдылық пен температура сенсоры. Бұл датчиктер ± 4% RH дәлдік деңгейін қамтамасыз етеді. Өнеркәсіптің жетекші ұзақ мерзімді тұрақтылығымен, шынайы температуралық компенсацияланған сандық I2C, өнеркәсіптің сенімділігі, энергия тиімділігі
Raspberry Pi - HIH6130 I2C ылғалдылық пен температура сенсоры Java оқулығы: 4 қадам
Raspberry Pi - HIH6130 I2C ылғалдылық пен температура сенсоры Java оқулығы: HIH6130 - бұл цифрлық шығысы бар ылғалдылық пен температура сенсоры. Бұл датчиктер ± 4% RH дәлдік деңгейін қамтамасыз етеді. Өнеркәсіптің жетекші ұзақ мерзімді тұрақтылығымен, шынайы температуралық компенсацияланған сандық I2C, өнеркәсіптің сенімділігі, энергия тиімділігі