Përmbajtje:

Regjistruesi i të dhënave me burim të hapur (OPENSDL): 5 hapa (me fotografi)
Regjistruesi i të dhënave me burim të hapur (OPENSDL): 5 hapa (me fotografi)

Video: Regjistruesi i të dhënave me burim të hapur (OPENSDL): 5 hapa (me fotografi)

Video: Regjistruesi i të dhënave me burim të hapur (OPENSDL): 5 hapa (me fotografi)
Video: CS50 2015 - Week 7 2024, Nëntor
Anonim
Regjistruesi i të dhënave me burim të hapur (OPENSDL)
Regjistruesi i të dhënave me burim të hapur (OPENSDL)
Regjistruesi i të dhënave me burim të hapur (OPENSDL)
Regjistruesi i të dhënave me burim të hapur (OPENSDL)
Regjistruesi i të dhënave me burim të hapur (OPENSDL)
Regjistruesi i të dhënave me burim të hapur (OPENSDL)

Qëllimi i këtij projekti është të hartojë, ndërtojë dhe testojë një sistem matjeje me kosto të ulët për studimet e Vlerësimit të Performancës së Ndërtesës që përfshin të paktën temperaturën, lagështinë relative, ndriçimin dhe është i zgjerueshëm edhe për sensorë shtesë, dhe të zhvillojë prototipin e këtyre pajisjeve Me

Kjo rezulton në një sistem të personalizuar dhe të përballueshëm që u mundëson palëve të interesuara të kryejnë matjet e nevojshme për vlerësimin e performancës së ndërtimit në një mënyrë efikase dhe të përballueshme duke regjistruar parametra të shumtë mjedisorë në të njëjtën kohë. Regjistruesi i të dhënave me burim të hapur (OPENSDL) i zhvilluar u krahasua me një regjistrues të të dhënave HOBO U12-012. Ky sistem tregtar i disponueshëm komercial, mund të masë 3 parametra, përkatësisht- temperaturën, RH dhe ndriçimin, dhe një kanal të jashtëm për llojet e tjera të sensorëve. Një pajisje tjetër ndijimi do të kërkohej për matjen e çdo parametri tjetër. Karakteristikat e parametrave që do të maten janë të kufizuara në pajisjet dhe softuerin e pronarit, i cili e kufizon sistemin në matjen e parametrave të caktuar me saktësi specifike. Një HOBO U12-012 kushton rreth 13, 000 (185 dollarë amerikanë), ndërsa OPENSDL kushton 4, 605 ₹ (66 dollarë amerikanë), që është pothuajse një e treta e homologut tregtar.

Një regjistrues i të dhënave me burim të hapur për monitorimin e temperaturës, RH dhe niveleve të dritës (ndriçimi) me ndihmën e një Arduino Uno Ky është një DIY për zhvillimin e regjistruesit të të dhënave OPENSDL.

Koha e kërkuar: 2-3 orë për saldim, 5 orë për paketim (4 orë - printim 3D dhe 1 orë për prerje me lazer) Aftësitë e kërkuara: Saldimi, pak ose aspak njohuri në programim dhe elektronikë

Pjesët e kërkuara:

  1. Arduino Uno me kabllo
  2. Mburoja e regjistruesit të të dhënave
  3. Bateri me qeliza monedhe CR1220
  4. BME280 bordi i thyerjes së sensorit të presionit të lagështisë së temperaturës
  5. Tabela e thyerjes së sensorit të dritës TSL2561
  6. Moduli Wi-Fi ESP01-8266
  7. Lidhës mashkull dhe femër RJ-9
  8. Mburoja e grumbullimit të kokave për Arduino
  9. Kartë memorie SD (çdo kapacitet)
  10. Tabela vektoriale (26 x 18 vrima)
  11. 8 bateri AA Mbajtës i baterisë

Mjetet e kërkuara:

  • Hekur bashkues (35W)
  • Teli i saldimit
  • Prerës i telave
  • Mjet krimb
  • Multimetër

Softueri i kërkuar: Arduino IDE (1.0.5 ose më i lartë)

Bibliotekat Arduino të përdorura:

  • Bibliotekë me tela
  • Biblioteka SparkFun TSL2561
  • Biblioteka me shumë sensorë Cactus BME280
  • Biblioteka e kartave SD
  • Biblioteka SPI
  • Biblioteka RTC

Shënim: Sensori BME280 është një sensor shumë i saktë, i temperaturës, lagështisë relative dhe presionit nga Bosch. Në mënyrë të ngjashme, DS1307 është një orë e saktë në kohë reale nga Maxim dhe TSL2561 është një sensor i saktë i dritës. Ka alternativa më pak të shtrenjta dhe më pak të sakta për këto produkte, por ky tutorial kishte për qëllim njerëzit që ishin të interesuar në mbledhjen e të dhënave për vlerësimin e performancës së ndërtesës dhe aplikimet e monitorimit të ndërtesave që kërkojnë saktësi dhe saktësi të lartë. Kjo do të thotë që çdo konfigurim specifik i harduerit dhe konfigurimi i softuerit (bibliotekat, kodi i programit) ishte menduar rreptësisht vetëm për produktet e specifikuara.

Hapi 1: Asambleja

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi

Mburoja e regjistruesit të të dhënave mund të vendoset lehtësisht në majë të bordit Arduino Uno. Ky mburojë siguron aftësitë e regjistrimit të të dhënave (ruajtja e kohës dhe ruajtja e të dhënave). Mburoja duhej bërë pirg. Një bateri e monedhës CR1220 duhej të futet në vendin e rrumbullakët të siguruar për të mbajtur orën në punë edhe kur Arduino është i fikur. Karta e kujtesës SD duhet të futet në folenë e dhënë të kartës në bord. Një mburojë unike e personalizuar u zhvillua duke përdorur kunjat femra të lidhësit RJ-9 dhe titujt e grumbullimit të mburojës Arduino. Kokat e duhura u ngjitën në vendet e duhura në mënyrë që mburoja të përshtatet në mënyrë të përkryer në tabelën Arduino. Arduino ka 18 kunja në njërën anë dhe 14 kunja në anën tjetër. Titujt me të njëjtin numër kunjash u përdorën në të njëjtën distancë (18 kunja larg) si në Arduino. Hapësira shtesë e mbetur ngjitur me titujt u përdor për vendosjen e lidhësit RJ-9.

Titujt ishin mënyra më e mirë për të përdorur kunjat e kërkuara, duke i bërë ato ende të disponueshme për përdorim për përbërësit e tjerë. Sensorët e përdorur ndjekin protokollin e komunikimit I2C, i cili kërkon 4 kunja nga Arduino, përkatësisht: SDA (gjithashtu në dispozicion si A4), SCL (gjithashtu në dispozicion si A5), 3.3V & GND. Katër telat që dalin nga lidhësi RJ-9 u ngjitën në këto katër kunja të kokës. Numri i lidhësve RJ-9 të kërkuar varet nga numri i sensorëve. Në këtë projekt, u përdorën 3 lidhje RJ-9 (dy për BME280 dhe një për TSL2561). Katër telat që dilnin nga lidhësi RJ-9 ishin të koduar me ngjyra, dhe secili tel me ngjyrë ishte caktuar një kunj specifik për të gjithë lidhësit RJ-9. Duhet të theksohet se kodi i ngjyrave mund të ndryshojë në copa të ndryshme RJ-9. Në një rast të tillë, vendndodhja e telit në lidhës duhet të shënohet. Lidhësi RJ-9, pas bashkimit, është bërë të ngjitet në tabelën vektoriale duke përdorur një Feviqwik, në mënyrë që të fiksohet në sipërfaqe. Këto lidhje mund të verifikohen duke përdorur mënyrën e vazhdimësisë në multimetër. Kur jeni në modalitetin e vazhdimësisë, multimetri duhet të tregojë rezistencë zero. Lidhni një nga sondat e multimetrit në kunjin e bashkuar dhe një sondë tjetër në kunjin brenda lidhësit RJ-9. Multimetri duhet të lëshojë një ton, që do të thotë se nyjet e saldimit janë të duhura, dhe lidhjet janë bërë siç duhet. Nëse toni nuk lëshohet, kontrolloni nyjet e saldimit. Në mënyrë të ngjashme, lidhni lidhësin RJ-9 me tela të njëjtë që lidhen me të njëjtat vrima në bordet e thyerjes së sensorit, domethënë A4, A5, 3.3V & GND. Sensori BME280 mbështet dy adresa I2C, që do të thotë se dy sensorë BME280 mund të lidhen me të njëjtin kontrollues menjëherë. Ndërsa e bëni këtë, adresa e njërit prej sensorëve duhet të ndryshohet duke kapërcyer jastëkët e saldimit në sensor. Një çip i lidhjes pa tel ESP-01 kërkonte lidhjet e mëposhtme me Arduino.

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

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

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

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

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

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

Shënim:- LED-të e shumta në Arduino Uno u hoqën për të përmirësuar jetën e baterisë. Treguesi i energjisë LED, RX dhe TX LED u hoqën duke ngrohur nyjet e saldimit dhe duke e shtyrë LED me pincë.

Hapi 2: Vendosni IDE dhe Bibliotekat

Para se të bëni ndonjë programim, Arduino IDE (Mjedisi i Zhvillimit të Integruar) duhet të shkarkohet. Programimi është bërë në këtë platformë. Bibliotekave të ndryshme iu kërkua të ndërveprojnë me përbërës të ndryshëm të OPENSDL. Bibliotekat e mëposhtme u përdorën për përbërësit e dhënë.

Komponenti ----------------------------------------------------- --------------Librari

Sensori i temperaturës & RH BME280 --------------------------------- Cactus_io_BME280_I2C.h

Sensori i dritës ---------------------------------------------------- ---------------- SparkFun TSL2561.h

Ora në kohë reale -------------------------------------------------- ------------- RTClib.h

Foleja e kartës SD -------------------------------------------------- ------------- SD.h

Lidhja I2C ---------------------------------------------------- ------------- Tela.h

Një bibliotekë e veçantë për komunikimin me ESP01 nuk kërkohet pasi kodi i ngarkuar në Arduino ka komanda AT, të cilat dërgohen në monitorin serik, nga ku ESP-01 merr udhëzimet. Pra, në thelb, komandat AT me të cilat funksionon ESP01, shtypen në Serial Monitor, të cilat merren si komandë hyrëse nga ESP-01. Për instalimin e këtyre bibliotekave, pasi t'i keni shkarkuar, hapni Arduino IDE, shkoni te Sketch -> Include Library -> Add. Zip bibliotekë dhe zgjidhni bibliotekat e shkarkuara.

Hapi 3: Programimi i sistemit

Programimi i Sistemit
Programimi i Sistemit

Para se të programoni OPENSDL, lidhni Arduino me një kompjuter portativ. Pasi të lidheni, shkoni te Tools -> Port dhe zgjidhni portën COM në të cilën është lidhur OPENSDL. Gjithashtu, sigurohuni që te Mjetet -> Bordet, të jetë zgjedhur Arduino Uno.

OPENSDL është zhvilluar për të punuar në 2 mënyra. Në modalitetin e parë, ai ruan të dhënat në kartën SD në mburojën e regjistruesit të të dhënave. Në modalitetin e dytë, ai dërgon të dhënat përmes internetit në një faqe në internet duke përdorur një çip Wi-Fi ESP-01. Programi për të dyja mënyrat është i ndryshëm. Këto rreshta të kodit mund të kopjohen dhe ngjiten drejtpërdrejt në redaktorin Arduino IDE dhe të përdoren drejtpërdrejt. Pasi të futemi në kod, ne duhet të bëjmë disa personalizime sipas nevojave tona:

  1. Ndryshoni manualisht vlerën e vonesës (1000) në fund të kodit për të ndryshuar intervalin e regjistrimit. Vlera 1000 përfaqëson intervalin në milisekonda.
  2. Ndryshoni rreshtin e kodit i cili thotë mySensorData = SD.open ("Logged01.csv", FILE_WRITE); dhe zëvendësoni Logged01 me emrin e skedarit me emrin e skedarit të dëshiruar. Zgjatja e skedarit gjithashtu mund të ndryshohet duke modifikuar shtesën.csv menjëherë pas emrit të skedarit.
  3. Ekuacioni i kalibrimit i arritur duke gjetur korrelacionin midis sensorit Master/referencë dhe BME280 do të ndryshojë me secilin sensor. Zëvendësoni këtë linjë të kodit me ekuacionin për kalibrimin e sensorëve: Serial.print ((1.0533*t2) -2.2374)-për sensorin me adresë të paracaktuar (0x77), ku t2 është vlera e lexuar nga sensori i temperaturës.

Një program i veçantë është siguruar për programimin e mënyrës së dytë të disponueshme të OPENSDL, e cila është sistemi pa tel. ESP-01 duhet të lidhet me OPENSDL sipas lidhjeve siç shpjegohet në Hapin #2. Pas përfundimit të lidhjeve, lidhni Arduino me laptopin dhe ngarkoni një skicë të zbrazët në Arduino. Vendoseni ESP-01 në modalitetin e përditësimit dhe përditësoni firmuerin në përditësimin më të fundit të disponueshëm. Pas azhurnimit, sigurohuni që të lidhni pinin e rivendosur të Arduino me pinin 3.3V, i cili anashkalon ngarkuesin Arduino

Hapi 4: Fabrikimi

Fabrikim
Fabrikim
Fabrikim
Fabrikim
Fabrikim
Fabrikim

Një rrethim për OPENSDL u krijua për mbrojtje dhe për të përmirësuar estetikën. Zorrat u zhvilluan me printim 3D duke përdorur materialin PLA, dhe shtresa për mikrokontrolluesin u zhvillua duke prerë lazer fletën e MDF dhe duke i ngjitur pjesët së bashku. Modelet e printuara 3D u zhvilluan duke përdorur softuerin SketchUp, dhe vizatimet 2D dxf për prerjen me lazer u krijuan duke përdorur AutoCAD.

Për printimin 3D, skedarët STL të prodhuar duke përdorur SketchUp u hapën dhe u kontrolluan në programin Ultimaker Cura 3.2.1. Sigurohuni që përdoret materiali PLA dhe hunda e printerit të përdorur është për printim 0.4 mm. Pllaka e ndërtimit të printerit 3D mund të kërkojë zam për të ngjitur objektin e printuar 3D. Por kur printimi është i plotë, zam krijon një ngjitje të fortë midis objektit të shtypur dhe pllakës së ndërtimit.

Hapi 5: Kodi

Kodi (skedarët.ino) është bërë për të punuar në programin Arduino IDE. Këtu është lidhja me faqen time në Github për kodin dhe detaje të tjera.

github.com/arihant93/OPENSDL

Ju lutemi mos hezitoni të bëni pyetje në lidhje me projektin.

Faleminderit.

Recommended: