Cuprins:

Open Source Data Logger (OPENSDL): 5 pași (cu imagini)
Open Source Data Logger (OPENSDL): 5 pași (cu imagini)

Video: Open Source Data Logger (OPENSDL): 5 pași (cu imagini)

Video: Open Source Data Logger (OPENSDL): 5 pași (cu imagini)
Video: Full Event | Security Day 2022 on Google Open Source Live 2024, Septembrie
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)

Scopul acestui proiect este de a proiecta, construi și testa un sistem de măsurare cu costuri reduse pentru studiile de evaluare a performanței clădirilor, care să includă cel puțin temperatura, umiditatea relativă, iluminarea și să fie extensibil la senzori suplimentari și să dezvolte prototipul acestor dispozitive.

Acest lucru are ca rezultat un sistem personalizat și accesibil, care permite părților interesate să efectueze măsurătorile necesare pentru evaluarea performanței clădirii într-un mod eficient și accesibil, prin înregistrarea simultană a mai multor parametri de mediu. Open Source Data Logger (OPENSDL) dezvoltat a fost comparat cu un data logger HOBO U12-012. Acest sistem omolog disponibil comercial poate măsura 3 parametri, și anume - temperatura, HR și luminanța, și un canal extern pentru alte tipuri de senzori. Un alt dispozitiv de detectare ar fi necesar pentru măsurarea oricărui alt parametru. Caracteristicile parametrilor care trebuie măsurați sunt limitați la hardware-ul și software-ul proprietar, care restricționează sistemul la măsurarea anumitor parametri cu precizii specifice. Un HOBO U12-012 costă în jur de 13 000 GBP (185 USD), în timp ce OPENSDL costă 4 605 GBP (66 USD), care reprezintă aproape o treime din contrapartida comercială.

Un logger de date open source pentru monitorizarea temperaturii, a HR și a nivelurilor de lumină (iluminare) cu ajutorul unui Arduino Uno Acesta este un DIY pentru dezvoltarea data loggerului OPENSDL.

Timp necesar: 2-3 ore pentru lipire, 5 ore pentru ambalare (4 ore - imprimare 3D și 1 oră pentru tăiere cu laser) Abilități necesare: lipire, puține sau deloc cunoștințe în programare și electronică

Piese necesare:

  1. Arduino Uno cu cablu
  2. Scut de înregistrare a datelor
  3. Baterie cu celule monede CR1220
  4. BME280 temperatura umiditate presiune senzor panou de rupere
  5. TSL2561 placa senzorului de lumină
  6. ESP01-8266 Modul Wi-Fi
  7. Conector RJ-9 tată și mamă
  8. Anteturi de stivuire a scuturilor pentru Arduino
  9. Card de memorie SD (orice capacitate)
  10. Placă vectorială (26 x 18 găuri)
  11. 8 baterii AA Suport baterie

Instrumente necesare:

  • Fier de lipit (35W)
  • Sârmă de lipit
  • Cleste de sarma
  • Instrument de sertizare
  • Multimetru

Software necesar: Arduino IDE (1.0.5 sau mai mare)

Bibliotecile Arduino utilizate:

  • Biblioteca de sârmă
  • Biblioteca SparkFun TSL2561
  • Biblioteca multisenzor Cactus BME280
  • Biblioteca de carduri SD
  • Biblioteca SPI
  • Biblioteca RTC

Notă: Senzorul BME280 este un senzor foarte precis, de temperatură, umiditate relativă și presiune de la Bosch. În mod similar, DS1307 este un ceas precis în timp real de la Maxim, iar TSL2561 este un senzor de lumină precis. Există alternative mai puțin costisitoare și mai puțin exacte pentru aceste produse, dar acest tutorial a fost destinat persoanelor interesate să adune date pentru evaluarea performanței clădirilor și aplicații de monitorizare a clădirilor care necesită precizie și precizie ridicată. Aceasta înseamnă că orice setare hardware și setare software specifică (biblioteci, cod de program) au fost destinate exclusiv produselor specificate.

Pasul 1: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Scutul data logger poate fi ușor stivuit deasupra plăcii Arduino Uno. Acest scut oferă capacități de înregistrare a datelor (păstrarea timpului și stocarea datelor). Scutul trebuia stivuit. O baterie cu celule monede CR1220 trebuia să fie introdusă în slotul rotund prevăzut pentru a menține ceasul în funcțiune chiar și atunci când Arduino este oprit. Cardul de memorie SD trebuie introdus în slotul pentru card de la bord furnizat. Un scut personalizat unic a fost dezvoltat prin utilizarea pinilor feminini ai conectorului RJ-9 și a anteturilor de stivuire a scuturilor Arduino. Anteturile corespunzătoare au fost lipite în locațiile corespunzătoare, astfel încât scutul să se potrivească perfect pe placa Arduino. Arduino are 18 pini pe o parte și 14 pini pe cealaltă parte. Anteturile cu același număr de pini au fost utilizate la aceeași distanță (la 18 pini distanță) ca pe Arduino. Spațiul suplimentar rămas adiacent anteturilor a fost folosit pentru amplasarea conectorului RJ-9.

Anteturile au fost cel mai bun mod de a utiliza pinii necesari, făcându-i totuși disponibili pentru utilizarea altor componente. Senzorii utilizați urmează protocolul de comunicație I2C, care necesită 4 pini de la Arduino, și anume: SDA (disponibil și ca A4), SCL (disponibil și ca A5), 3.3V și GND. Cele patru fire care ies din conectorul RJ-9 au fost lipite în acești patru pini de antet. Numărul de conectori necesari RJ-9 depinde de numărul de senzori. În acest proiect, au fost folosiți 3 conectori RJ-9 (doi pentru BME280 și unul pentru TSL2561). Cele patru fire care ieșeau din conectorul RJ-9 au fost codificate în culori și fiecare fir de culoare a fost desemnat un pin specific pentru toți conectorii RJ-9. Trebuie remarcat faptul că codul de culoare poate varia pe diferite piese RJ-9. Într-un astfel de caz, trebuie menționată locația firului pe conector. Conectorul RJ-9, după lipire, a fost făcut să se lipească pe placa vector utilizând un Feviqwik, astfel încât să fie fixat la suprafață. Aceste conexiuni pot fi verificate utilizând modul de continuitate pe multimetru. Când este în modul continuitate, multimetrul ar trebui să prezinte rezistență zero. Conectați una dintre sondele multimetrului la pinul lipit și o altă sondă la pinul din interiorul conectorului RJ-9. Multimetrul ar trebui să emită un ton, ceea ce înseamnă că îmbinările de lipit sunt corecte, iar conexiunile au fost realizate corect. Dacă tonul nu este emis, verificați îmbinările de lipit. În mod similar, lipiți conectorul RJ-9 cu aceleași fire care se conectează la aceleași orificii de pe panourile de separare a senzorilor, adică A4, A5, 3.3V și GND. Senzorul BME280 acceptă două adrese I2C, ceea ce înseamnă că doi senzori BME280 pot fi conectați simultan la același controler. În timp ce faceți acest lucru, adresa unuia dintre senzori trebuie schimbată prin conectarea plăcilor de lipit pe senzor. Un cip de conexiune fără fir ESP-01 a necesitat următoarele conexiuni cu Arduino.

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

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

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

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

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

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

Notă: - LED-urile multiple de pe Arduino Uno au fost eliminate pentru a îmbunătăți durata de viață a bateriei. LED-urile indicatorului de alimentare, LED-urile RX și TX au fost îndepărtate prin încălzirea articulațiilor de lipit și împingerea LED-ului cu o pensă.

Pasul 2: configurați IDE-urile și bibliotecile

Înainte de a face orice programare, Arduino IDE (Integrated Development Environment) trebuie descărcat. Programarea a fost realizată pe această platformă. Diferite biblioteci au fost necesare pentru a interacționa cu diferite componente ale OPENSDL. Următoarele biblioteci au fost utilizate pentru componentele date.

Componentă ------------------------------------------------- --------------Bibliotecă

Senzor de temperatură și RH BME280 --------------------------------- Cactus_io_BME280_I2C.h

Senzor de lumina------------------------------------------------ ---------------- SparkFun TSL2561.h

Ceas în timp real ----------------------------------------------- ------------- RTClib.h

Soclu card SD ----------------------------------------------- ------------- SD.h

Conexiune I2C ------------------------------------------------ ------------- Wire.h

Nu este necesară o bibliotecă separată pentru comunicarea cu ESP01, deoarece codul încărcat în Arduino are comenzi AT, care sunt trimise la monitorul serial, de unde ESP-01 ia instrucțiunile. Deci, practic, comenzile AT prin care rulează ESP01 sunt tipărite în Serial Monitor, care sunt luate ca comandă de intrare de către ESP-01. Pentru instalarea acestor biblioteci, după descărcarea acestora, deschideți Arduino IDE, accesați Sketch -> Include Library -> Add. Zip library și selectați bibliotecile descărcate.

Pasul 3: Programarea sistemului

Programarea sistemului
Programarea sistemului

Înainte de a programa OPENSDL, conectați Arduino cu un laptop. După conectare, accesați Instrumente -> Port și selectați portul COM în care este conectat OPENSDL. De asemenea, asigurați-vă că în Instrumente -> Plăci, este selectat Arduino Uno.

OPENSDL a fost dezvoltat pentru a funcționa în 2 moduri. În primul mod, stochează datele de pe cardul SD pe ecranul jurnalului de date. În al doilea mod, trimite datele pe internet către un site web utilizând un cip ESP-01 Wi-Fi. Programul pentru ambele moduri este diferit. Aceste linii de cod pot fi copiate și lipite direct în editorul Arduino IDE și utilizate direct. Odată ajuns în cod, trebuie să facem câteva personalizări conform nevoilor noastre:

  1. Schimbați manual valoarea întârzierii (1000) la sfârșitul codului pentru a modifica intervalul de înregistrare. Valoarea 1000 reprezintă intervalul în milisecunde.
  2. Editați linia de cod care spune mySensorData = SD.open ("Logged01.csv", FILE_WRITE); și înlocuiți Logged01 cu numele de fișier al numelui de fișier dorit. Extensia fișierului poate fi modificată și prin modificarea extensiei.csv imediat după numele fișierului.
  3. Ecuația de calibrare realizată prin găsirea corelației dintre senzorul Master / de referință și BME280 va varia în funcție de fiecare senzor. Înlocuiți această linie de cod cu ecuația pentru calibrarea senzorilor: Serial.print ((1.0533 * t2) -2.2374) - pentru senzorul cu adresa implicită (0x77), unde t2 este valoarea citită de la senzorul de temperatură.

A fost prevăzut un program separat pentru programarea celui de-al doilea mod disponibil al OPENSDL, care este sistemul wireless. ESP-01 trebuie să fie conectat la OPENSDL conform conexiunilor, așa cum este explicat în Pasul # 2. După finalizarea conexiunilor, conectați Arduino la laptop și încărcați o schiță goală în Arduino. Puneți ESP-01 în modul de actualizare și actualizați firmware-ul la cea mai recentă actualizare disponibilă. După actualizare, asigurați-vă că conectați pinul de resetare al Arduino cu pinul de 3,3V, care ocolește bootloader-ul Arduino

Pasul 4: Fabricare

Fabricare
Fabricare
Fabricare
Fabricare
Fabricare
Fabricare

O carcasă pentru OPENSDL a fost creată pentru protecție și pentru a îmbunătăți estetica. Carcasele au fost dezvoltate prin imprimare 3D folosind material PLA, iar carcasa microcontrolerului a fost dezvoltată prin tăierea cu laser a foii MDF și lipirea pieselor împreună. Modelele tipărite 3D au fost dezvoltate utilizând software-ul SketchUp, iar desenele 2x dxf pentru tăierea cu laser au fost create folosind AutoCAD.

Pentru imprimarea 3D, fișierele STL produse prin utilizarea SketchUp au fost deschise și verificate în software-ul Ultimaker Cura 3.2.1. Asigurați-vă că este utilizat material PLA, iar duza imprimantei utilizate este pentru imprimarea de 0,4 mm. Placa de construcție a imprimantei 3D poate necesita lipici pentru a lipi obiectul imprimat 3D. Dar când imprimarea este completă, lipiciul creează o aderență puternică între obiectul imprimat și placa de construcție.

Pasul 5: Cod

Codul (fișiere.ino) este făcut să funcționeze în software-ul Arduino IDE. Iată linkul către pagina mea Github pentru cod și alte detalii.

github.com/arihant93/OPENSDL

Vă rugăm să nu ezitați să puneți întrebări despre proiect.

Mulțumiri.

Recomandat: