Агуулгын хүснэгт:
- Алхам 1: Барааны жагсаалт
- Алхам 2: Харьцангуй танилцуулга
- Алхам 3: Хэлхээг холбоно уу
- Алхам 4: Эмхэтгэхэд бэлтгэ
- Алхам 5: DHT22 мэдрэгчийн цуваа портын туршилтын код
- Алхам 6: Төслийн код
- Алхам 7: Тодорхойлолт
Видео: Arduino UNO ашиглан цаг уурын станц: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Бүтээсэн: Хазел Ян
Энэхүү төсөл нь өгөгдлийн урсгалыг хянах Arduino UNO самбар, өгөгдөл цуглуулах DHT22 мэдрэгч, өгөгдлийг харуулах OLED дэлгэц ашиглан цаг агаарын станц юм.
Алхам 1: Барааны жагсаалт
1. Дэлгэц: OLED, 1.3 инчийн дэлгэц SH1106, I2C цагаан өнгө ---- PID: 18283
2. Мэдрэгч: Дижитал чийгшил ба температур мэдрэгч DHT22 ---- PID: 7375
3. Холбоно: холбогч утас ---- PID: 10316 эсвэл 10318 эсвэл 10312 (уртаас хамаарна) эсвэл та хатуу утсыг ашиглаж болно 22 AWG ---- PID: 22490
Breadboard ---- 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 дэлгэцийн хувьд дамжуулахын тулд аналог пин ашигладаг. Дэлгэцийн хэлхээ нь Arduino "A5" руу "SCL", Ардуино "A4" руу "SDA" зүү байх болно. Пикселийн байршлын өгөгдлийг тасралтгүй дамжуулж байх үед програмын дэлгэцийн функц нь мэдрэгчийн өгөгдлийг унших бүрт нэг л удаа команд өгдөг.
Мэдрэгч болон дэлгэц хоёулаа 3.3V хүчдэлийг ашиглан Arduino -ийг тогтмол тэжээлийн оролт болгон асаах боломжтой. Эрчим хүч авахын тулд бид "VCC" зүүг хоёуланг нь Arduino -ийн "3.3V" руу холбох хэрэгтэй. Мөн "GND" тээглүүрийг Arduino самбар дээрх "GND" зүүтэй холбож болно.
USB A -аас B кабель ашиглаад Arudino -г компьютерт холбоно уу.
Алхам 4: Эмхэтгэхэд бэлтгэ
Olikraus -аас SSH1106 дэлгэцийн "u8glib".
Adafruit -ийн DHT22 мэдрэгчийн "DHT мэдрэгчийн номын сан". Та хоёр номын санг татаж авах хэрэгтэй: DHT22 мэдрэгчийн номын сан:
U8glib:
Үүнийг задлахын тулд IDE дахь "номын сан удирдах" -ыг ашиглана уу. Номын санг удирдах онлайн заавар:
Алхам 5: DHT22 мэдрэгчийн цуваа портын туршилтын код
DHT22 мэдрэгчийн цуваа портыг шалгах тест (DHT22 номын санд байгаа >> жишээ):
(Та энэ хэсгийг алгасаж болно.)
DHT22 мэдрэгчийг шалгахын тулд өгөгдлийг хэвийн уншдаг
#оруулах
#оруулах
#оруулах
#оруулах
#оруулах
#DHTPIN 2 -ийг тодорхойлох
#тодорхойлох DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
хүчингүй тохиргоо () {
Цуваа эхлэх (9600);
Serial.println (F ("DHT22 тест!"));
dht.begin ();
}
void loop () {
// Хэмжлийн хооронд хэдэн секунд хүлээнэ үү.
саатал (2000);
// Унших температур эсвэл чийгшил 250 миллисекунд зарцуулдаг!
// Мэдрэгчийн уншилт нь 2 секундын настай байж болно (энэ нь маш удаан мэдрэгч юм)
float h = dht.readHumidity ();
// Температурыг Цельсийн байдлаар уншина уу (анхдагчаар)
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);
// Цельсийн дулааны индексийг тооцоолох (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Чийгшил:"));
Цуваа.хэвлэх (h);
Serial.print (F ("% Температур:"));
Цуваа.хэвлэх (t);
Цуваа.хэвлэх (F ("° C"));
Цуваа.хэвлэх (f);
Serial.print (F ("° F Дулааны индекс:"));
Цуваа.хэвлэх (hic);
Цуваа.хэвлэх (F ("° C"));
Цуваа.хэвлэх (hif);
Serial.println (F ("° F"));
}
// Хөтөлбөрийг эмхэтгэсний дараа TOOLS >> SERIAL MONITOR дээр дарж өгөгдлийг шалгана уу.
// Туршилтын програмын төгсгөл.
Алхам 6: Төслийн код
#оруулах
#оруулах
#оруулах
#оруулах
#оруулах
#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 ();
// Температурыг Цельсийн байдлаар уншина уу (анхдагчаар)
float t = sensor.readTemperature ();
// Уншиж чадаагүй эсэхийг шалгаад эрт гараарай (дахин оролдоно уу).
хэрэв (isnan (h) || isnan (t)) {
u8g.print ("Алдаа.");
(;;) хувьд;
буцах;
}
u8g.setPrintPos (4, 10);
u8g.print ("Температур (C):");
u8g.setPrintPos (4, 25);
u8g.хэвлэх (t);
u8g.setPrintPos (4, 40);
u8g.print ("Чийгшил (%):");
u8g.setPrintPos (4, 55);
u8g.хэвлэх (h);
}
хүчингүй тохиргоо (хүчингүй) {
u8g.setRot180 ();
Цуваа эхлэх (9600);
мэдрэгч.begin ();
}
void loop (хүчингүй) {
// зургийн гогцоо
u8g.firstPage ();
хийх {
зурах ();
} байхад (u8g.nextPage ());
// хэсэг хоцорсны дараа зургийг дахин бүтээх (2000);
}
// Үндсэн програмын төгсгөл.
Алхам 7: Тодорхойлолт
Дараа нь Arduino хавтангийн зүү хэлхээг эхлүүлнэ үү. Учир нь мэдрэгчийн номын сан нь объектыг зарлахын тулд өгөгдөл шаарддаг.
Та "Serial.print ()" функцийг ашиглан дижитал зүү 2 -ээр гаралтын өгөгдлийг хянах замаар мэдрэгчийн өгөгдлийг шалгаж болно. Мэдээлэл дамжуулах давтамж нь 2 секунд тутамд ойролцоогоор 1 уншилттай байдаг (энэ нь 0.5 Гц юм), Arduino IDE дээр програмчлахдаа бид давталтын функц доторх хоцролтыг 2 секундээс илүү байх ёстой. Тиймээс давталтын функц дотор "саатал (2000)" байна. Энэ нь өгөгдлийг байнга шинэчилж байх боломжийг олгодог. "Draw" функц дээр өгөгдлийг цуваа өгөгдлийн портоос аваад "readHumidity" ба "readTemperature" функцийг ашиглан тоонуудыг хөвүүлэхэд оруулна уу.
"U8glib" файл дахь хэвлэх функцийг ашиглан чийгшил, температурыг хэвлэ. Та "setPrintPos" функцын дугаарыг өөрчлөх замаар байрлалыг тохируулж болно. Хэвлэх функц нь текст болон тоонуудыг шууд харуулах боломжтой.
Тоног төхөөрөмжийг тохируулахын тулд цуваа портыг 10 секундын хугацаагаар хойшлуулна уу. Дараа нь мэдрэгчийн эхлэх функцийг дуудаарай. Миний хэлснээр миний дэлгэц дээшээ харсан байв. Тиймээс би дэлгэцийг эргүүлэх "setRot180" функцийг оруулсан болно.
Arduino самбарын давталтын функц нь үндсэн функц юм. Мэдрэгчийг шинэчлэх тоолонд текст, өгөгдлийг харуулахын тулд зурах функцийг дуудах болно.
Дэлгэц иймэрхүү харагдаж байна:
Та Arduino UNO -г компьютерээсээ салгаж, 5 мм тогтмол гүйдлийн адаптер ашиглан 2.1 мм цахилгаан залгуурт залгаарай. Энэ нь програмыг хөтөч дотроо хадгалдаг бөгөөд асаасны дараа програмыг үргэлжлүүлэн ажиллуулж чаддаг.
Зөвлөмж болгож буй:
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 1 жилийн турш 2 өөр байршилд амжилттай ажилласны дараа би нарны эрчим хүчээр ажилладаг цаг уурын станцын төслийн төлөвлөгөөгөө хуваалцаж, хэрхэн урт хугацаанд үнэхээр оршин тогтнож чадах систем болж хөгжсөн тухай тайлбарлаж байна. нарны эрчим хүчнээс үүссэн үе. Хэрэв та дагах бол
DIY цаг уурын станц ба WiFi мэдрэгч станц: 7 алхам (зурагтай)
DIY цаг уурын станц ба WiFi мэдрэгч станц: Энэхүү төсөлд би WiFi мэдрэгч станцын хамт цаг агаарын станцыг хэрхэн яаж хийхийг танд үзүүлэх болно. Мэдрэгч станц нь орон нутгийн температур, чийгшлийн өгөгдлийг хэмжиж, WiFi -ээр цаг уурын станц руу илгээдэг. Цаг уурын станц дараа нь
Arduino & BME280 ашиглан өрөөний цаг уурын станц: 4 алхам
Arduino & BME280 ашиглан өрөөний цаг уурын станц: Өмнө нь би орон нутгийн температур, чийгшлийг харуулсан энгийн цаг агаарын станцтай хуваалцсан. Асуудал нь шинэчлэхэд цаг хугацаа шаардагдах бөгөөд өгөгдөл үнэн зөв биш байв. Энэхүү гарын авлагад бид дотор цаг агаарын хяналт хийх болно
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц: 4 алхам
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц: Github: DIY_Weather_Station Hackster.io: Цаг агаарын станц Та цаг агаарын мэдээг зөв харах байсан уу? Жишээлбэл, та үүнийг нээхдээ температур, чийгшил гэх мэт цаг агаарын нөхцөл байдалтай танилцах болно
RPi цаг уурын станц ба дижитал цаг: 4 алхам (зурагтай)
RPi цаг уурын станц ба дижитал цаг: Энэ бол хурдан бөгөөд хялбар төсөл бөгөөд үзүүлэх сайхан дэлгэц юм. Энэ нь цаг хугацаа, цаг агаарын нөхцөл байдал, температурыг хоёуланг нь харуулдаг. Хэрэв танд харсан зүйл тань таалагдаж байвал миний хийсэн зүйлийг дагаж мөрдөхийн тулд намайг Instagram, Twitter (@Anders644PI) дээр дагаарай