Easy Arduino Data Logging and Telemetry

Поделиться
HTML-код
  • Опубликовано: 14 июл 2024
  • Here's a program that I wrote to make it easy to visualize data from an Arduino or other microcontroller. The microcontroller sends data to the PC as CSV text. The software can visualize that data in the form of line charts, histograms, Fourier transforms and statistical calculations.
    The video starts with two demos: first an STM32-based balancing robot that streams out accelerometer, gyro and magnetometer sensor readings. Then a demo with an Arduino that has a CdS light sensor, a potentiometer and a thermistor.
    I cover how to write the Arduino sketch, and then show how to use the Telemetry Viewer program.
    The rest of the video is an explanation of how the Java source code is laid out. A model-view-controller methodology is used.
    To use the program you will need to have Java 8 installed.
    Download the program and source code here:
    www.farrellf.com/TelemetryViewer/
    github.com/farrellf/Telemetry...
    Telemetry Viewer is free and open source. If you find it useful and want to "buy me a coffee" that would be awesome: paypal.me/farrellfarahbod
    Edit: There's a new version available, check out the updated video:
    • GPU-Accelerated Arduin...
  • НаукаНаука

Комментарии • 233

  • @breakthebreak966
    @breakthebreak966 2 года назад +1

    You have no idea how helpful this is. I've been searching for a month for this exact video.

  • @Taran72
    @Taran72 5 лет назад +7

    Thank you very much for sharing this! I've been looking around for something like this. I tried to do it on my own but didn't succeed. :) You are the best!

  • @VoeViking
    @VoeViking 7 лет назад +1

    Thank you for sharing and taking the time to make the video.

  • @fabienherve5565
    @fabienherve5565 6 лет назад +3

    What an amazing soft !
    This is exactly what I'm looking for.
    Thank you so much for this and for your tutorial !

  • @sobreviviendoalau8499
    @sobreviviendoalau8499 6 лет назад +10

    i signed up just for leaving my like. THANK YOU SO MUCH!!!

  • @omgkingdano
    @omgkingdano 7 лет назад +1

    This looks like a really great application.
    Well done!

  • @rafaellucas8268
    @rafaellucas8268 7 лет назад +6

    This is amazing! Thanks for sharing this with us!

  • @rorythompson1070
    @rorythompson1070 6 лет назад +1

    Thanks so much, been looking for something like this for ages!

  • @Reesespeices918
    @Reesespeices918 Год назад +1

    Thank you so much, I've been looking so long for this explanation

  • @movax20h
    @movax20h 5 лет назад +5

    Good design. Few suggestions: 1) Time instead of samples on x axis. Either absolute time of a day, or relative time from the start of measurements. 2) When reading from serial also dump data in parallel to a file (or files) for offline analysis with other programs. 3) Ability to have multiple different time bases on different charts. I.e. one showing only last 60 seconds, and another showing same data from last 6 hours, with decimated data (min/avg/max).

  • @paulrobion
    @paulrobion 7 лет назад +1

    Thanks for this amazing job !! Exactly what I was looking for, even better !

  • @freeelectron8261
    @freeelectron8261 4 года назад +1

    Very impressive - that must have been a lot of work and time to write . Well done Mr upgrdman!

  • @burgulize
    @burgulize 7 лет назад +17

    This is amazing!
    Thank you so much for sharing and explaining , you earned a huge like!
    I wish my java teacher would have implemented something like that to spice up the boring projects he gives us!

  • @gregor.potrebujes
    @gregor.potrebujes 3 года назад

    Beautiful work mate! Thank you for sharing this!

  • @leisryan
    @leisryan 2 года назад +2

    Awesome Project...! Clearly laid out...! Thank you for this..!

  • @jnecece
    @jnecece 4 года назад +1

    Thank you so much. It was something I was looking for. Your work is commendable.

  • @bluehornet6752
    @bluehornet6752 6 лет назад +1

    That's bad ass man. Incredible application!

  • @tomcarroll6744
    @tomcarroll6744 2 месяца назад +1

    Very nicely done. I'll give it a try. It gave me an idea on how to think about my data differently. Helpful for us if you make the code bigger to see from our end.

  • @nielspaulin2647
    @nielspaulin2647 2 года назад +1

    Absolutely EXCELLENT !!! You saved me a lot of time. Thanks a lot.

  • @RikerRC
    @RikerRC 7 лет назад +2

    This is awesome! Thank you for sharing this.

  • @ollydsouza
    @ollydsouza Год назад

    Very useful for a student comparing data transfer speeds!

  • @anadack7878
    @anadack7878 4 года назад +1

    Thanks you so much !! the world need guy like you

  • @RafaelAlmeida-sl7ef
    @RafaelAlmeida-sl7ef 6 лет назад +1

    Excellent work, thank you for sharing.

  • @dileepsenevirathne4329
    @dileepsenevirathne4329 5 лет назад +2

    DUDE This is awsome!!!!!!!!!!! Thank you for sharing keep up the good work.....

  • @su18ku12
    @su18ku12 7 лет назад +1

    The Real MVP!!! Well done!

  • @danielmacedovilca7820
    @danielmacedovilca7820 6 лет назад +1

    Really great job. Greetings from Perú

  • @samadkhan295
    @samadkhan295 7 лет назад +1

    dude u just made my day love u man...

  • @TheJenkins124
    @TheJenkins124 5 лет назад +2

    Awesome video and program.

  • @brettlowery461
    @brettlowery461 2 года назад +1

    Brilliant, and thank you for sharing. Hopefully I can get it working

  • @uj_tech618
    @uj_tech618 6 лет назад +3

    this made my day!!
    great work thumbs up :)

  • @DaKILLaGod
    @DaKILLaGod 4 года назад

    well, i have written my own in python few days back... :-D thanks for sharing video of yours as the inspiration is mind blowing! :-D

  • @roxenhs6407
    @roxenhs6407 7 лет назад +2

    Amazing work as usual. Just got exactly, what I need. Bundle of thanks.

    • @upgrdman
      @upgrdman  7 лет назад

      Thanks for the kind feedback.

  • @jonvassella1076
    @jonvassella1076 6 лет назад +1

    terrific video - thank you very much

  • @DataLog
    @DataLog 3 года назад

    We had a strong earthquake in Croatia, and we don't have money for decent seismology equipment. (it is sad because Andrija Mohorovičić was born here..)
    Your software will help us to build a web of smaller stations all around the country and track the data. I am planning to upgrade our meteor web (Visnjan Observatory started a project of tracking meteors with web of cameras all around the country years ago). We have 24/7 running servers and cameras on 350 locations. We will now start upgrading those stations to track earthquakes and I will personally make sure that as soon as this project gets going you receive as much money as possible. Thank you very much!

  • @PCJAVH
    @PCJAVH 6 лет назад +2

    Muy buen código, simple y concreto. mejor no puede estar. Muchas gracias por compartir, Saludos desde Colombia.

    • @penguin0123
      @penguin0123 5 лет назад

      Hey John, podrias ayudarme con algo, por favor? Gracias

  • @bobsponge9792
    @bobsponge9792 7 лет назад

    Just what i need :D, Thank you so much !!

  • @drfdfe
    @drfdfe 6 лет назад +1

    Nice job! Looks like a handy tool. Thx..

  • @kimholtz6466
    @kimholtz6466 5 лет назад +2

    Thank you very much for sharing......great tool !!!

  • @ZestyMuffins
    @ZestyMuffins 7 лет назад

    This is really cool. Thanks for sharing

  • @JulioCGallardo
    @JulioCGallardo 6 лет назад +1

    Very nice software, thanks!!

  • @herrkronen9694
    @herrkronen9694 3 года назад +2

    This is not easy at all .. But is amazing!, great programming work ! This inspires me ti keep learning !

    • @upgrdman
      @upgrdman  3 года назад +2

      Thanks for the kind feedback! Good luck with your projects.

  • @brucea4185
    @brucea4185 3 года назад

    Awesome app. Thanks. You cleared my thirst from Arduino's serial plotter. Only daring wish is; it would been nice if there was a way to clear data while app is still up.

  • @adlenenafi9976
    @adlenenafi9976 3 года назад +1

    you saved me man, thanks a lot

  • @thescienceysworkshop5368
    @thescienceysworkshop5368 3 года назад +1

    wow bro!! this is amazing .. we can use this technique in model rocket for seeing the performance of the rocket

  • @Elad6k
    @Elad6k 6 лет назад

    That is excellent!!! just one thing missing... connect it to a rtc

  • @jonathancartilla4223
    @jonathancartilla4223 6 лет назад +1

    thank you..
    this helps a lot.

  • @InfanteBoy
    @InfanteBoy 3 года назад

    thank you for sharing, nice tool!!!

  • @srknyxl
    @srknyxl 7 лет назад

    very very thanks for this useful software :)

  • @patrickmetzner4607
    @patrickmetzner4607 7 лет назад +1

    Great video!

  • @mariotretinjak1863
    @mariotretinjak1863 7 лет назад

    Amazing work and big like from me.

  • @kongdangchi3402
    @kongdangchi3402 5 лет назад +1

    Really good job

  • @phunterza
    @phunterza 4 года назад +1

    Thank you very much sir. I like it.

  • @oentronicneotronic9153
    @oentronicneotronic9153 6 лет назад

    Hello, I'm happy that you alwas uploading your telemery viewer! Relly good job
    Woult to be possible to change the BACKGROUD Color to black?, It will look even better
    at night.. thanx

  • @Livevvire9
    @Livevvire9 6 лет назад +4

    excellent tutorial. thanks for sharing.
    i used this for the string if helps anyone
    Serial.println(String() + sensor1 + "," + sensor2 + "," + sensor3);

  • @drwinkhaing2860
    @drwinkhaing2860 7 лет назад +3

    Very amazing, let me share.

  • @lukievanniekerk4362
    @lukievanniekerk4362 Год назад

    Amazing just what i needed. Thank you so much for the great work. Just one thing how do a add distance and time + speed. Using rotary encoder for speed and pot for distance.

  • @richardwells2687
    @richardwells2687 3 года назад

    Thank you Kind Sir.

  • @essamrama6156
    @essamrama6156 7 лет назад +1

    very nice my friend tank you

  • @suleymankzkloglu
    @suleymankzkloglu 4 года назад +1

    Thank you big teacher .

  • @programorprogrammed
    @programorprogrammed 7 лет назад

    Fantastic buddy

  • @user-fh1ur4od9n
    @user-fh1ur4od9n 6 лет назад +1

    Thank you So much.

  • @temirkhanamanbaev42
    @temirkhanamanbaev42 7 лет назад

    Thanks man. Very Cool!.

  • @covertops4306
    @covertops4306 5 лет назад +1

    Superb tool

  • @meierthomas
    @meierthomas 4 года назад

    Great way to visualise and understand data - I especially like the different ways to scale so that you may be able to look at data over a particular period of time. Saw on the connection preferences that other than COM ports you also support UDP and TCP methods. Do you have any code samples to use these options? Your robot would've used either I figure

    • @meierthomas
      @meierthomas 4 года назад +1

      Hey, just found the answer in another of your great tutorials. So all good :)

  • @mochammadariyanto6690
    @mochammadariyanto6690 3 года назад +1

    Amazing ..thank you..

  • @ehsanrohaimi8647
    @ehsanrohaimi8647 7 лет назад +1

    hi, thanks for sharing.
    can you specify the data that collected from sensor and equation you used to plotting the graph ?

  • @DenysSene
    @DenysSene 7 лет назад

    really nice!

  • @slimx4u
    @slimx4u 7 лет назад +1

    Amazing and flexible program. Thanks for sharing it! Do you use the serial-comm library for Java as in one of your previous videos?

    • @upgrdman
      @upgrdman  7 лет назад +1

      Thanks. Yes, I am using the same jSerialComm library as before.

    • @slimx4u
      @slimx4u 7 лет назад

      Thank you! :)

  • @alexandracotoranu646
    @alexandracotoranu646 Год назад

    I am doing a project based on the transmission of signals through telemetry and your program helps me a lot. By means of the fourier transform, the signal can be visualized in a different way compared to the time domain, for example, or is it also the final form of the information?

  • @tusherabdulaziz3070
    @tusherabdulaziz3070 4 года назад +1

    thanks a ton

  • @Gaatech
    @Gaatech 7 лет назад

    great project

  • @harfogolo
    @harfogolo 7 лет назад +1

    That is just great

  • @Tobby4063
    @Tobby4063 3 года назад

    Brilliant.

  • @meryemlaamim6996
    @meryemlaamim6996 4 года назад

    Thank you for sharing with us this amazing program ! i used this program to visualise graphs of an 3 axis accelometer and it works very good but i have a question why fourier transforms is shown up with power(watts) ? (i will be so grateful if you answer my question)

  • @fabiov6399
    @fabiov6399 6 лет назад

    Thanks for your amazing software. I'm using it to monitor my little greenhouse. Just displaying some moisture, temperature and humidity values. Any chance I can modify it to have the time stamp instead of the sample numbers?

  • @waleedkahn4961
    @waleedkahn4961 4 года назад +1

    you the man

  • @conradsinsua7415
    @conradsinsua7415 7 лет назад

    This is crazy awesome , got it going in no time, how do i store the data when hook up to a laptop?(very new to this)

  • @dipakvarade9212
    @dipakvarade9212 7 лет назад

    Thank you for such a great tutorial.
    Can you tell me how can I do this telemetry using Esp 8266 (wireless one) rather than using com port(wired one)
    Thanks

  • @konturgestalter
    @konturgestalter 4 года назад +1

    I LOVE IT

  • @mythbuster204
    @mythbuster204 7 лет назад +2

    Amazing

  • @hamzahansari6900
    @hamzahansari6900 8 месяцев назад

    Hi there, this is very amazing, the effort, the explanation everything, and pretty useful too!
    Thank you very much for this.
    I have one question, how can i see the saved values?
    I am reading battery voltage every 5 minutes from a 48v system, and saving it in an SD card,
    and i want it to display the graph of a whole day or so.
    Thanks again.

  • @MeseretNigatie
    @MeseretNigatie 5 лет назад

    Farrell Farahbod, thank you for your effort and time to code and to make this video. I went through the code and it is amazingly coded. I have some questions if it's not too much to ask. First of all, do you think it is possible to add more codes to include bluetooth device on the communication module?? I do not want to mess the beautifully crafted code. The second is, is it possible to calculate some parameters on the fly for example (velocity, displacement etc from the real time data) received from the comport and plot them?? I know it is possible to calculate on the arduino and send them, but one of the real challenges for wireless communication especially bluetooth is data rate. So is it possible to receive like two or three parameters, calculate some more quantities from the received data and plot in real time??

  • @Lucash90
    @Lucash90 6 лет назад

    Hello! Thank you for sharing this with us, it's very interesting. I would like to ask a beginner's question, the sample code with an "analogRead" I understand, but I have difficulty applying it when the signal is digital. A simple example, when I use an HC-SR04 (distance) sensor, I have a "digitalRead" and I also need to calculate the distance.
    (distance= int (0.017*time)
    I tried different codes, but to no avail.
    Thank you

  • @LuizEduardo-vx2pe
    @LuizEduardo-vx2pe 6 лет назад +1

    thank you for share it!

  • @penguin0123
    @penguin0123 5 лет назад

    Hi. The gyroscope data in CSV file, I mean gy, gy, and gz, can be set each one in columns? Thank you.

  • @leandrohugosobrino7741
    @leandrohugosobrino7741 5 лет назад +1

    Hi, nice project. Is it possible to add Time stamp of computer in X-Axis ?

  • @user-sb7tu2ve8h
    @user-sb7tu2ve8h 7 лет назад +1

    First :) I cant wait to watch the video

  • @noushikhsanju8721
    @noushikhsanju8721 5 лет назад

    hey it have a saving data mechanism means lke edr(event data recoreder)

  • @vict456
    @vict456 6 лет назад

    Thank you so much for sharing you software and code.
    Just a question (from a java noobie), if i want to make a botton/command that "start" and "stop" the data aquisition for the plots so that i can save then, it would be a simple modification in the code?
    Thank you again for the work and video.

    • @upgrdman
      @upgrdman  6 лет назад

      Just disconnecting and reconnecting to the serial port should do the trick.

  • @MegaJoe78
    @MegaJoe78 5 лет назад

    Hi , great video . Is it possible to log normal rs232 data ? For example .
    Communication is based on standard RS232 at 19200,n,8,1
    .Each data frame consits of 5 bytes
    typdef struct
    {
    ubyte channel;
    ubyte idChar;
    ubyte valueH;
    ubyte valueL;
    ubyte checksum;
    }
    Ive all the needed data .
    Thanks

  • @joshuamitchell2275
    @joshuamitchell2275 Год назад +1

    legend

  • @stevenmarshall8639
    @stevenmarshall8639 7 лет назад

    hello. is it possible to upload a jar executable file
    to an Nextion HMI?

  • @muhammadaitzazabbasi9817
    @muhammadaitzazabbasi9817 5 лет назад

    Actually I am sending Frequency and voltage data of my sensor on UART using ARM cortex M7 controller. Is it possible to plot voltage according to my frequency data using telemetry view software. if yes then how i can ??

  • @neododo
    @neododo 4 года назад

    how I adjust size of windows, because in small monitor don't show all information. Great work

  • @fasiltilahun8782
    @fasiltilahun8782 6 лет назад

    can u develop fishfinder by using ultrasonic sensor datapresentation with netbeans

  • @oliverpineda7470
    @oliverpineda7470 7 лет назад

    Is it possible to change the code so it will receive from the serial port String values such as the name of a team or some status sent from an arduino in csv and making some filter to save that string values on some database without adding them in the graphs because they will make the program crash?

  • @ruslan.zhumabai
    @ruslan.zhumabai 4 года назад +1

    I cannot open the file. Could you help me? Maybe my laptop requirements some settings for opening java file.

  • @ujwaljoshi3007
    @ujwaljoshi3007 5 лет назад +1

    How did u sperate the csv data from arduino?

  • @jameselliott9397
    @jameselliott9397 6 лет назад

    I need to find a way to capture the oscillation point of a moving object.
    To visualize this, Picture a rail with a distance sensor at each end. The target would oscillate between the 2 end points with the center being 180. To the left the max measurement would be 270 and max 90 to the right. When the target moves to the right then switches direction I want to capture the farthest measurement lowest number serial data to trigger a device when the target is at a certain point on the left. Then I want to capture the oscillation point highest number on the left to in turn trigger the device at a certain point on the right. Due to changing loads on the device being triggered the oscillation points will change randomly.
    Can this be done?
    Below is a rough draft of comments without any code.
    //Arduino uno
    // vl53l0x sensors
    // distance sensor1 value 181 to 270 degrees
    //distance sensor2 value 179 to 90 degrees
    //1 stepper Nemo 17 or 23
    //Stepper full rotation 0-359 steps (clock wise count 0 north)
    //Home 180, max rotation from 270 to 90 degrees.
    // orientations. 270 right, 90 left.
    //sensors placed at the ends of a rail with oscillating target.
    //if sensor1 value oscillates set sensor1 to highvalue of oscillation
    Oscillation at 172-173-172 would set value at 173
    // if sensor2 lowalue is = 178
    // run stepper to 183 when sensor1 reaches 182 //1degrees
    // if sensor2 lowalue is =177
    // run stepper to 184 when sensor1 reaches 183
    // if sensor2 lowalue is =176
    // run stepper to 185 when sensor1 reaches 184
    // if sensor2 lowalue is = 175
    // run stepper to 186 when sensor1 reaches 185
    // if sensor2 lowalue is =174
    // run stepper to 187 when sensor1 reaches 186
    // if sensor2 lowalue is =173
    // run stepper to 188 when sensor1 reaches 187
    // if sensor2 lowalue is = 172
    // run stepper to 189 when sensor1 reaches 188
    // if sensor2 lowalue is =171
    // run stepper to 189 when sensor1 reaches 188
    //Etc....... to lowvalue of 90
    //use < at end max run to 270
    //If sensor 2 value oscillates set sensor2 to lowvalue of oscillation
    Ocilation at 186 - 185 - 186 would set value at 185
    // if sensor1 highvalue is 182
    // run stepper to 177 when sensor2 reaches 178
    // if sensor1 highvalue is 183
    // run stepper to 176 when sensor2 reaches 177
    // if sensor1 highvalue is 184
    // run stepper to 175 when sensor2 reaches 176
    // if sensor1 highvalue is 185
    // run stepper to 174 when sensor2 reaches 175
    //Etc........to highvalue of 270.......
    //use > at end max run to 90.

  • @DENSHP
    @DENSHP 7 лет назад +2

    Дякую, дуже допомогло
    З мене лайк і підписка на канал )