Բովանդակություն:
- Քայլ 1: Ինչպես է աշխատում I2c- ը
- Քայլ 2: Գրադարան
- Քայլ 3: Վարքագիծ
- Քայլ 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 էժան խոնավության և ջերմաստիճանի ցուցիչ), արագ օգտագործման հեշտություն. 14 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Դուք կարող եք գտնել թարմացումներ և այլ տեղեկություններ իմ կայքում ՝
Ինձ դուր է գալիս սենսորը, որը կարող է օգտագործվել 2 լարով (i2c արձանագրություն), բայց ես սիրում եմ էժանը:
Սա Arduino և esp8266 գրադարան է DHT12 շարքի համար, որն ունի էժան ջերմաստիճանի/խոնավության տվիչներ (1 $ -ից պակաս), որոնք աշխատում են i2c- ով կամ մեկ լարով:
Շատ օգտակար է, եթե ցանկանում եք օգտագործել esp01 (եթե օգտագործում եք սերիալ, ունեք ընդամենը 2 կապ) `խոնավությունը և ջերմաստիճանը կարդալու և i2c LCD- ով ցուցադրելու համար:
Արհեստական ինտելեկտը կարդաց, որ երբեմն թվում է, որ այն կարիք ունի ճշգրտման, բայց ես դրա ծառն ունեմ և շատ նման եմ DHT22- ի արժեքին: Եթե դուք ունեք այս խնդիրը ստուգաչափելու հնարավորություն, բացեք հարցը github- ում և ես ավելացնում եմ իրականացումը:
Քայլ 1: Ինչպես է աշխատում I2c- ը
I2C- ն աշխատում է իր երկու լարերով ՝ SDA (տվյալների գիծ) և SCL (ժամացույցի գիծ):
Այս երկու տողերն էլ բաց արտահոսքի են, բայց ձգված են ռեզիստորներով:
Սովորաբար գծի վրա կա մեկ վարպետ և մեկ կամ մի քանի ստրուկներ, չնայած կարող են լինել բազմաթիվ վարպետներ, բայց մենք այդ մասին կխոսենք ավելի ուշ:
Ե՛վ տերը, և՛ ստրուկները կարող են փոխանցել կամ ստանալ տվյալներ, հետևաբար, սարքը կարող է լինել այս չորս վիճակներից մեկում ՝ վարպետ փոխանցել, վարպետ ստանալ, ստրուկ փոխանցել, ստրուկ ստանալ:
Քայլ 2: Գրադարան
Իմ գրադարանը կարող եք գտնել այստեղ:
Բեռնելու
Սեղմեք DOWNLOADS կոճակը վերին աջ անկյունում, անվանափոխեք չսեղմված թղթապանակը DHT12:
Ստուգեք, որ DHT թղթապանակը պարունակում է DHT12.cpp և DHT12.h:
Տեղադրեք DHT գրադարանի թղթապանակը ձեր / գրադարաններ / պանակում:
Հնարավոր է, որ անհրաժեշտ լինի ստեղծել գրադարանների ենթապարկը, եթե դա ձեր առաջին գրադարանն է:
Վերագործարկեք IDE- ն:
Քայլ 3: Վարքագիծ
Այս գրականությունը փորձում է ընդօրինակել DHT գրադարանի ստանդարտ սենսորների վարքագիծը (և պատճենել շատ ծածկագիր), և ես ավելացնում եմ կոդը ՝ նույն կերպ i2c olso- ն կառավարելու համար:
Մեթոդը նույնն է DHT գրադարանի տվիչից, որոնցից ոմանք ավելացնում են ցողի կետի գործառույթը:
Քայլ 4: I2c օգտագործումը
I2c- ով (կանխադրված հասցե և կանխադրված SDA SCL կապ) օգտագործելու համար կոնստրուկտորը հետևյալն է.
DHT12 dht12;
և վերցրեք SDA SCL կապի կանխադրված արժեքը:
(Հնարավոր է վերաիմաստավորվել esp8266- ի համար նախատեսված կոնտրուկտորով, որն անհրաժեշտ է ESP-01- ի համար): կամ
DHT12 dht12 (uint8_t հասցե Orpin)
addressOrPin -> հասցե
հասցեն փոխելու համար:
Քայլ 5: Մեկ մետաղալար օգտագործումը
Մեկ մետաղալար օգտագործելու համար.
DHT12 dht12 (uint8_t հասցե Orpin, ճշմարիտ)
addressOrPin -> քորոց
բուլյան արժեքը oneWire կամ i2c ռեժիմի ընտրությունն է:
Քայլ 6: Անուղղակի ընթերցում
Դուք կարող եք օգտագործել այն «անուղղակի», «պարզ ընթերցում» կամ «ամբողջական ընթերցում» բառերով. Անուղղակի, միայն առաջին ընթերցումն է կատարում սենսորի իսկական ընթերցում, մյուսը `2 վայրկյանում: ընդմիջումը առաջին ընթերցման պահված արժեքն է:
// Սենսորի ընթերցումը ունի 2 վայրկյան անցած ժամանակ, եթե դուք չեք անցնում ուժի պարամետրը
// Կարդացեք ջերմաստիճանը որպես Celsius (կանխադրված) float t12 = dht12.readTemperature (); // Կարդացեք ջերմաստիճանը որպես Ֆարենհայտ (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Սենսորների ընթերցումները կարող են լինել նաև մինչև 2 վայրկյան «հին» (դա շատ դանդաղ սենսոր է) float h12 = dht12.readHumidity (); // Հաշվել ջերմության ինդեքսը Ֆարենհեյթում (կանխադրված) բոց hif12 = dht12.computeHeatIndex (f12, h12); // heatելսիուսի ջերմաստիճանի հաշվարկ (isFahreheit = կեղծ) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Հաշվել ցողի կետը Ֆարենհեյթում (կանխադրված) բոց dpf12 = dht12.dewPoint (f12, h12); // dewելսիուսի ջերմաստիճանի հաշվարկ (isFahreheit = կեղծ) float dpc12 = dht12.dewPoint (t12, h12, false);
Քայլ 7: Պարզ ընթերցում
Պարզ ընթերցում `կարդալու կարգավիճակ ստանալու համար:
// Սենսորի ընթերցումը ունի 2 վայրկյան անցած ժամանակ, եթե դուք չեք անցնում ուժի պարամետրը
bool chk = dht12.read (); // ճշմարիտ ընթերցումը լավ է, սխալ կարդալու խնդիրը
// Կարդացեք ջերմաստիճանը որպես Celsius (կանխադրված)
float t12 = dht12.readTemperature (); // Կարդացեք ջերմաստիճանը որպես Ֆարենհայտ (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Սենսորների ընթերցումները կարող են լինել նաև մինչև 2 վայրկյան «հին» (դա շատ դանդաղ սենսոր է) float h12 = dht12.readHumidity (); // Հաշվել ջերմության ինդեքսը Ֆարենհեյթում (կանխադրված) float hif12 = dht12.computeHeatIndex (f12, h12); // heatելսիուսի ջերմաստիճանի հաշվարկ (isFahreheit = կեղծ) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Հաշվել ցողի կետը Ֆարենհեյթում (կանխադրված) բոց dpf12 = dht12.dewPoint (f12, h12); // dewելսիուսի ջերմաստիճանի հաշվարկ (isFahreheit = կեղծ) float 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 ("Checksum error")); ընդմիջում; գործ DHT12:: ERROR_TIMEOUT: Serial.println (F ("Timeout error")); ընդմիջում; գործ DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F («signalամկետանց սխալ ցածր ազդանշանի վրա, փորձեք բարձր քաշման դիմադրություն դնել»)); ընդմիջում; գործ DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F («signalամկետանց սխալ ՝ ցածր ազդանշանի վրա, փորձեք ցածր քաշման դիմադրություն դնել»)); ընդմիջում; գործ DHT12:: ERROR_CONNECT: Serial.println (F («Միացման սխալ»)); ընդմիջում; գործ DHT12:: ERROR_ACK_L: Serial.println (F («AckL սխալ»)); ընդմիջում; գործ DHT12:: ERROR_ACK_H: Serial.println (F ("AckH error")); ընդմիջում; գործ DHT12:: ERROR_UNKNOWN: Serial.println (F ("Անհայտ սխալը հայտնաբերված է")); ընդմիջում; գործ DHT12:: ՈՉԻՆՉ: Serial.println (F («Արդյունք չկա»)); ընդմիջում; կանխադրված ՝ Serial.println (F («Անհայտ սխալ»)); ընդմիջում; }
// Կարդացեք ջերմաստիճանը որպես Celsius (կանխադրված)
float t12 = dht12.readTemperature (); // Կարդացեք ջերմաստիճանը որպես Ֆարենհայտ (isFahrenheit = true) float f12 = dht12.readTemperature (true); // Սենսորների ընթերցումները կարող են նաև լինել մինչև 2 վայրկյան «հին» (դա շատ դանդաղ սենսոր է) float h12 = dht12.readHumidity (); // Հաշվել ջերմության ինդեքսը Ֆարենհեյթում (կանխադրված) բոց hif12 = dht12.computeHeatIndex (f12, h12); // heatելսիուսի ջերմաստիճանի հաշվարկ (isFahreheit = կեղծ) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Հաշվել ցողի կետը Ֆարենհեյթում (կանխադրված) բոց dpf12 = dht12.dewPoint (f12, h12); // dewելսիուսի ջերմաստիճանի հաշվարկ (isFahreheit = կեղծ) float dpc12 = dht12.dewPoint (t12, h12, false);
Քայլ 9: Միացման դիագրամ
Օրինակներով կան միացման դիագրամ, կարևոր է օգտագործել ճիշտ քաշման դիմադրություն:
Bobadas- ի, dplasa- ի և adafruit- ի շնորհիվ ծածկագիրը github- ում կիսելու համար (որտեղ ես վերցնում եմ որոշ ծածկագրեր և գաղափարներ):
Քայլ 10: Arduino: OneWire
Քայլ 11: Arduino. I2c
Քայլ 12: Esp8266 (D1Mini) OneWire
Քայլ 13: Esp8266 (D1Mini) I2c
Քայլ 14: Շնորհակալություն
Arduino խաղահրապարակ (https://playground.arduino.cc/Main/DHT12SensorLibrary)
i2c նախագծի շարք (Հավաքածու).
- Humidityերմաստիճանի խոնավության ցուցիչ
- Անալոգային ընդլայնիչ
- Թվային ընդլայնիչ
- LCD էկրան
Խորհուրդ ենք տալիս:
DHT21 թվային ջերմաստիճանի և խոնավության ցուցիչ Arduino- ով. 6 քայլ
DHT21 թվային ջերմաստիճանի և խոնավության սենսոր Arduino- ով. Այս ձեռնարկում մենք կսովորենք, թե ինչպես օգտագործել DHT21 խոնավության և ջերմաստիճանի տվիչը Arduino- ի հետ և արժեքները ցուցադրել OLED էկրանին: Դիտեք տեսանյութը:
Ինչպես օգտագործել DHT12 I2C խոնավության և ջերմաստիճանի տվիչ Arduino- ով. 7 քայլ
Ինչպես օգտագործել DHT12 I2C խոնավության և ջերմաստիճանի տվիչ Arduino- ի հետ. Այս ձեռնարկում մենք կսովորենք, թե ինչպես օգտագործել DHT12 I2C խոնավության և ջերմաստիճանի տվիչը Arduino- ի հետ և արժեքները ցուցադրել OLED էկրանին: Դիտեք տեսանյութը:
Անլար խոնավության մոնիտոր (ESP8266 + խոնավության ցուցիչ) ՝ 5 քայլ
Անլար խոնավության մոնիտոր (ESP8266 + խոնավության ցուցիչ). Ես մաղադանոս եմ գնում կաթսայում, և օրվա մեծ մասը հողը չորացել էր: Այսպիսով, ես որոշեցի կատարել այս նախագիծը ՝ մաղադանոսով կաթսայի մեջ հողի խոնավությունը զգալու մասին, ստուգելու համար, երբ ինձ պետք է ջուր լցնել հողը: Կարծում եմ, որ այս սենսորը (Capacitive խոնավության ցուցիչ v1.2) լավ է
PCF8591 (i2c անալոգային մուտքի/ելքի ընդլայնիչ) Արագ օգտագործման հեշտություն ՝ 9 քայլ
PCF8591 (i2c Analog I/O Expander) Արագ Հեշտ Օգտագործում. Գրադարանը i2c pcf8591 IC- ն օգտագործելու համար arduino- ով և esp8266- ով: Այս IC- ն կարող է վերահսկել (մինչև 4) անալոգային մուտք և/կամ 1 անալոգային ելք, ինչպես չափել լարումը, կարդալ թերմիստորի արժեքը կամ մարել led- ը: Կարող է կարդալ անալոգային արժեքը և գրել անալոգային արժեքը միայն 2 լարով (կատարյալ
Արագ, արագ, էժան, լավ տեսք ունեցող լուսադիոդային սենյակի լուսավորություն (բոլորի համար). 5 քայլ (նկարներով)
Արագ, արագ, էժան, լավ տեսք ունեցող լուսադիոդային լուսավորություն (բոլորի համար). Ողջունում եմ բոլորին :-) Սա իմ առաջին ուսանելի ուսուցումն է, այնպես որ մեկնաբանությունները ողջունելի են :-) Այն, ինչ ես հույս ունեմ ցույց տալ ձեզ, այն է, թե ինչպես կարելի է արագ լուսավորել լուսադիոդային լուսավորությունը: TINY buget. Այն, ինչ ձեզ հարկավոր է. CableLEDsResistors (510Ohms for 12V) Stapels