Мазмуну:

Arduino бир нече файлдар менен иштөө (ОКУУ/ЖАЗУУ): 4 кадам
Arduino бир нече файлдар менен иштөө (ОКУУ/ЖАЗУУ): 4 кадам

Video: Arduino бир нече файлдар менен иштөө (ОКУУ/ЖАЗУУ): 4 кадам

Video: Arduino бир нече файлдар менен иштөө (ОКУУ/ЖАЗУУ): 4 кадам
Video: How to use TM1637 4 digits seven segment display with Arduino 2024, Ноябрь
Anonim
Arduino бир нече файл менен иштөө (ОКУ/ЖАЗ)
Arduino бир нече файл менен иштөө (ОКУ/ЖАЗ)

салам балдар

Бүгүн мен сизге маалыматтарды сактай турган RTC калканы менен иштеген Arduino долбоорун сунуштайм. Бул долбоордун негизги милдети sc картада сакталган бир нече файлдар менен иштөө. Бул долбоор үч файл менен иштеген кодду камтыйт, алар түздөн -түз SD картасында arduino жана RTC калканы менен сакталат. Бул долбоор DataLogger калканы менен иштегендиктен, бул маалыматтар сиздин компьютериңиздегидей эле бир убакта сакталат.

Бул долбоор менин акыркы долбоорумдун жакшыртылган версиясы. Бул долбоорду Arduino Data Logger Shield Small Project аты менен көрсөтмө берүүчү сайттан тапса болот. Эгерде сизде бул долбоорду түшүнүүдө кандайдыр бир көйгөйлөр бар болсо, мен сизге эң биринчисин оңой көрүүнү сунуштайм.

Бул эки долбоордун негизги айырмасы, бул долбоор 3 текст файлын колдонот, бул жолу биз алардын экөөнөн маалыматтарды окуйбуз. Биз маалыматтарды окуй алгандыктан, биз SD картада сакталган нымдуулуктун жана температуранын орточо маанисин ала алабыз. Бул ошондой эле Arduino менен туташкан ЖКда көрсөтүлөт.

Дагы бир жолу, эгер сиз Arduinoдо жаңы болсоңуз жана бул сиздин DataLogger колдонгон биринчи долбооруңуз болсо, мен барып, бул шилтемени текшерүүнү сунуштайм https://www.instructables.com/id/Arduino-Data-Logg… жана баарын алганда мында, бул жакка келип, дагы бир аз көңүл ач. Баштайлы.

1 -кадам: Бөлүктөр

Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр

Мен мындай долбоорлорду жазган сайын, мен бул долбоор менен колдонгон бардык бөлүктөрүмдөн баштайм. Мен ошондой эле бул долбоорду бир аз башкача кыла турган сенсорлорду сунуштайм.

Бөлүктөр:

  • Arduino uno rev3
  • Arduino маалыматтарды жазуучу калкан
  • SD эстутум картасы
  • LCD 1602 жашыл дисплей I2C менен (башка дисплейди колдонсоңуз болот)
  • DHT22 (DHT11 да жакшы иштейт, бирок анын тактыгы dht22 менен бирдей эмес)
  • Бир нече секирүүчү кабелдер
  • Breadboard
  • Батарея 9v

Сиз кээ бир бөлүктөрүн өзгөртө аласыз. Бул долбоордун жакшы жагы, аны башка сенсорлордон маалыматтарды сактоо үчүн колдонсо болот. Мен түтүн сенсору же инфракызыл сенсор менен иштегенге аракет кылмакмын. Бул башка сенсорлор менен иштейт. Сиз ошондой эле Arduino'ну өзгөртө аласыз, бирок эстен чыгарбаңыз, Arduino - бул маалыматтарды каттоочуга ылайыктуу.

2 -кадам: Бардык бөлүктөрдү бириктирүү

Бардык бөлүктөрдү бириктирүү
Бардык бөлүктөрдү бириктирүү

Бул туташуу оңой. Атүгүл схемасы дагы жеңил проект менен бирдей. Бирок мен айтаар элем, сиз кайсы пинди колдонооруңузга көңүл бурууңуз керек. Ар бир жолу Data Loggerдин маалымат баракчасын текшерип, кайсы казыктарды колдонуу эң ылайыктуу экенин билиңиз, анткени мен эстегендей, кээ бир казыктар мурунтан эле аныкталган жана мен сенсорумду аныкталган казыктардын бирине колдонууга аракет кылсам, ал иштеген жок.

Бул кадамдын чокусунда сиз фризинг менен жасалган схеманы көрө аласыз. Оңой нерсе, сиз маалымат жазгычыңызды ардуинонун үстүнө туташтырышыңыз керек. SD картаңызды маалымат каттоочуга туташтырыңыз, жана акыркы кылышыңыз керек болгон нерсе dht сенсорун жана LCDди туташтыруу. Ардуинодон 5Vны нан үчүн + бөлүгүнө, GND бөлүгүнө колдонобуз жана ошол линияны ээрчүү менен сен да + сенсор линиясын жана лкдды нан тактасынын линиясына туташтырасың. Ошол эле нерсе - бөлүктөр, алар жөн гана кийинки сызыкка барат -. Dht сенсору бул жолу пин 7ге туташкан. LCD A4 жана A5. Easy менен туташкан, туурабы?

ЖК:

  • VCC 5V чейин (нан бөлүгүндө+ бөлүгү)
  • GND to gnd (-нан бөлүгүндө)
  • SDA аналогдук пинге A4
  • А5 аналогдук пинге SCL

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 керек, андыктан эс тутум картабыздан окуй алабыз. Ошентип, эгерде биз өзүбүздүн кодду окууну уланта берсек, анда бул код температуранын жана нымдуулуктун орто маанилерин окуп, аларды бир катарда сактаганын көрө аласыз. Мен файлдагы акыркы он цифраны камтыган түзмөк жасагым келди. Ошентип, бул долбоор ар дайым картадан алынган баалуулуктар аркылуу иштейт жана акыркы он цифраны сактайт. Бул цифралар саптарда сакталат, ошондуктан биз температуранын орточо маанисин жана нымдуулуктун орточо маанисин ала алабыз. Кайсы бир убакыттан кийин биздин ЖКда көрсөтүлөт

4 -кадам: Андан кийин Arduino жана SD картасын колдонуу

Андан кийин Arduino жана SD картасын колдонуу
Андан кийин Arduino жана SD картасын колдонуу
Андан кийин Arduino жана SD картасын колдонуу
Андан кийин Arduino жана SD картасын колдонуу
Андан кийин Arduino жана SD картасын колдонуу
Андан кийин Arduino жана SD картасын колдонуу
Андан кийин Arduino жана SD картасын колдонуу
Андан кийин Arduino жана SD картасын колдонуу

Бул жерде сиз ЖКда эмне көрсөтүлөрүн жана долбоордун кантип иштээрин көрө аласыз. Ошондой эле бул жерге мен сактап койгон маалыматтардын сүрөттөрүн коюп жатам. Datalog.txt - бул түзмөктүн ар бир баалуулукту кантип сактаганын көрүү үчүн колдонула турган нерсе. DatalogB жана datalogC бар, андыктан алардын кандай экенин көрө аласыз. Алар ушинтип жазылган, андыктан талдоо ыкмасын колдонуп, маалыматтарды эч кандай көйгөйсүз окуй аласыз.

Бул долбоордун негизги максаты - sd картасындагы файлдарды башкаруу. Кээде бизге эс тутумду сактаган түзмөктөр керек болот жана окуу температурасы дагы бир жолу ушундай болот. Жакшы нерсе, бул түзмөктө колдонулган калкан, ошондой эле убакыт үчүн эң жакшы нерсе болгон RTC модулуна ээ. Качан реалдуу убакытта окуй алабыз жана маалыматтарды түзмөгүбүз менен сактай алабыз, бул анын портативдүү болушу мүмкүн экенин билдирет.

Бул долбоорду окуган балдарга рахмат. Мен сизге жардам берет деп үмүттөнөм. Рахмат.

Бардык урматтоо менен Себастьян

Сунушталууда: