OpenLog Aansluitgids
Invoering
Let op! Deze tutorial is voor de OpenLog voor seriële UART [DEV-13712]. Als u de Qwiic OpenLog voor IC [DEV-15164] gebruikt, raadpleeg dan de Qwiic OpenLog Hookup Guide.
De OpenLog Data Logger is een gebruiksvriendelijke open-sourceoplossing voor het loggen van seriële data van uw projecten. OpenLog biedt een eenvoudige seriële interface om data van een project te loggen naar een microSD-kaart.SparkFun OpenLog
• DEV-13712SparkFun OpenLog met headers
• DEV-13955
geen product gevonden
Benodigde materialen
Om deze tutorial volledig te kunnen doorlopen, heb je de volgende onderdelen nodig. Mogelijk heb je echter niet alles nodig, afhankelijk van wat je hebt. Voeg het toe aan je winkelwagen, lees de handleiding door en pas het winkelwagentje indien nodig aan.
OpenLog Aansluitgids SparkFun Wensenlijst
![]() |
Arduino Pro Mini 328 – 3.3 V/8 MHz DEV-11114 Hij is blauw! Hij is dun! Het is de Arduino Pro Mini! SparkFun's minimalistische ontwerpbenadering van Arduino. Dit is een 3.3V Arduino … |
![]() |
SparkFun FTDI Basis Breakout – 3.3V DEV-09873 Dit is de nieuwste versie van onze [FTDI Basic](http://www.sparkfun.com/commerce/product_info.php?products_id |
![]() |
SparkFun Cerberus USB-kabel – 6 m CAB-12016 Je hebt de verkeerde USB-kabel. Het maakt niet uit welke je hebt, het is de verkeerde. Maar wat als je... |
![]() |
SparkFun OpenLog DEV-13712 De SparkFun OpenLog is een open source datalogger die werkt via een eenvoudige seriële verbinding en ondersteuning biedt voor mi… |
![]() |
microSD-kaart met adapter – 16 GB (klasse 10) COM-13833 Dit is een 10GB microSD-geheugenkaart van klasse 16, perfect voor het huisvesten van besturingssystemen voor singleboardcomputers en... |
![]() |
microSD USB-lezer COM-13004 Dit is een geweldige kleine microSD-kaartlezer. Schuif je microSD-kaart in de USB-connector en... |
![]() |
Vrouwelijke headers PRT-00115 Enkele rij van 40 gaten, vrouwelijke header. Kan op maat worden gesneden met een draadkniptang. Standaard 1 cm afstand. Wij gebruiken … |
![]() |
Jumper Wires Premium 6″ M/M Pak van 10 PRT-08431 Dit is exclusief voor SparkFun! Dit zijn 155 mm lange jumpers met mannelijke connectoren aan beide uiteinden. Gebruik deze om... |
![]() |
Break Away mannelijke headers – rechte hoek PRT-00553 Een rij haakse mannelijke headers – af te breken op maat. 40 pinnen die op elke gewenste maat kunnen worden geknipt. Te gebruiken met aangepaste printplaten of gen… |
Aanbevolen leesvoer
Als u niet bekend bent met de volgende concepten of er niet vertrouwd mee bent, raden wij u aan deze eerst te lezen voordat u verdergaat met de OpenLog Hookup Guide.
Hoe te solderen: doorlopende gaten solderen
In deze tutorial wordt alles behandeld wat u moet weten over doorlopend solderen.
Seriële perifere interface (SPI)
SPI wordt vaak gebruikt om microcontrollers te verbinden met randapparatuur zoals sensoren, schuifregisters en SD-kaarten.
Seriële communicatie
Concepten voor asynchrone seriële communicatie: pakketten, signaalsterktes, baudrates, UART's en meer!
Basisprincipes van seriële terminals
In deze tutorial laten we zien hoe u met uw seriële apparaten kunt communiceren met behulp van verschillende terminalemulatortoepassingen.
Hardware voorbijview
Stroom
OpenLog draait met de volgende instellingen:
OpenLog-vermogensclassificaties
VCC-ingang | 3.3V-12V (aanbevolen 3.3V-5V) |
RXI-ingang | 2.0V-3.8V |
TXO-uitgang | 3.3V |
Stroomverbruik in rust | ~2mA-5mA (zonder microSD-kaart), ~5mA-6mA (met microSD-kaart) |
Actieve schrijfstroomopname | ~20-23mA (met microSD-kaart) |
De stroomopname van de OpenLog bedraagt ongeveer 20 mA tot 23 mA bij het schrijven naar een microSD-kaart. Afhankelijk van de grootte van de microSD-kaart en de fabrikant kan de actieve stroomopname variëren wanneer de OpenLog naar de geheugenkaart schrijft. Het verhogen van de baudrate zal ook meer stroom verbruiken.
Microcontrollers
De OpenLog draait op een ingebouwde ATmega328, die dankzij het ingebouwde kristal op 16 MHz draait. De ATmega328 is voorzien van de Optiboot bootloader, waardoor de OpenLog compatibel is met de "Arduino Uno" boardinstelling in de Arduino IDE.Interface
Seriële UART
De primaire interface met de OpenLog is de FTDI-header op de rand van het bord. Deze header is ontworpen om rechtstreeks op een Arduino Pro of Pro Mini te worden aangesloten, waardoor de microcontroller de data via een seriële verbinding naar de OpenLog kan sturen.
Waarschuwing! Vanwege de pin-volgorde die het compatibel maakt met Arduino's, kan het niet rechtstreeks op een FTDI-breakoutboard worden aangesloten. Voor meer informatie kunt u het volgende gedeelte over het aansluiten van hardware raadplegen.
SPI
Er zijn ook vier SPI-testpunten aan de andere kant van het bord. Deze kun je gebruiken om de bootloader op de ATmega328 te herprogrammeren.De nieuwste OpenLog (DEV-13712) verdeelt deze pinnen over kleinere, doorlopende gaten. Als je een internetprovider nodig hebt om de OpenLog te herprogrammeren of een nieuwe bootloader te uploaden, kun je pogo-pinnen gebruiken om verbinding te maken met deze testpunten.
De laatste interface voor communicatie met OpenLog is de microSD-kaart zelf. Om te communiceren, heeft de microSD-kaart SPI-pinnen nodig. Hier worden de gegevens niet alleen door OpenLog opgeslagen, maar kunt u ook de configuratie van OpenLog bijwerken via config.txt. file op de microSD-kaart.
micro SD kaart
Alle door OpenLog geregistreerde gegevens worden opgeslagen op de microSD-kaart. OpenLog werkt met microSD-kaarten met de volgende functies:
- 64MB naar 32GB
- FAT16 of FAT32
Status-LED
Er zijn twee status-LED's op de OpenLog die u helpen bij het oplossen van problemen.
- STAT1 – Deze blauwe indicator-led is aangesloten op Arduino D5 (ATmega328 PD5) en gaat aan/uit wanneer er een nieuw teken wordt ontvangen. Deze led knippert wanneer de seriële communicatie actief is.
- STAT2 – Deze groene LED is aangesloten op Arduino D13 (SPI Serial Clock Line/ATmega328 PB5). Deze LED knippert alleen wanneer de SPI-interface actief is. U ziet hem knipperen wanneer de OpenLog 512 bytes op de microSD-kaart registreert.
Hardware-aansluiting
Er zijn twee hoofdmethoden om je OpenLog op een circuit aan te sluiten. Je hebt headers of draden nodig om verbinding te maken. Zorg ervoor dat je de verbinding op de printplaat soldeert voor een stevige verbinding.
Basis seriële verbinding
Tip: Als u een vrouwelijke header op de OpenLog en de vrouwelijke header op de FTDI hebt, hebt u M/F-jumperdraden nodig om verbinding te maken.
Deze hardwareverbinding is ontworpen voor communicatie met een OpenLog als u de kaart opnieuw moet programmeren of gegevens moet loggen via een eenvoudige seriële verbinding.
Maak de volgende verbindingen:
OpenLog → 3.3V FTDI Basis Breakout
- Aardgas → Aardgas
- Aardgas → Aardgas
- VCC → 3.3 V
- TXO → RXI
- RXI → TXO
- DTR → DTR
Houd er rekening mee dat er geen directe verbinding is tussen de FTDI en OpenLog. U moet de TXO- en RXI-pinverbindingen omwisselen.
Uw verbindingen moeten er als volgt uitzien: Zodra u de verbindingen tussen OpenLog en FTDI Basic hebt gemaakt, sluit u uw FTDI-kaart aan op een USB-kabel en op uw computer.
Open een seriële terminal, maak verbinding met de COM-poort van uw FTDI Basic en ga aan de slag!
Project Hardware-verbinding
Tip: Als u de vrouwelijke headers op de OpenLog hebt gesoldeerd, kunt u mannelijke headers op de Arduino Pro Mini solderen om de borden met elkaar te verbinden zonder dat u kabels nodig hebt.Hoewel interfacen met de OpenLog via een seriële verbinding belangrijk is voor herprogrammering of debuggen, blinkt OpenLog uit in een embedded project. Met dit algemene circuit raden we aan om je OpenLog aan te sluiten op een microcontroller (in dit geval een Arduino Pro Mini) die seriële data naar de OpenLog schrijft.
Eerst moet je de code uploaden naar de Pro Mini die je wilt gebruiken. Bekijk de Arduino Sketches voor een aantal voorbeelden.ampde code die u kunt gebruiken.
Opmerking: Weet u niet zeker hoe u uw Pro Mini moet programmeren? Bekijk dan hier onze tutorial.
De Arduino Pro Mini 3.3V gebruiken
Deze tutorial is jouw gids voor alles over de Arduino Pro Mini. Hij legt uit wat het is, wat het niet is en hoe je ermee aan de slag kunt.
Nadat u uw Pro Mini hebt geprogrammeerd, kunt u de FTDI-kaart verwijderen en vervangen door de OpenLog.
Zorg ervoor dat u de pinnen met het label BLK op zowel de Pro Mini als de OpenLog aansluit (de pinnen met het label GRN op beide apparaten komen ook overeen als u dit correct doet).
Als u de OpenLog niet rechtstreeks op de Pro Mini kunt aansluiten (vanwege niet-passende headers of andere borden die in de weg zitten), kunt u jumperdraden gebruiken en de volgende verbindingen maken.
OpenLog → Arduino Pro/Arduino Pro Mini
- Aardgas → Aardgas
- Aardgas → Aardgas
- VCC → VCC
- TXO → RXI
- RXI → TXO
- DTR → DTR
Zodra u klaar bent, zouden uw verbindingen er met de Arduino Pro Mini en Arduino Pro als volgt uit moeten zien.
Het Fritzing-diagram toont de OpenLogs met gespiegelde headers. Als je de microSD-aansluiting omdraait ten opzichte van de bovenkant van de Arduino, view, ze moeten overeenkomen met de programmeerheader zoals een FTDI.
Opmerking dat de verbinding rechttoe rechtaan is, met de OpenLog ‘op zijn kop’ (met de microSD naar boven).
⚡Let op: Omdat de Vcc en GND tussen de OpenLog en Arduino bezet worden door de headers, moet je de voeding aansluiten op de andere beschikbare pinnen op de Arduino. Anders kun je draden solderen aan de blootliggende voedingspinnen op beide printplaten.
Schakel uw systeem in en u bent klaar om te beginnen met loggen!
Arduino-schetsen
Er zijn zes verschillende exampEr zijn schetsen bijgevoegd die u op de Arduino kunt gebruiken wanneer deze is aangesloten op een OpenLog.
- OpenLog_Benchmarking — Deze example wordt gebruikt om OpenLog te testen. Dit verstuurt zeer grote hoeveelheden data met 115200 bps over meerdere files.
- OpenLog_CommandTest — Deze example laat zien hoe je een file via opdrachtregelbesturing via de Arduino.
- OpenLog_ReadExample — Deze example legt uit hoe je OpenLog via de opdrachtregel kunt besturen.
- OpenLog_ReadExample_LargeFile - Example van hoe je een grote opslag opent file op OpenLog en rapporteer dit via een lokale Bluetooth-verbinding.
- OpenLog_Test_Sketch — Wordt gebruikt om OpenLog te testen met veel seriële data.
- OpenLog_Test_Sketch_Binary — Wordt gebruikt om OpenLog te testen met binaire gegevens en escape-tekens.
Bedrijfsprogramma
OpenLog heeft twee primaire softwareprogramma's aan boord: de bootloader en de firmware.
Arduino Bootloader
Opmerking: Als u een OpenLog gebruikt die vóór maart 2012 is aangeschaft, is de ingebouwde bootloader compatibel met de instelling “Arduino Pro of Pro Mini 5V/16MHz w/ ATmega328” in de Arduino IDE.
Zoals eerder vermeld, beschikt de OpenLog over de Optiboot seriële bootloader. Je kunt de OpenLog net als een Arduino Uno gebruiken bij het uploaden van bijvoorbeeldample-code of nieuwe firmware naar het bord.
Als je OpenLog uiteindelijk toch niet meer werkt en de bootloader opnieuw moet installeren, kun je het beste Optiboot ook op het board uploaden. Bekijk onze tutorial over het installeren van een Arduino Bootloader voor meer informatie.
Compileren en laden van firmware op de OpenLog
Opmerking: Als dit de eerste keer is dat u Arduino gebruikt, lees dan verderview Onze tutorial over het installeren van de Arduino IDE. Als je nog geen Arduino-bibliotheek hebt geïnstalleerd, bekijk dan onze installatiehandleiding om de bibliotheken handmatig te installeren.
Als u om welke reden dan ook de firmware op uw OpenLog moet bijwerken of opnieuw moet installeren, kunt u het volgende proces volgen om uw bord weer aan de praat te krijgen.
Download eerst de Arduino IDE v1.6.5. Andere versies van de IDE kunnen de OpenLog-firmware mogelijk wel compileren, maar we hebben geverifieerd dat deze versie betrouwbaar is.
Download vervolgens de OpenLog-firmware en het vereiste bibliotheekpakket.
DOWNLOAD OPENLOG FIRMWARE BUNDLE (ZIP)
Nadat je de bibliotheken en firmware hebt gedownload, installeer je ze in Arduino. Weet je niet zeker hoe je de bibliotheken handmatig in de IDE installeert? Bekijk dan onze tutorial: Een Arduino-bibliotheek installeren: Handmatig een bibliotheek installeren.
Opmerking: We gebruiken aangepaste versies van de SdFat- en SerialPort-bibliotheken om willekeurig te bepalen hoe groot de TX- en RX-buffers moeten zijn. OpenLog vereist dat de TX-buffer zeer klein (0) is en de RX-buffer zo groot mogelijk. Door deze twee aangepaste bibliotheken samen te gebruiken, worden de prestaties van OpenLog verbeterd.
Op zoek naar de nieuwste versies? Als je de meest recente versies van de bibliotheken en firmware wilt, kun je ze rechtstreeks downloaden van de onderstaande GitHub-repositories. De SdFatLib- en Serial Port-bibliotheken zijn niet zichtbaar in de Arduino Board Manager, dus je moet de bibliotheek handmatig installeren.
- GitHub: OpenLog > Firmware > OpenLog_Firmware
- Bill Greiman's Arduino-bibliotheken
SdFatLib-bèta
Seriële poort
Vervolgens, om voordeel te halentage van de gewijzigde bibliotheken, wijzig de SerialPort.h file gevonden in de map \Arduino\Libraries\SerialPort. Wijzig BUFFERED_TX naar 0 en ENABLE_RX_ERROR_CHECKING naar 0. Sla de file, en open de Arduino IDE.
Als je dat nog niet hebt gedaan, sluit je OpenLog dan aan op de computer via een FTDI-kaart. Controleer de ex.ample circuit als u niet zeker weet hoe u dit op de juiste manier moet doen.
Open de OpenLog-schets die u wilt uploaden onder het menu Extra>Bord, selecteer "Arduino/Genuino Uno" en selecteer de juiste COM-poort voor uw FTDI-bord onder Extra>Poort.
Upload de code.
Dat is alles! Uw OpenLog is nu geprogrammeerd met nieuwe firmware. U kunt nu een seriële monitor openen en met de OpenLog communiceren. Bij het opstarten ziet u 12> of 12<. 1 geeft aan dat de seriële verbinding tot stand is gebracht, 2 geeft aan dat de SD-kaart succesvol is geïnitialiseerd, < geeft aan dat OpenLog klaar is om ontvangen seriële gegevens te loggen en > geeft aan dat OpenLog klaar is om opdrachten te ontvangen.
OpenLog Firmware Schetsen
Er zijn drie schetsen inbegrepen die u op OpenLog kunt gebruiken, afhankelijk van uw specifieke toepassing.
- OpenLog – Deze firmware wordt standaard meegeleverd met de OpenLog. Door de opdracht ? te versturen, wordt de firmwareversie weergegeven die op een apparaat is geladen.
- OpenLog_Light – Deze versie van de sketch verwijdert het menu en de commandomodus, waardoor de ontvangstbuffer vergroot kan worden. Dit is een goede optie voor snelle logging.
- OpenLog_Minimal – De baudrate moet in de code worden ingesteld en geüpload. Deze schets wordt aanbevolen voor ervaren gebruikers, maar is ook de beste optie voor snelle logging.
Command Set
U kunt via een seriële terminal communiceren met OpenLog. De volgende opdrachten helpen u bij het lezen, schrijven en verwijderen van gegevens. files, en ook de instellingen van OpenLog wijzigen. U moet zich in de opdrachtmodus bevinden om de volgende instellingen te kunnen gebruiken.
Terwijl de OpenLog in de commandomodus staat, schakelt STAT1 in/uit voor elk ontvangen teken. De LED blijft branden totdat het volgende teken wordt ontvangen.
File Manipulatie
- nieuw File – Creëert een nieuwe file genoemd File in de huidige map. Standaard 8.3 filenamen worden ondersteund.
BijvoorbeeldampBijvoorbeeld, “87654321.123” is acceptabel, terwijl “987654321.123” dat niet is.
• Example: nieuw file1.txt - toevoegen File – Voeg tekst toe aan het einde van File. Seriële gegevens worden vervolgens in een stroom van de UART gelezen en toegevoegd aan de file. Het wordt niet via de seriële terminal weergegeven. Als File bestaat niet wanneer deze functie wordt aangeroepen, de file zal worden gecreëerd.
• Example: nieuw toevoegenfile.csv - schrijven File OFFSET – Schrijf tekst naar File vanaf de locatie OFFSET binnen de fileDe tekst wordt regel voor regel van de UART gelezen en teruggeëchood. Om deze status te verlaten, stuurt u een lege regel.
• Example: schrijf logs.txt 516 - rm File – Verwijdert File uit de huidige directory. Jokertekens worden ondersteund.
• Example: rm README.txt - maat File – Uitvoergrootte van File in bytes.
• Example: grootte Log112.csv
• Uitvoer: 11 - lezen File + START+ LENGTETYPE – Geef de inhoud van File beginnend bij START en gericht op LENGTH.
Als START wordt weggelaten, wordt de gehele file wordt gerapporteerd. Als LENGTH wordt weggelaten, wordt de volledige inhoud vanaf het startpunt gerapporteerd. Als TYPE wordt weggelaten, rapporteert OpenLog standaard in ASCII. Er zijn drie uitvoertypen:
• ASCII = 1
• HEX = 2
• RAW = 3
U kunt enkele afsluitende argumenten weglaten. Controleer het volgende voorbeeld.amples.
Basis gelezen + weggelaten vlaggen:
• Example: lees LOG00004.txt
• Uitvoer: Accelerometer X=12 Y=215 Z=317
Lees vanaf start 0 met lengte 5:
• Example: lees LOG00004.txt 0 5
• Uitvoer: Accel
Lees vanaf positie 1 met een lengte van 5 in HEX:
• Example: lees LOG00004.txt 1 5 2
• Uitgang: 63 63 65 6C - Lezen vanaf positie 0 met een lengte van 50 in RAW:
- • Example: lees LOG00137.txt 0 50 3
- • Uitvoer: André– -þ Uitgebreide karaktertest
- kat File – Schrijf de inhoud van een file in hex naar de seriële monitor voor viewing. Dit is soms nuttig om te zien dat een file neemt correct op zonder dat u de SD-kaart hoeft te verwijderen en view de file op een computer.
• Example: cat LOG00004.txt
• Uitvoer: 00000000: 41 63 65 6c 3a 20 31
Directory-manipulatie
- ls – Geeft alle inhoud van de huidige map weer. Jokertekens worden ondersteund.
• Example: ls
• Uitvoer: \src - md Subdirectory – Maakt een subdirectory in de huidige directory.
• Example: md Example_Sketches - cd Subdirectory – Ga naar Subdirectory.
• Example: cd Hallo_Wereld - cd .. – Ga naar een lagere directory in de boom. Let op de spatie tussen 'cd' en '..'. Hierdoor kan de stringparser de cd-opdracht herkennen.
• Example: cd .. - rm Subdirectory – Verwijdert een subdirectory. De directory moet leeg zijn om deze opdracht te laten werken.
• Example: rm temperaturen - rm -rf Directory – Verwijdert een directory en alle filezit erin.
• Example: rm -rf Bibliotheken
Laag niveau functie commando's
- ? – Met deze opdracht wordt een lijst met beschikbare opdrachten op OpenLog weergegeven.
- schijf – Toont de ID van de kaartfabrikant, het serienummer, de productiedatum en de kaartgrootte. ExampDe uitvoer is:
Kaarttype: SD2
Fabrikant ID: 3
OEM-ID: SD
Product: SU01G
Versie: 8.0
Serienummer: 39723042
Fabricagedatum: 1/2010
Kaartgrootte: 965120 KB - init – Initialiseer het systeem opnieuw en open de SD-kaart opnieuw. Dit is handig als de SD-kaart niet meer reageert.
- sync – Synchroniseert de huidige inhoud van de buffer met de SD-kaart. Deze opdracht is handig als u minder dan 512 tekens in de buffer hebt en deze op de SD-kaart wilt opslaan.
- reset – Springt OpenLog naar locatie nul, voert de bootloader opnieuw uit en initialiseert vervolgens de code. Deze opdracht is handig als u de configuratie moet bewerken. file, reset OpenLog en begin met het gebruiken van de nieuwe configuratie. Powercycling is nog steeds de voorkeursmethode om het bord te resetten, maar deze optie is beschikbaar.
Systeeminstellingen
Deze instellingen kunnen handmatig worden bijgewerkt of bewerkt in het bestand config.txt file.
- echo STATE – Wijzigt de status van het systeem (echo) en wordt opgeslagen in het systeemgeheugen. STATE kan aan of uit staan. Indien aan, echoot OpenLog ontvangen seriële gegevens via de opdrachtprompt. Indien uit, leest het systeem geen ontvangen tekens terug.
Opmerking: Tijdens normale logging is echo uitgeschakeld. De systeembronnen die nodig zijn voor het echoën van de ontvangen gegevens zijn te hoog tijdens logging. - verbose STATE – Wijzigt de status van de uitgebreide foutrapportage. STATE kan aan of uit staan. Deze opdracht wordt in het geheugen opgeslagen. Door de uitgebreide fouten uit te schakelen, reageert OpenLog alleen met een ! als er een fout is in plaats van een onbekende opdracht: COMMAND. Het !-teken is voor embedded systemen gemakkelijker te parseren dan de volledige fout. Als u een terminal gebruikt, kunt u door verbose aan te laten staan, volledige foutmeldingen bekijken.
- baud – Met deze opdracht opent u een systeemmenu waarin u een baudrate kunt invoeren. Elke baudrate tussen 300 bps en 1 Mbps wordt ondersteund. De baudrate wordt direct geselecteerd en OpenLog moet eerst uit en weer aan worden gezet om de instellingen te activeren. De baudrate wordt opgeslagen in het EEPROM en elke keer dat OpenLog wordt opgestart, geladen. De standaardwaarde is 9600 8N1.
Let op: als de kaart vastloopt op een onbekende baudrate, kunt u RX aan GND koppelen en OpenLog inschakelen. De leds knipperen 2 seconden heen en weer en knipperen daarna gelijktijdig. Schakel OpenLog uit en verwijder de jumper. OpenLog is nu gereset naar 9600 bps met het escape-teken `CTRL-Z` drie keer achter elkaar ingedrukt. Deze functie kan worden overschreven door de Emergency Override-bit op 1 te zetten.
Zie config.txt voor meer informatie.
- set – Deze opdracht opent een systeemmenu om de opstartmodus te selecteren. Deze instellingen worden uitgevoerd op het
• volgende keer inschakelen en worden opgeslagen in een niet-vluchtig EEPROM. Nieuw File Loggen – Deze modus creëert een nieuwe file Elke keer dat OpenLog opstart. OpenLog verzendt 1 (UART actief), 2 (SD-kaart geïnitialiseerd) en vervolgens < (OpenLog is klaar om data te ontvangen). Alle data wordt opgeslagen in een LOG#####.txt. Het #####-nummer wordt elke keer dat OpenLog opstart verhoogd (het maximum is 65533 logs). Het nummer wordt opgeslagen in het EEPROM en kan via het instellingenmenu worden gereset.
Niet alle ontvangen tekens worden geëchood. U kunt deze modus verlaten en de opdrachtmodus activeren door CTRL+z (ASCII 26) te sturen. Alle gebufferde gegevens worden opgeslagen.
Opmerking: Als er te veel logs zijn aangemaakt, geeft OpenLog de foutmelding **Te veel logs**, verlaat deze modus en gaat naar de opdrachtprompt. De seriële uitvoer ziet eruit als `12!Te veel logs!`.
- Toevoegen File Logging – Ook bekend als sequentiële modus, deze modus creëert een file SEQLOG.txt aangeroepen als het er nog niet is, en alle ontvangen gegevens aan de fileOpenLog verzendt 12<, waarna OpenLog klaar is om gegevens te ontvangen. Tekens worden niet geëchood. U kunt deze modus verlaten en de opdrachtmodus openen door CTRL+z (ASCII 26) te sturen. Alle gebufferde gegevens worden opgeslagen.
- Opdrachtprompt – OpenLog verzendt 12>, waarna het systeem klaar is om opdrachten te ontvangen. Let op: het > teken geeft aan dat OpenLog klaar is om opdrachten te ontvangen, geen gegevens. U kunt files en voeg gegevens toe aan files, maar hiervoor is enige seriële parsing nodig (voor foutcontrole), dus stellen we deze modus niet standaard in.
- Nieuw resetten File Nummer – Deze modus reset het logbestand file nummer naar LOG000.txt. Dit is handig als u onlangs een microSD-kaart hebt gewist en het logbestand wilt file nummers om opnieuw te beginnen.
- Nieuw escape-teken – Met deze optie kan de gebruiker een teken invoeren, zoals CTRL+z of $, en dit instellen als het nieuwe escape-teken. Deze instelling wordt teruggezet naar CTRL+z tijdens een noodreset.
- Aantal escape-tekens – Met deze optie kan de gebruiker een teken invoeren (zoals 1, 3 of 17), waarbij het nieuwe aantal escape-tekens wordt bijgewerkt dat nodig is om terug te keren naar de opdrachtmodus. BijvoorbeeldampAls u bijvoorbeeld 8 invoert, moet u acht keer op CTRL+z drukken om de opdrachtmodus te activeren. Deze instelling wordt tijdens een noodreset teruggezet naar 3.
Escape-tekens: De reden dat OpenLog vereist dat je `CTRL+z` drie keer indrukt om de commandomodus te activeren, is om te voorkomen dat de kaart per ongeluk wordt gereset tijdens het uploaden van nieuwe code vanuit de Arduino IDE. Er bestaat een kans dat de kaart het teken `CTRL+z` ziet tijdens het bootloaden (een probleem dat we zagen in de vroege versies van de OpenLog-firmware), dus dit is bedoeld om dat te voorkomen. Als je ooit vermoedt dat je kaart hierdoor is geblokkeerd, kun je altijd een noodreset uitvoeren door de RX-pin tijdens het opstarten tegen de aarde te houden.
Configuratie File
Als u liever niet de seriële terminal gebruikt om de instellingen op uw OpenLog te wijzigen, kunt u de instellingen ook bijwerken door het bestand CONFIG.TXT aan te passen file.
Opmerking: Deze functie werkt alleen met firmwareversie 1.6 of nieuwer. Als u een OpenLog na 2012 hebt gekocht, gebruikt u firmwareversie 1.6 of hoger.
Hiervoor heb je een microSD-kaartlezer en een teksteditor nodig. Open het bestand config.txt file (de kapitalisatie van de file naam maakt niet uit) en configureer maar! Als u uw OpenLog nog nooit eerder met de SD-kaart hebt opgestart, kunt u de fileAls u OpenLog eerder hebt opgestart met de microSD-kaart erin, zou u het volgende moeten zien wanneer u de microSD-kaart leest.OpenLog maakt een config.txt en LOG0000.txt file bij de eerste keer opstarten.
De standaardconfiguratie file heeft één regel met instellingen en één regel met definities.Standaardconfiguratie file geschreven door OpenLog.
Houd er rekening mee dat dit gewone zichtbare tekens zijn (er zijn geen niet-zichtbare of binaire waarden) en dat elke waarde door een komma wordt gescheiden.
De instellingen zijn als volgt gedefinieerd:
- Baud: De communicatiebaudsnelheid. 9600 bps is de standaard. Acceptabele waarden die compatibel zijn met de Arduino IDE zijn 2400, 4800, 9600, 19200, 38400, 57600 en 115200. U kunt andere baudsnelheden gebruiken, maar u kunt dan niet communiceren met OpenLog via de seriële monitor van de Arduino IDE.
- escape: De ASCII-waarde (in decimale notatie) van het escape-teken. 26 is CTRL+z en is de standaardinstelling. 36 is $ en is een veelgebruikt escape-teken.
- esc#: Het vereiste aantal escape-tekens. Standaard is dit drie, dus u moet het escape-teken drie keer intoetsen om terug te keren naar de opdrachtmodus. Acceptabele waarden liggen tussen 0 en 254. Als u deze waarde instelt op 0, wordt de controle op escape-tekens volledig uitgeschakeld.
- modus: Systeemmodus. OpenLog start standaard in de modus Nieuw log (0). Acceptabele waarden zijn 0 = Nieuw log, 1 = Sequentieel log, 2 = Opdrachtmodus.
- verb : Uitgebreide modus. Uitgebreide (verbose) foutmeldingen zijn standaard ingeschakeld. Als u deze waarde instelt op 1, worden uitgebreide foutmeldingen ingeschakeld (zoals de onbekende opdracht: remove ! ). Als u deze waarde instelt op 0, worden uitgebreide fouten uitgeschakeld, maar wordt er een ! weergegeven als er een fout is. Het uitschakelen van de uitgebreide modus is handig als u fouten van een embedded systeem probeert af te handelen.
- echo: Echomodus. In de opdrachtmodus worden tekens standaard geëchood. Als u dit op 0 instelt, wordt de tekenecho uitgeschakeld. Dit is handig als u fouten verwerkt en niet wilt dat verzonden opdrachten worden geëchood naar OpenLog.
- ignoreRX: Noodoverride. Normaal gesproken voert OpenLog een noodreset uit wanneer de RX-pin tijdens het opstarten laag wordt getrokken. Als u dit op 1 instelt, wordt de controle van de RX-pin tijdens het opstarten uitgeschakeld. Dit kan handig zijn voor systemen die de RX-lijn om verschillende redenen laag houden. Als Noodoverride is uitgeschakeld, kunt u het apparaat niet terugzetten naar 9600 bps en de configuratie. file zal de enige manier zijn om de baudrate te wijzigen.
Hoe OpenLog de configuratie wijzigt File
Er zijn vijf verschillende situaties waarin OpenLog de config.txt kan wijzigen file.
- Configuratie file gevonden: Tijdens het opstarten zal OpenLog zoeken naar een config.txt file. Als de file wordt gevonden, zal OpenLog de meegeleverde instellingen gebruiken en eventuele eerder opgeslagen systeeminstellingen overschrijven.
- Geen configuratie file gevonden: Als OpenLog het bestand config.txt niet kan vinden file OpenLog maakt dan config.txt aan en slaat de momenteel opgeslagen systeeminstellingen daarin op. Dit betekent dat uw systeem de huidige instellingen behoudt als u een nieuw geformatteerde microSD-kaart plaatst.
- Corrupte configuratie file gevonden: OpenLog zal de beschadigde config.txt wissen fileen zal zowel de interne EEPROM-instellingen als de config.txt-instellingen herschrijven file naar de bekende goede staat van 9600,26,3,0,1,1,0 .
- Ongeldige waarden in de configuratie file:Als OpenLog instellingen ontdekt die ongeldige waarden bevatten, zal OpenLog de corrupte waarden in config.txt overschrijven file met de momenteel opgeslagen EEPROM-systeeminstellingen.
- Wijzigingen via de opdrachtprompt: Als de systeeminstellingen worden gewijzigd via de opdrachtprompt (hetzij via een seriële verbinding of via seriële opdrachten van de microcontroller), worden deze wijzigingen zowel in het EEPROM van het systeem als in het bestand config.txt vastgelegd. file.
- Noodreset: Als de OpenLog wordt uit- en ingeschakeld met een jumper tussen RX en GND, en de noodoverride-bit is ingesteld op 0 (waardoor een noodreset mogelijk is), zal OpenLog zowel de interne EEPROM-instellingen als de config.txt-instellingen herschrijven file naar de bekende goede staat van 9600,26,3,0,1,1,0 .
Probleemoplossing
Er zijn verschillende opties om te controleren of u problemen ondervindt met het maken van verbinding via de seriële monitor, problemen met weggelaten tekens in logboeken of problemen met een geblokkeerde OpenLog.
Controleer STAT1 LED-gedrag
STAT1 LED vertoont verschillend gedrag bij twee verschillende, veelvoorkomende fouten.
- 3 keer knipperen: De microSD-kaart is niet geïnitialiseerd. Mogelijk moet u de kaart formatteren met FAT/FAT16 op een computer.
- 5 knipperingen: OpenLog is overgeschakeld naar een nieuwe baudrate en moet opnieuw worden opgestart.
Controleer de submapstructuur nogmaals
Als u de standaard OpenLog.ino ex gebruiktampOpenLog ondersteunt slechts twee submappen. U moet FOLDER_TRACK_DEPTH van 2 wijzigen naar het aantal submappen dat u wilt ondersteunen. Zodra u dit hebt gedaan, compileert u de code opnieuw en uploadt u de aangepaste firmware.
Controleer het aantal Files in de hoofdmap
OpenLog ondersteunt maximaal 65,534 logs. files in de root-directory. We raden aan je microSD-kaart opnieuw te formatteren om de logsnelheid te verbeteren.
Controleer de grootte van uw aangepaste firmware
Als u een aangepaste schets voor OpenLog schrijft, controleer dan of uw schets niet groter is dan 32,256 bytes. Anders zal deze de bovenste 500 bytes van het flashgeheugen in beslag nemen, die door de seriële bootloader Optiboot worden gebruikt.
Dubbelcheck File Namen
Alle file Namen moeten alfanumeriek zijn. MyLOG1.txt is oké, maar Hi !e _.txt werkt mogelijk niet.
Gebruik 9600 Baud
OpenLog draait op de ATmega328 en heeft een beperkte hoeveelheid RAM (2048 bytes). Wanneer u seriële tekens naar OpenLog verzendt, worden deze tekens gebufferd. De SD Group Simplified Specification staat toe dat een SD-kaart tot 250 ms (sectie 4.6.2.2 Schrijven) nodig heeft om een datablok in het flashgeheugen op te slaan.
Bij 9600 bps zijn dat 960 bytes (10 bits per byte) per seconde. Dat is 1.04 ms per byte. OpenLog gebruikt momenteel een ontvangstbuffer van 512 bytes, waardoor het ongeveer 50 ms aan tekens kan bufferen. Hierdoor kan OpenLog alle tekens met 9600 bps succesvol ontvangen. Naarmate de baudrate toeneemt, gaat de buffer minder lang mee.
OpenLog Buffer Overrun Tijd
Baudsnelheid | Tijd per byte | Tijd totdat de buffer is overschreden |
9600bps | 1.04ms | 532ms |
57600bps | 0.174ms | 88ms |
115200bps | 0.087ms | 44ms |
Veel SD-kaarten hebben een snellere opnametijd dan 250 ms. Dit kan worden beïnvloed door de 'klasse' van de kaart en de hoeveelheid gegevens die al op de kaart is opgeslagen. De oplossing is om een lagere baudrate te gebruiken of de tijd tussen de tekens die met de hogere baudrate worden verzonden, te verlengen.
Formatteer uw MicroSD-kaart
Denk eraan een kaart te gebruiken met weinig of geen files erop. Een microSD-kaart met 3.1 GB aan ZIP files of MP3's heeft een langzamere responstijd dan een lege kaart.
Als u uw microSD-kaart niet op een Windows-besturingssysteem hebt geformatteerd, formatteer de microSD-kaart dan opnieuw en maak een DOS-bestand aan. filesysteem op de SD-kaart.
MicroSD-kaarten verwisselen
Er zijn veel verschillende soorten kaartfabrikanten, kaarten met een ander label, kaartformaten en kaartklassen, en ze werken mogelijk niet allemaal even goed. Wij gebruiken doorgaans een 8GB klasse 4 microSD-kaart, die goed presteert met 9600 bps. Als u hogere baudrates of meer opslagruimte nodig hebt, kunt u kaarten van klasse 6 of hoger proberen.
Voeg vertragingen toe tussen het schrijven van personages
Door een kleine vertraging toe te voegen tussen Serial.print()-instructies, kunt u OpenLog de kans geven om zijn huidige
buffer.
Bijvoorbeeldampon:
Serieel.begin(115200);
voor(int i = 1 ; i < 10 ; i++) {
Serieel.print(i, DEC);
Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”);
}
Logt mogelijk niet correct, omdat er veel tekens direct achter elkaar worden verzonden. Door een kleine vertraging van 15 ms in te voegen tussen het schrijven van grote tekens, kan OpenLog gegevens registreren zonder tekens te verliezen.
Serieel.begin(115200);
voor(int i = 1 ; i < 10 ; i++) {
Serieel.print(i, DEC);
Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”);
vertraging(15);
}
Voeg Arduino seriële monitorcompatibiliteit toe
Als u OpenLog probeert te gebruiken met de ingebouwde seriële bibliotheek of de SoftwareSerial-bibliotheek, kunt u problemen ondervinden met de opdrachtmodus. Serial.println() stuurt zowel een nieuwe regel als een wagenretour. Er zijn twee alternatieve opdrachten om dit te verhelpen.
De eerste manier is door gebruik te maken van de opdracht \r (ASCII-carriage return):
Serial.print(“TEKST\r”);
U kunt ook de waarde 13 (decimale wagenretour) verzenden:
Serial.print(“TEKST”);
Serial.write(13);
Noodreset
Houd er rekening mee dat als u de OpenLog naar een standaardstatus wilt resetten, u het bord kunt resetten door de RX-pin aan GND te verbinden, de OpenLog in te schakelen, te wachten tot de LED's gelijktijdig beginnen te knipperen en vervolgens de OpenLog uit te schakelen en de jumper te verwijderen.
Als u de Emergency Override-bit naar 1 hebt gewijzigd, moet u de configuratie aanpassen file, omdat de noodreset niet werkt.
Neem contact op met de Community
Als je nog steeds problemen ondervindt met je OpenLog, bekijk dan hier de huidige en opgeloste problemen in onze GitHub-repository. Er is een grote community die met OpenLog werkt, dus de kans is groot dat iemand een oplossing heeft gevonden voor het probleem dat je ervaart.
Hulpbronnen en verder gaan
Nu je succesvol gegevens hebt geregistreerd met je OpenLog, kun je externe projecten opzetten en alle mogelijke binnenkomende gegevens in de gaten houden. Overweeg om je eigen Citizen Science-project te starten, of zelfs een huisdierentracker om te zien wat Fluffy doet wanneer hij buiten is!
Bekijk deze aanvullende bronnen voor probleemoplossing, hulp of inspiratie voor uw volgende project.
- OpenLog GitHub
- Illumitune-project
- LilyPad lichtsensor aansluiten
- BadgerHack: Bodemsensor-add-on
- Aan de slag met OBD-II
- Vernier Photogate
Heb je nog meer inspiratie nodig? Bekijk dan eens een paar van deze gerelateerde tutorials:
Foton-afstandsbediening voor waterniveausensor
Leer hoe u een waterniveausensor op afstand voor een wateropslagtank bouwt en hoe u een pomp op basis van de metingen kunt automatiseren!
Foton-afstandsbediening voor waterniveausensor
Leer hoe u een waterniveausensor op afstand voor een wateropslagtank bouwt en hoe u een pomp op basis van de metingen kunt automatiseren!
Gegevens loggen naar Google Sheets met de Tessel 2
Dit project behandelt hoe u op twee manieren gegevens kunt loggen in Google Sheets: met behulp van IFTTT met een web verbinding of een USB-stick en "sneakernet" zonder.
Grafieksensorgegevens met Python en Matplotlib
Met matplotlib kunt u een realtimegrafiek maken van temperatuurgegevens die zijn verzameld via een TMP102-sensor die is aangesloten op een Raspberry Pi.
Als u feedback heeft over de tutorial, bekijk dan de opmerkingen of neem contact op met ons technische ondersteuningsteam via TechSupport@sparkfun.com.
Documenten / Bronnen
![]() |
SparkFun DEV-13712 SparkFun-ontwikkelborden [pdf] Gebruikershandleiding DEV-13712, DEV-11114, DEV-09873, CAB-12016, COM-13833, COM-13004, PRT-00115, PRT-08431, DEV-13712 SparkFun-ontwikkelborden, DEV-13712, SparkFun-ontwikkelborden, ontwikkelborden, borden |