Inhoudsopgave:

Open Source Data Logger (OPENSDL): 5 stappen (met afbeeldingen)
Open Source Data Logger (OPENSDL): 5 stappen (met afbeeldingen)

Video: Open Source Data Logger (OPENSDL): 5 stappen (met afbeeldingen)

Video: Open Source Data Logger (OPENSDL): 5 stappen (met afbeeldingen)
Video: How To Do Stable Diffusion LORA Training By Using Web UI On Different Models - Tested SD 1.5, SD 2.1 2024, November
Anonim
Open source datalogger (OPENSDL)
Open source datalogger (OPENSDL)
Open source datalogger (OPENSDL)
Open source datalogger (OPENSDL)
Open source datalogger (OPENSDL)
Open source datalogger (OPENSDL)

Het doel van dit project is het ontwerpen, bouwen en testen van een goedkoop meetsysteem voor evaluatiestudies van gebouwprestaties dat ten minste temperatuur, relatieve vochtigheid, verlichtingssterkte omvat en uitbreidbaar is naar extra sensoren, en om het prototype van deze apparaten te ontwikkelen..

Dit resulteert in een op maat gemaakt en betaalbaar systeem waarmee belanghebbenden op een efficiënte en betaalbare manier de metingen kunnen uitvoeren die nodig zijn voor de evaluatie van de gebouwprestaties door meerdere omgevingsparameters tegelijk te registreren. De ontwikkelde Open Source Data Logger (OPENSDL) werd vergeleken met een HOBO U12-012 datalogger. Dit in de handel verkrijgbare tegenhangersysteem kan 3 parameters meten, namelijk temperatuur, RV en verlichtingssterkte, en één extern kanaal voor andere sensortypes. Voor het meten van een andere parameter zou een ander meetapparaat nodig zijn. De kenmerken van te meten parameters zijn beperkt tot de eigen hardware en software, waardoor het systeem beperkt is tot het meten van bepaalde parameters met specifieke nauwkeurigheid. Een HOBO U12-012 kost ongeveer ₹ 13.000 (US $ 185), terwijl de OPENSDL ₹ 4.605 (US $ 66) kost, wat bijna een derde is van de commerciële tegenhanger.

Een open source datalogger voor het bewaken van temperatuur, RV en lichtniveaus (verlichtingssterkte) met behulp van een Arduino Uno Dit is een DIY voor het ontwikkelen van de OPENSDL datalogger.

Benodigde tijd: 2-3 uur solderen, 5 uur verpakken (4 uur - 3D-printen en 1 uur lasersnijden) Benodigde vaardigheden: Solderen, weinig of geen kennis van programmeren en elektronica

Benodigde onderdelen:

  1. Arduino Uno met kabel
  2. Afscherming datalogger
  3. CR1220 knoopcelbatterij
  4. BME280 temperatuur vochtigheid druksensor breakout board
  5. TSL2561 lichtsensor breakout board
  6. ESP01-8266 Wi-Fi-module
  7. RJ-9 mannelijke en vrouwelijke connector
  8. Shield-stapelheaders voor Arduino
  9. SD-geheugenkaart (elke capaciteit)
  10. Vectorbord (26 x 18 holes)
  11. 8 AA-batterijen Batterijhouder

Benodigd gereedschap:

  • Soldeerbout (35W)
  • Soldeerdraad
  • Draadknipper
  • Krimptang
  • Multimeter

Benodigde software: Arduino IDE (1.0.5 of hoger)

Gebruikte Arduino-bibliotheken:

  • Draadbibliotheek
  • SparkFun TSL2561 bibliotheek
  • Cactus BME280 multisensor-bibliotheek
  • SD-kaartbibliotheek
  • SPI-bibliotheek
  • RTC-bibliotheek

Let op: De BME280 sensor is een zeer nauwkeurige temperatuur-, relatieve vochtigheids- en druksensor van Bosch. Evenzo is de DS1307 een nauwkeurige real-time klok van Maxim en is de TSL2561 een nauwkeurige lichtsensor. Er zijn goedkopere en minder nauwkeurige alternatieven voor deze producten, maar deze tutorial was bedoeld voor mensen die geïnteresseerd waren in het verzamelen van gegevens voor het evalueren van bouwprestaties en het bouwen van monitoringtoepassingen die hoge precisie en nauwkeurigheid vereisen. Dit betekent dat elke specifieke hardwareconfiguratie en softwareconfiguratie (bibliotheken, programmacode) uitsluitend bedoeld was voor de gespecificeerde producten.

Stap 1: Montage

samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst

Het dataloggerschild kan eenvoudig op het Arduino Uno-bord worden gestapeld. Dit schild biedt de datalogging-mogelijkheden (tijdwaarneming en gegevensopslag). Het schild moest worden gestapeld. Een CR1220 knoopcelbatterij moest in de daarvoor bestemde ronde sleuf worden geplaatst om de klok te laten lopen, zelfs als de Arduino is uitgeschakeld. De SD-geheugenkaart moet in de daarvoor bestemde kaartsleuf aan boord worden geplaatst. Een uniek, op maat gemaakt schild is ontwikkeld met behulp van vrouwelijke RJ-9-connectorpinnen en Arduino-schildstapelheaders. De juiste headers zijn op de juiste locaties gesoldeerd, zodat het schild perfect op het Arduino-bord past. De Arduino heeft 18 pinnen aan de ene kant en 14 pinnen aan de andere kant. De headers met hetzelfde aantal pinnen werden gebruikt op dezelfde afstand (18 pinnen uit elkaar) als op Arduino. De resterende extra ruimte naast de headers werd gebruikt voor het plaatsen van de RJ-9-connector.

De headers waren de beste manier om de vereiste pinnen te gebruiken, terwijl ze nog steeds beschikbaar waren voor gebruik voor andere componenten. De gebruikte sensoren volgen het I2C-communicatieprotocol, waarvoor 4 pinnen van Arduino nodig zijn, namelijk: SDA (ook verkrijgbaar als A4), SCL (ook verkrijgbaar als A5), 3.3V & GND. De vier draden die uit de RJ-9-connector kwamen, werden in deze vier header-pinnen gesoldeerd. Het aantal benodigde RJ-9-connectoren is afhankelijk van het aantal sensoren. In dit project werden 3 RJ-9-connectoren gebruikt (twee voor BME280 en één voor TSL2561). De vier draden die uit de RJ-9-connector kwamen, hadden een kleurcode en elke kleurdraad kreeg een specifieke pin voor alle RJ-9-connectoren. Opgemerkt moet worden dat de kleurcode op verschillende RJ-9-stukken kan variëren. In een dergelijk geval moet de locatie van de draad op de connector worden genoteerd. De RJ-9-connector is na het solderen gemaakt om met een Feviqwik op het vectorbord te plakken, zodat deze op het oppervlak wordt gefixeerd. Deze verbindingen kunnen worden geverifieerd met behulp van de continuïteitsmodus op de multimeter. In continuïteitsmodus moet de multimeter nul weerstand vertonen. Sluit een van de sondes van de multimeter aan op de gesoldeerde pin en een andere sonde op de pin in de RJ-9-connector. De multimeter moet een toon afgeven, wat betekent dat de soldeerverbindingen goed zijn en de verbindingen goed zijn gemaakt. Als de toon niet wordt uitgezonden, controleer dan de soldeerverbindingen. Soldeer op dezelfde manier de RJ-9-connector met dezelfde draden die zijn aangesloten op dezelfde gaatjes op de sensor breakout-kaarten, d.w.z. A4, A5, 3.3V & GND. De BME280-sensor ondersteunt twee I2C-adressen, wat betekent dat twee BME280-sensoren tegelijk op dezelfde controller kunnen worden aangesloten. Daarbij moet het adres van een van de sensoren worden gewijzigd door de soldeerpads op de sensor te overbruggen. Een ESP-01 draadloze verbindingschip vereiste de volgende verbindingen met de Arduino.

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

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

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

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

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

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

Opmerking: - De meerdere LED's op Arduino Uno zijn verwijderd om de levensduur van de batterij te verbeteren. De stroomindicator-LED, RX- en TX-LED's werden verwijderd door de soldeerverbindingen op te warmen en de LED met een pincet in te drukken.

Stap 2: IDE's en bibliotheken instellen

Voordat u programmeert, moet Arduino IDE (Integrated Development Environment) worden gedownload. De programmering gebeurde op dit platform. Er waren verschillende bibliotheken nodig om te communiceren met verschillende componenten van OPENSDL. De volgende bibliotheken werden gebruikt voor de gegeven componenten.

Onderdeel ------------------------------------------------- --------------Bibliotheek

BME280 temperatuur & RV sensor ---------------------------------Cactus_io_BME280_I2C.h

Licht sensor------------------------------------------------ ----------------SparkFun TSL2561.h

Realtime klok ----------------------------------------------- -------------RTClib.h

SD-kaartaansluiting ----------------------------------------------- -------------SD.h

I2C-verbinding ------------------------------------------------ -------------Draad.h

Een aparte bibliotheek voor communicatie met de ESP01 is niet nodig, aangezien de code die in de Arduino is geüpload, AT-commando's heeft, die naar de seriële monitor worden gestuurd, van waaruit de ESP-01 de instructies ophaalt. Dus eigenlijk worden de AT-commando's waarmee ESP01 wordt uitgevoerd, afgedrukt in de seriële monitor, die door ESP-01 als invoercommando worden genomen. Om deze bibliotheken te installeren, opent u na het downloaden de Arduino IDE, gaat u naar Sketch -> Include Library -> Add. Zip-bibliotheek en selecteert u de gedownloade bibliotheken.

Stap 3: Het systeem programmeren

Het systeem programmeren
Het systeem programmeren

Voordat u de OPENSDL programmeert, sluit u de Arduino aan op een laptop. Ga na het verbinden naar Tools -> Port en selecteer de COM-poort waarop de OPENSDL is aangesloten. Zorg er ook voor dat onder Tools -> Boards, Arduino Uno is geselecteerd.

De OPENSDL is ontwikkeld om in 2 modi te werken. In de eerste modus slaat het de gegevens op de SD-kaart op het dataloggerschild op. In de tweede modus stuurt het de gegevens via internet naar een website met behulp van een ESP-01 Wi-Fi-chip. Het programma voor beide modi is anders. Deze coderegels kunnen direct in de Arduino IDE-editor worden gekopieerd en geplakt en direct worden gebruikt. Eenmaal in de code, moeten we een paar aanpassingen maken volgens onze behoeften:

  1. Wijzig handmatig de waarde van vertraging (1000) aan het einde van de code om het logboekinterval te wijzigen. De waarde 1000 vertegenwoordigt het interval in milliseconden.
  2. Bewerk de regel code die zegt mySensorData = SD.open("Logged01.csv", FILE_WRITE); en vervang de Logged01 door de bestandsnaam van de gewenste bestandsnaam. De extensie van het bestand kan ook worden gewijzigd door de extensie.csv net achter de bestandsnaam aan te passen.
  3. De kalibratievergelijking die wordt bereikt door de correlatie tussen de master-/referentiesensor en de BME280 te vinden, verschilt per sensor. Vervang deze regel code door de vergelijking voor het kalibreren van de sensoren: Serial.print((1.0533*t2)-2.2374) – voor sensor met standaardadres (0x77), waarbij t2 de waarde is die wordt afgelezen van de temperatuursensor.

Er is een apart programma voorzien voor het programmeren van de tweede beschikbare modus van OPENSDL, namelijk het draadloze systeem. De ESP-01 moet worden aangesloten op de OPENSDL volgens de aansluitingen zoals uitgelegd in stap #2. Sluit na het voltooien van de verbindingen de Arduino aan op de laptop en upload een blanco schets in de Arduino. Zet de ESP-01 in de update-modus en update de firmware naar de laatst beschikbare update. Zorg er na het updaten voor dat u de reset-pin van Arduino verbindt met de 3.3V-pin, die de Arduino-bootloader omzeilt

Stap 4: Fabricage

fabricage
fabricage
fabricage
fabricage
fabricage
fabricage

Ter bescherming en ter verbetering van de esthetiek is een behuizing voor OPENSDL gemaakt. De behuizingen zijn ontwikkeld door 3D-printen met PLA-materiaal en de behuizing voor de microcontroller is ontwikkeld door de MDF-plaat te lasersnijden en de stukken aan elkaar te lijmen. De 3D-geprinte modellen zijn ontwikkeld met behulp van SketchUp-software en de 2D dxf-tekeningen voor lasersnijden zijn gemaakt met behulp van AutoCAD.

Voor 3D-printen werden de STL-bestanden geproduceerd met SketchUp geopend en gecontroleerd in Ultimaker Cura 3.2.1-software. Zorg ervoor dat er PLA-materiaal wordt gebruikt en dat het mondstuk van de gebruikte printer geschikt is voor afdrukken van 0,4 mm. De bouwplaat van de 3D-printer heeft mogelijk lijm nodig om het 3D-geprinte object te plakken. Maar wanneer het printen voltooid is, zorgt de lijm voor een sterke hechting tussen het geprinte object en de bouwplaat.

Stap 5: Coderen

De code (.ino-bestanden) is gemaakt om te werken in Arduino IDE-software. Hier is de link naar mijn Github-pagina voor de code en andere details.

github.com/arihant93/OPENSDL

Aarzel niet om vragen te stellen over het project.

Bedankt.

Aanbevolen: