Përmbajtje:
- Hapi 1: Lista e artikujve
- Hapi 2: Hyrje relative
- Hapi 3: Lidhni qarkun
- Hapi 4: Përgatituni për Kompilim
- Hapi 5: Kodi i Testit për Portën Seriale të Sensorit DHT22
- Hapi 6: Kodi për Projektin
- Hapi 7: Përshkrimi
Video: Stacioni i motit duke përdorur Arduino UNO: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
Krijuar nga: Hazel Yang
Ky projekt është një stacion moti që përdor një bord Arduino UNO për të kontrolluar rrjedhën e të dhënave, një sensor DHT22 për të mbledhur të dhënat dhe një ekran OLED për të treguar të dhënat.
Hapi 1: Lista e artikujve
1. Ekran: OLED, Ekran 1.3 SH1106, ngjyrë e bardhë I2C ---- PID: 18283
2. Sensori: Sensori dixhital i lagështisë dhe temperaturës DHT22 ---- PID: 7375
3. Lidhet: Telat Jumper ---- PID: 10316 ose 10318 ose 10312 (varet nga gjatësia) ose mund të përdorni tela të fortë 22 AWG ---- PID: 22490
Breadboard ---- PID: 10686 ose 10698 ose 103142 (varet nga madhësia)
4. Fuqia: Ky kabllo mund të lidhet vetëm me një port USB të kompjuterit dhe kablli përdoret gjithashtu për transferimin e të dhënave midis bordit IDE dhe Arduino. USB CABLE, A TO B, M/M, 0.5M (1.5FT) ---- PID: 29862
Ose mund ta përdorni këtë për të fuqizuar bordin: Përshtatës 5V 2A AC/DC ---- PID: 10817.
Hapi 2: Hyrje relative
Prezantimi i ekranit: Ekran OLED 1.3 i bardhë
1. Mund të gjeni dokumentin që tregon konfigurimin bazë dhe përshkrimet:
Prezantimi i Sensorit: Sensori i Lagështisë dhe Temperaturës DHT22 1. Mund të gjeni dokumentin që tregon përshkrimet:
Hapi 3: Lidhni qarkun
Sensori DHT22 dërgon të dhëna serike në pin 2. Pra, lidhni pinin e dytë nga e majta, kunja "SDA" duhet të lidhet me pin 2.
Për ekranin SSH1106, ai përdor pin analoge për të transmetuar. Qarku i ekranit do të jetë pin "SCL" në "A5" të Arduino dhe pin "SDA" në "A4" të Arduino. Ndërsa të dhënat e pozicionit pixel transmetohen vazhdimisht, funksioni i shfaqjes në program aktivizon komandën vetëm një herë sa herë që lexon të dhënat nga sensori.
Sensori dhe ekrani mund të përdorin 3.3V për të ndezur Arduino si hyrje të energjisë DC. Për të fuqizuar, ne duhet të lidhim të dy kunjat "VCC" me "3.3V" të Arduino. Dhe kunjat "GND" mund të lidhen thjesht me kunjin "GND" në tabelën Arduino.
Përdorni kabllon USB A në B, lidhni Arudino me kompjuterin.
Hapi 4: Përgatituni për Kompilim
"u8glib" për ekranin SSH1106 nga Olikraus.
"Biblioteka e sensorëve DHT" për sensorin DHT22 nga Adafruit. Duhet të shkarkoni dy bibliotekat: Biblioteka e sensorit DHT22:
U8glib:
Dhe përdorni "menaxhoni bibliotekën" në IDE për t'i bërë ato të hapura. Udhëzime online për menaxhimin e bibliotekave:
Hapi 5: Kodi i Testit për Portën Seriale të Sensorit DHT22
Koe testi për portën serike të sensorit DHT22 (e cila është brenda bibliotekës DHT22 >> shembuj):
(Ju mund ta kaloni këtë pjesë.)
Thjesht për të testuar sensorin DHT22 i lexon të dhënat normalisht
#përfshi
#përfshi
#përfshi
#përfshi
#përfshi
#përcakto DHTPIN 2
#përcaktoni DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup () {
Serial.filloj (9600);
Serial.println (F ("Test DHT22!"));
dht.filloj ();
}
lak void () {
// Prisni disa sekonda midis matjeve.
vonesa (2000);
// Temperatura ose lagështia e leximit zgjat rreth 250 milisekonda!
// Leximet e sensorit gjithashtu mund të jenë të vjetra deri në 2 sekonda (është një sensor shumë i ngadalshëm)
noton h = dht.readHumidity ();
// Lexoni temperaturën si Celsius (e parazgjedhur)
noton t = dht.readTemperatura ();
// Lexoni temperaturën si Fahrenheit (isFahrenheit = e vërtetë)
noton f = dht.readTemperatura (e vërtetë);
// Kontrolloni nëse ndonjë lexim dështoi dhe dilni herët (për të provuar përsëri).
nëse (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Dështoi të lexohet nga sensori DHT!"));
kthim;
}
// Llogaritni indeksin e nxehtësisë në Fahrenheit (parazgjedhja)
noton hif = dht.computeHeatIndex (f, h);
// Llogaritja e indeksit të nxehtësisë në Celsius (isFahreheit = false)
noton hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Lagështia:"));
Serial.print (h);
Serial.print (F ("% Temperatura:"));
Serial.print (t);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("° F Indeksi i nxehtësisë:"));
Serial.print (hic);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// Pas përpilimit të programit, klikoni TOOLS >> MONITOR SERIAL për të kontrolluar të dhënat.
// Fundi i programit të testimit.
Hapi 6: Kodi për Projektin
#përfshi
#përfshi
#përfshi
#përfshi
#përfshi
#përcakto DHTPIN 2
#përcaktoni DHTTYPE DHT22
#përfshi "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
Sensor DHT (DHTPIN, DHTTYPE);
tërheqje e zbrazët (e pavlefshme) {
u8g.setFont (u8g_font_unifont);
noton h = sensor.readHumidity ();
// Lexoni temperaturën si Celsius (e parazgjedhur)
noton t = sensor.readTemperature ();
// Kontrolloni nëse ndonjë lexim dështoi dhe dilni herët (për të provuar përsëri).
nëse (isnan (h) || isnan (t)) {
u8g.print ("Gabim.");
për (;;);
kthim;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatura (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Lagështia (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
konfigurimi i pavlefshëm (i pavlefshëm) {
u8g.setRot180 ();
Serial.filloj (9600);
sensor.filloj ();
}
lak void (i pavlefshëm) {
// lak fotografie
u8g.firstPage ();
bëj {
barazim ();
} ndërsa (u8g.nextPage ());
// rindërtoni fotografinë pas një vonese të vonuar (2000);
}
// Fundi i programit kryesor.
Hapi 7: Përshkrimi
Pastaj, filloni qarkun pin për bordin Arduino. Për shkak se biblioteka e sensorit kërkon të dhënat për të deklaruar objektin.
Dhe ju mund të testoni të dhënat e sensorit duke monitoruar të dhënat e daljes përmes pinit dixhital 2 duke përdorur funksionin e quajtur "Serial.print ()". Për shkak se frekuenca e transmetimit të të dhënave është afërsisht 1 lexim çdo 2 sekonda (që është 0.5 Hz), kur programohet në Arduino IDE, ne duhet të vendosim që vonesa brenda funksionit të lakut të jetë më shumë se 2 sekonda. Pra, ekziston një "vonesë (2000)" brenda funksionit të lakut. Kjo siguron që të dhënat do të rifreskohen shpesh. Në funksionin "barazim", merrni të dhënat nga porti i të dhënave serike dhe vendosini në numrat duke notuar duke përdorur funksionet "readHumidity" dhe "readTemperature".
Shtypni lagështinë dhe temperaturën duke përdorur funksionin e printimit në skedarin "u8glib". Mund ta rregulloni pozicionin duke ndryshuar numrin në funksionin "setPrintPos". Funksioni i printimit mund të tregojë drejtpërdrejt tekstin dhe numrat.
Për të konfiguruar pajisjen, jepni portës serike një vonesë prej 10 sekondash. Pastaj thirrni funksionin e fillimit për sensorin. Sipas qarkut tim, ekrani im ishte përmbys. Kështu që unë gjithashtu përfshiva një funksion "setRot180" për të rrotulluar ekranin.
Funksioni lak i bordit Arduino është funksioni kryesor. Vazhdon të thërrasë funksionin e tërheqjes për të shfaqur tekstin dhe të dhënat sa herë që sensori rifreskohet.
Ekrani duket kështu:
Mund ta shkëputni Arduino UNO nga kompjuteri juaj dhe ta furnizoni me energji duke përdorur një përshtatës 5V DC që lidhet me prizën e tij të energjisë 2.1mm. Ai ruan programin brenda diskut të tij dhe mund ta ekzekutojë vazhdimisht programin përsëri pasi të jetë mundësuar.
Recommended:
Mini Stacioni i motit duke përdorur Arduino dhe ThingSpeak: 4 hapa
Mini Stacioni i motit duke përdorur Arduino dhe ThingSpeak: Përshëndetje të gjithëve. Në këtë Udhëzues, unë do t'ju udhëheq përmes hapave për të krijuar një mini stacion moti të personalizuar. Gjithashtu, ne do të përdorim API -në ThingSpeak për të ngarkuar të dhënat tona të motit në serverët e tyre, ose përndryshe cili është qëllimi i një stacioni të motit
Stacioni i motit NaTaLia: Stacioni i motit Arduino me energji diellore Bëhet në rrugën e duhur: 8 hapa (me fotografi)
Stacioni i motit NaTaLia: Stacioni i motit me energji diellore Arduino Bëhet në rrugën e duhur: Pas 1 viti funksionimi të suksesshëm në 2 vende të ndryshme, unë po ndaj planet e mia të projektit të stacionit të motit me energji diellore dhe po shpjegoj se si evoluoi në një sistem i cili me të vërtetë mund të mbijetojë për një kohë të gjatë periudha nga energjia diellore. Nëse ndiqni
Stacioni i motit në dhomë duke përdorur Arduino & BME280: 4 hapa
Stacioni i motit në dhomë duke përdorur Arduino & BME280: Më parë kam ndarë një stacion të thjeshtë moti i cili shfaq temperaturën dhe lagështinë e zonës lokale. Problemi me të ishte se do të duhej kohë për tu përditësuar dhe të dhënat nuk ishin të sakta. Në këtë tutorial do të bëjmë një monitor të motit të brendshëm
Stacioni i motit i zgjuar (duke përdorur Arduino): 5 hapa
Smart Weather Station (duke përdorur Arduino): Një stacion moti është një strukturë, në tokë ose në det, me instrumente dhe pajisje për matjen e kushteve atmosferike për të siguruar informacion për parashikimet e motit dhe për të studiuar motin dhe klimën. Matjet e marra përfshijnë temperaturën
Stacioni i motit Acurite 5 në 1 duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): 5 hapa (me fotografi)
Stacioni i motit Acurite 5 në 1 Duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): Kur kisha blerë stacionin e motit Acurite 5 në 1 doja të isha në gjendje të kontrolloja motin në shtëpinë time ndërsa isha larg. Kur mbërrita në shtëpi dhe e vendosa, kuptova se ose duhej ta kisha ekranin të lidhur me një kompjuter ose të blija shpërndarësin e tyre të zgjuar,