Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
products:laboratory_iot:exp42 [2020/05/23 16:13] – [Программный код эксперимента] labuser29 | products:laboratory_iot:exp42 [2024/12/01 14:13] (текущий) – labuser30 |
---|
CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми. | CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми. |
| |
Одна строка файла будет соответствовать одному измерению температуры. Первым числом сбудет температура в комнате, а вторым — на улице. Разделителем данных в строке будет символ точки с запятой. Пример записей в файл: | Одна строка файла будет соответствовать одному измерению температуры. Первым числом будет температура в комнате, а вторым — на улице. Разделителем данных в строке будет символ точки с запятой. Пример записей в файл: |
| |
<code> | <code> |
| |
| |
DEFAULT_I2C_ADDR = 0x3F | DEFAULT_I2C_ADDR = 0x3F # Или 0x27 в зависимости от модели микросхемы на плате |
| |
| |
</code> | </code> |
| |
Python использует точку как десятичный разделитель. Однако русские версии программ, вроде Excel и OpenOffice Calc использут запятую. Поэтому, чтобы в дальнейшем работать с файлом в этих программах, нам нужно заменить точку на запятую: | Python использует точку как десятичный разделитель. Однако русские версии программ, вроде Excel и OpenOffice Calc используют запятую. Поэтому, чтобы в дальнейшем работать с файлом в этих программах, нам нужно заменить точку на запятую: |
<code python[enable_line_numbers="2", start_line_numbers_at="52"]> | <code python[enable_line_numbers="2", start_line_numbers_at="52"]> |
string_inroom_temp = re.sub('\.', ',', string_inroom_temp) | string_inroom_temp = re.sub('\.', ',', string_inroom_temp) |
</code> | </code> |
| |
Файл открывается с помощью оператора ''open()'' в качестве параметров ему передается имя файла и опции, описывающие что мы собираемся делать с файлом. Здесь может быть указано ''r'' для чтения, ''w'' для записи файла и ''a'' для дополнения файла. Мы испольуем ''a'', в таком случае при открытии файл не будет очищен, а будет дополняться новыми записями в конце. Если файл не существует, то при открытии с помощью ''w'' или ''a'' файл будет автоматически создан. | Файл открывается с помощью оператора ''open()'' в качестве параметров ему передается имя файла и опции, описывающие что мы собираемся делать с файлом. Здесь может быть указано ''r'' для чтения, ''w'' для записи файла и ''a'' для дополнения файла. Мы используем ''a'', в таком случае при открытии файл не будет очищен, а будет дополняться новыми записями в конце. Если файл не существует, то при открытии с помощью ''w'' или ''a'' файл будет автоматически создан. |
| |
Записываем в файл строку: | Записываем в файл строку: |
</code> | </code> |
| |
Запустим программу и дадим ей некоторое время поработать, чтобы она успела накопить несколько измерений в файле. После чего проверим что в него записалось: | Запустим программу и дадим ей некоторое время поработать, чтобы она успела накопить несколько измерений в файле. После чего проверим что в него записалось. Для этого открываем файловый менеджер <span menu> |
| <span menu-item>Device</span> |
| <span menu-item>Filemanager</span> |
| </span> или иконка {{:products:2020-05-04_15-35-38.png?nolink|}} |
| |
| Открывается окно файлового менеджера: |
{{ :products:esp-iot:2020-05-23_16-12-37.png?nolink |}} | {{ :products:esp-iot:2020-05-23_16-12-37.png?nolink |}} |
| |
| Выбираем наш файл и нажимаем ''Download...''. Указываем место для сохранения и сохраняем. Для просмотра содержимого откроем файл с помощью обычного Блокнота: |
| |
| {{ :products:esp-iot:2020-05-23_16-17-59.png?nolink |}} |
| |
| В файле видим то, чего и ожидали. Данные о температуре в формате CSV. Читать такие данные достаточно неудобно, поэтому откроем их с помощью Excel: |
| |
| {{ :products:esp-iot:2020-05-23_16-20-37.png?nolink |}} |
| |
| Excel автоматически распознал формат CSV и занес данные с "комнатного" датчика в столбец A, и данные с "уличного" датчика в столбец B. Построим графики температуры: |
| <span menu> |
| <span menu-item>Вставка</span> |
| <span menu-item>График</span> |
| </span> |
| |
| {{ :products:esp-iot:2020-05-23_16-23-50.png?nolink |}} |
| |
| Датчик DS18B20 измерял у нас температуру в комнате, а термистор мы через некоторое время после начала эксперимента погрузили в стакан с теплой водой. Температура термистора резко возросла. Вода в стакане постепенно остывала, что мы хорошо видим на графике. |