Мазмуну:

Open Source Data Logger (OPENSDL): 5 кадам (Сүрөттөр менен)
Open Source Data Logger (OPENSDL): 5 кадам (Сүрөттөр менен)

Video: Open Source Data Logger (OPENSDL): 5 кадам (Сүрөттөр менен)

Video: Open Source Data Logger (OPENSDL): 5 кадам (Сүрөттөр менен)
Video: Как установить Ambari в Ubuntu 2024, Ноябрь
Anonim
Open Source Data Logger (OPENSDL)
Open Source Data Logger (OPENSDL)
Open Source Data Logger (OPENSDL)
Open Source Data Logger (OPENSDL)
Open Source Data Logger (OPENSDL)
Open Source Data Logger (OPENSDL)

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

Бул кызыкдар тараптарга бир эле учурда бир нече экологиялык параметрлерди каттоо аркылуу эффективдүү жана жеткиликтүү түрдө курулушту баалоо үчүн керектүү өлчөөлөрдү жүргүзүүгө мүмкүндүк берген ыңгайлаштырылган жана жеткиликтүү системаны алып келет. Open Source Data Logger (OPENSDL) иштелип чыккан маалымат HOBO U12-012 маалымат каттоочу менен салыштырылган. Бул коммерциялык системада 3 параметрди өлчөөгө болот, атап айтканда- температура, RH жана жарык, жана башка сенсор түрлөрү үчүн бир тышкы канал. Башка параметрлерди өлчөө үчүн башка сезгич түзүлүш талап кылынат. Өлчөөгө тийиш болгон параметрлердин мүнөздөмөлөрү менчик аппараттык жана программалык камсыздоо менен чектелген, бул системаны белгилүү бир тактык менен айрым параметрлерди өлчөө менен чектейт. HOBO U12-012 баасы болжол менен 13 000 (185 АКШ доллары) турат, ал эми OPENSDLдин баасы ₹ 4, 605 (66 АКШ доллары) турат, бул коммерциялык кесиптешинин үчтөн бир бөлүгүн түзөт.

Arduino Uno жардамы менен температураны, RH жана жарык деңгээлин (жарыктуулукту) көзөмөлдөө үчүн ачык булак маалымат жазгыч Бул OPENSDL маалымат жазгычын иштеп чыгуу үчүн DIY.

Убакыт талап кылынат: ширетүү үчүн 2-3 саат, таңгактоо үчүн 5 саат (4 саат - 3D басып чыгаруу жана лазер менен кесүү үчүн 1 саат) Керектүү көндүмдөр: Лайкоо, программалоо жана электроника боюнча аз же жок

Бөлүктөр талап кылынат:

  1. Arduino Uno кабели менен
  2. Маалыматты каттоочу калкан
  3. CR1220 тыйын батареясы
  4. BME280 температурасы нымдуулук басым сенсорунун сынык тактасы
  5. TSL2561 жарык сенсорунун сынык тактасы
  6. ESP01-8266 Wi-Fi модулу
  7. RJ-9 эркек жана ургаачы туташтыргычы
  8. Shield Stacking Headers for Arduino
  9. SD эстутум картасы (каалаган сыйымдуулук)
  10. Вектордук такта (26 x 18 тешик)
  11. 8 АА батареялары Батарея кармагыч

Керектүү куралдар:

  • Паяльник (35W)
  • Solder зым
  • Зым кескич
  • Кримпер куралы
  • Мультиметр

Программалык камсыздоо талап кылынат: Arduino IDE (1.0.5 же андан жогору)

Arduino китепканалары колдонулат:

  • Зым китепканасы
  • SparkFun TSL2561 китепканасы
  • Cactus BME280 мультисенсордук китепкана
  • SD карталар китепканасы
  • SPI китепканасы
  • RTC китепканасы

Эскертүү: BME280 сенсору Boschтун абдан так, температурасы, салыштырмалуу нымдуулугу жана басым сенсору. Ошо сыяктуу эле, DS1307 Максимдин так реалдуу убакыт сааты жана TSL2561 так жарык сенсору. Бул продуктылар үчүн анча кымбат эмес жана азыраак альтернативалар бар, бирок бул окуу куралы жогорку тактыкты жана тактыкты талап кылган курулуштун иштешин баалоо жана курулуш мониторинги үчүн маалыматтарды чогултууга кызыккан адамдарга багытталган. Бул кандайдыр бир конкреттүү аппараттык орнотуу жана программалык камсыздоону (китепканалар, программанын коду) катуу көрсөтүлгөн продукциялар үчүн гана арналганын билдирет.

1 -кадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Маалыматтарды каттоочу калкан Arduino Uno тактасынын үстүнө оңой эле салынышы мүмкүн. Бул калкан маалыматтарды каттоо мүмкүнчүлүгүн камсыз кылат (убакытты сактоо жана маалыматтарды сактоо). Калканды үйүп салыш керек болчу. CR1220 монеталуу батареяны Arduino өчүрүлгөндө да сааттын иштеши үчүн берилген тегерек уячасына киргизүү керек болчу. SD эстутум картасы берилген борттогу картанын уячасына салынышы керек. Уникалдуу ыңгайлаштырылган калкан RJ-9 туташтыргычы аялдын казыктарын жана Arduino калканынын үстүнкү баштарын колдонуу менен иштелип чыккан. Тиешелүү баштар калкан Arduino тактайына эң сонун дал келгендиктен, тиешелүү жерлерде ширетилген. Arduino бир жагында 18 казык, экинчи жагында 14 төөнөгүч бар. Бирдей сандагы төөнөгүчтөр Arduinoдогудай эле аралыкта (18 казык айырмаланып) колдонулган. Аталыштарга чектеш калган кошумча орун RJ-9 туташтыргычын жайгаштыруу үчүн колдонулган.

Аталыштар керектүү төөнөгүчтөрдү колдонуунун эң жакшы жолу болгон, ошол эле учурда аларды башка компоненттерге колдонуу үчүн жеткиликтүү кылган. Колдонулган сенсорлор I2C байланыш протоколуна ылайык иштешет, бул Arduinoдон 4 казыкты талап кылат, атап айтканда: SDA (A4 катары да жеткиликтүү), SCL (A5 катары да жеткиликтүү), 3.3V & GND. RJ-9 туташтыргычынан чыккан төрт зым ушул төрт баштуу казыкка ширетилген. RJ-9 туташтыргычтарынын саны сенсорлордун санына жараша болот. Бул долбоордо 3 RJ-9 туташтыргычы колдонулган (экөө BME280 үчүн жана бирөө TSL2561 үчүн). RJ-9 туташтыргычынан чыккан төрт зым түстүү коддолгон жана ар бир түстүү зым бардык RJ-9 коннекторлору үчүн конкреттүү төөнөгүч менен белгиленген. Бул түс коду ар кандай RJ-9 даана боюнча айырмаланышы мүмкүн экенин белгилей кетүү керек. Мындай учурда, туташтыргычтагы зымдын ордун белгилеш керек. RJ-9 туташтыргычы, ширетүүдөн кийин, февиквиктин жардамы менен вектордук тактага жабыштырылып, анын бетине бекитилет. Бул байланыштарды мультиметрдеги үзгүлтүксүз режимди колдонуу менен текшерсе болот. Үзгүлтүксүз режимде мультиметр нөлдүк каршылык көрсөтүшү керек. Мультиметрдин зонддорунун бирин ширетилген пинге, дагы бир иликтөөнү RJ-9 туташтыргычынын ичине туташтырыңыз. Мультиметр обон чыгарышы керек, демек, ширетүүчү түйүндөр туура жана байланыштар туура жасалган. Эгерде тон чыгарылбаса, анда ширетүүчү жерлерди текшериңиз. Ошо сыяктуу эле, RJ-9 туташтыргычын ошол эле зымдары бар, сенсордун сынык такталарында бир эле тешикчелерге туташтырат, б.а. A4, A5, 3.3V & GND. BME280 сенсору эки I2C дарегин колдойт, башкача айтканда, эки BME280 сенсорун бир эле контролерге туташтырса болот. Муну аткарып жатканда, сенсорлордун биринин дарегин сенсордун үстүндөгү ширеткичтер менен байланыштырып өзгөртүү керек. An ESP-01 зымсыз туташуу чипи Arduino менен төмөнкү байланыштарды талап кылган.

ESP-01 --------- Arduino Uno

10 -------------------- TX

11 -------------------- RX

Vcc ---------------- CH_PD

Vcc ------------------- Vcc

GND ----------------- GND

Эскертүү:- Arduino Unoдогу бир нече LEDлар батареянын иштөө мөөнөтүн жакшыртуу үчүн алынып салынды. Күч көрсөткүчү LED, RX жана TX диоддору ширетүүчү түйүндөрдү жылытуу жана LEDди форспс менен түртүү аркылуу алынып салынды.

2 -кадам: IDEлерди жана китепканаларды орнотуңуз

Ар кандай программалоону жасоодон мурун Arduino IDE (Integrated Development Environment) жүктөлүп алынышы керек. Программалоо ушул платформада жасалган. OPENSDLдин ар кандай компоненттери менен өз ара аракеттенүү үчүн ар кандай китепканалар талап кылынган. Берилген компоненттер үчүн төмөнкү китепканалар колдонулган.

Компонент ------------------------------------------------- -------------- Китепкана

BME280 температурасы жана RH сенсору --------------------------------- Cactus_io_BME280_I2C.h

Жарык сенсору ------------------------------------------------ ---------------- SparkFun TSL2561.h

Реалдуу убакыт сааты ----------------------------------------------- ------------- RTClib.h

SD карта розеткасы ----------------------------------------------- ------------- SD.h

I2C туташуусу ------------------------------------------------ ------------- Wire.h

ESP01 менен байланышуу үчүн өзүнчө китепкана талап кылынбайт, анткени Arduinoдо жүктөлгөн код AT сериялы мониторго жөнөтүлгөн AT командаларына ээ, ал жерден ESP-01 көрсөтмөлөрдү алат. Ошентип, негизинен, ESP01 иштеген AT буйруктары Serial Monitorго басылат, алар ESP-01 тарабынан киргизилген буйрук катары кабыл алынат. Бул китепканаларды орнотуу үчүн, аларды жүктөп алгандан кийин, Arduino IDE ачыңыз, Sketch -> Китепкананы кошуу -> Zip китепканасын кошуу бөлүмүнө өтүңүз жана жүктөлгөн китепканаларды тандаңыз.

3 -кадам: Системаны программалоо

Системаны программалоо
Системаны программалоо

OPENSDL программалоодон мурун, Arduino'ду ноутбукка туташтырыңыз. Туташкандан кийин, Tools -> Portго өтүп, OPENSDL туташкан COM портун тандаңыз. Ошондой эле, Куралдар -> Такталардын астында Arduino Uno тандалганын текшериңиз.

OPENSDL 2 режимде иштөө үчүн иштелип чыккан. Биринчи режимде, SD картадагы маалыматтарды маалыматтарды каттоочу калканга сактайт. Экинчи режимде, бул интернет аркылуу маалыматтарды ESP-01 Wi-Fi чипин колдонуу аркылуу вебсайтка жөнөтөт. Эки режимдин программасы эки башка. Бул коддорду Arduino IDE редакторуна түз көчүрүп, чаптап, түз колдонсо болот. Кодго киргенден кийин, биз муктаждыктарыбызга жараша бир нече өзгөчөлөштүрүүлөрдү жасашыбыз керек:

  1. Кирүү интервалын өзгөртүү үчүн коддун аягында кечигүү (1000) маанисин кол менен өзгөртүү. 1000 мааниси интервалды миллисекундта билдирет.
  2. MySensorData = SD.open ("Logged01.csv", FILE_WRITE) деп жазылган коддун линиясын түзөтүңүз; жана Logged01ди каалаган файл аталышынын файл аты менен алмаштырыңыз. Файлдын кеңейтүүсүн файлдын аталышынан кийин.csv кеңейтүүсүн өзгөртүү аркылуу да өзгөртүүгө болот.
  3. Master/шилтеме сенсор менен BME280 ортосундагы байланышты табуу аркылуу жетишилген калибрлөө теңдемеси ар бир сенсорго жараша өзгөрөт. Бул кодду сенсорлорду калибрлөө теңдемеси менен алмаштырыңыз: Serial.print ((1.0533*t2) -2.2374)-демейки дареги бар сенсор үчүн (0x77), мында t2-температура сенсорунан окулган мааниси.

OPENSDLдин экинчи жеткиликтүү режимин программалоо үчүн өзүнчө программа каралган, бул зымсыз система. ESP-01 2-кадамда түшүндүрүлгөндөй, OPENSDLге туташуусу керек. Байланыштарды бүтүргөндөн кийин, Arduino -ны ноутбукка туташтырыңыз жана Arduinoго бош эскизди жүктөңүз. ESP-01ди жаңыртуу режимине коюп, программаны акыркы жеткиликтүү жаңыртууга жаңыртыңыз. Жаңыртуудан кийин, Arduino жүктөөчүсүн айланып өтүүчү 3.3V пин менен Arduino -нун баштапкы абалга келтирүүчү пинин туташтырыңыз.

4 -кадам: даярдоо

Өндүрүү
Өндүрүү
Өндүрүү
Өндүрүү
Өндүрүү
Өндүрүү

OPENSDL үчүн корпус коргоо жана эстетиканы жакшыртуу үчүн түзүлгөн. Корпустар PLA материалын колдонуу менен 3D басып чыгаруу менен иштелип чыккан, ал эми микроконтроллердин корпусу MDF баракты лазер менен кесүү жана бөлүктөрдү жабыштыруу жолу менен иштелип чыккан. 3D басылган моделдер SketchUp программасынын жардамы менен иштелип чыккан, жана лазердик кесүү үчүн 2D dxf чиймелери AutoCADдын жардамы менен түзүлгөн.

3D басып чыгаруу үчүн, SketchUp аркылуу өндүрүлгөн STL файлдары Ultimaker Cura 3.2.1 программасында ачылып, текшерилген. PLA материалынын колдонулгандыгын текшериңиз, жана принтердин колдонулган саптамасы 0,4 мм басып чыгаруу үчүн. 3D принтердин конструкциясы 3D басылган объектти чаптоо үчүн клейди талап кылышы мүмкүн. Бирок басып чыгаруу бүткөндөн кийин, клей басылган объект менен курулуш плитасынын ортосунда күчтүү адгезияны пайда кылат.

5 -кадам: Код

Код (.ino файлдары) Arduino IDE программасында иштөө үчүн жасалган. Бул жерде код жана башка маалымат үчүн Github баракчама шилтеме.

github.com/arihant93/OPENSDL

Сураныч, долбоор боюнча суроолорду берүүдөн тартынбаңыз.

Рахмат.

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