Tartalomjegyzék:

Nyílt forráskódú adatgyűjtő (OPENSDL): 5 lépés (képekkel)
Nyílt forráskódú adatgyűjtő (OPENSDL): 5 lépés (képekkel)

Videó: Nyílt forráskódú adatgyűjtő (OPENSDL): 5 lépés (képekkel)

Videó: Nyílt forráskódú adatgyűjtő (OPENSDL): 5 lépés (képekkel)
Videó: Веб-программирование – информатика для руководителей бизнеса 2016 2024, November
Anonim
Nyílt forráskódú adatgyűjtő (OPENSDL)
Nyílt forráskódú adatgyűjtő (OPENSDL)
Nyílt forráskódú adatgyűjtő (OPENSDL)
Nyílt forráskódú adatgyűjtő (OPENSDL)
Nyílt forráskódú adatgyűjtő (OPENSDL)
Nyílt forráskódú adatgyűjtő (OPENSDL)

A projekt célja egy alacsony költségű mérési rendszer megtervezése, kivitelezése és tesztelése az épület teljesítményértékelési tanulmányaihoz, amely legalább hőmérsékletet, relatív páratartalmat, megvilágítást tartalmaz, és további érzékelőkre is kiterjeszthető, valamint ezen eszközök prototípusának kifejlesztése.

Ez egy személyre szabott és megfizethető rendszert eredményez, amely lehetővé teszi az érdekelt felek számára, hogy hatékonyan és megfizethető módon végezzék el az épület teljesítményértékeléséhez szükséges méréseket több környezeti paraméter egyidejű naplózásával. A nyílt forráskódú adatgyűjtőt (OPENSDL) összehasonlították a HOBO U12-012 adatgyűjtővel. Ez a kereskedelemben kapható megfelelő rendszer 3 paramétert képes mérni, nevezetesen: hőmérsékletet, relatív páratartalmat és megvilágítást, valamint egy külső csatornát más típusú érzékelőkhöz. Más paraméterek méréséhez más érzékelőre lenne szükség. A mérendő paraméterek jellemzői a saját hardverre és szoftverre korlátozódnak, ami korlátozza a rendszert bizonyos paraméterek meghatározott pontosságú mérésére. A HOBO U12-012 ára körülbelül 13 000 ₹ (185 USD), míg az OPENSDL ára 4 605 ₹ (66 USD), ami a kereskedelmi partner majdnem egyharmada.

Nyílt forráskódú adatgyűjtő a hőmérséklet, az relatív páratartalom és a fényszintek (megvilágítás) megfigyelésére az Arduino Uno segítségével. Ez egy barkács az OPENSDL adatgyűjtő fejlesztéséhez.

Szükséges idő: 2-3 óra forrasztás, 5 óra csomagolás (4 óra - 3D nyomtatás és 1 óra lézeres vágás) Szükséges készségek: Forrasztás, kevés vagy semmilyen programozási és elektronikai ismeret

Szükséges alkatrészek:

  1. Arduino Uno kábellel
  2. Adatgyűjtő pajzs
  3. CR1220 gombelem
  4. BME280 hőmérséklet páratartalom nyomásérzékelő leválasztó tábla
  5. TSL2561 fényérzékelő megszakító tábla
  6. ESP01-8266 Wi-Fi modul
  7. RJ-9 dugó
  8. Pajzshalmozó fejlécek az Arduino számára
  9. SD memóriakártya (bármilyen kapacitás)
  10. Vektoros tábla (26 x 18 lyuk)
  11. 8 db AA elem elemtartó

Szükséges eszközök:

  • Forrasztópáka (35W)
  • Forrasztó huzal
  • Drótvágó
  • Crimper szerszám
  • Multiméter

Szükséges szoftver: Arduino IDE (1.0.5 vagy újabb)

Arduino használt könyvtárak:

  • Drótkönyvtár
  • SparkFun TSL2561 könyvtár
  • Cactus BME280 multiszenzoros könyvtár
  • SD kártya könyvtár
  • SPI könyvtár
  • RTC könyvtár

Megjegyzés: A BME280 érzékelő egy nagyon pontos Bosch hőmérséklet-, relatív páratartalom- és nyomásérzékelő. Hasonlóképpen, a DS1307 pontos valós idejű óra a Maxim -tól, a TSL2561 pedig pontos fényérzékelő. Vannak olcsóbb és kevésbé pontos alternatívák ezekhez a termékekhez, de ez az oktatóanyag azoknak készült, akik érdeklődtek az adatok gyűjtése iránt az épület teljesítményértékeléséhez és a nagy pontosságot igénylő épületfelügyeleti alkalmazásokhoz. Ez azt jelenti, hogy bármilyen hardver- és szoftverbeállítás (könyvtárak, programkód) szigorúan csak a meghatározott termékekre vonatkozik.

1. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Az adatgyűjtő pajzs könnyen egymásra helyezhető az Arduino Uno tábla tetején. Ez a pajzs biztosítja az adatnaplózási képességeket (időmegőrzés és adattárolás). A pajzsot egymásra kellett rakni. CR1220 gombelemet kellett behelyezni a mellékelt kerek nyílásba, hogy az óra akkor is működjön, ha az Arduino ki van kapcsolva. Az SD memóriakártyát be kell helyezni a fedélzeti kártyanyílásba. Egyedi, testreszabott árnyékolást fejlesztettek ki RJ-9 csatlakozóhüvelyek és Arduino árnyékoló halmozófej segítségével. A megfelelő fejléceket a megfelelő helyeken forrasztották, így a pajzs tökéletesen illeszkedik az Arduino táblához. Az Arduino egyik oldalán 18, a másik oldalon 14 csap található. Az azonos számú tűvel ellátott fejléceket ugyanolyan távolságban használták (egymástól 18 csap), mint az Arduino esetében. A fejlécekkel szomszédos további helyet az RJ-9 csatlakozó elhelyezésére használták fel.

A fejlécek voltak a legjobb módja a szükséges csapok használatának, miközben továbbra is rendelkezésre álltak más alkatrészek számára. A használt érzékelők az I2C kommunikációs protokollt követik, amelyhez 4 érintkező szükséges az Arduino -tól, nevezetesen: SDA (A4 -es változatban is kapható), SCL (A5 -ként is kapható), 3.3V és GND. Az RJ-9 csatlakozóból kilépő négy vezetéket ebbe a négy fejrészbe forrasztották. A szükséges RJ-9 csatlakozók száma az érzékelők számától függ. Ebben a projektben 3 RJ-9 csatlakozót használtak (kettőt a BME280-hoz és egyet a TSL2561-hez). Az RJ-9 csatlakozóból kilépő négy vezeték színkóddal volt ellátva, és minden színvezetéket az összes RJ-9 csatlakozóhoz meghatározott tűvel jelöltek ki. Meg kell jegyezni, hogy a színkód különböző RJ-9 darabonként eltérő lehet. Ebben az esetben meg kell jegyezni a vezeték helyét a csatlakozón. Az RJ-9 csatlakozót a forrasztás után úgy hozták létre, hogy a Feviqwik segítségével a vektorlapra tapadjon, hogy rögzüljön a felületen. Ezeket a kapcsolatokat a multiméter folytonossági módjával lehet ellenőrizni. Folyamatossági módban a multiméternek nulla ellenállást kell mutatnia. Csatlakoztassa a multiméter egyik szondáját a forrasztott csaphoz, egy másikat pedig az RJ-9 csatlakozó belsejében lévő csaphoz. A multiméternek hangot kell kibocsátania, ami azt jelenti, hogy a forrasztási kötések megfelelőek, és a csatlakozások megfelelően lettek kialakítva. Ha a hang nem hallható, ellenőrizze a forrasztási kötéseket. Hasonlóképpen, forrasztja az RJ-9 csatlakozót ugyanazokkal a vezetékekkel, amelyek ugyanazokhoz a lyukakhoz csatlakoznak az érzékelő törőlapjain, azaz A4, A5, 3.3V és GND. A BME280 érzékelő két I2C címet támogat, vagyis két BME280 érzékelő csatlakoztatható egyszerre ugyanahhoz a vezérlőhöz. Eközben az egyik érzékelő címét meg kell változtatni az érzékelő forrasztópákainak áthidalásával. Az ESP-01 vezeték nélküli kapcsolati chip az alábbi kapcsolatokat igényelte az Arduino-val.

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

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

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

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

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

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

Megjegyzés:- Az Arduino Uno több LED-jét eltávolították az akkumulátor élettartamának javítása érdekében. A tápellátást jelző LED, az RX és a TX LED -eket eltávolították a forrasztási kötések felmelegítésével és a LED csipesszel történő megnyomásával.

2. lépés: Az IDE -k és könyvtárak beállítása

Programozás előtt le kell tölteni az Arduino IDE -t (integrált fejlesztői környezet). A programozás ezen a platformon történt. Különböző könyvtáraknak kellett együttműködniük az OPENSDL különböző összetevőivel. Az alábbi komponensekhez a következő könyvtárakat használtuk.

Alkatrész ------------------------------------------------- --------------Könyvtár

BME280 hőmérséklet és RH érzékelő --------------------------------- Cactus_io_BME280_I2C.h

Fényérzékelő------------------------------------------------ ---------------- SparkFun TSL2561.h

Valós idejű óra ----------------------------------------------- ------------- RTClib.h

SD kártya foglalat ----------------------------------------------- ------------- SD.h

I2C csatlakozás ------------------------------------------------ ------------- Vezeték.h

