Mundarija:

Menyu bilan Arduino DHT22 sensori va tuproq namligi loyihasi: 4 qadam
Menyu bilan Arduino DHT22 sensori va tuproq namligi loyihasi: 4 qadam

Video: Menyu bilan Arduino DHT22 sensori va tuproq namligi loyihasi: 4 qadam

Video: Menyu bilan Arduino DHT22 sensori va tuproq namligi loyihasi: 4 qadam
Video: Lesson 45: Measure temperature and Pressure with BME280 display on LCD1602 and LCD2004 with Arduino 2024, Noyabr
Anonim
Menyu bilan Arduino DHT22 sensori va tuproq namligi loyihasi
Menyu bilan Arduino DHT22 sensori va tuproq namligi loyihasi

Salom bolalar, bugun men sizga ko'rsatuvlar bo'yicha ikkinchi loyihamni taqdim etyapman, bu loyiha menda birinchi namuna bo'lgan tuproq namligi sensori va namlik va namlikni o'lchash uchun ishlatiladigan DHT22 sensori. Bu loyihani amalga oshirish juda oson va Arduino -dan foydalanayotganlar buni qilishni juda qiziq his qilishadi. Loyihaning birinchisidan farqi shundaki, ushbu loyihada foydalanuvchining o'zi xohlagan narsani tanlashi mumkin bo'lgan menyusi bo'ladi. To'rtta variant bo'ladi. Shunday qilib, to'plamingizni oling va har qanday uyda ishlatilishi mumkin bo'lgan loyihani boshlang.

1 -qadam: Barcha qismlarni olish

Barcha qismlarni olish
Barcha qismlarni olish
Barcha qismlarni olish
Barcha qismlarni olish
Barcha qismlarni olish
Barcha qismlarni olish

