Мазмуну:
- 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 -кадам: рахмат
Video: DHT12 (i2c арзан нымдуулук жана температура сенсору), Fast Easy Use: 14 Steps
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Жаңыртууну жана башкаларды менин сайтымдан таба аласыз
Мага 2 зым менен колдонула турган сенсор жагат (i2c протоколу), бирок мен арзанын жакшы көрөм.
Бул i2c же бир зым туташуусу менен иштеген DHT12 сериясындагы өтө арзан баалуу температура/нымдуулук сенсорлорунун (1 $ дан аз) Arduino жана esp8266 китепканасы.
Эгерде сиз esp01 колдонууну кааласаңыз (эгер сиз сериалды колдонсоңуз, анда болгону 2 пин бар), нымдуулукту жана температураны окуп, аны i2c ЖКда көрсөтүү үчүн.
AI окуйт, кээде калибрлөө керек окшойт, бирок менде бул дарак бар жана DHT22ге абдан окшош мааниге ээ болом. Эгерде сизде бул көйгөйдү калибрлөө болсо, github боюнча маселени ачыңыз жана мен ишке ашырууну кошом.
1 -кадам: I2c кантип иштейт
I2C эки зым менен иштейт, SDA (маалымат линиясы) жана SCL (саат линиясы).
Бул эки линия тең ачык дренаждуу, бирок резисторлор менен тартылган.
Адатта линияда бир кожоюн жана бир же бир нече кул бар, бирок бир нече кожоюн болушу мүмкүн, бирок бул тууралуу кийинчерээк сүйлөшөбүз.
Кожоюндар да, кулдар да маалыматтарды жөнөтө же ала алышат, андыктан аппарат бул төрт абалдын биринде болушу мүмкүн: кожоюн берүү, кожоюн алуу, кул берүү, кул алуу.
2 -кадам: Китепкана
Бул жерден менин китепканамды таба аласыз.
Жүктөө үчүн
Жогорку оң бурчтагы ЖҮКТӨР баскычын чыкылдатыңыз, кысылбаган папканы DHT12 деп өзгөртүңүз.
DHT папкасында DHT12.cpp жана DHT12.h бар экендигин текшериңиз.
DHT китепкана папкасын сиздин / китепканалар / папканы коюңуз.
Сиз биринчи китепкана болсоңуз, китепканалар субфольдорун түзүшүңүз керек болот.
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 (чыныгы); // Сенсордун көрсөткүчтөрү дагы 2 секундага чейин болушу мүмкүн (анын өтө жай сенсору) h12 = dht12.readHumidity (); // Фаренгейт боюнча жылуулук индексин эсептөө (демейки) калкыма hif12 = dht12.computeHeatIndex (f12, h12); // Цельсий боюнча жылуулук индексин эсептеңиз (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Фаренгейттеги шүүдүрүм чекитин (демейки) калкыма dpf12 = dht12.dewPoint (f12, h12); // Цельсий боюнча шүүдүрүм чекитин эсептөө (isFahreheit = false) калкып чыгуучу dpc12 = dht12.dewPoint (t12, h12, false);
7 -кадам: Жөнөкөй окуу
Окуу статусун алуу үчүн жөнөкөй окуу.
// Сенсордун окуусунда 2 секунд өткөн убакыт бар, эгер сиз күч параметрин өткөрбөсөңүз
bool chk = dht12.read (); // чыныгы окуу жакшы, жалган окуу көйгөйү
// Окуу температурасы Цельсий (демейки)
float t12 = dht12.readTemperature (); // Окуу температурасы Фаренгейт (isFahrenheit = true) калкыма f12 = dht12.readTemperature (чыныгы); // Сенсордун көрсөткүчтөрү дагы 2 секундага чейин болушу мүмкүн (анын өтө жай сенсору) h12 = dht12.readHumidity (); // Фаренгейт боюнча жылуулук индексин эсептөө (демейки) калкыма hif12 = dht12.computeHeatIndex (f12, h12); // Цельсий боюнча жылуулук индексин эсептеңиз (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Фаренгейттеги шүүдүрүм чекитин (демейки) калкыма dpf12 = dht12.dewPoint (f12, h12); // Цельсий боюнча шүүдүрүм чекитин эсептөө (isFahreheit = false) калкып чыгуучу dpc12 = dht12.dewPoint (t12, h12, false);
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 ("Тайм -аут катасы")); тыныгуу; case DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Төмөн сигналда тайм -аут ката, жогорку тартылуу каршылыгын коюуга аракет кылыңыз")); тыныгуу; case 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 ("Белгисиз ката DETECTED")); тыныгуу; учурда DHT12:: NONE: Serial.println (F ("Жыйынтык жок")); тыныгуу; демейки: Serial.println (F ("Белгисиз ката")); тыныгуу; }
// Окуу температурасы Цельсий (демейки)
float t12 = dht12.readTemperature (); // Окуу температурасы Фаренгейт (isFahrenheit = true) калкыма f12 = dht12.readTemperature (чыныгы); // Сенсордун көрсөткүчтөрү 2 секундага чейин болушу мүмкүн (анын өтө жай сенсору) h12 = dht12.readHumidity (); // Фаренгейт боюнча жылуулук индексин эсептөө (демейки) калкыма hif12 = dht12.computeHeatIndex (f12, h12); // Цельсий боюнча жылуулук индексин эсептеңиз (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Фаренгейттеги шүүдүрүм чекитин (демейки) калкыма dpf12 = dht12.dewPoint (f12, h12); // Цельсий боюнча шүүдүрүм чекитин эсептөө (isFahreheit = false) калкып чыгуучу dpc12 = dht12.dewPoint (t12, h12, false);
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 долбоорунун сериясы (Коллекция):
- Температура нымдуулугу сенсору
- Аналогдук экспантер
- Санарип экспантер
- LCD дисплей
Сунушталууда:
DHT12 I2C нымдуулук жана температура сенсорун Arduino менен кантип колдонуу керек: 7 кадам
DHT12 I2C нымдуулук жана температура сенсорун Arduino менен кантип колдонуу керек: Бул окуу куралында биз DHT12 I2C нымдуулук жана температура сенсорун Arduino менен кантип колдонууну жана OLED дисплейде баалуулуктарды көрсөтүүнү үйрөнөбүз
Lcd жана үн аныктоо менен температура жана нымдуулук сенсору: 4 кадам
Lcd жана үн аныктоо менен температура жана нымдуулук сенсору: Салам балдар !!! Макул, бул долбоор менин акыркы жылдагы долбоорум болчу. Бул долбоордун максаты менин университетимдин семинарында бөлмө температурасын жана нымдуулугун көзөмөлдөө болчу, анткени кээ бир электрондук компоненттер жагымсыз температуранын жана аба ырайынын бузулушунан улам иштебей калган
MQ135 жана MQTT үстүндөгү тышкы температура жана нымдуулук сенсору бар аба сапатынын монитору: 4 кадам
MQ135 жана MQTT үстүндөгү тышкы температура жана нымдуулук сенсору бар аба сапатынын монитору: Бул сыноо максатында
Arduino Күн энергиясындагы температура жана нымдуулук сенсору 433mhz Орегон сенсору катары: 6 кадам
Arduino Solar Powered Temperature and Humidity Sensor As 433mhz Oregon Sensor: Бул күн менен иштеген температура жана нымдуулук сенсорунун курулушу. Сенсор 433mhz Oregon сенсорун туурайт жана Telldus Net шлюзунда көрүнөт. Эмне керек: 1x " 10-LED Күн энергиясынын кыймыл датчиги " Ebayден. 3.7В камыр деп жазылганын текшериңиз
Температура жана нымдуулук сенсору Arduino жана Lcd дисплейи менен: 4 кадам
Температура жана нымдуулук сенсору Arduino жана Lcd дисплейи менен: Саламатсыздарбы балдар, Артуиного кайра кош келиңиздер. Сиз көргөндөй, мен InstructableToday программасын баштадым, биз температураны & DHT11 модулу менен нымдуулук өлчөгүч. Келгиле, баштайлы PS. Жазылууну жана видеону жактырууну карап көрүңүз