Jak zapisywać w komputerze dane odbierane z czujników podłączonych do Arduino?

Jak zapisywać w komputerze dane odbierane z czujników podłączonych do Arduino?

Od czasu do czasu różne osoby podpytują mnie na Majsterkowym fanpage, na stronie na Google+ i na naszym czacie, jak najprościej zapisywać dane odbierane z różnych czujników podpiętych do Arduino, żeby móc później zrobić na ich podstawie np. jakiś wykres, lub użyć ich do dalszych obliczeń.

Żeby nie musieć powtarzać tego samego każdemu z osobna, postanowiłem przygotować prosty poradnik, w którym pokażę Wam, jak dane z Arduino zapisać bezpośrednio na komputerze i zrobić z nich wykres w Excelu – i to bez żadnych dodatkowych kosztów :)

Układ

Na potrzeby tego poradnika zmontowałem sobie prosty układ z dwoma czujnikami temperatury LM35, z których odczyty będą zapisywane:

Arduino + 2x LM35

Opublikuj swój projekt i odbierz 50% rabatu do wykorzystania w sklepie Nettigo.pl

Jeden z czujników umieściłem w pokoju, a drugi wsadziłem do obudowy mojego komputera.

Program

Najprostszym sposobem zapisywania danych z Arduino jest podpięcie go do komputera kablem USB i wysyłanie wszystkiego za pomocą funkcji Serial.print(), a następnie zapisywanie odebranych danych już w komputerze.

Do swojego Arduino wrzuciłem prosty program, który odczytuje dane z obu czujników i co sekundę wysyła aktualną temperaturę do komputera:

Nas interesują głównie linie od 21 do 25, które są odpowiedzialne za wysyłane odczytanych danych do komputera.

  • w linii 21 wysyłam do komputera informację, ile sekund minęło od momentu uruchomienia Arduino. Jak komuś by się chciało bawić, można by rozbić to na sekundy, minuty, godziny, dni, … – ja jednak w przykładzie tym nie chciałem sprawy niepotrzebnie komplikować, dlatego pozostałem przy samych sekundach
  • w liniach 22 i 24 wysyłam samą spację, której zadaniem jest po prostu oddzielenie od siebie kolejnych danych. Zamiast spacji można wstawić równie dobrze przecinek, średnik, myślnik, gwiazdkę, lub jakikolwiek inny znak
  • w liniach 23 i 25 wysyłam kolejno temperaturę odczytaną z obu czujników. Dodatkowo w linii 25 zastąpiłem funkcję Serial.print() funkcją Serial.println(), która wstawia na końcu znak nowej linii

I od strony Arduino to już jest wszystko. Zapisywaniem przesyłanych danych zajmie się już aplikacja uruchomiona na komputerze.

Odczyt danych z Arduino za pomocą Arduino IDE

Najprostszym sposobem na odczytanie danych przesyłanych z Arduino jest Serial Monitor dostępny w Arduino IDE (menu Tools -> Serial Monitor):

Serial Monitor w Arduino IDE

Jest to jednak opcja bardzo kiepska, bo nie mamy możliwości automatycznego zapisywania odebranych danych i możemy je sobie co najwyżej zaznaczyć, skopiować do schowka i wkleić do notatnika. Brzydko…, bardzo brzydko… ;)

Odczyt i zapis danych z Arduino za pomocą CoolTerm

Dużo większe możliwości daje darmowa aplikacja CoolTerm (z tej strony można pobrać wersję dla systemu Windows, Linux i Mac).

Wersję pod Windowsy (nie wiem, jak pod innymi systemami) wystarczy ściągnąć, rozpakować gdzieś na dysku i uruchomić.

Aplikacja CoolTerm

Po uruchomieniu aplikacji CoolTerm musimy kliknąć w Options i ustawić tam kilka rzeczy:

CoolTerm - ustawienia

W ustawieniach musimy wybrać Port, pod który jest podłączone nasze Arduino, oraz w Baudtare wybrać taką samą prędkość transmisji, jaką ustawiliśmy w funkcji Serial.begin().

I w sumie tylko te dwa ustawienia są w tej chwili istotne, więc zamykamy okno klikając „OK”.

CoolTerm jest już gotowy do pracy i wystarczy kliknąć przycisk Connect, żeby zacząć odbierać dane wysyłane przez Arduino:

CoolTerm - odbiór danych z Arduino

Aby zacząć zapisywać na dysku wszystkie odbierane dane, wystarczy wybrać Start… z menu „Connection -> Capture to Textfile” (lub użyć skrótu Ctrl+R). W pliku tekstowym będzie się zapisywało wszystko to, co zostanie odebrane z Arduino.

Jak zrobić wykres z danych odebranych z Arduino?

Pokażę Wam teraz, jak zapisane dane zaimportować do arkusza kalkulacyjnego Excel (z pakietu Microsoft Office 2007) i zrobić z nich ładny wykres.

Po uruchomieniu Excela przechodzimy do zakładki „Dane” i wstawiamy dane zewnętrzne „Z tekstu”:

Excel - import danych z Arduino

W pierwszym kroku importu danych nie zmieniamy nic i klikamy „Dalej”:

Excel - import danych #2

W drugim kroku wybieramy, jakim znakiem zostały rozdzielone dane (w tym przykładzie jest to spacja):

Excel - import danych #2

W kroku trzecim musimy zmienić separator dziesiętny, ponieważ Excel domyślnie operuje na przecinkach, a liczby przesłane z Arduino mają kropki. Zaznaczamy jedną z kolumn zawierających odebrane pomiary:

Excel - import danych #3

A następnie klikamy „Zaawansowane” i zmieniamy separator z przecinka na kropkę:

Excel - import danych #4

Analogicznie postępujemy dla kolumny z danymi z drugiego czujnika.

Następnie klikamy „OK” i „Zakończ”. Gotowe – wszystkie dane mamy już w Excelu:

Excel - zaimportowane dane

Teraz wystarczy zaznaczyć kolumny z danymi i w menu „Wstawianie” wstawić nowy wykres:

Excel - wstawianie wykresu

I w tym momencie powinien się ukazać naszym oczom ładny wykres wyrysowany na podstawie danych otrzymanych z Arduino:

Excel - wykres temperatury

Czy da się inaczej? Lepiej? Prościej?

Inaczej się da – i to na wiele sposobów :) Zaprezentowana wyżej metoda jest jednak najprostsza i najtańsza, bowiem nie wymaga żadnych dodatkowych inwestycji. Jej wadą jest jedynie to, że w czasie dokonywania pomiarów nie możemy wyłączyć komputera.

Gdybyśmy dokupili do Arduino Ethernet Shield, lub sam moduł Ethernet, moglibyśmy zapisywać dane bez użycia komputera bezpośrednio na jakimś serwerze (chociażby w arkuszu kalkulacyjnym w Google Drive). To już jest jednak temat na osobny post, który mogę przygotować, jeżeli będziecie chcieli :)

Mam nadzieję, że teraz już każdy z Was poradzi sobie z zapisywaniem na komputerze danych z Arduino. Powyższy poradnik może się na pierwszy rzut oka wydawać skomplikowany, ale po przerobieniu tego kilka razy wszystko robi się już niemalże odruchowo w kilka sekund.

Ocena: 4.82/5 (głosów: 49)
Nettigo - patron działu Elektronika

Podobne posty

Disc VUmetr by hetm4n

Disc VUmetr by hetm4n

Witam! Chciałbym przedstawić wykonany prze zemnie VU metr. przeglądając różne konstrukcje na YT postanowiłem złożyć…

56 komentarzy do “Jak zapisywać w komputerze dane odbierane z czujników podłączonych do Arduino?

Odpowiedz

anuluj

Jak zapisywać w komputerze dane odbierane z czujników podłączonych do Arduino?

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?