Բովանդակություն:
- Քայլ 1: Նյութերի ցուցակ
- Քայլ 2: Հարաբերական ներածություն
- Քայլ 3: Միացրեք շղթան
- Քայլ 4: Պատրաստվեք կազմելու համար
- Քայլ 5. DHT22 սենսորային սերիայի նավահանգստի փորձարկման կոդ
- Քայլ 6: Codeրագրի ծածկագիր
- Քայլ 7: Նկարագրություն
Video: Եղանակային կայան Arduino UNO- ի միջոցով. 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Հեղինակ ՝ Հազել Յանգ
Այս նախագիծը եղանակային կայան է, որն օգտագործում է Arduino UNO տախտակը ՝ տվյալների հոսքը վերահսկելու համար, DHT22 տվիչ ՝ տվյալները հավաքելու համար և OLED էկրան ՝ տվյալները ցույց տալու համար:
Քայլ 1: Նյութերի ցուցակ
1. Էկրան ՝ OLED, 1.3 դյույմ SH1106, I2C սպիտակ գույն ---- PID: 18283
2. Սենսոր. Թվային խոնավության և ջերմաստիճանի տվիչ DHT22-PID: 7375
3. Միանում է. Jumper Wires ---- PID: 10316 կամ 10318 կամ 10312 (կախված երկարությունից) կամ կարող եք օգտագործել ամուր մետաղալար 22 AWG-PID: 22490
Հացաթուղթ ---- PID: 10686 կամ 10698 կամ 103142 (կախված չափից)
4. Էլեկտրաէներգիա. Այս մալուխը կարող է միացվել միայն համակարգչի USB պորտին, և մալուխը օգտագործվում է նաև IDE և Arduino տախտակի միջև տվյալների փոխանցման համար: USB մալուխ, A- ից B, M/M, 0.5M (1.5FT) ---- PID: 29862
Կամ դուք կարող եք դա օգտագործել տախտակը սնուցելու համար ՝ 5V 2A AC/DC ադապտեր ---- PID: 10817:
Քայլ 2: Հարաբերական ներածություն
Էկրանի ներածություն ՝ 1.3 դյույմանոց OLED էկրան ՝ սպիտակ
1. Դուք կարող եք գտնել փաստաթուղթը, որը ցույց է տալիս հիմնական կարգավորումը և նկարագրությունները ՝
Սենսորի ներածություն. Խոնավության և ջերմաստիճանի տվիչ DHT22 1. Դուք կարող եք գտնել փաստաթուղթը, որը ցույց է տալիս նկարագրությունները ՝
Քայլ 3: Միացրեք շղթան
DHT22 սենսորը սերիական տվյալներ է ուղարկում 2 -րդ կապին: Այսպիսով, ձախից միացրեք երկրորդ քորոցը, «SDA» կապը պետք է միացված լինի 2 -րդ կապին:
SSH1106 ցուցադրման համար այն օգտագործում է անալոգային քորոց փոխանցելու համար: Էկրանի սխեման լինելու է «SCL» կապը Arduino- ի «A5» և «SDA» կապում ՝ Arduino- ի «A4» - ի համար: Մինչ պիքսելային դիրքի տվյալները անընդհատ փոխանցվում են, ծրագրում ցուցադրման գործառույթը գործարկում է հրամանը միայն ամեն անգամ, երբ սենսորից տվյալները կարդում է:
Ինչպես սենսորը, այնպես էլ էկրանը կարող են օգտագործել 3.3 Վ լարման հզորությունը Arduino- ն որպես DC հոսանքի աղբյուր: Սնուցման համար մենք պետք է միացնենք երկու «VCC» կապումներն Arduino- ի «3.3V» - ին: Իսկ «GND» կապումներն ուղղակի կարելի է միացնել Arduino- ի տախտակի «GND» քորոցին:
Օգտագործեք USB A- ից B մալուխը, Arudino- ն միացրեք համակարգչին:
Քայլ 4: Պատրաստվեք կազմելու համար
«u8glib» ՝ SSL1106 էկրանի համար ՝ Olikraus- ից:
«DHT տվիչների գրադարան» ՝ Adafruit- ի DHT22 տվիչի համար: Դուք պետք է ներբեռնեք երկու գրադարան ՝ DHT22 տվիչների գրադարան ՝
U8glib:
Եվ IDE- ում օգտագործեք «կառավարել գրադարանը» `դրանք չփակված դարձնելու համար: Գրադարանների կառավարման առցանց հրահանգ ՝
Քայլ 5. DHT22 սենսորային սերիայի նավահանգստի փորձարկման կոդ
Փորձարկման գործակից DHT22 սենսորային սերիայի նավահանգստի համար (որը գտնվում է DHT22 գրադարանի ներսում >> օրինակներ).
(Դուք կարող եք բաց թողնել այս հատվածը):
Պարզապես DHT22 սենսորը փորձարկելու համար տվյալները սովորաբար կարդում են:
#ներառում
#ներառում
#ներառում
#ներառում
#ներառում
#սահմանեք DHTPIN 2 -ը
#սահմանեք DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup () {
Serial.begin (9600);
Serial.println (F ("DHT22 թեստ!"));
dht.begin ();
}
դատարկ շրջան () {
// Չափումների միջև սպասեք մի քանի վայրկյան:
ուշացում (2000);
// Ընթերցանության ջերմաստիճանը կամ խոնավությունը տևում է մոտ 250 միլիվայրկյան:
// Սենսորների ընթերցումները կարող են նաև լինել մինչև 2 վայրկյան «հին» (դա շատ դանդաղ սենսոր է)
բոց h = dht.readHumidity ();
// Կարդացեք ջերմաստիճանը որպես Celsius (կանխադրված)
float t = dht.readTemperature ();
// Կարդացեք ջերմաստիճանը որպես Ֆարենհայտ (isFahrenheit = true)
float f = dht.readTemperature (ճշմարիտ);
// Ստուգեք, եթե որևէ ընթերցում ձախողվեց և շուտ դուրս եկեք (նորից փորձելու համար):
եթե (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F («Չհաջողվեց կարդալ DHT սենսորից»));
վերադարձ;
}
// Ֆարենհեյթում հաշվարկել ջերմության ինդեքսը (կանխադրված)
float hif = dht.computeHeatIndex (f, h);
// heatելսիուսի ջերմաստիճանի հաշվարկ (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Խոնավություն"));
Serial.print (h);
Serial.print (F ("% peratերմաստիճանը."));
Serial.print (t);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("° F atերմության ինդեքս."));
Serial.print (այստեղ);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// ilingրագիրը կազմելուց հետո կտտացրեք TOOLS >> SERIAL MONITOR ՝ տվյալները ստուգելու համար:
// Թեստավորման ծրագրի ավարտը:
Քայլ 6: Codeրագրի ծածկագիր
#ներառում
#ներառում
#ներառում
#ներառում
#ներառում
#սահմանեք DHTPIN 2 -ը
#սահմանեք DHTTYPE DHT22
#ներառել «U8glib.h»
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT սենսոր (DHTPIN, DHTTYPE);
դատարկ վիճակահանություն (անվավեր) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// Կարդացեք ջերմաստիճանը որպես Celsius (կանխադրված)
float t = sensor.readTemperature ();
// Ստուգեք, եթե որևէ ընթերցում ձախողվեց և շուտ դուրս եկեք (նորից փորձելու համար):
եթե (isnan (h) || isnan (t)) {
u8g.print («Սխալ»);
համար (;;);
վերադարձ;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temերմաստիճանը (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Խոնավություն (%):");
u8g.setPrintPos (4, 55);
u8g. տպագիր (ժ);
}
դատարկ կարգավորում (դատարկ) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
դատարկ շրջան (դատարկ) {
// նկարի հանգույց
u8g.firstPage ();
անել {
նկարել ();
} while (u8g.nextPage ());
// վերականգնել պատկերը որոշ ուշացումներից հետո (2000);
}
// Հիմնական ծրագրի ավարտը:
Քայլ 7: Նկարագրություն
Այնուհետև գործարկեք կապի սխեման Arduino տախտակի համար: Քանի որ սենսորային գրադարանը պահանջում է տվյալներ ՝ օբյեկտը հայտարարելու համար:
Եվ դուք կարող եք ստուգել տվիչի տվյալները `վերահսկելով ելքային տվյալները թվային 2 -րդ կապի միջոցով` օգտագործելով «Serial.print ()» գործառույթը: Քանի որ տվյալների փոխանցման հաճախականությունը մոտավորապես 1 ընթերցում է յուրաքանչյուր 2 վայրկյանը մեկ (ինչը 0.5 Հց է), երբ ծրագրավորված է Arduino IDE- ով, մենք պետք է օղակի գործառույթի ներսում ուշացումը սահմանենք ավելի քան 2 վայրկյան: Այսպիսով, օղակի գործառույթի ներսում կա «հետաձգում (2000)»: Սա ապահովում է, որ տվյալները հաճախակի թարմացվեն: «Ոչ ոքի» գործառույթում ստացեք տվյալները սերիական տվյալների պորտից և դրանք դրեք լողացող թվերի վրա ՝ օգտագործելով «readHumidity» և «readTemperature» գործառույթները:
Տպեք խոնավությունը և ջերմաստիճանը ՝ օգտագործելով «u8glib» ֆայլում տպման գործառույթը: Դուք կարող եք հարմարեցնել դիրքը ՝ փոխելով «setPrintPos» գործառույթի համարը: Տպման գործառույթը կարող է ուղղակիորեն ցույց տալ տեքստը և թվերը:
Սարքաշարը կարգավորելու համար սերիական նավահանգստին տվեք 10 վայրկյան ուշացում: Այնուհետև զանգահարեք սենսորի մեկնարկի գործառույթը: Ըստ իմ սխեմայի, իմ էկրանը գլխիվայր էր: Այսպիսով, ես ներառեցի նաև «setRot180» գործառույթը ՝ էկրանը պտտելու համար:
Arduino տախտակի հանգույցի գործառույթը հիմնական գործառույթն է: Այն անընդհատ կանչում է վիճակահանության գործառույթը ՝ տեքստը և տվյալները ցուցադրելու համար ամեն անգամ, երբ սենսորը թարմացվում է:
Էկրանի տեսքն այսպիսին է.
Դուք կարող եք անջատել Arduino UNO- ն ձեր համակարգչից և միացնել այն ՝ օգտագործելով 5V DC հոսանքի ադապտեր, որը միանում է դրա 2.1 մմ հզորության վարդակին: Այն պահում է ծրագիրը իր սկավառակի ներսում և կարող է շարունակաբար գործարկել ծրագիրը սնուցվելուց հետո:
Խորհուրդ ենք տալիս:
NaTaLia եղանակային կայան. Arduino արևային էներգիայով աշխատող եղանակային կայանը կատարվել է ճիշտ ճանապարհով. 8 քայլ (նկարներով)
NaTaLia եղանակային կայան. Arduino արևային էներգիայով աշխատող եղանակային կայանը կատարվեց ճիշտ ճանապարհով. 2 տարբեր վայրերում 1 տարվա հաջող աշխատանքից հետո ես կիսում եմ իմ արևային էներգիայով աշխատող եղանակային կայանի նախագծի ծրագրերը և բացատրում, թե ինչպես այն վերածվեց համակարգի, որն իսկապես կարող է գոյատևել երկար ժամանակ: արևային էներգիայի ժամանակաշրջաններ: Եթե հետևեք
DIY եղանակային կայան և WiFi սենսորային կայան. 7 քայլ (նկարներով)
DIY եղանակային կայան և WiFi սենսորային կայան. Այս նախագծում ես ձեզ ցույց կտամ, թե ինչպես կարելի է եղանակային կայան ստեղծել WiFi սենսորային կայանի հետ միասին: Սենսորային կայանը չափում է տեղական ջերմաստիճանի և խոնավության տվյալները և այն WiFi- ի միջոցով ուղարկում է եղանակային կայանին: Օդերևութաբանական կայանն այնուհետև ցուցադրում է
Արտաքին եղանակային կայան Arduino- ի միջոցով. 7 քայլ
Արտաքին եղանակային կայան Arduino- ի միջոցով. Օգտագործված նյութեր. Գները մոտավոր են և հիշողության հիման վրա: NodeMCU V3 Lua - 3 € Թվային ջերմաստիճան և խոնավություն DTH 22 - 2 € Photoresistor (LDR) սենսորային մոդուլը հայտնաբերում է Arduino- ի համար թեթև զգայուն ֆոտոդիոդ - 0.80 € 1 հավաքածու/լոտ Ձյան/անձրևի կաթիլների հայտնաբերման տվիչ
DIY եղանակային կայան ՝ օգտագործելով DHT11, BMP180, Nodemcu Arduino IDE- ով Arduino IDE- ի միջոցով Blynk սերվերի վրա. 4 քայլ
DIY եղանակային կայան ՝ օգտագործելով DHT11, BMP180, Nodemcu With Arduino IDE Over Blynk Server: Github: DIY_Weather_Station Hackster.io: Եղանակային կայան Ինչպես, երբ այն բացում ես, ծանոթանում ես եղանակային պայմանների հետ, ինչպիսիք են ՝ peratերմաստիճանը, Խոնավությունը և այլն: Այդ ցուցանիշները մեծի միջին արժեքն են
Acurite 5 in 1 եղանակային կայան ՝ օգտագործելով Raspberry Pi և Weewx (այլ եղանակային կայաններ համատեղելի են). 5 քայլ (նկարներով)
Acurite 5 in 1 եղանակային կայան ՝ օգտագործելով Raspberry Pi և Weewx (այլ եղանակային կայաններ համատեղելի են). Երբ ես գնել էի Acurite 5 in 1 օդերևութաբանական կայանը, ես ցանկանում էի, որ կարողանայի ստուգել եղանակը իմ տանը, երբ ես հեռու էի: Երբ տուն հասա և տեղադրեցի, հասկացա, որ կամ պետք է միացնեմ համակարգչին կամ գնեմ նրանց խելացի հանգույցը