Arduino serial порт. Как сохранить файл.

Arduino serial порт. Как сохранить файл.

Сегодня я расскажу как используя только одну Ардуино или плату ESP, сохранять полученные значения от датчиков в файл на компьютере. Для примера я буду использовать Ардуино, так как она проще и быстрее прошивается. Но всё сказанное в полной мере относится и к ESP.

Для начала надо скачать программу PUTTY. 
Это бесплатная программа. Помимо всего прочего, она может работать с COM портом компьютера. Если говорить проще, то, то что вы видите когда подключаетесь к монитору порта в Ардуино IDE, то тоже самое можно увидеть через эту программу. А ещё и сохранить в файл.
Для чего это может понадобиться. Ну, например для вывода температуры с датчика в Эксель с построением графика. А ещё если в мониторе порта установить привязку ко времени, то и модуль часов точного времени не потребуется.
Вот так выглядит интерфейс программы. Ничего сложного. Нам понадобятся только вот эта вкладка.

Скачивать желательно с официального сервера программы https://www.putty.org/
Нажав на ссылку вас перебросит на вот этот сайт, где можно выбрать последнюю сборку программы.

Но можно скачать и русскую версию, вот по этому адресу. https://putty.org.ru/download.html
Я правда её не устанавливал, но может вам понравится. 

Думаю как устанавливать программы объяснять не надо. Среди нас маленьких нет. По статистике мой канал смотрят. Жалко, что второй половинки у нас совсем мало. Но ничего, возможно подтянутся потом.
А вот из каких стран больше всего заходят. Если вашей страны нет в этом списке, то вы можете это исправить. Кто не понял – это всё была шутка. 

Теперь запускаем программу и смотрим, что это за зверь такой.
Здесь очень много возможностей, но мы сегодня рассмотрим только то что необходимо для сегодняшнего видео.
В левой части – меню с раскрывающимся списком.
В правой части – настройки.

Сегодня нам понадобится только вкладка сессия. В ней мы будем настраивать подключение к удаленному компьютеру. В нашем случае – это Ардуино или ESP. Здесь вводятся такие параметры как:
•    параметры подключения IP адрес или имя хоста
•    порт 
•    тип подключения 


Теперь давайте посмотрим как это всё работает.
Запускаем Arduino IDE и откроем какой-нибудь пример, например пример AnalogReadeSerial и немного подредактируем его. Этот пример выводит значения с аналогового порта А0. Так как к нему сейчас ничего не подключено и он не притянут к земле или к плюсу питания, то на нём сейчас некий шум. Случайные значения.
Скорость передачи в серийный порт 9600.
Немного увеличим delay чтобы цифры не так быстро бегали.
Прошиваем и смотрим что выводится в монитор порта.

Видим как бегают цифры. Но так как в конце этого урока мы построим график из этих данных, то нам надо будет их как-то отделять. Например точкой с запятой. Для этого отредактируем скетч.  

Прошиваем и смотрим. Видим, что теперь после каждой цифры стоит точка с запятой. Это то что нам и было нужно. Теперь закроем монитор. Одновременно получить доступ к одному COM порту может только одна программа.


Хоть мы закрыли монитор, но данные с Ардуино всё равно поступают в COM порт. Ещё раз смотрим на каком порту у нас Ардуино. Это COM порт3.
Теперь приступим к настройке PUTTY.


и выбираем нашу сессию. Проверяем что бы порт был указан верно. Теперь немного подождём что бы побольше данных. Теперь мы видим как бегают наши данные.  Теперь сохраним всё это.

  • Сначала выбираем тип подключения – В нашем случае это SERIAL 
  • Затем указываем порт к которому подключена Ардуина. 
  • Теперь скорость обмена. Такая же как в скетче.
  • Нажимаем OPEN и видим что наша Ардуина всё ещё передают значения в COM порт.

Чтобы каждый раз не вводить значения – это можно сделать 1 раз и сохранить их.
Потом использовать при следующем запуске программы.
Даём имя этой сессии чтобы потом вспомнить что это такое и нажимаем сохранить.
Теперь закроем и снова откроем нашу сохранку, чтобы увидеть, что всё сохранилось.
Теперь перейдём на вкладку LOGGING.
Установим printable output – Вывод на печать.
Выберем always overwrite – Всегда перезаписывать.
И укажем путь для файла в котором всё будем сохранять. 
Я указал, что файл будет называться putty.txt и будет он лежать на рабочем столе.
Снова нажимаем Сессию и жмём сохранить.
Вот и все настройки.

Давайте теперь сохраним в файл некоторое количество данных, а затем построим из них график. 
Запускаем PUTTY и загружаем нашу сохранённую сессию. Немного подождём, чтобы данных было побольше. 
Теперь открываем сохранённый файл и смотрим что в нём есть. Видим ряд цифр – это данные которые были переданы из Ардуино в COM порт и которые мы сохранили на компьютере. Теперь давайте выведем их в виде графика.


Я уверен, что вы и без меня знаете как добавлять данные в Эксель, но всё равно расскажу. Может кто не знает.
Нажимаем вкладку данные и выбираем вставить из текста. Идём туда, куда вы сохранили файл  открываем его. У меня Эксель сразу определил, что у меня данные с разделителем точка с запятой. Нажимаем загрузить и все данные вставляются в один столбик. Можно почистить файл. Я убираю первую строчку и непонятно откуда взявшийся второй столбик.

Теперь копируем весь столбик и переходим на вкладку вставить и выбираем любую из диаграмм. Я выбрал самую простую. В виде столбиков. И данные сразу отобразились в виде графика.
Какай-то слишком однородный график получился. Давайте по приколу изменим пару цифр и посмотрим как это скажется на графике. Видим, что теперь у нас образовался провал в данных. 

Можно для сравнения открыть исходный текстовой файл. 
Подведём итог, что нового вы сегодня узнали.
Из бесполезной информации – это то какой возраст моей аудитории и из каких стран больше всего сюда заходят.
А надеюсь, что из полезной, это как не используя никаких дополнительных модулей в виде SD карт, можно сохранять данные в файл на компьютере и как их потом можно обрабатывать.
Если вам была полезна эта информация, то не забудьте поставить лайк. 
До встречи в новых видео. Они будут ещё интереснее, а частота их выхода будет зависеть от вашей активности.