Az ESP01-gyel való kommunikációhoz nincs szükség külön könyvtárra, mivel az Arduino-ba feltöltött kód AT parancsokkal rendelkezik, amelyeket a soros monitor küld, ahonnan az ESP-01 veszi az utasításokat. Tehát alapvetően az AT parancsok, amelyekkel az ESP01 fut, a soros monitorba kerülnek nyomtatásra, amelyeket az ESP-01 beviteli parancsként vesz fel. E könyvtárak telepítéséhez a letöltés után nyissa meg az Arduino IDE -t, lépjen a Vázlat -> Könyvtár beillesztése ->. Zip könyvtár hozzáadása menüpontra, és válassza ki a letöltött könyvtárakat.

3. lépés: A rendszer programozása

A rendszer programozása
A rendszer programozása

Az OPENSDL programozása előtt csatlakoztassa az Arduino -t egy laptophoz. A csatlakoztatás után lépjen az Eszközök -> Port menübe, és válassza ki azt a COM portot, amelyhez az OPENSDL csatlakozik. Győződjön meg arról is, hogy az Eszközök -> Táblák alatt az Arduino Uno van kiválasztva.

Az OPENSDL -t 2 üzemmódban való használatra fejlesztették ki. Az első módban az adatokat az SD -kártyán tárolja az adatgyűjtő pajzsán. Második módban az adatokat az interneten keresztül egy weboldalra küldi egy ESP-01 Wi-Fi chip használatával. Mindkét mód programja eltérő. Ezek a kódsorok közvetlenül másolhatók és beilleszthetők az Arduino IDE szerkesztőbe, és közvetlenül felhasználhatók. Miután beírtuk a kódot, szükségünk van néhány testreszabásra:

  1. A naplózási intervallum megváltoztatásához manuálisan módosítsa a késleltetés értékét (1000) a kód végén. Az 1000 érték az intervallumot jelzi ezredmásodpercben.
  2. Szerkessze a kód sorát, amely azt írja, hogy mySensorData = SD.open ("Logged01.csv", FILE_WRITE); és cserélje ki a Logged01 -et a kívánt fájlnév fájlnevével. A fájl kiterjesztése is megváltoztatható a.csv kiterjesztés módosításával közvetlenül a fájlnév után.
  3. A mester/referencia érzékelő és a BME280 közötti korreláció megtalálásával elért kalibrációs egyenlet minden érzékelőnél eltérő lesz. Cserélje ki ezt a kódsort az érzékelők kalibrálására szolgáló egyenlettel: Sorozatnyomat ((1.0533*t2) -2.2374)-alapértelmezett címmel (0x77) rendelkező érzékelő esetén, ahol t2 a hőmérséklet-érzékelőből kiolvasott érték.

Külön program áll rendelkezésre az OPENSDL második rendelkezésre álló módjának programozására, amely a vezeték nélküli rendszer. Az ESP-01-t a 2. lépésben leírtak szerint kell csatlakoztatni az OPENSDL-hez. A kapcsolatok befejezése után csatlakoztassa az Arduino -t a laptophoz, és töltsön fel egy üres vázlatot az Arduino -ba. Állítsa az ESP-01-t frissítési módba, és frissítse a firmware-t a legújabb elérhető frissítésre. A frissítés után feltétlenül csatlakoztassa az Arduino visszaállító tüskéjét a 3,3 V -os tűhöz, amely megkerüli az Arduino rendszerbetöltőt

4. lépés: Gyártás

Gyártás
Gyártás
Gyártás
Gyártás
Gyártás
Gyártás

Az OPENSDL számára védőburkolatot hoztak létre a védelem és az esztétika javítása érdekében. A burkolatokat 3D nyomtatással fejlesztették ki PLA anyag felhasználásával, a mikrokontroller burkolatát pedig az MDF lemez lézeres vágásával és a darabok összeragasztásával. A 3D nyomtatott modelleket SketchUp szoftverrel, a 2D dxf rajzokat lézervágáshoz az AutoCAD segítségével készítették el.

3D nyomtatáshoz a SketchUp használatával előállított STL fájlokat megnyitották és ellenőrizték az Ultimaker Cura 3.2.1 szoftverben. Győződjön meg arról, hogy PLA anyagot használ, és a használt nyomtató fúvókája 0,4 mm -es nyomtatáshoz készült. A 3D nyomtató építőlemeze ragasztót igényelhet a 3D nyomtatott tárgy ragasztásához. De amikor a nyomtatás befejeződött, a ragasztó erős tapadást hoz létre a nyomtatott tárgy és az építőlemez között.

5. lépés: Kód

A kód (.ino fájlok) az Arduino IDE szoftverben működik. Itt található a link a Github oldalamhoz, ahol a kód és egyéb részletek találhatók.

github.com/arihant93/OPENSDL

Ne habozzon feltenni kérdéseket a projektről.

Kösz.

Ajánlott: