МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра вычислительной техники
ОТЧЕТ по лабораторной работе №3
по дисциплине «Интернет вещей» Тема: Работа с платформой ThingSpeak
Студентка гр. 1308 |
_______________ |
Кочубей Е.Д. |
Студентка гр. 1308 |
_______________ |
Зубченко П.А. |
Преподаватель |
_______________ |
Фаткиева Р.Р. |
Санкт-Петербург
2025
Цель работы
Изучение теоретического материала об функционировании платформ облачных вычислений, формирование практических навыков визуализации и анализа потоков данных в реальном времени в облаке ThingSpeak.
Ход работы
Создание канала
Создаём и настраиваем свой канал в сервисе ThingSpeak. В качестве полей указываем температуру в градусах по Цельсию и Фаренгейту.
Рисунок 1 – канал измерения температуры
Ниже представлен код на языке MatLab для получения информации о самом последнем значении температуры с общедоступной метеостанции в Токио.
readChannelID = 1674133; temperatureFieldID = 2; readAPIKey =''; writeChannelID = 3200546;
writeAPIKey = 'AS5WSFCAOKP0A6D2';
tempC = thingSpeakRead(readChannelID,'Fields', temperatureFieldID,'ReadKey',readAPIKey);
tempF = (tempC * 9/5)+32;
display(tempC, 'Temperature in Celsius'); display(tempF, 'Temperature in Fahrenheit');
thingSpeakWrite(writeChannelID, [tempC, tempF], 'WriteKey', writeAPIKey);
2
Рисунок 2 – текущее значение температуры в Цельсиях и в Фаренгейтах
Рисунок 3 – графики температур
Использование TimeControl
Для запуска действий (измерений) в указанное время используем
приложение TimeControl.
Рисунок 4 – графики температур спустя 6 часов
3
Подключение приложений
Визуализируем графики изменения температур за последние три дня
с помощью MatLab Visualization.
readChannelID = 1674133; myFieldID = 2;
oneDay = [datetime('yesterday') datetime('today')]; readAPIKey = '';
temperatureDay1 = thingSpeakRead(readChannelID,'Fields',myFieldID, ...
'dateRange', oneDay,
'ReadKey',readAPIKey);
temperatureDay2 = thingSpeakRead(readChannelID,'Fields',myFieldID, ...
'dateRange',oneDay-
days(1),'ReadKey',readAPIKey);
temperatureDay3 = thingSpeakRead(readChannelID,'Fields',myFieldID, ...
'dateRange', oneDay-
days(2),'ReadKey',readAPIKey);
myTimes1 = minutes(1:length(temperatureDay1)); myTimes2 = minutes(1:length(temperatureDay2)); myTimes3 = minutes(1:length(temperatureDay3));
plot(myTimes1,temperatureDay1, myTimes2,temperatureDay2, myTimes3, temperatureDay3);
legend({'Day1','Day2','Day3'});
xlabel('Minutes'); ylabel('Temperature F');
title('3-Day Temperature Comparison');
Для удобства добавим визуализацию на страничку нашего канала.
Рисунок 5 – добавление графика на канал
4
Рисунок 6 – график температур за период
Получение веб-данных в режиме реального времени
С помощью пошагового руководства от MatLab получим информацию о находящихся суднах в Бостонском порту и о ожидаемых к прибытию.
Для начала создадим новый канал, куда мы будем записывать информацию.
Рисунок 7 – канал для записи суден
Переходим во вкладку MatLab Analysis и выбираем готовый скрипт
«Read live web data for vessels at the port of Boston».
url = 'https://www.vesseltracker.com/en/Port/boston/Dashboard.html';
filteredData(1) = urlfilter(url,'Moored Vessels:');
5
filteredData(2) = urlfilter(url,'Expected Vessels:');
display(filteredData(1),'Vessels in Port');
display(filteredData(2),'Expected Arrivals');
writeChannelID = 3200597;
writeAPIKey = '7EOPWVS9XXIYABYF';
thingSpeakWrite(writeChannelID,filteredData,'WriteKey',writeAPIKey);
Рисунок 8 – текущее значение суден в порту
Выводы
Входе лабораторной работы были успешно освоены навыки работы
воблаке ThingSpeak, а также приобретены теоретические знания об функционировании платформ облачных вычислений.
Был создан канал для отслеживания температуры в реальном времени с метеостанции в Токио. Для наглядного результата были использованы такие инструменты как MatLab Analysis, MatLab Visualization и
TimeControl. В итоге были получены графики изменения температур,
которые могут в дальнейшим пригодиться для изучения окружающей среды
в Токио.
6
