Obsah:

Open Source Data Logger (OPENSDL): 5 kroků (s obrázky)
Open Source Data Logger (OPENSDL): 5 kroků (s obrázky)

Video: Open Source Data Logger (OPENSDL): 5 kroků (s obrázky)

Video: Open Source Data Logger (OPENSDL): 5 kroků (s obrázky)
Video: Opensource & hodinky, opensource hodinky (Pavel Machek) 2024, Červenec
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)

Cílem tohoto projektu je navrhnout, postavit a otestovat levný měřicí systém pro studie hodnocení výkonnosti budov, který zahrnuje alespoň teplotu, relativní vlhkost, osvětlení a je rozšiřitelný o další senzory, a vyvinout prototyp těchto zařízení.

Výsledkem je přizpůsobený a cenově dostupný systém, který umožňuje zúčastněným stranám provádět měření potřebná pro hodnocení výkonnosti budov efektivním a dostupným způsobem zaznamenáváním více environmentálních parametrů najednou. Vyvinutý Open Source Data Logger (OPENSDL) byl porovnán s data loggerem HOBO U12-012. Tento komerčně dostupný protějšek systému může měřit 3 parametry, a to teplotu, relativní vlhkost a osvětlenost a jeden externí kanál pro jiné typy senzorů. Pro měření jakéhokoli jiného parametru by bylo zapotřebí jiné snímací zařízení. Charakteristiky měřených parametrů jsou omezeny na proprietární hardware a software, což omezuje systém na měření určitých parametrů se specifickou přesností. HOBO U12-012 stojí kolem 13 000 ₹ (185 USD), zatímco OPENSDL stojí ₹ 4 605 (66 USD), což je téměř jedna třetina komerčního protějšku.

Datalogger s otevřeným zdrojovým kódem pro sledování teploty, relativní vlhkosti a úrovně osvětlení (osvětlení) pomocí Arduino Uno Toto je kutilství pro vývoj záznamníku dat OPENSDL.

Potřebný čas: 2-3 hodiny na pájení, 5 hodin na balení (4 hodiny - 3D tisk a 1 hodina na řezání laserem) Požadované dovednosti: Pájení, malé nebo žádné znalosti programování a elektroniky

Potřebné díly:

  1. Arduino Uno s kabelem
  2. Štít záznamníku dat
  3. Knoflíková baterie CR1220
  4. Odlamovací deska snímače teploty a tlaku BME280
  5. Přerušovací deska světelného senzoru TSL2561
  6. ESP01-8266 Wi-Fi modul
  7. Konektor RJ-9 samec a samice
  8. Záhlaví stohování štítů pro Arduino
  9. Paměťová karta SD (libovolná kapacita)
  10. Vektorová deska (26 x 18 otvorů)
  11. 8 baterií AA Držák baterií

Požadované nástroje:

  • Páječka (35W)
  • Pájecí drát
  • Štípačky
  • Krimpovací nástroj
  • Multimetr

Potřebný software: Arduino IDE (1.0.5 nebo vyšší)

Použité knihovny Arduino:

  • Drátěná knihovna
  • Knihovna SparkFun TSL2561
  • Multisenzorová knihovna Cactus BME280
  • Knihovna karet SD
  • Knihovna SPI
  • Knihovna RTC

Poznámka: Senzor BME280 je velmi přesný snímač teploty, relativní vlhkosti a tlaku od společnosti Bosch. Podobně DS1307 jsou přesné hodiny reálného času od Maxim a TSL2561 je přesný světelný senzor. Pro tyto produkty existují levnější a méně přesné alternativy, ale tento tutoriál byl zaměřen na lidi, kteří se zajímali o shromažďování dat pro hodnocení výkonnosti budov a aplikace pro monitorování budov, které vyžadují vysokou přesnost a přesnost. To znamená, že jakékoli konkrétní nastavení hardwaru a nastavení softwaru (knihovny, programový kód) bylo přísně určeno pouze pro uvedené produkty.

Krok 1: Montáž

Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění

Štít ústředny lze snadno naskládat na desku Arduino Uno. Tento štít poskytuje možnosti protokolování dat (uchovávání času a ukládání dat). Štít musel být naskládán. Do kulatého slotu musela být vložena knoflíková baterie CR1220, aby hodiny běžely i při vypnutém Arduinu. Paměťová karta SD musí být vložena do určeného slotu na palubní kartě. Unikátní přizpůsobený štít byl vyvinut pomocí samičích pinů konektoru RJ-9 a stohovacích hlaviček Arduino. Příslušná záhlaví byla připájena na příslušných místech, aby štít perfektně seděl na desce Arduino. Arduino má 18 pinů na jedné straně a 14 pinů na druhé straně. Záhlaví se stejným počtem pinů byly použity se stejným rozestupem (18 pinů od sebe) jako na Arduinu. Zbývající prostor navíc vedle záhlaví byl použit pro umístění konektoru RJ-9.

Hlavičky byly nejlepším způsobem, jak použít požadované kolíky, a přitom je stále k dispozici pro použití pro jiné komponenty. Použitá čidla se řídí komunikačním protokolem I2C, který vyžaduje 4 piny od Arduina, konkrétně: SDA (k dispozici také jako A4), SCL (také k dispozici jako A5), 3,3 V a GND. Čtyři vodiče vycházející z konektoru RJ-9 byly připájeny do těchto čtyř kolíkových konektorů. Počet požadovaných konektorů RJ-9 závisí na počtu senzorů. V tomto projektu byly použity 3 konektory RJ-9 (dva pro BME280 a jeden pro TSL2561). Čtyři vodiče vycházející z konektoru RJ-9 byly barevně odlišeny a každý barevný vodič byl označen jako specifický kolík pro všechny konektory RJ-9. Je třeba poznamenat, že kód barvy se může u různých kusů RJ-9 lišit. V takovém případě je třeba poznamenat umístění drátu na konektoru. Konektor RJ-9 byl po pájení přilepen na vektorovou desku pomocí Feviqwik, aby se upevnil na povrch. Tato připojení lze ověřit pomocí režimu kontinuity na multimetru. V režimu kontinuity by měl multimetr vykazovat nulový odpor. Připojte jednu ze sond multimetru k pájenému kolíku a další sondu ke kolíku uvnitř konektoru RJ-9. Multimetr by měl vydávat tón, což znamená, že pájené spoje jsou správné a připojení byla provedena správně. Pokud tón nevyzařuje, zkontrolujte pájené spoje. Podobně pájejte konektor RJ-9 se stejnými vodiči, které se připojují ke stejným pinovým otvorům na deskách pro odpojení snímačů, tj. A4, A5, 3,3 V a GND. Senzor BME280 podporuje dvě adresy I2C, což znamená, že ke stejnému řadiči lze připojit dva senzory BME280 najednou. Přitom je třeba změnit adresu jednoho ze senzorů přemostěním pájecích plošek na senzoru. Čip bezdrátového připojení ESP-01 vyžadoval následující připojení k Arduinu.

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

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

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

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

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

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

Poznámka:- Více diod LED na Arduino Uno bylo odstraněno, aby se zlepšila životnost baterie. LED diody LED indikátoru napájení, RX a TX byly odstraněny zahřátím pájecích spojů a zatlačením LED pomocí kleští.

Krok 2: Nastavení IDE a knihoven

Před jakýmkoli programováním si musíte stáhnout Arduino IDE (Integrované vývojové prostředí). Programování probíhalo na této platformě. Pro interakci s různými komponentami OPENSDL byly vyžadovány různé knihovny. Pro dané komponenty byly použity následující knihovny.

Komponent ------------------------------------------------- --------------Knihovna

Snímač teploty a relativní vlhkosti BME280 --------------------------------- Cactus_io_BME280_I2C.h

Světelný senzor------------------------------------------------ ---------------- SparkFun TSL2561.h

Hodiny reálného času ----------------------------------------------- ------------- RTClib.h

Zásuvka na kartu SD ----------------------------------------------- ------------- SD.h

Připojení I2C ------------------------------------------------ ------------- Wire.h

Samostatná knihovna pro komunikaci s ESP01 není nutná, protože kód nahraný v Arduinu má AT příkazy, které jsou odesílány na sériový monitor, odkud ESP-01 přijímá pokyny. V podstatě jsou tedy AT příkazy, kterými ESP01 běží, vytištěny do Serial Monitoru, které ESP-01 bere jako vstupní příkaz. Pro instalaci těchto knihoven otevřete po stažení Arduino IDE, přejděte na Sketch -> Include Library -> Add. Zip library a vyberte stažené knihovny.

Krok 3: Programování systému

Programování systému
Programování systému

Před programováním OPENSDL propojte Arduino s notebookem. Po připojení přejděte na Nástroje -> Port a vyberte port COM, ke kterému je připojen OPENSDL. Také se ujistěte, že v části Nástroje -> Desky je vybráno Arduino Uno.

OPENSDL byl vyvinut pro práci ve 2 režimech. V prvním režimu ukládá data na SD kartu na štít dataloggeru. Ve druhém režimu odesílá data přes internet na web pomocí čipu ESP-01 Wi-Fi. Program pro oba režimy je odlišný. Tyto řádky kódu lze přímo zkopírovat a vložit do editoru Arduino IDE a přímo použít. Jakmile jsme v kódu, musíme provést několik přizpůsobení podle našich potřeb:

  1. Chcete -li změnit interval protokolování, ručně změňte hodnotu zpoždění (1000) na konci kódu. Hodnota 1000 představuje interval v milisekundách.
  2. Upravte řádek kódu, který říká mySensorData = SD.open ("Logged01.csv", FILE_WRITE); a nahraďte Logged01 názvem souboru požadovaného názvu souboru. Příponu souboru lze také změnit úpravou přípony.csv hned za názvem souboru.
  3. Kalibrační rovnice dosažená nalezením korelace mezi hlavním/referenčním senzorem a BME280 se bude lišit u každého senzoru. Nahraďte tento řádek kódu rovnicí pro kalibraci senzorů: Serial.print ((1,0533*t2) -2,2374)-pro senzor s výchozí adresou (0x77), kde t2 je hodnota načtená ze snímače teploty.

Pro programování druhého dostupného režimu OPENSDL, kterým je bezdrátový systém, byl poskytnut samostatný program. ESP-01 musí být připojen k OPENSDL podle připojení, jak je vysvětleno v kroku č. 2. Po dokončení připojení připojte Arduino k notebooku a nahrajte prázdný náčrt do Arduina. Přepněte ESP-01 do režimu aktualizace a aktualizujte firmware na nejnovější dostupnou aktualizaci. Po aktualizaci nezapomeňte propojit resetovací pin Arduina s pinem 3,3 V, který obchází zavaděč Arduino

Krok 4: Výroba

Výroba
Výroba
Výroba
Výroba
Výroba
Výroba

Pro ochranu a zlepšení estetiky byl vytvořen kryt pro OPENSDL. Obaly byly vyvinuty 3D tiskem pomocí materiálu PLA a plášť pro mikrokontrolér byl vyvinut laserovým řezáním desky MDF a slepením kusů dohromady. 3D tištěné modely byly vyvinuty pomocí softwaru SketchUp a 2D dxf výkresy pro řezání laserem byly vytvořeny pomocí AutoCADu.

Pro 3D tisk byly soubory STL vytvořené pomocí SketchUp otevřeny a zkontrolovány v softwaru Ultimaker Cura 3.2.1. Ujistěte se, že je použit materiál PLA a tryska použité tiskárny je pro tisk 0,4 mm. Stavební deska 3D tiskárny může vyžadovat lepidlo k nalepení 3D tištěného předmětu. Když je ale tisk dokončen, vytvoří lepidlo silnou adhezi mezi potištěným předmětem a konstrukční deskou.

Krok 5: Kód

Kód (soubory.ino) je navržen tak, aby fungoval v softwaru Arduino IDE. Zde je odkaz na mou stránku Github s kódem a dalšími podrobnostmi.

github.com/arihant93/OPENSDL

Neváhejte se zeptat na projekt.

Dík.

Doporučuje: