Სარჩევი:
- ნაბიჯი 1: ნივთების სია
- ნაბიჯი 2: შედარებითი შესავალი
- ნაბიჯი 3: შეაერთეთ წრე
- ნაბიჯი 4: მომზადება შედგენისთვის
- ნაბიჯი 5: ტესტი კოდი DHT22 სენსორის სერიული პორტისთვის
- ნაბიჯი 6: პროექტის კოდი
- ნაბიჯი 7: აღწერა
ვიდეო: ამინდის სადგური Arduino UNO– ს გამოყენებით: 7 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
შემქმნელი: Hazel Yang
ეს პროექტი არის ამინდის სადგური, რომელიც იყენებს 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 სენსორი აგზავნის სერიულ მონაცემებს pin 2. ასე რომ, დააკავშირეთ მეორე პინი მარცხნიდან, "SDA" პინი უნდა იყოს დაკავშირებული პინ 2 -თან.
SSH1106 დისპლეისთვის ის იყენებს ანალოგურ პინს გადასაცემად. ეკრანის სქემა იქნება "SCL" პინი Arduino- ს "A5" და "SDA" pin Arduino- ს "A4". მიუხედავად იმისა, რომ პიქსელის პოზიციის მონაცემები განუწყვეტლივ გადადის, პროგრამის ჩვენების ფუნქცია იწვევს მხოლოდ ბრძანებას ყოველ ჯერზე, როდესაც ის კითხულობს მონაცემებს სენსორიდან.
სენსორს და ეკრანს შეუძლიათ გამოიყენონ 3.3V არდუინოს ჩართვისთვის, როგორც DC დენის შეყვანა. ძალაუფლებისთვის, ჩვენ უნდა დავუკავშიროთ ორივე "VCC" ქინძი არდუინოს "3.3V" - ს. და "GND" ქინძისთავები შეიძლება უბრალოდ იყოს დაკავშირებული Arduino დაფაზე არსებულ "GND" პინთან.
გამოიყენეთ USB A to B კაბელი, დაუკავშირეთ Arudino კომპიუტერს.
ნაბიჯი 4: მომზადება შედგენისთვის
"u8glib" SSH1106 ეკრანისთვის Olikraus– დან.
"DHT სენსორების ბიბლიოთეკა" DHT22 სენსორისთვის Adafruit– დან. თქვენ უნდა გადმოწეროთ ორი ბიბლიოთეკა: DHT22 სენსორული ბიბლიოთეკა:
U8glib:
და გამოიყენეთ "მართეთ ბიბლიოთეკა" IDE- ში, რათა მათ გახსნათ ფაილი. ბიბლიოთეკების მართვის ონლაინ ინსტრუქცია:
ნაბიჯი 5: ტესტი კოდი DHT22 სენსორის სერიული პორტისთვის
სატესტო კოეფიციენტი DHT22 სენსორის სერიული პორტისთვის (რომელიც არის DHT22 ბიბლიოთეკაში >> მაგალითები):
(შეგიძლიათ გამოტოვოთ ეს ნაწილი.)
ეს მხოლოდ DHT22 სენსორის შესამოწმებლად მონაცემებს ნორმალურად კითხულობს
#ჩართეთ
#ჩართეთ
#ჩართეთ
#ჩართეთ
#ჩართეთ
#განსაზღვრეთ DHTPIN 2
#განსაზღვრეთ DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup () {
სერიული.დაწყება (9600);
Serial.println (F ("DHT22 ტესტი!"));
dht. დაწყება ();
}
ბათილი მარყუჟი () {
// დაელოდეთ რამდენიმე წამს გაზომვებს შორის.
დაგვიანება (2000);
// კითხვის ტემპერატურა ან ტენიანობა დაახლოებით 250 მილიწამს იღებს!
// სენსორული მაჩვენებლები შეიძლება იყოს 2 წამამდე ძველი (ეს არის ძალიან ნელი სენსორი)
float h = dht.readHumidity ();
// ტემპერატურის ცელსიუსით წაკითხვა (ნაგულისხმევი)
float t = dht.readTemperature ();
// წაიკითხეთ ტემპერატურა ფარენჰეიტზე (isFahrenheit = true)
float f = dht.readTemperature (ჭეშმარიტი);
// შეამოწმეთ თუ წაკითხული ვერ მოხერხდა და გამოდით ადრე (ხელახლა ცდა).
თუ (ისნანი (თ) || ისნანი (t) || ისნანი (ვ)) {
Serial.println (F ("DHT სენსორიდან წაკითხვა ვერ მოხერხდა!"));
დაბრუნების;
}
// გამოთვალეთ სითბოს ინდექსი ფარენჰეიტში (ნაგულისხმევი)
float hif = dht.computeHeatIndex (f, h);
// გამოთვალეთ სითბოს ინდექსი ცელსიუსში (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("ტენიანობა:"));
სერიული. ბეჭდვა (თ);
Serial.print (F ("% ტემპერატურა:"));
სერიული. ბეჭდვა (t);
Serial.print (F ("° C"));
სერიული. ბეჭდვა (ვ);
Serial.print (F ("° F სითბოს ინდექსი:"));
სერიული. ბეჭდვა (hic);
Serial.print (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 ();
// შეამოწმეთ თუ წაკითხული ვერ მოხერხდა და გამოდით ადრე (ხელახლა ცდა).
თუ (ისნანი (თ) || ისნანი (ტ)) {
u8g.print ("შეცდომა.");
for (;;);
დაბრუნების;
}
u8g.setPrintPos (4, 10);
u8g.print ("ტემპერატურა (C):");
u8g.setPrintPos (4, 25);
u8g. ბეჭდვა (t);
u8g.setPrintPos (4, 40);
u8g.print ("ტენიანობა (%):");
u8g.setPrintPos (4, 55);
u8g. ბეჭდვა (თ);
}
void setup (void) {
u8g.setRot180 ();
სერიული.დაწყება (9600);
სენსორი.დაწყება ();
}
ბათილი მარყუჟი (ბათილი) {
// სურათის მარყუჟი
u8g.firstPage ();
კეთება {
დახაზვა ();
} while (u8g.nextPage ());
// სურათის აღდგენა გარკვეული შეფერხების შემდეგ (2000);
}
// ძირითადი პროგრამის დასრულება.
ნაბიჯი 7: აღწერა
შემდეგ, ინიციალიზაცია მოახდინეთ pin სქემისათვის 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 მმ დენის ჯეკს. ის ინახავს პროგრამას თავის დისკზე და შეუძლია გააგრძელოს პროგრამა კვლავ ჩართვის შემდეგ.
გირჩევთ:
მინი ამინდის ამინდის სადგური Arduino– ს და ThingSpeak– ის გამოყენებით: 4 ნაბიჯი
მინი ამინდის ამინდის სადგური Arduino– ს და ThingSpeak– ის გამოყენებით: გამარჯობა ყველას. ამ ინსტრუქციაში, მე გაგიწევთ ნაბიჯებს პერსონალური მინი ამინდის სადგურის შესაქმნელად. ასევე, ჩვენ ვიყენებთ ThingSpeak API– ს, რომ ატვირთავს ჩვენი ამინდის მონაცემებს მათ სერვერებზე, წინააღმდეგ შემთხვევაში რა არის ამინდის სტატისტიკის მიზანი
DIY ამინდის სადგური და WiFi სენსორული სადგური: 7 ნაბიჯი (სურათებით)
DIY ამინდის სადგური და WiFi სენსორული სადგური: ამ პროექტში მე გაჩვენებთ თუ როგორ უნდა შექმნათ ამინდის სადგური WiFi სენსორულ სადგურთან ერთად. სენსორული სადგური ზომავს ადგილობრივი ტემპერატურისა და ტენიანობის მონაცემებს და აგზავნის მას WiFi– ით ამინდის სადგურზე. ამის შემდეგ ამინდის სადგური აჩვენებს
ESP32 ამინდის ამინდის სადგური: 16 ნაბიჯი (სურათებით)
ESP32 Weathercloud ამინდის სადგური: გასულ წელს, მე გამოვაქვეყნე ჩემი ყველაზე დიდი Instructable დღემდე სახელწოდებით Arduino Weathercloud Weather Station. ძალიან პოპულარული იყო მე ვიტყოდი. ის ნაჩვენები იყო Instructables– ის მთავარ გვერდზე, Arduino– ს ბლოგში, Wiznet მუზეუმში, Instructables Instagram– ში, Arduino Instagr
ოთახის ამინდის სადგური Arduino & BME280– ის გამოყენებით: 4 ნაბიჯი
ოთახის ამინდის სადგური Arduino & BME280– ის გამოყენებით: ადრე მე გავაზიარე მარტივი ამინდის სადგური, რომელიც აჩვენებდა ადგილობრივი ტერიტორიის ტემპერატურასა და ტენიანობას. პრობლემა ის იყო, რომ განახლებას დრო დასჭირდებოდა და მონაცემები არ იყო ზუსტი. ამ გაკვეთილში ჩვენ გავაკეთებთ შიდა ამინდის მონიტორს
Acurite 5 in 1 ამინდის სადგური Raspberry Pi და Weewx გამოყენებით (სხვა ამინდის სადგურები თავსებადია): 5 ნაბიჯი (სურათებით)
Acurite 5 in 1 ამინდის სადგური Raspberry Pi და Weewx– ის გამოყენებით (სხვა ამინდის სადგურები თავსებადია): როდესაც მე ვიყიდე Acurite 5 in 1 ამინდის სადგური, მინდოდა შემეძლოს ამინდის შემოწმება ჩემს სახლში ყოფნისას. როდესაც სახლში მივედი და დავაყენე მივხვდი, რომ ან ეკრანი კომპიუტერთან უნდა მქონოდა ჩართული, ან მათი ჭკვიანი კერა შემეძინა