Bu loyiha ozgina qismini ishlatadi. Bu qismlarni olish juda arzon, shuning uchun narx haqida qayg'urmang. Loyihaning ba'zi qismlarini o'zgartirish mumkin, shuning uchun loyihani arzonroq qilish mumkin. Tavsiya etilgan qismlardan qaysi birini ishlatishni va bu loyihani yanada yaxshiroq qilishni o'zingiz hal qilasiz. Loyihada ishlatiladigan qismlar:

  1. Arduino uno rev3 (Boshqa Arduino -dan ham foydalanishingiz mumkin)
  2. Non paneli
  3. I2C bilan LCD 1602 yashil displey (siz I2C displeyli displeydan ham foydalanishingiz mumkin, lekin uni ulash uchun sizga yana pinlar kerak bo'ladi)
  4. 16 tugmachali klaviatura (o'zgarishi mumkin)
  5. FC-28-d Tuproq gigrometrini aniqlash moduli + tuproq namligi sensori
  6. DHT22 harorat va namlik sensori (DHT11 -dan foydalanishingiz mumkin, bu arzonroq)
  7. Qizil LED diod
  8. Moviy LED diod
  9. 2 rezistor 220 ohm (diodlar uchun ishlatiladi)
  10. Sxemada DHT22 uchun ishlatiladigan 4k7 rezistor
  11. Arduino batareyasi ulagichi
  12. Barcha qismlarni ulash uchun bir nechta o'tish kabeli

Sizga bu loyihani qurishni boshlashdan oldin aytishim kerak bo'lgan narsa shundaki, klaviatura kerak emas. Men bu safar klaviaturadan foydalandim, chunki aylanadigan kodlovchi buzilgan. O'ylaymanki, agar u aylanadigan kodlagichga ega bo'lsa, bu loyiha juda yaxshi bo'lar edi, chunki u kamroq pimlardan foydalanadi yoki 3 tugmani ishlatishi mumkin.

2 -qadam: Barcha qismlarni bir -biriga ulash

Barcha qismlarni bir -biriga ulash
Barcha qismlarni bir -biriga ulash

Bu qadamda siz fritzing yordamida tuzgan sxemani ko'rishingiz mumkin. Men ushbu loyihaning har bir asosiy qismini ulash uchun issiq yozaman.

Ko'rib turganingizdek, biz non panelini quvvatlantirish uchun arduinodan 5V va GND dan foydalanmoqdamiz.

LCD:

  • VCC 5Vgacha (+ non panelida)
  • GND to gnd (- non panelidagi qism)
  • SDA analog pin A4 ga
  • A5 analog piniga SCL

16 tugmachali klaviatura:

Biz klaviaturani ulash uchun 9, 8, 7, 6, 5, 4, 3, 2 -pinlardan foydalanmoqdamiz (aylanma kodlagichni ishlatishimning sababi shu, chunki bortda faqat 3 ta pin bor edi)

Tuproq namligi sensori:

  • VCC 5Vgacha (+ non panelida)
  • GND to gnd (-non panelidagi qism)
  • D0 raqamli pin 0
  • A0 analog pin A0 ga

DHT22:

  • VCC 5Vgacha (+ non panelida)
  • GND to gnd (-non panelidagi qism)
  • Chiqish pimi 12 -pin bilan bog'langan

Diodli ulanish:

  • diodning bir qismi - taxtaning bir qismi kiradi
  • Ikkinchi qism 220 ohmli rezistor orqali o'tadi va shundan so'ng pin 10 (ko'k diod) yoki 11 (qizil diod) ga ulanadi.

3 -qadam: Kod yozish

Men kodni bir necha qismda tushuntirishga harakat qilaman. To'liq kod yoziladi, shuning uchun siz uni nusxalashingiz va kerak bo'lganda o'zgartirishingiz mumkin. Shuningdek, ushbu kodda sensorlar bilan ishlashning bir necha usullari yozilgan, lekin bu safar asosiy e'tibor Arduino bilan yangilar uchun tushunarli bo'lgan menyu yaratishga qaratildi. Bu safar men hech qanday uzilishlardan foydalanmayman, lekin keyingi loyihalarimda shunday qilaman, shuni esda tutingki, bu kod uzilishlar bilan ancha yaxshilanishi mumkin.

  1. Kodning birinchi qismi ushbu loyiha uchun ishlatilgan barcha kutubxonalarni o'z ichiga oladi. Shuni yodda tutingki, men ishlatayotgan barcha qismlar uchun sizga keyingi kutubxonalar kerak bo'ladi: Wire, LiquidCrystal_I2C, Klaviatura va DHT. Agar siz eskiz qismiga kirsangiz va kutubxonalarni o'z ichiga olsangiz, barcha kutubxonalarni Arduino IDE -da topishingiz mumkin. Shuni ham yodda tutingki, agar siz aylanadigan kodlovchi kabi biror narsani ishlatsangiz, klaviatura o'rniga yangi kutubxonalarni olishingiz kerak bo'ladi, bu rotary.h va tugma bo'lishi mumkin. Agar siz DHT11 sensoridan foydalansangiz, kutubxona hali ham DHT hisoblanadi.
  2. Kodning ikkinchi qismida barcha ishlatilgan qismlarning ta'rifi bo'ladi. Birinchidan, LCD. Shundan so'ng, DHT turi sensori bo'lgan ob'ektga o'xshash DHT sensori, shuningdek, ulangan pin mavjud. Tuproq namligi sensori va diodlar uchinchi.
  3. Men klaviaturani biroz ko'proq tasvirlab beraman. Aytganimdek, aylanadigan kodlovchi buzilgan, shuning uchun men uni ishlatishga qaror qildim. Ushbu loyiha uchun faqat to'rtta tugma etarli, hatto uchtasi ham yaxshi. Shunday qilib, men bitta variant uchun klaviaturadagi to'rtta tugmani ishlataman. Agar sizda biron bir fikr bo'lsa, boshqa tugmachalarni ishlatishingiz mumkin. Bu qismda satr va ustunlarni aniqlash kerak. Shundan so'ng, hexaKeys sizga ushbu loyiha uchun ishlatiladigan variantlarni taqdim etadi. Mening loyihamda B (orqaga), U (yuqoriga), D (pastga) va A (qabul qilish) bor. Siz har bir tugmani boshqa biror narsa qilishga majbur qilishingiz mumkin. Bitta tugma orqa yorug'likni yoqishi mumkin, uni o'chirish mumkin. Shunday qilib, u bilan biroz ko'proq o'ynang
  4. Bu qismda kodda ishlatiladigan global o'zgaruvchilar mavjud. Bool o'zgaruvchilari ekranni o'zgartirish uchun ishlatiladi. Xush kelibsiz o'zgaruvchisi faqat arduino i yoqilganda bir necha soniya davomida to'g'ri bo'ladi, shundan keyin qolgan vaqt davomida u noto'g'ri bo'ladi. Asosiy e'tibor mainScreen o'zgaruvchisiga qaratiladi. Bu o'zgaruvchi sizni menyudan kodning boshqa variantiga yo'naltirish uchun ishlatiladi. Agar bu o'zgaruvchi noto'g'ri bo'lsa, demak, foydalanuvchi ushbu loyihaning to'rtta variantidan birini ishlatishga qaror qilgan.
  5. Bu erda ushbu kodda ishlatiladigan barcha usullar yozilgan. Men ushbu bo'limda barcha yozma usullarni tushuntirishga harakat qilaman
  • void startScreen (); // loyihani va arduino -ni ishga tushirish usuli
  • int choiceNumber (int tanlash); // bu sizning loyiha variantlarini tanlashingizni o'zgartiradi. Raqam 1 dan 4 gacha
  • bo'sh mainScreenP (int tanlash); // qurilmaning to'rtta varianti yoziladi
  • bool mainScreenCS (bool mainScreen); // bu mainScreen -ni noto'g'ri deb o'zgartiradi
  • bool mainScreenBack (bool mainScreen); // bu mainScreen -ni rostga o'zgartiradi
  • bo'sh tempCelsius (); // C DHT sensori variantida o'qish harorati
  • bo'sh tempFarenheit (); // F DHT sensori variantida o'qish harorati
  • void printHumidity (); // namlik DHT sensori variantini o'qish
  • readSensorData () bekor qilingan; // ulangan sensorlar haqidagi ma'lumotlarni o'qish
  • GetTemperatureC () qatori;
  • GetTemperatureF () qatori;
  • Satr getHumidity ();
  • bo'sh tuproq namligi (); // bu boshqa sensor va diodlar uchun
  • yaroqsiz printSensorSoilMoisture (); // lcd -da tuproq namligi qismini bosib chiqarish
  • void diodeLights (int qiymati); // diodlarni yoqish va o'chirish
  • void printValue (int qiymati);

6. Arduino -ni sozlash - bu LCD va DHT sensorlarini, shuningdek diodlarni o'rnatish

7. Asosiy qism - bu yuqorida yozilgan barcha usullar qo'llaniladigan qism.

Loyihaning to'liq kodi ushbu bosqichga ilova qilinadi. Shuni esda tutingki, pinlar sxemaga o'xshamasligi mumkin, menimcha, diodlar o'zgartirilgan.

4 -qadam: Arduino -dan foydalanish

Arduino -dan foydalanish
Arduino -dan foydalanish
Arduino -dan foydalanish
Arduino -dan foydalanish
Arduino -dan foydalanish
Arduino -dan foydalanish
Arduino -dan foydalanish
Arduino -dan foydalanish

Bu, ehtimol, eng kulgili qism. Hech bo'lmaganda, kodlash yozilgandan keyin bu kulgili. Ushbu bo'limda siz loyihaning qanday ishlashini ko'rishingiz mumkin. 4 ta variant mavjud.

  1. O'qish harorati Selsiy bo'yicha
  2. Farengeytda o'qish harorati
  3. Namlikni o'qish
  4. Diodlarni yoqish va tuproq namligi sensori qiymatlarini o'qish.

Siz mumkin bo'lgan variantlardan birini tanlashingiz mumkin, shuningdek, agar siz boshqa narsani ko'rishni xohlasangiz, orqaga qaytishingiz va yana tanlashingiz mumkin. Oddiy va ishlatish uchun qulay.

Agar sizda boshqa savol bo'lsa, menga so'rashingiz mumkin. Rahmat bolalar, mening loyihamga qaraganingiz uchun. Hurmat bilan. Sebastyan

Tavsiya: