Indholdsfortegnelse:

Open Source Data Logger (OPENSDL): 5 trin (med billeder)
Open Source Data Logger (OPENSDL): 5 trin (med billeder)

Video: Open Source Data Logger (OPENSDL): 5 trin (med billeder)

Video: Open Source Data Logger (OPENSDL): 5 trin (med billeder)
Video: CompTIA IT Fundamentals (ITF+) FC0-U61 Full Course 2024, Juli
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)

Formålet med dette projekt er at designe, bygge og teste et billigt målesystem til evaluering af bygningsresultater, der omfatter mindst temperatur, relativ luftfugtighed, belysning og kan udvides til yderligere sensorer og udvikle prototypen af disse enheder.

Dette resulterer i et skræddersyet og overkommeligt system, der gør det muligt for interessenter at foretage de målinger, der kræves for at opbygge ydelsesevaluering på en effektiv og overkommelig måde ved at logge flere miljøparametre på én gang. Open Source Data Logger (OPENSDL) udviklet blev sammenlignet med en HOBO U12-012 datalogger. Dette kommercielt tilgængelige modpartssystem kan måle 3 parametre, nemlig temperatur, RH og belysningsstyrke og en ekstern kanal til andre sensortyper. En anden registreringsindretning ville være påkrævet til måling af enhver anden parameter. Egenskaberne ved parametre, der skal måles, er begrænset til den hardware og software, der begrænser systemet til at måle bestemte parametre med specifikke nøjagtigheder. En HOBO U12-012 koster omkring £ 13.000 (US $ 185), mens OPENSDL koster £ 4.605 ($ 66), hvilket er næsten en tredjedel af den kommercielle pendant.

En open source datalogger til overvågning af temperatur, RH og lysniveauer (belysning) ved hjælp af en Arduino Uno Dette er en DIY til udvikling af OPENSDL datalogger.

Påkrævet tid: 2-3 timer til lodning, 5 timer til emballering (4 timer - 3D -print og 1 time til laserskæring) Påkrævede færdigheder: Lodning, ringe eller ingen viden inden for programmering og elektronik

Nødvendige dele:

  1. Arduino Uno med kabel
  2. Datalogger skjold
  3. CR1220 møntcellebatteri
  4. BME280 temperaturfugtighedstryksensor breakout board
  5. TSL2561 lyssensor breakout board
  6. ESP01-8266 Wi-Fi-modul
  7. RJ-9 han- og hunstik
  8. Skærmstabelhoveder til Arduino
  9. SD -hukommelseskort (enhver kapacitet)
  10. Vektor bord (26 x 18 huller)
  11. 8 AA batterier Batteriholder

Påkrævede værktøjer:

  • Loddejern (35W)
  • Loddetråd
  • Trådskærer
  • Crimper værktøj
  • Multimeter

Software påkrævet: Arduino IDE (1.0.5 eller højere)

Arduino biblioteker brugt:

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

Bemærk: BME280 -sensoren er en meget nøjagtig temperatur-, relativ luftfugtigheds- og trykføler fra Bosch. Tilsvarende er DS1307 et nøjagtigt realtidsur fra Maxim, og TSL2561 er en præcis lyssensor. Der er billigere og mindre præcise alternativer til disse produkter, men denne vejledning var rettet mod folk, der var interesserede i at indsamle data til opbygning af evaluering af ydeevne og bygningsovervågning, der kræver høj præcision og nøjagtighed. Det betyder, at enhver specifik hardwareopsætning og softwareopsætning (biblioteker, programkode) strengt kun var beregnet til de angivne produkter.

Trin 1: Montering

montage
montage
montage
montage
montage
montage
montage
montage

Datalogger -skjoldet kan nemt stables oven på Arduino Uno -kortet. Dette skjold giver mulighed for datalogning (tidsopbevaring og datalagring). Skjoldet skulle stables. Et CR1220 møntcellebatteri skulle indsættes i den medfølgende runde slot for at holde uret kørende, selvom Arduino er slukket. SD-hukommelseskortet skal indsættes i den medfølgende kortplads. Et unikt tilpasset skjold blev udviklet ved hjælp af RJ-9 stik hunstifter og Arduino skjoldstabelhoveder. De relevante overskrifter blev loddet på de passende steder, så skjoldet passer perfekt på Arduino -kortet. Arduino har 18 ben på den ene side og 14 ben på den anden side. Overskrifterne med samme antal ben blev brugt med samme afstand (18 ben fra hinanden) som på Arduino. Den resterende ekstra plads ved siden af overskrifterne blev brugt til at placere RJ-9-stikket.

Overskrifterne var den bedste måde at bruge de nødvendige stifter, mens de stadig var tilgængelige til brug for andre komponenter. De anvendte sensorer følger I2C -kommunikationsprotokollen, som kræver 4 pins fra Arduino, nemlig: SDA (også tilgængelig som A4), SCL (også tilgængelig som A5), 3.3V & GND. De fire ledninger, der kom ud fra RJ-9-stikket, blev loddet ind i disse fire hovedstifter. Antallet af nødvendige RJ-9-stik afhænger af antallet af sensorer. I dette projekt blev der brugt 3 RJ-9 stik (to til BME280 og et til TSL2561). De fire ledninger, der kom ud af RJ-9-stikket, var farvekodede, og hver farvetråd blev betegnet som en specifik pin til alle RJ-9-stik. Det skal bemærkes, at farvekoden kan variere på forskellige RJ-9 stykker. I et sådant tilfælde skal ledningens placering på stikket noteres. RJ-9-stikket blev efter lodning sat til at sidde fast på vektortavlen ved hjælp af en Feviqwik, så det fikseres på overfladen. Disse forbindelser kan verificeres ved hjælp af kontinuitetstilstanden på multimeteret. I kontinuitetstilstand skal multimeteret vise nul modstand. Tilslut en af multimeterproberne til loddetappen, og en anden sonde til stiften inde i RJ-9-stikket. Multimeteret skal afgive en tone, hvilket betyder, at loddeledene er korrekte, og forbindelserne er foretaget korrekt. Hvis tonen ikke udsendes, skal du kontrollere loddefugerne. På samme måde loddes RJ-9-stikket med de samme ledninger, der forbinder til de samme huller på sensorens breakout boards, dvs. A4, A5, 3.3V & GND. BME280 -sensoren understøtter to I2C -adresser, hvilket betyder, at to BME280 -sensorer kan tilsluttes den samme controller på én gang. Mens du gør det, skal adressen på en af sensorerne ændres ved at bygge bro mellem loddepuderne på sensoren. En ESP-01 trådløs forbindelseschip krævede følgende forbindelser med Arduino.

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

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

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

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

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

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

Bemærk:- De flere lysdioder på Arduino Uno blev fjernet for at forbedre batteriets levetid. Strømindikatorens LED-, RX- og TX -lysdioder blev fjernet ved at opvarme loddeledene og skubbe LED'en med pincet.

Trin 2: Konfigurer IDE'er og biblioteker

Inden programmeringen foretages, skal Arduino IDE (Integrated Development Environment) downloades. Programmeringen blev udført på denne platform. Forskellige biblioteker skulle interagere med forskellige komponenter i OPENSDL. Følgende biblioteker blev brugt til de givne komponenter.

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

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

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

Realtidsur ----------------------------------------------- ------------- RTClib.h

SD-kortstik ----------------------------------------------- ------------- SD.h

I2C-forbindelse ------------------------------------------------- ------------- Wire.h

Et separat bibliotek til kommunikation med ESP01 er ikke påkrævet, da koden, der er uploadet i Arduino, har AT-kommandoer, som sendes til den serielle skærm, hvorfra ESP-01 tager instruktionerne. Så dybest set bliver de AT-kommandoer, som ESP01 kører, udskrevet i Serial Monitor, der tages som en inputkommando af ESP-01. For at installere disse biblioteker, efter at have downloadet dem, skal du åbne Arduino IDE, gå til Skitse -> Inkluder bibliotek -> Tilføj. Zip -bibliotek, og vælg de downloadede biblioteker.

Trin 3: Programmering af systemet

Programmering af systemet
Programmering af systemet

Inden du programmerer OPENSDL, skal du tilslutte Arduino med en bærbar computer. Efter tilslutning skal du gå til Værktøjer -> Port, og vælge den COM -port, hvor OPENSDL er tilsluttet. Sørg også for, at under Værktøjer -> Tavler er Arduino Uno valgt.

OPENSDL blev udviklet til at fungere i 2 tilstande. I den første tilstand gemmer dataene på SD -kortet på datalogger -skjoldet. I anden tilstand sender den dataene over internettet til et websted ved hjælp af en ESP-01 Wi-Fi-chip. Programmet for begge tilstande er anderledes. Disse kodelinjer kan kopieres og indsættes direkte i Arduino IDE -editoren og bruges direkte. Når vi er i koden, skal vi lave et par tilpasninger efter vores behov:

  1. Ændre værdien af forsinkelse (1000) manuelt i slutningen af koden for at ændre logningsintervallet. Værdien 1000 repræsenterer interval i millisekunder.
  2. Rediger kodelinjen, der siger mySensorData = SD.open ("Logged01.csv", FILE_WRITE); og erstat Logged01 med filnavnet for det ønskede filnavn. Filens udvidelse kan også ændres ved at ændre.csv -udvidelsen lige efter filnavnet.
  3. Kalibreringsligningen opnået ved at finde sammenhængen mellem Master/referencesensoren og BME280 vil variere med hver sensor. Udskift denne kodelinje med ligningen til kalibrering af sensorerne: Serial.print ((1.0533*t2) -2.2374)-for sensor med standardadresse (0x77), hvor t2 er værdien, der er aflæst fra temperatursensoren.

Der er leveret et separat program til programmering af den anden tilgængelige tilstand for OPENSDL, som er det trådløse system. ESP-01 skal tilsluttes OPENSDL i henhold til forbindelserne som forklaret i trin #2. Når forbindelserne er fuldført, skal du slutte Arduino til den bærbare computer og uploade en tom skitse i Arduino. Sæt ESP-01 i opdateringstilstanden, og opdater firmwaren til den seneste tilgængelige opdatering. Efter opdateringen skal du sørge for at forbinde nulstillingsstiften på Arduino med 3,3V -stiften, som omgår Arduino -bootloaderen

Trin 4: Fremstilling

Fremstilling
Fremstilling
Fremstilling
Fremstilling
Fremstilling
Fremstilling

Et kabinet til OPENSDL blev oprettet for beskyttelse og for at forbedre æstetikken. Foringsrørene blev udviklet ved 3D -print ved hjælp af PLA -materiale, og kabinettet til mikrokontrolleren blev udviklet ved laserskæring af MDF -arket og limning af stykkerne sammen. 3D -printede modeller blev udviklet ved hjælp af SketchUp software, og 2D dxf tegninger til laserskæring blev oprettet ved hjælp af AutoCAD.

Til 3D -udskrivning blev STL -filerne, der blev produceret ved hjælp af SketchUp, åbnet og kontrolleret i Ultimaker Cura 3.2.1 -softwaren. Sørg for, at der bruges PLA -materiale, og printerens dyse er til 0,4 mm udskrivning. Byggepladen til 3D -printeren kan kræve lim for at klæbe det 3D -udskrevne objekt. Men når udskrivningen er færdig, skaber limen en stærk vedhæftning mellem det trykte objekt og byggepladen.

Trin 5: Kode

Koden (.ino -filer) er lavet til at fungere i Arduino IDE -software. Her er linket til min Github -side for koden og andre detaljer.

github.com/arihant93/OPENSDL

Tøv ikke med at stille spørgsmål til projektet.

Tak.

Anbefalede: