Mundarija:

Arduino bir nechta fayllar bilan ishlash (O'QISH/YOZISH): 4 qadam
Arduino bir nechta fayllar bilan ishlash (O'QISH/YOZISH): 4 qadam

Video: Arduino bir nechta fayllar bilan ishlash (O'QISH/YOZISH): 4 qadam

Video: Arduino bir nechta fayllar bilan ishlash (O'QISH/YOZISH): 4 qadam
Video: ArduinoUZ#3 Serial Port bilan ishlash 2024, Iyul
Anonim
Arduino bir nechta fayllar bilan ishlaydi (o'qish/yozish)
Arduino bir nechta fayllar bilan ishlaydi (o'qish/yozish)

salom bolalar

Bugun men sizga ma'lumotlarni saqlashi mumkin bo'lgan RTC qalqoni bilan ishlaydigan Arduino loyihasini taqdim etaman. Loyihaning asosiy vazifasi - sc kartada saqlanadigan bir nechta fayllar bilan ishlash. Ushbu loyiha uchta fayl bilan ishlaydigan kodni o'z ichiga oladi, ular to'g'ridan -to'g'ri arduino va RTC qalqoni bilan SD -kartada saqlanadi. Ushbu loyiha DataLogger qalqoni bilan ishlaganligi sababli, bu ma'lumotlar sizning kompyuteringizda bo'lgani kabi bir vaqtning o'zida saqlanadi.

Bu loyiha mening oxirgi loyihamning yangilangan versiyasidir. Bu loyihani Arduino Data Logger Shield Small Project nomi bilan o'rgatish mumkin. Agar siz ushbu loyihani tushunishda muammolarga duch kelsangiz, avval sizga osonini ko'rishni taklif qilaman.

Bu ikki loyihaning asosiy farqi shundaki, bu loyihada 3 ta matnli fayl ishlatiladi, bu safar biz ulardan ikkitasining ma'lumotlarini o'qiymiz. Ma'lumotni o'qiy oladigan bo'lsak, biz SD kartada saqlanadigan namlik va haroratning o'rtacha qiymatini olamiz. Bu Arduino -ga ulangan LCD displeyda ham ko'rsatiladi.

Yana bir bor, agar siz Arduino-da yangi bo'lsangiz va bu sizning DataLogger-dan foydalanadigan birinchi loyihangiz bo'lsa, men bu havolani tekshirishni taklif qilaman https://www.instructables.com/id/Arduino-Data-Logg… va hamma narsani olganingizda Bu erga keling va ko'proq dam oling. Boshlaylik.

1 -qadam: qismlar

Qismlar
Qismlar
Qismlar
Qismlar
Qismlar
Qismlar

Har safar men bunday loyihalarni yozganimda, men bu loyihada ishlatgan barcha qismlarimdan boshlayman. Men, shuningdek, ishlatilishi mumkin bo'lgan va bu loyihani biroz boshqacha qilish mumkin bo'lgan ba'zi sensorlarni taklif qilaman.

Qismlar:

  • Arduino uno rev3
  • Arduino Ma'lumotlarni yozish qalqoni
  • SD xotira kartasi
  • I2C bilan LCD 1602 yashil displey (boshqa har qanday displeydan foydalanishingiz mumkin)
  • DHT22 (DHT11 ham yaxshi ishlaydi, lekin uning aniqligi dht22 bilan bir xil emas)
  • Bir nechta o'tish kabellari
  • Non paneli
  • Batareya 9v

Siz ba'zi qismlarni o'zgartirishingiz mumkin. Loyihaning yaxshi tomoni shundaki, u boshqa sensorlardan ma'lumotlarni saqlash uchun ishlatilishi mumkin. Men tutun sensori yoki infraqizil sensor bilan ishlashga harakat qilardim. Boshqa har qanday sensor bilan ishlaydi. Siz Arduino -ni ham o'zgartirishingiz mumkin, lekin shuni yodda tutingki, Arduino - bu ma'lumotlarni yozish moslamasi uchun eng yaxshisi.

2 -qadam: Barcha qismlarni bir -biriga ulash

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

Bu ulanish oson. Hatto sxemasi ham oson loyiha bilan bir xil. Ammo men aytmoqchimanki, siz qaysi pinni ishlatmoqchi ekanligingizga e'tibor berishingiz kerak. Qachonki, qaysi pinlardan foydalanish yaxshiroq ekanligini bilish uchun, har safar Data Logger ma'lumot varag'ini tekshiring, chunki eslaymanki, ba'zi pinlar allaqachon aniqlangan va men sensordan belgilangan pinlardan birida foydalanmoqchi bo'lganimda, u ishlamagan.

Ushbu bosqichning yuqori qismida siz fritzing yordamida qilingan sxemani ko'rishingiz mumkin. Oson narsa shundaki, siz ma'lumotlarni yozish moslamasini arduino -ning yuqori qismiga ulashingiz kerak. SD -kartani ma'lumotlar jurnaliga ulang va oxirgi qilishingiz kerak bo'lgan narsa - dht sensori va LCD -ni ulash. Biz arduino -dan 5V ni taxtaning bir qismi uchun, GND ning bir qismi uchun ishlatamiz va shu satrga rioya qilib siz + sensor paneli va lcd -ni non taxtasining + qatoriga ulaysiz. Xuddi shu narsa - qismlar, ular faqat keyingi qatorga o'tadi -. Dht sensori bu safar pin 7 ga ulangan. LCD A4 va A5 ga ulangan, oson emasmi?

LCD:

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

DHT22:

Men dhtni taxtali ishlatardim, unda uchta pin ishlatiladi:

  • + 5 V gacha
  • - GND ga
  • raqamli pin 7 ga o'ting

3 -qadam: kodlash

Bu vaqt kodi murakkabroq. Uning yaxshi qismi sharhlangan, shuning uchun siz uni oson tushunasiz.

Men bu kodni bir nechta qisqa qismlarda tushuntiraman.

1. Birinchidan, shuni yodda tutish kerakki, bu kodga shaxsiy kompyuteringizda bir nechta kutubxona o'rnatilgan bo'lishi kerak. Bular: Time (TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. Ehtimol, siz boshqa kutubxonalardan foydalanishingiz mumkin, lekin bu kutubxonalar men uchun ishlagan. Shundan so'ng biz ushbu loyiha uchun zarur bo'lgan hamma narsani aniqlaymiz. DHT sensorini aniqlash oson, faqat sensor ulangan pin va sensor turini aytish kerak. Shundan so'ng, siz SD -karta va RTC -pin uchun ishlatiladigan ba'zi pinlarni aniqlashingiz kerak. Va bundan keyin siz ushbu loyiha uchun ishlatiladigan o'zgaruvchilarni ko'rishingiz mumkin.

3. Loyihada bir nechta usullar qo'llaniladi va ularning barchasi DHT sensori bilan ishlashga mo'ljallangan. Agar siz ushbu turdagi sensor bilan loyihada ishlayotgan bo'lsangiz, undan foydalanishingiz mumkin. Bu usullar:

4. O'rnatish jarayonida bajarilishi kerak bo'lgan juda oz narsa bor. Birinchidan, vaqtni aniqlash kerak. Biz bu erda RTC -dan foydalanayotganimiz uchun, biz Arduino ma'lumotni sensordan saqlagan vaqtni to'g'ri o'tkazishni xohlaymiz. Bu qism kodda izohlanadi. Agar siz sharh qoldirmasangiz //RTC.adjust(DateTime(_DATE_, _TIME_)); Loyihada vaqtni belgilashingiz mumkin. Kerakli vaqtni belgilaganingizdan so'ng, siz bu qismni yana sharhlashingiz mumkin va siz arduino -ni kompyutersiz ishlatishingiz mumkin. Bu juda zo'r, chunki siz harorat sensori yordamida boshqa xonada ishlashingiz va kompyuterga ehtiyoj sezmasdan haroratni kuzatib borishingiz mumkin. Ikkinchi bo'lim - bu SD -kartadan foydalanish, unda ma'lumotlar saqlanadi. Shild karta bor -yo'qligini tekshirishga harakat qiladi. Agar bunday bo'lmasa, xato xabari Arduino IDE seriyali ekranida ko'rsatiladi.

O'rnatish - bu xotira kartasiga fayllarni yozish bilan ishlaydigan birinchi qadam. Kartaga yozilgan birinchi narsa datalog.txt faylida. Bu safar biz faqat qurilmamizni yozish vaqtini yozamiz va kichik nomlar qatorini ham yaratamiz (saqlash uchun ishlatiladigan o'zgaruvchilar, shuningdek vaqt)

O'rnatishning oxirgi qismi - LCD va dht sensorini ishga tushirish.

5. Loop qismi - loyihaning asosiy qismi. Bu safar sensor bilan ishlash juda oson, chunki u sensor qabul qiladigan qiymatlarni o'qish uchun faqat bitta usuldan foydalanadi. LCD qismi ham juda oson. Keyingi qism - bu erda biz tushuntirishimiz kerak. Bu loyiha har daqiqada nimadir qiladi. Bir daqiqada u ma'lumotlarni datalog.txt -ga saqlaydi. Bu ma'lumotlarni arduinolarni dasturlashni ham bilmagan odam o'qishi mumkin. Boshqa tomondan. Bir daqiqa datalogB.txt -dagi haroratni va bir daqiqada datalogC.txt -dagi namlikni saqlaydi. Xotira kartamizdan o'qish uchun bizga datalogB.txt va dataLogC.txt kerak. Agar biz o'z kodimizni o'qishni davom ettirsak, bu kod harorat va namlikning o'rtacha qiymatlarini o'qishini va ularni bir qatorda saqlashini ko'rishingiz mumkin. Men faqat oxirgi o'nta raqamni o'z ichiga oladigan qurilmani yaratmoqchi edim. Shunday qilib, bu loyiha har doim kartadagi qiymatlar bo'yicha ishlaydi va oxirgi o'nta raqamni saqlaydi, bu raqamlar haroratning o'rtacha qiymatini va namlikning o'rtacha qiymatini olishimiz uchun ishlatiladi. Bir muncha vaqt o'tgach, ular bizning LCD displeyimizda ham ko'rsatiladi

4 -qadam: Keyinchalik Arduino va SD -kartadan foydalanish

Keyinchalik Arduino va SD -kartadan foydalanish
Keyinchalik Arduino va SD -kartadan foydalanish
Keyinchalik Arduino va SD -kartadan foydalanish
Keyinchalik Arduino va SD -kartadan foydalanish
Keyinchalik Arduino va SD -kartadan foydalanish
Keyinchalik Arduino va SD -kartadan foydalanish
Keyinchalik Arduino va SD -kartadan foydalanish
Keyinchalik Arduino va SD -kartadan foydalanish

Bu erda siz LCD displeyda nima borligini va loyihaning qanday ishlashini ko'rishingiz mumkin. Shuningdek, men bu erda saqlagan ma'lumotlar ro'yxatining rasmlarini joylashtiraman. Datalog.txt - bu qurilma har bir qiymatni qanday saqlashini ko'rish uchun ishlatilishi mumkin. DatalogB va datalogC bor, shuning uchun siz ularning tashqi ko'rinishini ko'rishingiz mumkin. Ular shunday yozilganki, siz tahlil usulini ishlatishingiz va ma'lumotlarni muammosiz o'qishingiz mumkin.

Loyihaning asosiy maqsadi sd -kartadagi fayllarni boshqarishdir. Ba'zida bizga xotirani saqlaydigan qurilmalar kerak bo'ladi va o'qish harorati ham shunday bo'ladi. Yaxshi narsa shundaki, ushbu qurilmada ishlatiladigan qalqonda RTC moduli ham bor, bu vaqt uchun eng yaxshi narsa. Qachonki biz real vaqtda o'qiy olsak va ma'lumotlarni qurilmamizda saqlay olsak, demak u ko'chma bo'lishi mumkin.

Bolalar, ushbu loyihani o'qiganingiz uchun tashakkur. Umid qilamanki, bu sizga yordam beradi. Rahmat.

Hurmat bilan Sebastyan

Tavsiya: