Talaan ng mga Nilalaman:

Open Source Data Logger (OPENSDL): 5 Hakbang (na may Mga Larawan)
Open Source Data Logger (OPENSDL): 5 Hakbang (na may Mga Larawan)

Video: Open Source Data Logger (OPENSDL): 5 Hakbang (na may Mga Larawan)

Video: Open Source Data Logger (OPENSDL): 5 Hakbang (na may Mga Larawan)
Video: How Use Stable Diffusion, SDXL, ControlNet, LoRAs For FREE Without A GPU On Kaggle Like Google Colab 2024, Hulyo
Anonim
Buksan ang Source Data Logger (OPENSDL)
Buksan ang Source Data Logger (OPENSDL)
Buksan ang Source Data Logger (OPENSDL)
Buksan ang Source Data Logger (OPENSDL)
Buksan ang Source Data Logger (OPENSDL)
Buksan ang Source Data Logger (OPENSDL)

Ang layunin ng proyektong ito ay upang magdisenyo, bumuo, at subukan ang isang sistema ng pagsukat na may mababang gastos para sa mga pag-aaral ng Pagganap ng Pagganap ng Pagganap na may kasamang hindi bababa sa temperatura, kamag-anak na kahalumigmigan, pag-iilaw, at maaabot sa mga karagdagang sensor, at upang mabuo ang prototype ng mga aparatong ito.

Nagreresulta ito sa isang na-customize at abot-kayang sistema na nagbibigay-daan sa mga stakeholder na magsagawa ng mga pagsukat na kinakailangan para sa pagbuo ng pagsusuri sa pagganap sa isang mahusay at abot-kayang pamamaraan sa pamamagitan ng pag-log ng maraming mga parameter ng kapaligiran nang sabay-sabay. Ang binuo ng Open Source Data Logger (OPENSDL) na binuo ay inihambing kumpara sa isang HOBO U12-012 data logger. Ang magagamit na katapat na sistemang katapat na ito, ay maaaring sukatin ang 3 mga parameter, katulad ng- temperatura, RH, at pag-iilaw, at isang panlabas na channel para sa iba pang mga uri ng sensor. Ang isang kakaibang sensing device ay kinakailangan para sa pagsukat ng anumang iba pang parameter. Ang mga katangian ng mga parameter na sususukat ay limitado sa pagmamay-ari na hardware at software, na naghihigpit sa system sa pagsukat ng ilang mga parameter na may mga tiyak na katumpakan. Ang isang HOBO U12-012 ay nagkakahalaga ng humigit-kumulang na $ 13, 000 (US $ 185), samantalang ang OPENSDL ay nagkakahalaga ng $ 4, 605 (US $ 66), na halos isang-katlo ng katapat na pang-komersyo.

Isang bukas na mapagkukunan ng data logger para sa pagsubaybay sa temperatura, RH, at mga antas ng ilaw (pag-iilaw) sa tulong ng isang Arduino Uno Ito ay isang DIY para sa pagbuo ng OPENSDL data logger.

Kailangan ng oras: 2-3 oras para sa paghihinang, 5 oras para sa pagpapakete (4 na oras - Pag-print ng 3D, at 1 oras para sa paggupit ng laser) Kinakailangan na mga kasanayan: Paghinang, kaunti o walang kaalaman sa programa at electronics

Mga kinakailangang bahagi:

  1. Arduino Uno na may cable
  2. Data logger na kalasag
  3. CR1220 coin cell na baterya
  4. BME280 temperatura halumigmig presyon ng sensor breakout board
  5. TSL2561 light sensor breakout board
  6. Module ng Wi-Fi ng ESP01-8266
  7. RJ-9 lalaki at babaeng konektor
  8. Mga Shield stacking header para sa Arduino
  9. SD memory card (anumang kapasidad)
  10. Vector board (26 x 18 butas)
  11. 8 mga baterya ng AA baterya

Mga Kinakailangan na Tool:

  • Bakal na bakal (35W)
  • Wire ng panghinang
  • Pamutol ng wire
  • Tool na Crimper
  • Multimeter

Kinakailangan ang software: Arduino IDE (1.0.5 o mas mataas)

Ginamit ang mga library ng Arduino:

  • Library ng wire
  • SparkFun TSL2561 library
  • Cactus BME280 multisensor library
  • Aklatan ng SD card
  • Silid-aklatan ng SPI
  • Silid-aklatan ng RTC

Tandaan: Ang sensor ng BME280 ay isang napaka-tumpak, temperatura, kamag-anak halumigmig at presyon sensor mula sa Bosch. Katulad nito, ang DS1307 ay isang tumpak na real time na orasan mula sa Maxim at ang TSL2561 ay isang tumpak na light sensor. Mayroong mas mura at mas tumpak na mga kahalili para sa mga produktong ito, ngunit ang tutorial na ito ay naglalayon sa mga taong interesado sa pangangalap ng data para sa pagbuo ng pagsusuri sa pagganap at pagbuo ng mga application sa pagsubaybay na nangangailangan ng mataas na katumpakan at kawastuhan. Nangangahulugan ito na ang anumang tukoy na pag-setup ng hardware at pag-setup ng software (mga aklatan, code ng programa) ay mahigpit na nilalayon para sa mga tinukoy na produkto lamang.

Hakbang 1: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Ang kalasag ng logger ng data ay maaaring madaling isinalansan sa tuktok ng Arduino Uno board. Nagbibigay ang kalasag na ito ng mga kakayahan sa pag-log ng data (pagpapanatili ng oras at pag-iimbak ng data). Kailangang isalansan ang kalasag. Ang isang CR1220 coin cell baterya ay dapat na ipinasok sa puwang ng puwang na ibinigay upang mapanatiling tumatakbo ang orasan kahit na pinapatay ang Arduino. Ang SD memory card ay dapat na ipasok sa in-board card slot na ibinigay. Ang isang natatanging naka-customize na kalasag ay binuo sa pamamagitan ng paggamit ng RJ-9 na konektor na mga babaeng pin at Arduino Shield stacking header. Ang mga naaangkop na header ay solder sa mga naaangkop na lokasyon upang ang kalasag ay ganap na umaangkop sa Arduino board. Ang Arduino ay may 18 mga pin sa isang gilid at 14 na mga pin sa kabilang panig. Ang mga header na may parehong bilang ng mga pin ay ginamit sa parehong spacing (18 pin na hiwalay) tulad ng sa Arduino. Ang natitirang labis na puwang na katabi ng mga header ay ginamit para sa paglalagay ng RJ-9 na konektor.

Ang mga header ay ang pinakamahusay na paraan upang magamit ang mga kinakailangang mga pin, habang ginagawa itong magagamit pa rin para magamit sa iba pang mga bahagi. Ang mga sensor na ginamit ay sundin ang I2C na komunikasyon na proteksyon, na nangangailangan ng 4 na mga pin mula sa Arduino, katulad: SDA (magagamit din bilang A4), SCL (magagamit din bilang A5), 3.3V & GND. Ang apat na mga wire na lumabas mula sa konektor ng RJ-9 ay na-solder sa apat na mga pin ng header na ito. Ang bilang ng mga kinakailangang konektor ng RJ-9 ay depende sa bilang ng mga sensor. Sa proyektong ito, ginamit ang 3 mga konektor ng RJ-9 (dalawa para sa BME280 at isa para sa TSL2561). Ang apat na mga wire na lumabas sa konektor ng RJ-9 ay naka-code sa kulay, at ang bawat wire ng kulay ay itinalaga ng isang tukoy na pin para sa lahat ng mga konektor ng RJ-9. Dapat pansinin na ang kulay ng code ay maaaring magkakaiba sa iba't ibang mga piraso ng RJ-9. Sa ganitong kaso, dapat tandaan ang lokasyon ng kawad sa konektor. Ang RJ-9 na konektor, pagkatapos ng paghihinang, ay ginawa upang dumikit sa vector board gamit ang isang Feviqwik, upang maaayos ito sa ibabaw. Ang mga koneksyon na ito ay maaaring mapatunayan sa pamamagitan ng paggamit ng pagpapatuloy mode sa multimeter. Kapag sa mode na pagpapatuloy, dapat ipakita ng multimeter ang zero na paglaban. Ikonekta ang isa sa mga probe ng multimeter sa soldered pin, at isa pang pagsisiyasat sa pin sa loob ng konektor ng RJ-9. Ang multimeter ay dapat maglabas ng isang tono, na nangangahulugang ang mga solder joint ay tama, at ang mga koneksyon ay ginawa nang maayos. Kung ang tono ay hindi nilalabas, suriin ang mga joint ng solder. Katulad nito, maghinang ang RJ-9 na konektor na may parehong mga wire na kumokonekta sa parehong mga pinholes sa mga sensor breakout board, ibig sabihin A4, A5, 3.3V & GND. Sinusuportahan ng sensor ng BME280 ang dalawang mga address ng I2C, nangangahulugang ang dalawang mga sensor ng BME280 ay maaaring konektado sa parehong controller nang sabay-sabay. Habang ginagawa ito, ang address ng isa sa mga sensor ay dapat mabago sa pamamagitan ng bridging ng mga solder pad sa sensor. Kinakailangan ng isang ESP-01 wireless connection chip ang mga sumusunod na koneksyon sa Arduino.

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

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

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

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

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

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

Tandaan: - Ang maraming LEDs sa Arduino Uno ay inalis para sa pagpapabuti ng buhay ng baterya. Ang mga tagapagpahiwatig ng kuryente na LED, RX, at TX LED ay inalis sa pamamagitan ng pag-init ng mga solder joint at pagtulak sa LED na may mga forceps.

Hakbang 2: Pag-setup ng mga IDE at Library

Bago gumawa ng anumang programa, dapat na i-download ang Arduino IDE (Integrated Development Environment). Ang programa ay ginawa sa platform na ito. Kinakailangan ang iba't ibang mga silid aklatan upang makipag-ugnay sa iba't ibang mga bahagi ng OPENSDL. Ang mga sumusunod na aklatan ay ginamit para sa mga naibigay na sangkap.

Component ---- ------------ Library

Temperatura ng BME280 at sensor ng RH ------------------------------- Cactus_io_BME280_I2C.h

Banayad na sensor ---- ---------------- SparkFun TSL2561.h

Oras ng totoong oras ---- ------------- RTClib.h

Socket ng SD card ---- ------------- SD.h

Koneksyon sa I2C ------------- Wire.h

Ang isang hiwalay na silid-aklatan para sa pakikipag-usap sa ESP01 ay hindi kinakailangan dahil ang code na na-upload sa Arduino ay may mga utos na AT, na ipinadala sa serial monitor, mula sa kung saan kumukuha ng tagubilin ang ESP-01. Kaya, karaniwang, ang mga utos ng AT kung saan tumatakbo ang ESP01, ay naka-print sa Serial Monitor, na kinukuha bilang isang input na utos ng ESP-01. Para sa pag-install ng mga libraryong ito, pagkatapos i-download ang mga ito, buksan ang Arduino IDE, pumunta sa Sketch -> Isama ang Library -> Magdagdag ng. Zip library, at piliin ang na-download na mga library.

Hakbang 3: Programming ang System

Programming ang System
Programming ang System

Bago i-program ang OPENSDL, ikonekta ang Arduino gamit ang isang laptop. Pagkatapos kumonekta, pumunta sa Tools -> Port, at piliin ang COM port kung saan nakakonekta ang OPENSDL. Gayundin, tiyakin na sa ilalim ng Mga Tool -> Mga Lupon, napili ang Arduino Uno.

Ang OPENSDL ay binuo upang gumana sa 2 mga mode. Sa unang mode, iniimbak nito ang data sa SD card sa kalasag ng data logger. Sa pangalawang mode, ipinapadala nito ang data sa internet sa isang website sa pamamagitan ng paggamit ng isang chip na Wi-Fi ng ESP-01. Ang programa para sa parehong mga mode ay magkakaiba. Ang mga linya ng code na ito ay maaaring direktang makopya at mai-paste sa Arduino IDE editor, at direktang magamit. Kapag nasa code na, kailangan naming gumawa ng ilang mga pagpapasadya ayon sa aming mga pangangailangan:

  1. Mano-manong baguhin ang halaga ng pagkaantala (1000) sa dulo ng code upang baguhin ang agwat ng pag-log. Ang halagang 1000 ay kumakatawan sa agwat sa milliseconds.
  2. I-edit ang linya ng code na nagsasabing mySensorData = SD.open ("Logged01.csv", FILE_WRITE); at palitan ang Logged01 ng pangalan ng file ng nais na pangalan ng file. Ang extension ng file ay maaari ding mabago sa pamamagitan ng pagbabago ng.csv extension pagkatapos lamang ng pangalan ng file.
  3. Ang equation ng pagkakalibrate na nakamit sa pamamagitan ng paghahanap ng ugnayan sa pagitan ng Master / reference sensor at ang BME280 ay magkakaiba sa bawat sensor. Palitan ang linya ng code na ito sa equation para sa pag-calibrate ng mga sensor: Serial.print ((1.0533 * t2) -2.2374) - para sa sensor na may default address (0x77), kung saan ang t2 ay ang halagang binasa mula sa sensor ng temperatura.

Ang isang hiwalay na programa ay ibinigay para sa pag-program ng pangalawang magagamit na mode ng OPENSDL, na kung saan ay ang wireless system. Ang ESP-01 ay dapat na konektado sa OPENSDL alinsunod sa mga koneksyon tulad ng ipinaliwanag sa Hakbang # 2. Matapos makumpleto ang mga koneksyon, ikonekta ang Arduino sa laptop, at mag-upload ng isang blangko na sketch sa Arduino. Ilagay ang ESP-01 sa mode ng pag-update at i-update ang firmware sa pinakabagong magagamit na pag-update. Pagkatapos ng pag-update, tiyaking ikonekta ang reset pin ng Arduino gamit ang 3.3V pin, na pumasa sa Arduino bootloader

Hakbang 4: Pabrika

Katha
Katha
Katha
Katha
Katha
Katha

Ang isang enclosure para sa OPENSDL ay nilikha para sa proteksyon at upang mapabuti ang mga aesthetics. Ang mga casing ay binuo ng pag-print ng 3D gamit ang materyal na PLA, at ang pambalot para sa microcontroller ay binuo ng laser na pinuputol ang MDF sheet at pinagdikit ang mga piraso. Ang mga naka-print na modelo ng 3D ay binuo sa pamamagitan ng paggamit ng software ng SketchUp, at ang mga guhit na 2D dxf para sa paggupit ng laser ay nilikha sa pamamagitan ng paggamit ng AutoCAD.

Para sa pag-print ng 3D, ang mga STL file na ginawa sa pamamagitan ng paggamit ng SketchUp ay binuksan at naka-check sa Ultimaker Cura 3.2.1 software. Siguraduhing ginagamit ang materyal na PLA, at ang ginamit ng nguso ng gripo ay para sa 0.4mm na pag-print. Ang build plate ng 3D printer ay maaaring mangailangan ng pandikit upang idikit ang naka-print na bagay na 3D. Ngunit kapag nakumpleto ang pag-print, ang pandikit ay lumilikha ng isang malakas na pagdirikit sa pagitan ng naka-print na bagay at ng build plate.

Hakbang 5: Code

Ang code (.ino files) ay ginawa upang gumana sa Arduino IDE software. Narito ang link sa aking pahina ng Github para sa code at iba pang mga detalye.

github.com/arihant93/OPENSDL

Mangyaring huwag mag-atubiling magtanong tungkol sa proyekto.

Salamat

Inirerekumendang: