Სარჩევი:

არდუინო მუშაობს მრავალ ფაილზე (წაიკითხეთ/დაწერეთ): 4 ნაბიჯი
არდუინო მუშაობს მრავალ ფაილზე (წაიკითხეთ/დაწერეთ): 4 ნაბიჯი

ვიდეო: არდუინო მუშაობს მრავალ ფაილზე (წაიკითხეთ/დაწერეთ): 4 ნაბიჯი

ვიდეო: არდუინო მუშაობს მრავალ ფაილზე (წაიკითხეთ/დაწერეთ): 4 ნაბიჯი
ვიდეო: CS50 2015 - Week 7 2024, ივლისი
Anonim
Arduino მუშაობს მრავალ ფაილზე (წაიკითხეთ/დაწერეთ)
Arduino მუშაობს მრავალ ფაილზე (წაიკითხეთ/დაწერეთ)

გამარჯობათ ბიჭებო

დღეს მე წარმოგიდგენთ არდუინოს პროექტს, რომელიც მუშაობს RTC ფარით, რომელსაც შეუძლია მონაცემების შენახვა. ამ პროექტის მთავარი ამოცანაა მუშაობა მრავალ ფაილთან, რომლებიც ინახება sc ბარათზე. ეს პროექტი შეიცავს კოდს, რომელიც მუშაობს სამ ფაილზე, რომლებიც ინახება პირდაპირ SD ბარათზე arduino და RTC ფარი. იმის გამო, რომ ეს პროექტი მუშაობს DataLogger ფარის საშუალებით, ეს მონაცემები ასევე ინახება ზუსტად იმ დროს, როგორც თქვენს კომპიუტერში.

ეს პროექტი არის ჩემი ბოლო პროექტის განახლებული ვერსია. ეს პროექტი შეგიძლიათ იხილოთ ინსტრუქციულ საიტზე Arduino Data Logger Shield Small Project სახელით. თუ თქვენ გაქვთ რაიმე პრობლემა ამ პროექტის გაგებაში, მე გირჩევთ, რომ პირველ რიგში ნახოთ უფრო ადვილი.

ამ ორ პროექტს შორის მთავარი განსხვავება ისაა, რომ ეს პროექტი იყენებს 3 ტექსტურ ფაილს, ასევე ამჯერად ჩვენ ვკითხულობთ ორი მათგანის მონაცემებს. იმის გამო, რომ ჩვენ შეგვიძლია მონაცემების წაკითხვა, ჩვენ შეგვიძლია მივიღოთ საშუალო ტენიანობა და ტემპერატურა, რომელიც ინახება sd ბარათზე. ეს ასევე ნაჩვენები იქნება არდუინოსთან დაკავშირებულ LCD ეკრანზე.

კიდევ ერთხელ, თუ ახალი ხართ Arduino– ში და ეს არის თქვენი პირველი პროექტი, რომელიც იყენებს DataLogger– ს, მე გირჩევთ წახვიდეთ და შეამოწმოთ ეს ბმული https://www.instructables.com/id/Arduino-Data-Logg… და როცა მიიღებთ ყველაფერს მოდი აქ და გაერთე კიდევ. Დავიწყოთ.

ნაბიჯი 1: ნაწილები

ნაწილები
ნაწილები
ნაწილები
ნაწილები
ნაწილები
ნაწილები

როგორც ყოველთვის, როდესაც ვწერ მსგავს პროექტებს, დავიწყებ ყველა იმ ნაწილით, რაც ამ პროექტში გამოვიყენე. მე ასევე შემოგთავაზებთ სენსორებს, რომელთა გამოყენებაც შესაძლებელია და ამ პროექტს ოდნავ განსხვავებული გახდის.

ნაწილები:

  • Arduino uno rev3
  • Arduino Data logger ფარი
  • SD მეხსიერების ბარათი
  • LCD 1602 მწვანე ეკრანი I2C– ით (შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა ჩვენება)
  • DHT22 (DHT11 ასევე კარგად მუშაობს, მაგრამ მისი სიზუსტე არ არის იგივე რაც dht22)
  • რამდენიმე ჯუმბერის კაბელი
  • პურის დაფა
  • ბატარეა 9 ვ

თქვენ შეგიძლიათ შეცვალოთ რამდენიმე ნაწილი. ამ პროექტის კარგი მხარე ის არის, რომ ის შეიძლება გამოყენებულ იქნას ნებისმიერი სხვა სენსორის მონაცემების შესანახად. ვცდილობდი კვამლის სენსორთან, ან ინფრაწითელ სენსორთან მუშაობა. ის მუშაობს ნებისმიერ სხვა სენსორთან. თქვენ ასევე შეგიძლიათ შეცვალოთ თქვენი არდუინო, მაგრამ გახსოვდეთ, რომ არდუინო საუკეთესოა მონაცემთა შემქმნელის შესაქმნელად.

ნაბიჯი 2: ყველა ნაწილის ერთმანეთთან დაკავშირება

ყველა ნაწილის ერთმანეთთან დაკავშირება
ყველა ნაწილის ერთმანეთთან დაკავშირება

ეს ერთი ადვილი დასაკავშირებელია. სქემატურიც კი იგივეა, რაც უფრო ადვილი პროექტი. მაგრამ მე ვიტყოდი, რომ თქვენ უნდა გაუფრთხილდეთ რომელი პინის გამოყენებას აპირებთ. ყოველ ჯერზე შეამოწმეთ მონაცემთა ჩამწერი მონაცემების ფურცელი, რომ ნახოთ რომელი ქინძისთავები არის საუკეთესო გამოსაყენებლად, რადგან როგორც მახსოვს ზოგიერთი ქინძისთავები უკვე განსაზღვრულია და როდესაც ვცდილობდი გამომეყენებინა ჩემი სენსორი ერთ – ერთ განსაზღვრულ პინზე ის არ მუშაობდა.

ამ საფეხურის თავზე თქვენ შეგიძლიათ ნახოთ სქემატური შედგენა გაყინვით. ადვილია ის, რომ თქვენ უნდა დააკავშიროთ თქვენი მონაცემების მრიცხველი თქვენი არდუინოს თავზე. შეაერთეთ თქვენი sd ბარათი მონაცემთა მრიცხველთან და ბოლო რაც თქვენ უნდა გააკეთოთ არის dht სენსორისა და LCD– ის დაკავშირება. ჩვენ ვიყენებთ 5V არდუინოსგან + ნაწილი პურის დაფაზე, GND ნაწილს და ამ ხაზის დაცვით თქვენ ასევე აკავშირებთ + სენსორის ხაზს და LCD– ს პურის დაფის + ხაზთან. იგივე ეხება - ნაწილებს, ისინი უბრალოდ მიდიან შემდეგ ხაზზე -. Dht სენსორი ამჯერად დაკავშირებულია პინ 7 -თან. LCD არის დაკავშირებული A4 და A5. ადვილია, არა?

LCD:

  • VCC 5V– მდე (+ ნაწილი დაფაზე)
  • GND to gnd (-ნაწილი პურის დაფაზე)
  • SDA ანალოგურ პინზე A4
  • SCL ანალოგურ პინზე A5

DHT22:

მე გამოვიყენე dht დაფით, რომელშიც სამი ქინძისთავია გამოსაყენებელი:

  • + 5 ვ -მდე
  • - GND– სკენ
  • ციფრულ პინზე 7

ნაბიჯი 3: კოდირება

ამ დროის კოდი უფრო რთულია. მის კარგ ნაწილს აქვს კომენტარი, რათა მარტივად გაიგოთ.

ამ კოდს რამდენიმე მოკლე ნაწილში ავხსნი.

1. პირველ რიგში უნდა გახსოვდეთ, რომ ამ კოდს დასჭირდება თქვენს კომპიუტერში დაყენებული რამდენიმე ბიბლიოთეკა. ესენია: Time (TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. თქვენ ალბათ შეგიძლიათ გამოიყენოთ სხვა ბიბლიოთეკები, მაგრამ ეს ბიბლიოთეკები ჩემზე მუშაობდა. ამის შემდეგ ჩვენ ვადგენთ ყველაფერს, რაც საჭიროა ამ პროექტისათვის. DHT სენსორის განსაზღვრა ადვილია, თქვენ უბრალოდ უნდა თქვათ ის პინი, რომელიც დაკავშირებულია სენსორთან და სენსორის ტიპთან. ამის შემდეგ თქვენ უნდა განსაზღვროთ რამდენიმე ქინძისთავები, რომლებიც გამოყენებული იქნება SD ბარათისა და RTC პინისთვის. ამის შემდეგ თქვენ შეგიძლიათ ნახოთ ამ პროექტისთვის გამოყენებული ცვლადები.

3. პროექტი იყენებს რამდენიმე მეთოდს და ყველა მათგანი განკუთვნილია DHT სენსორთან მუშაობისთვის. თუ თქვენ მუშაობთ პროექტზე ამ ტიპის სენსორით, შეგიძლიათ გამოიყენოთ იგი. ეს მეთოდებია getTemperature (), getMidTemperature (), getHumidity (), getMidHumidity (), readSensorData (), printLcdTemperature (), printHumidity (), printLcdMidTemperature (), printMidHumidity ().

4. კონფიგურაციაში არის რამდენიმე რამ, რაც საჭიროა გასაკეთებლად. უპირველეს ყოვლისა, თქვენ უნდა განსაზღვროთ დრო. რადგან ჩვენ ვიყენებთ RTC– ს, ჩვენ გვსურს გვქონდეს შესაბამისი დრო, როდესაც ჩვენი Arduino ინახავს მონაცემებს სენსორისგან. ეს ნაწილი იქნება კოდირებული. თუ თქვენ აკეთებთ კომენტარს //RTC.adjust(DateTime(_DATE_, _TIME_)); ხაზი, რომლის დროსაც შეგიძლიათ დაადგინოთ თქვენი პროექტი. მას შემდეგ რაც სათანადო დროს დანიშნავთ, შეგიძლიათ კვლავ გააკეთოთ კომენტარი ამ ნაწილის შესახებ და შეგიძლიათ გამოიყენოთ თქვენი არდუინო კომპიუტერის გარეშე. ეს მაგარია, რადგან თქვენ შეგიძლიათ გამოიყენოთ თქვენი ტემპერატურის სენსორი სხვა ოთახში და თვალყური ადევნოთ ტემპერატურას თქვენი კომპიუტერის გარეშე. მეორე ნაწილი, რომელიც უნდა გაკეთდეს, არის თქვენი SD ბარათის გამოყენება, რომელზედაც იქნება შენახული მონაცემები. ფარი შეეცდება დაინახოს, არის თუ არა ბარათი და მოახდინოს მისი ინიციალიზაცია. თუ არ არსებობს შეცდომის შეტყობინება ნაჩვენები იქნება სერიულ ეკრანზე Arduino IDE– ზე.

დაყენებისას არის პირველი ნაბიჯი, სადაც ჩვენ ვმუშაობთ ფაილების ჩაწერაზე მეხსიერების ბარათზე. პირველი რაც ბარათზე წერია არის ფაილი datalog.txt. ამჯერად ჩვენ ვწერთ მხოლოდ მოწყობილობის შესვლის დროს და ასევე ვქმნით სახელების მცირე რიგს (ცვლადები, რომლებიც გამოიყენება დაზოგვისთვის და ასევე დრო)

კონფიგურაციის ბოლო ნაწილი არის LCD და dht სენსორის ინიციალიზაცია.

5. მარყუჟის ნაწილი არის პროექტის ძირითადი ნაწილი. ამჯერად სენსორთან მუშაობა ძალიან ადვილია, რადგან ის იყენებს მხოლოდ ერთ მეთოდს, რომელიც იკითხება იმ მნიშვნელობებით, რასაც სენსორი იღებს. LCD ნაწილი ასევე ძალიან ადვილია. შემდეგი ნაწილი არის ის, რაც აქ უნდა ავხსნათ. ეს პროექტი რაღაცას აკეთებს ყოველ წუთს. ერთი წუთის განმავლობაში ინახავს მონაცემებს datalog.txt. ამ მონაცემების წაკითხვა შეუძლია ვინმეს, რომელმაც არ იცის არდუინოს დაპროგრამება. Მეორეს მხრივ. ერთი წუთი დაზოგავს ტემპერატურა datalogB.txt და ერთი წუთი დაზოგავს ტენიანობას datalogC.txt. ჩვენ გვჭირდება datalogB.txt და dataLogC.txt, ასე რომ ჩვენ შეგვიძლია წავიკითხოთ ჩვენი მეხსიერების ბარათიდან. ასე რომ, თუ ჩვენ გავაგრძელებთ ჩვენი კოდის კითხვას, თქვენ ასევე ნახავთ, რომ ეს კოდი კითხულობს ტემპერატურისა და ტენიანობის საშუალო მნიშვნელობებს და ინახავს მათ ერთ რიგში. მინდოდა გამეკეთებინა მოწყობილობა, რომელიც ფაილში მხოლოდ ბოლო ათ ციფრს იღებს. ასე რომ, ეს პროექტი ყოველთვის გადის ბარათის მნიშვნელობებს და ინახავს ბოლო ათ ციფრს. ეს ციფრები რიგებში ინახება, რათა ჩვენ მივიღოთ ტემპერატურის საშუალო მნიშვნელობა და ტენიანობის საშუალო მნიშვნელობა. რომლებიც ასევე ნაჩვენებია ჩვენს LCD– ზე გარკვეული დროის შემდეგ

ნაბიჯი 4: შემდგომში გამოიყენეთ არდუინო და SD ბარათი

არდუინოს და SD ბარათის გამოყენება შემდეგ
არდუინოს და SD ბარათის გამოყენება შემდეგ
არდუინოს და SD ბარათის გამოყენება შემდეგ
არდუინოს და SD ბარათის გამოყენება შემდეგ
არდუინოს და SD ბარათის გამოყენება შემდეგ
არდუინოს და SD ბარათის გამოყენება შემდეგ
არდუინოს და SD ბარათის გამოყენება შემდეგ
არდუინოს და SD ბარათის გამოყენება შემდეგ

აქ შეგიძლიათ ნახოთ რა არის ნაჩვენები LCD– ზე და როგორ მუშაობს პროექტი. ასევე, აქ ვდებ ჩემს მიერ შენახული მონაცემთა კატალოგის სურათებს. Datalog.txt არის ის, რომლის საშუალებითაც შეგიძლიათ ნახოთ როგორ ინახავს მოწყობილობა ყველა მნიშვნელობას. DatalogB და datalogC არსებობს, ასე რომ თქვენ შეგიძლიათ ნახოთ როგორ გამოიყურება ისინი. ისინი ასეა დაწერილი, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ ანალიზის მეთოდი და წაიკითხოთ მონაცემები უპრობლემოდ.

ამ პროექტის მთავარი მიზანი არის sd ბარათზე არსებული ფაილების მანიპულირება. ზოგჯერ ჩვენ გვჭირდება მოწყობილობები, რომლებსაც შეუძლიათ მეხსიერების შენახვა და კითხვის ტემპერატურაც ერთ დროს არის მსგავსი. კარგი ის არის, რომ ამ მოწყობილობაზე გამოყენებულ ფარს ასევე აქვს RTC მოდული, რაც საუკეთესოა დროისათვის. როდესაც ჩვენ შეგვიძლია წავიკითხოთ რეალურ დროში და შევინახოთ მონაცემები ჩვენი მოწყობილობით, ეს ნიშნავს რომ ის შეიძლება იყოს პორტატული.

მადლობა ბიჭებს, რომ წაიკითხეთ ეს პროექტი. ვიმედოვნებ, რომ ის დაგეხმარება. Გმადლობთ.

ყველა პატივისცემით სებასტიან

გირჩევთ: