Изучаем Arduino: инструметы и методы технического волшебства - [69]
- 271 -
Мы расскажем, как записывать данные в файл и как читать информацию с SD-карты. С помощью часов реального времени к данным мы добавим точные временные метки. Вы также узнаете о том, как отобразить эти данные на вашем компьютере.
ПРИМЕЧАНИЕ
Видеоурок по записи и хранению данных можно посмотреть на странице
http://www.jeremyblum.com/2011 /04/05/tutorial-11-for-arduino-sd-cards-anddatalogging/ [16].
ПРИМЕЧАНИЕ
Видеоурок о регистрации данных местоположения с помощью GPS-приемника можно посмотреть на странице http://www.jeremyblum.com/2012/07/16/tutorial-15-for-arduinogps-tracking/. Эти видеофайлы доступны и на странице издательства Wiley.
13.1. Подготовка к регистрации данных
Системы регистрации данных, как правило, предназначены для сбора информации, поступающей, например, с аналоговых датчиков. Неотьемлемая часть подобных систем - устройства памяти для хранения данных в течение длительного времени.
Далее рассмотрим несколько способов использования SD-карты для записи данных с платы Arduino. Кратко перечислим возможные применения регистраторов:
• метеостанция для мониторинга освещенности, температуры и влажности в течение длительного времени;
• GPS-трекер для отслеживания местоположения;
• система контроля за температурой компонентов персонального компьютера;
• регистратор для управления электрическим освещением в доме или офисе.
В конце главы мы разработаем систему протоколирования данных с инфракрасным датчиком расстояния, которая позволит создать журнал входа и выхода людей из помещения.
Хранить данные на SD-карте будем в CSV-файлах. Файлы этого формата легко создать, считать и проанализировать в различных приложениях, что хорошо подходит для задач регистрации информации. Стандартный CSV-файл выглядит примерно так:
Date,Time,Valuel,Value2
2013-05-15,12:00,125,255
2013-05-15,12:30,100,200
2013-05-15,13:00,110,215
- 272 -
Массивы данных начинаются с новой строки, столбцы разделяются запятыми. Так как запятые служат разделителем, основным требованием для данных является отсутствие в них запятых. Кроме того, каждая строка должна, как правило, иметь одинаковое число элементов. Если приведенный файл открыть в программе Excel на компьютере, то он будет выглядеть, как показано в табл. 13.1.
Таблица 13.1. Просмотр CSV-файла в программе Excel
Поскольку CSV-файлы являются простыми текстовыми файлами, записывать в них данные можно с помощью знакомых нам команд print() и println(). С помощью Arduino можно легко проанализировать CSV -файлы, считывая их по строкам и отделяя нужную информацию от разделителей.
Перед тем как начать запись данных с Arduino, необходимо определиться с SD-картой. Вид SD-карты зависит от SD-адаптера, который вы будете использовать.
Существуют полноразмерные SD-карты и microSD. Большинство microSD-карт поставляется с адаптером, который позволяет подключить их к считывателю стандартных SD-карт. Для выполнения упражнений из этой главы вам потребуется картридер для компьютера (внешний или встроенный).
Большинство новых SD-карт заранее отформатировано и готово к использованию с Arduino. Если на вашей карте была записана какая-нибудь информация, необходимо ее отформатировать в FAT16 или FAT32. Карты объемом до 2 Гбайт следует отформатировать в FAT16, карты с большим объемом памяти- в FAT32. В примерах этой главы мы применяем microSD-карту, отформатированную в FАТ16. Обратите внимание, что при форматировании карты удаляется вся имеющаяся на ней информация, но при этом гарантируется, что карта готова для взаимодействия с Arduino. Если у вас новая карта, следующие шаги можно пропустить и вернуться к ним только при возникновении проблем с доступом к карте из Arduino.
Форматировать SD-карту в Windows легко:
1. Вставьте SD-карту в картридер. Откройте окно Computer (Мой компьютер) (рис. 13.1 ).
2. Щелкните правой кнопкой мыши по значку SD-карты ( она может иметь другое имя) и выберите опцию Format (рис. 13.2). Появится окно с вариантами форматирования карты (рис. 13.3).
3. Выберите тип файловой системы (FAT для карт 2 Гбайт и меньше, FAT32 для карт большего объема), оставьте размер кластера по умолчанию и задайте метку
- 273 -
Рис. 13.1. SD-карта в окне Computer
тома (я выбрал LOG, но вы можете выбрать любую). На рис. 13.3 изображена конфигурация форматирования для карты 2 Гбайт.
4. Нажмите кнопку Start, чтобы отформатировать карту памяти.
На компьютерах с ОС Mac процесс также прост:
1. Используйте команду Finder, чтобы найти и открыть приложение Disk Utility.
2. Нажмите на вкладку SDcard в левой панели и откройте вкладку Erase. Выберите пункт MS-DOS (FAT) для формата.
3. Нажмите кнопку Erase. Система отформатирует карту как FАТ16, независимо от ее емкости (в Mac нельзя отформатировать карту как FAT32).
В Linux можно отформатировать SD-карту из терминала. Большинство дистрибутивов Linux будет монтировать карту автоматически при ее вставке:
1. Вставьте карту, откроется всплывающее окно, отображающее карту.
2. Откройте терминал и введите команду df, чтобы получить список смонтироваых устройств. Результат должен выглядеть так, как на рис. 13.4.