Բովանդակություն:

Բաց կոդով տվյալների գրանցիչ (OPENSDL) ՝ 5 քայլ (նկարներով)
Բաց կոդով տվյալների գրանցիչ (OPENSDL) ՝ 5 քայլ (նկարներով)

Video: Բաց կոդով տվյալների գրանցիչ (OPENSDL) ՝ 5 քայլ (նկարներով)

Video: Բաց կոդով տվյալների գրանցիչ (OPENSDL) ՝ 5 քայլ (նկարներով)
Video: C# Entity - 04."Ծրագրային կոդով տվյալների բազայի աղյուսակների ռելացիա" 2024, Հուլիսի
Anonim
Բաց կոդով տվյալների գրանցիչ (OPENSDL)
Բաց կոդով տվյալների գրանցիչ (OPENSDL)
Բաց կոդով տվյալների գրանցիչ (OPENSDL)
Բաց կոդով տվյալների գրանցիչ (OPENSDL)
Բաց կոդով տվյալների գրանցիչ (OPENSDL)
Բաց կոդով տվյալների գրանցիչ (OPENSDL)

Այս նախագծի նպատակն է նախագծել, կառուցել և փորձարկել շենքերի գործունեության գնահատման ցածր ծախսերի չափման համակարգ, որը ներառում է առնվազն ջերմաստիճան, հարաբերական խոնավություն, լուսավորություն և ընդարձակելի լրացուցիչ սենսորների համար, և մշակել այդ սարքերի նախատիպը:.

Սա հանգեցնում է անհատականացված և մատչելի համակարգի, որը շահագրգիռ կողմերին հնարավորություն է տալիս արդյունավետ և մատչելի կերպով իրականացնել շենքերի կատարողականի գնահատման համար անհրաժեշտ չափումները `միանգամից մի քանի բնապահպանական պարամետրեր մուտքագրելով: Բաց կոդով տվյալների անտառահատը (OPENSDL) համեմատվել է HOBO U12-012 տվյալների անտառահատիչի հետ: Առևտրային հասանելի նմանատիպ համակարգը կարող է չափել 3 պարամետր, այն է `ջերմաստիճան, RH և լուսավորություն, և մեկ արտաքին ալիք սենսորների այլ տեսակների համար: Otherանկացած այլ պարամետրի չափման համար կպահանջվեր այլ զգայարան: Չափման ենթակա պարամետրերի բնութագրերը սահմանափակվում են սեփական սարքավորումներով և ծրագրերով, ինչը սահմանափակում է համակարգը որոշակի պարամետրերի չափումը հատուկ ճշգրտությամբ: HOBO U12-012- ի արժեքը մոտ 13 000 ֆունտ ստեռլինգ է (185 ԱՄՆ դոլար), մինչդեռ OPENSDL- ն արժե 4 605 ֆունտ ստեռլինգ (66 դոլար), ինչը առևտրային գործընկերոջ գրեթե մեկ երրորդն է:

Arduino Uno- ի օգնությամբ ջերմաստիճանի, RH- ի և լուսավորության մակարդակի (լուսավորության) մոնիտորինգի համար բաց կոդով տվյալների գրանցիչ Սա DIY է OPENSDL տվյալների անտառահատիչը մշակելու համար:

Պահանջվող ժամանակը ՝ 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. Վահանը հավաքում է վերնագրեր Arduino- ի համար
  9. SD հիշողության քարտ (ցանկացած հզորություն)
  10. Վեկտորային տախտակ (26 x 18 անցք)
  11. 8 AA մարտկոց Մարտկոցի սեփականատեր

Պահանջվող գործիքներ.

  • Sոդման երկաթ (35 Վտ)
  • Sոդման մետաղալար
  • Մետաղալար կտրիչ
  • Rimալքավոր գործիք
  • Բազմաչափ

Պահանջվում է ծրագրակազմ ՝ Arduino IDE (1.0.5 կամ ավելի բարձր)

Arduino գրադարաններն օգտագործել են.

  • Մետաղալար գրադարան
  • SparkFun TSL2561 գրադարան
  • Cactus BME280 բազմազգ գրադարան
  • SD քարտերի գրադարան
  • SPI գրադարան
  • RTC գրադարան

Նշում. BME280 սենսորը Bosch- ի շատ ճշգրիտ, ջերմաստիճանի, հարաբերական խոնավության և ճնշման ցուցիչ է: Նմանապես, DS1307- ը Maxim- ի իրական ժամանակի ճշգրիտ ժամացույցն է, իսկ TSL2561- ը ճշգրիտ լույսի ցուցիչ է: Այս ապրանքների համար կան ավելի թանկ և ավելի քիչ ճշգրիտ այլընտրանքներ, բայց այս ձեռնարկը ուղղված էր այն մարդկանց, ովքեր հետաքրքրված էին շենքերի կատարման գնահատման և շենքերի մոնիտորինգի տվյալների հավաքագրմամբ, որոնք պահանջում են բարձր ճշգրտություն և ճշգրտություն: Սա նշանակում է, որ ցանկացած հատուկ սարքավորման և ծրագրակազմի տեղադրում (գրադարաններ, ծրագրի ծածկագիր) խստորեն նախատեսված էր միայն նշված ապրանքների համար:

Քայլ 1: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Տվյալների գրանցման վահանը կարելի է հեշտությամբ դնել Arduino Uno տախտակի վերևում: Այս վահանը ապահովում է տվյալների մուտքագրման հնարավորությունները (ժամանակի պահպանում և տվյալների պահպանում): Վահանը պետք է կուտակվեր: CR1220 մետաղադրամի մարտկոցը պետք է տեղադրվեր կլոր անցքի մեջ, որը նախատեսված էր ժամացույցը աշխատեցնելու համար, նույնիսկ երբ Arduino- ն անջատված է: SD հիշողության քարտը պետք է տեղադրվի տրամադրված բորտ քարտի անցքի մեջ: RJ-9 միակցիչ իգական կապում և Arduino վահանի վերնագրեր օգտագործելով ՝ ստեղծվել է յուրահատուկ հարմարեցված վահան: Համապատասխան վերնագրերը զոդվեցին համապատասխան վայրերում, որպեսզի վահանը հիանալի տեղավորվի Arduino- ի տախտակի վրա: Arduino- ն մի կողմում ունի 18 կապում, իսկ մյուս կողմում `14 կապում: Նույն թվով կապում վերնագրերն օգտագործվել են նույն հեռավորության վրա (18 կապում իրարից), ինչպես Arduino- ում: Վերնագրերին կից մնացած լրացուցիչ տարածքը օգտագործվել է RJ-9 միակցիչը տեղադրելու համար:

Վերնագրերը պահանջվող կապումներն օգտագործելու լավագույն միջոցն էին, մինչդեռ դրանք դեռ հասանելի դարձնելու համար այլ բաղադրիչներին: Օգտագործված սենսորները հետևում են I2C հաղորդակցության արձանագրությանը, որը պահանջում է 4 կապում Arduino- ից, այն է ՝ SDA (մատչելի է նաև որպես A4), SCL (մատչելի է նաև A5), 3.3V և GND: RJ-9 միակցիչից դուրս եկող չորս լարերը զոդվեցին այս վերնագրի չորս քորոցների մեջ: Պահանջվող RJ-9 միակցիչների թիվը կախված է սենսորների քանակից: Այս նախագծում օգտագործվել է 3 RJ-9 միակցիչ (երկուսը BME280- ի և մեկը TSL2561- ի համար): RJ-9 միակցիչից դուրս եկող չորս լարերը գունավոր ծածկագրված էին, և յուրաքանչյուր գունավոր մետաղալար նշանակված էր հատուկ կապում RJ-9 միակցիչների համար: Պետք է նշել, որ RJ-9 տարբեր կտորների վրա գունային ծածկագիրը կարող է տարբեր լինել: Նման դեպքում միակցիչի վրա պետք է նշվի լարերի գտնվելու վայրը: RJ-9 միակցիչը, զոդումից հետո, կատարվել է Feviqwik- ի միջոցով վեկտորային տախտակի վրա կպչելու համար, որպեսզի այն ամրագրվի մակերեսի վրա: Այս կապերը կարող են հաստատվել `օգտագործելով բազմաչափի անընդհատության ռեժիմը: Շարունակականության ռեժիմում մուլտիմետրը պետք է ցույց տա զրո դիմադրություն: Մուլտիմետրի զոնդերից մեկը միացրեք եռակցված քորոցին, իսկ մյուսը ՝ RJ-9 միակցիչի ներսում գտնվող քորոցին: Մուլտիմետրը պետք է հնչերանգ տա, ինչը նշանակում է, որ զոդման հոդերը ճիշտ են, իսկ միացումները կատարվել են ճիշտ: Եթե տոնը չի արտանետվում, ստուգեք զոդման հոդերը: Նմանապես, RJ-9 միակցիչը միացրեք նույն լարերով, որոնք միանում են միևնույն անցքերին սենսորների ճեղքման տախտակների վրա, այսինքն ՝ A4, A5, 3.3V և GND: BME280 սենսորն ապահովում է երկու I2C հասցե, ինչը նշանակում է, որ երկու BME280 տվիչ կարող են միանգամից միացվել նույն կարգավորիչին: Մինչդեռ դա անում է, սենսորներից մեկի հասցեն պետք է փոխվի `սենսորի վրա ամրացնող բարձիկները կամրջելով: 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- ները հանվել են ՝ ամրացնելով զոդման հոդերը և LED- ը բռնակով մղելով:

Քայլ 2: Կարգավորեք IDE- ները և գրադարանները

Նախքան որևէ ծրագրավորում կատարելը, պետք է ներբեռնել Arduino IDE- ն (Ինտեգրված զարգացման միջավայր): Mingրագրավորումը կատարվել է այս հարթակում: Տարբեր գրադարաններ պահանջվեցին փոխգործակցել OPENSDL- ի տարբեր բաղադրիչների հետ: Տրված բաղադրիչների համար օգտագործվել են հետևյալ գրադարանները:

Բաղադրիչ ----------------------------------------------------- -------------- Գրադարան

BME280 ջերմաստիճանի և RH տվիչ --------------------------------- Cactus_io_BME280_I2C.h

Լույսի ցուցիչ ---------------------------------------------------- ---------------- SparkFun TSL2561.h

Իրական ժամանակի ժամացույց -------------------------------------------------- ------------- RTClib.h

SD քարտի վարդակից --------------------------------------------------- ------------- SD.h

I2C միացում ---------------------------------------------------- ------------- Wire.h

ESP01- ի հետ հաղորդակցվելու համար առանձին գրադարան չի պահանջվում, քանի որ Arduino- ում բեռնված կոդը ունի AT հրամաններ, որոնք ուղարկվում են սերիական մոնիտորին, որտեղից ESP-01- ը վերցնում է հրահանգները: Այսպիսով, հիմնականում, AT հրամանները, որոնցով աշխատում է ESP01- ը, տպվում են Սերիայի մոնիտորի մեջ, որոնք ընդունվում են որպես մուտքագրման հրաման ESP-01- ի կողմից: Այս գրադարանները տեղադրելու համար դրանք ներբեռնելուց հետո բացեք Arduino IDE- ն, գնացեք Sketch -> Include Library -> Add. Zip գրադարան և ընտրեք ներբեռնված գրադարանները:

Քայլ 3: Համակարգի ծրագրավորում

Համակարգի ծրագրավորում
Համակարգի ծրագրավորում

Նախքան OPENSDL- ի ծրագրավորումը, Arduino- ն միացրեք նոութբուքի հետ: Միանալուց հետո գնացեք Գործիքներ -> Պորտ և ընտրեք COM նավահանգիստը, որին միացված է OPENSDL- ը: Բացի այդ, համոզվեք, որ Գործիքներ -> Տախտակներ ընտրված է 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. Գլխավոր/տեղեկատու սենսորի և BME280- ի միջև հարաբերակցությունը գտնելու միջոցով ձեռք բերված ճշգրտման հավասարումը կտարբերվի յուրաքանչյուր սենսորի հետ: Կոդի այս տողը փոխարինեք սենսորների ճշգրտման հավասարմամբ. Serial.print ((1.0533*t2) -2.2374)-կանխադրված հասցեով (0x77) սենսորի համար, որտեղ t2- ը ջերմաստիճանի տվիչից կարդացված արժեքն է:

Առանձին ծրագիր է տրամադրվել OPENSDL- ի երկրորդ հասանելի ռեժիմի ծրագրավորման համար, որը անլար համակարգն է: ESP-01- ը պետք է միացված լինի OPENSDL- ին `ըստ կապերի, ինչպես բացատրված է Քայլ 2-ում: Միացումներն ավարտելուց հետո միացրեք Arduino- ն նոութբուքին և տեղադրեք դատարկ ուրվագիծ Arduino- ում: Տեղադրեք ESP-01- ը թարմացման ռեժիմում և թարմացրեք որոնվածը վերջին հասանելի թարմացմանը: Թարմացնելուց հետո համոզվեք, որ Arduino- ի զրոյական կապը միացրեք 3.3V պինին, որը շրջանցում է Arduino բեռնիչը

Քայլ 4: Պատրաստում

Հորինում
Հորինում
Հորինում
Հորինում
Հորինում
Հորինում

OPENSDL- ի պարիսպը ստեղծվել է պաշտպանության և գեղագիտության բարելավման համար: Պատյանները մշակվել են 3D տպագրությամբ ՝ օգտագործելով PLA նյութ, իսկ միկրոկառավարիչի պատյանը ՝ MDF թերթիկը լազերային կտրելով և կտորները սոսնձելով: 3D տպագիր մոդելները մշակվել են SketchUp ծրագրաշարի միջոցով, իսկ լազերային կտրման համար 2D dxf գծագրերը ՝ AutoCAD- ի միջոցով:

3D տպագրության համար SketchUp- ի միջոցով ստեղծված STL ֆայլերը բացվել և ստուգվել են Ultimaker Cura 3.2.1 ծրագրաշարում: Համոզվեք, որ օգտագործվում է PLA նյութ, և օգտագործված տպիչի վարդակը նախատեսված է 0.4 մմ տպագրության համար: Եռաչափ տպիչի կառուցման ափսեի համար կարող է պահանջվել սոսինձ `3D տպված առարկան կպցնելու համար: Բայց երբ տպագրությունն ավարտված է, սոսինձը ուժեղ կպչունություն է ստեղծում տպված առարկայի և շինության ափսեի միջև:

Քայլ 5: Կոդ

Կոդը (.ino ֆայլեր) ստեղծված է Arduino IDE ծրագրաշարում աշխատելու համար: Ահա իմ Github էջի հղումը ՝ ծածկագրի և այլ մանրամասների համար:

github.com/arihant93/OPENSDL

Խնդրում ենք մի հապաղեք հարցեր տալ նախագծի վերաբերյալ:

Շնորհակալություն

Խորհուրդ ենք տալիս: