Innholdsfortegnelse:

Open Source Data Logger (OPENSDL): 5 trinn (med bilder)
Open Source Data Logger (OPENSDL): 5 trinn (med bilder)

Video: Open Source Data Logger (OPENSDL): 5 trinn (med bilder)

Video: Open Source Data Logger (OPENSDL): 5 trinn (med bilder)
Video: Comptia Security+ SY0-601 Exam Cram DOMAIN 4 2024, November
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)

Målet med dette prosjektet er å designe, bygge og teste et rimelig målesystem for evalueringsstudier for bygningsytelse som inkluderer minst temperatur, relativ fuktighet, lysstyrke og kan utvides til flere sensorer, og å utvikle prototypen til disse enhetene.

Dette resulterer i et tilpasset og rimelig system som gjør det mulig for interessenter å utføre målingene som kreves for å bygge ytelsesevaluering på en effektiv og rimelig måte ved å logge flere miljøparametere samtidig. Open Source Data Logger (OPENSDL) utviklet ble sammenlignet med en HOBO U12-012 datalogger. Dette kommersielt tilgjengelige motpartssystemet kan måle 3 parametere, nemlig temperatur, RH og belysning, og en ekstern kanal for andre sensortyper. En annen sensorenhet vil være nødvendig for måling av en hvilken som helst annen parameter. Egenskapene til parametere som skal måles er begrenset til den proprietære maskinvaren og programvaren, som begrenser systemet til å måle visse parametere med spesifikke nøyaktigheter. En HOBO U12-012 koster rundt £ 13 000 (USD 185), mens OPENSDL koster £ 4, 605 (USD 66), som er nesten en tredjedel av den kommersielle motparten.

En datalogger med åpen kildekode for overvåking av temperatur, RH og lysnivåer (belysning) ved hjelp av en Arduino Uno Dette er en DIY for å utvikle OPENSDL datalogger.

Tid som kreves: 2-3 timer for lodding, 5 timer for emballasje (4 timer - 3D -utskrift og 1 time for laserskjæring) Ferdigheter som kreves: Lodding, liten eller ingen kunnskap innen programmering og elektronikk

Nødvendige deler:

  1. Arduino Uno med kabel
  2. Datalogger skjold
  3. CR1220 myntcellebatteri
  4. BME280 temperatur fuktighets trykksensor breakout board
  5. TSL2561 lyssensor breakout board
  6. ESP01-8266 Wi-Fi-modul
  7. RJ-9 han- og hunnkontakt
  8. Skjoldstabelhoder for Arduino
  9. SD -minnekort (hvilken som helst kapasitet)
  10. Vektorbord (26 x 18 hull)
  11. 8 AA batterier Batteriholder

Nødvendige verktøy:

  • Loddejern (35W)
  • Loddetråd
  • Wire cutter
  • Crimper verktøy
  • Multimeter

Programvare nødvendig: Arduino IDE (1.0.5 eller høyere)

Arduino -biblioteker brukt:

  • Wire bibliotek
  • SparkFun TSL2561 bibliotek
  • Cactus BME280 multisensor bibliotek
  • SD -kortbibliotek
  • SPI -bibliotek
  • RTC bibliotek

Merk: BME280 -sensoren er en meget nøyaktig temperatur-, relativ fuktighets- og trykksensor fra Bosch. På samme måte er DS1307 en nøyaktig sanntidsklokke fra Maxim og TSL2561 er en nøyaktig lyssensor. Det er billigere og mindre nøyaktige alternativer for disse produktene, men denne opplæringen var rettet mot folk som var interessert i å samle data for å bygge ytelsesevaluering og bygge overvåking applikasjoner som krever høy presisjon og nøyaktighet. Dette betyr at ethvert spesifikt maskinvareoppsett og programvareoppsett (biblioteker, programkode) var strengt ment kun for de spesifiserte produktene.

Trinn 1: Montering

montering
montering
montering
montering
montering
montering
montering
montering

Dataloggerskjoldet kan enkelt stables på toppen av Arduino Uno -kortet. Dette skjoldet gir dataloggingsfunksjoner (tidsoppbevaring og datalagring). Skjoldet måtte stables. Et CR1220 myntcellebatteri måtte settes inn i det runde sporet for å holde klokken i gang selv når Arduino er slått av. SD-minnekortet må settes inn i det medfølgende kortsporet. Et unikt tilpasset skjold ble utviklet ved å bruke RJ-9-kontakt hunpinner og Arduino skjoldstabelhoder. De riktige hodene ble loddet på de riktige stedene, slik at skjoldet passer perfekt på Arduino -brettet. Arduino har 18 pinner på den ene siden og 14 pinner på den andre siden. Overskrifter med samme antall pinner ble brukt med samme mellomrom (18 pinner fra hverandre) som på Arduino. Den gjenværende ekstra plassen ved siden av topptekstene ble brukt til å plassere RJ-9-kontakten.

Overskrifter var den beste måten å bruke de nødvendige pinnene, mens de fortsatt var tilgjengelige for bruk til andre komponenter. Sensorene som brukes følger I2C -kommunikasjonsprotokollen, som krever 4 pins fra Arduino, nemlig: SDA (også tilgjengelig som A4), SCL (også tilgjengelig som A5), 3.3V og GND. De fire ledningene som kom ut fra RJ-9-kontakten ble loddet inn i disse fire toppnålene. Antallet RJ-9-kontakter som kreves, avhenger av antall sensorer. I dette prosjektet ble det brukt 3 RJ-9-kontakter (to for BME280 og en for TSL2561). De fire ledningene som kom ut av RJ-9-kontakten var fargekodet, og hver fargekabel ble utpekt til en spesifikk pinne for alle RJ-9-kontaktene. Det må bemerkes at fargekoden kan variere på forskjellige RJ-9 stykker. I et slikt tilfelle må plasseringen av ledningen på kontakten noteres. RJ-9-kontakten ble etter lodding laget for å feste seg på vektorkortet ved hjelp av en Feviqwik, slik at den blir festet på overflaten. Disse tilkoblingene kan bekreftes ved å bruke kontinuitetsmodus på multimeteret. I kontinuitetsmodus skal multimeteret vise null motstand. Koble en av sonderne til multimeteret til loddetappen, og en annen sonde til pinnen inne i RJ-9-kontakten. Multimeteret skal avgi en tone, noe som betyr at loddeskjøtene er riktige, og at tilkoblingene er gjort riktig. Hvis tonen ikke avgis, sjekk loddeskjøtene. På samme måte loddes RJ-9-kontakten med de samme ledningene som er koblet til de samme hullene på sensorbryterne, det vil si A4, A5, 3.3V og GND. BME280 -sensoren støtter to I2C -adresser, noe som betyr at to BME280 -sensorer kan kobles til den samme kontrolleren samtidig. Mens du gjør det, må adressen til en av sensorene endres ved å bygge bro mellom loddeputene på sensoren. En ESP-01 trådløs tilkoblingsbrikke krevde følgende tilkoblinger med Arduino.

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

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

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

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

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

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

Merk:- De flere lysdiodene på Arduino Uno ble fjernet for å forbedre batterilevetiden. Strømindikatorens LED, RX og TX LED ble fjernet ved å varme opp loddeskjøtene og skyve LED -en med tang.

Trinn 2: Konfigurer IDEer og biblioteker

Før du programmerer, må Arduino IDE (Integrated Development Environment) lastes ned. Programmeringen ble utført på denne plattformen. Ulike biblioteker var påkrevd for å samhandle med forskjellige komponenter i OPENSDL. Følgende biblioteker ble brukt for de gitte komponentene.

Komponent ------------------------------------------------- --------------Bibliotek

BME280 temperatur- og RH-sensor --------------------------------- Cactus_io_BME280_I2C.h

Lyssensor------------------------------------------------ ---------------- SparkFun TSL2561.h

Sanntidsklokke ----------------------------------------------- ------------- RTClib.h

SD-kortkontakt ----------------------------------------------- ------------- SD.h

I2C-tilkobling ------------------------------------------------- ------------- Wire.h

Et eget bibliotek for kommunikasjon med ESP01 er ikke nødvendig da koden lastet opp i Arduino har AT-kommandoer, som sendes til den serielle skjermen, hvorfra ESP-01 tar instruksjonene. Så i utgangspunktet skrives AT-kommandoene som ESP01 kjøres ut i Serial Monitor, som tas som en inngangskommando av ESP-01. For å installere disse bibliotekene, etter å ha lastet dem ned, åpner du Arduino IDE, går til Sketch -> Include Library -> Add. Zip library, og velg de nedlastede bibliotekene.

Trinn 3: Programmering av systemet

Programmering av systemet
Programmering av systemet

Koble Arduino til en bærbar datamaskin før du programmerer OPENSDL. Etter tilkobling, gå til Verktøy -> Port, og velg COM -porten der OPENSDL er tilkoblet. Sørg også for at Arduino Uno er valgt under Verktøy -> Tavler.

OPENSDL ble utviklet for å fungere i 2 moduser. I den første modusen lagrer den dataene på SD -kortet på dataloggerskjermen. I andre modus sender den dataene over internett til et nettsted ved hjelp av en ESP-01 Wi-Fi-brikke. Programmet for begge modusene er annerledes. Disse kodelinjene kan kopieres og limes direkte inn i Arduino IDE -editoren, og brukes direkte. Når vi er inne i koden, må vi gjøre noen få tilpasninger i henhold til våre behov:

  1. Endre verdien av forsinkelse (1000) manuelt på slutten av koden manuelt for å endre loggingsintervallet. Verdien 1000 representerer intervallet i millisekunder.
  2. Rediger kodelinjen som sier mySensorData = SD.open ("Logged01.csv", FILE_WRITE); og erstatt Logged01 med filnavnet til ønsket filnavn. Utvidelsen av filen kan også endres ved å endre.csv -utvidelsen like etter filnavnet.
  3. Kalibreringsligningen som oppnås ved å finne korrelasjonen mellom Master/referansesensoren og BME280 vil variere med hver sensor. Erstatt denne kodelinjen med ligningen for kalibrering av sensorene: Serial.print ((1.0533*t2) -2.2374)-for sensor med standardadresse (0x77), hvor t2 er verdien som er avlest fra temperatursensoren.

Det er gitt et eget program for programmering av den andre tilgjengelige modusen til OPENSDL, som er det trådløse systemet. ESP-01 må være koblet til OPENSDL i henhold til tilkoblingene som forklart i trinn 2. Etter at du har fullført tilkoblingene, kobler du Arduino til den bærbare datamaskinen og laster opp en tom skisse i Arduino. Sett ESP-01 i oppdateringsmodus og oppdater fastvaren til den siste tilgjengelige oppdateringen. Etter oppdatering, sørg for å koble tilbakestillingsnålen til Arduino med 3.3V -pinnen, som omgår Arduino -opplastingsprogrammet

Trinn 4: Fremstilling

Fabrikasjon
Fabrikasjon
Fabrikasjon
Fabrikasjon
Fabrikasjon
Fabrikasjon

Et kabinett for OPENSDL ble opprettet for beskyttelse og for å forbedre estetikken. Foringsrørene ble utviklet ved 3D -utskrift ved bruk av PLA -materiale, og foringsrøret for mikrokontrolleren ble utviklet ved laserskjæring av MDF -arket og liming av bitene sammen. 3D -trykte modeller ble utviklet ved bruk av SketchUp -programvare, og 2D dxf -tegningene for laserskjæring ble opprettet ved bruk av AutoCAD.

For 3D -utskrift ble STL -filene som ble produsert ved å bruke SketchUp åpnet og sjekket i Ultimaker Cura 3.2.1 -programvaren. Sørg for at PLA -materiale brukes, og dysen på skriveren som brukes, er for 0,4 mm utskrift. Byggeplaten til 3D -skriveren kan kreve lim for å feste det 3D -trykte objektet. Men når utskriften er fullført, skaper limet en sterk vedheft mellom det trykte objektet og byggeplaten.

Trinn 5: Kode

Koden (.ino -filer) er laget for å fungere i Arduino IDE -programvare. Her er lenken til min Github -side for koden og andre detaljer.

github.com/arihant93/OPENSDL

Ikke nøl med å stille spørsmål om prosjektet.

Takk.

Anbefalt: