Добавил:
инст: frz.alinkenss Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР2_Создание приложения и веб-интерфейса

.docx
Скачиваний:
22
Добавлен:
16.11.2022
Размер:
99.5 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 42

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

ассистент

Д.О. Шевяков

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2

СОЗДАНИЕ ПРИЛОЖЕНИЯ ИНТЕРНЕТА ВЕЩЕЙ И ВЕБ-ИНТЕРФЕЙСА

по курсу: ИНТЕРНЕТ ВЕЩЕЙ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

4021

Фарзалина Алина

фамилия, имя

Санкт-Петербург 2022

Задание

  1. Создать приложение на Flask.

  2. Реализовать классы и их иерархию, согласно сданной первой лабораторной работе

  3. Показать работу методов этих классов.

Код классов и приложения

Код классов в Classes.py

import abc class SensorControlUnit(abc.ABC): def __init__(self, sensor): self.sensor = sensor @abc.abstractmethod def TurnOn(self, *args): return ('works') @abc.abstractmethod def TurnOff(self, *args): return ('does not work') class ClimateControl(SensorControlUnit): #климат-контроль def __init__(self, temp_inside, temp_outside, humidity, ionization, sensor): super().__init__(sensor) self.temp_inside = temp_inside self.temp_outside = temp_outside self.humidity = humidity self.ionization = ionization def SetTemperature(self): return ('temperature is changed') def SetHumidity(self): return ('humidity is changed') def SetIonization(self): return ('ionization is changed') def TurnOn(self, source): super().TurnOn() return ('works') def TurnOff(self, source): super().TurnOff() return ('does not work') class Lighting(SensorControlUnit): #освещение def __init__(self, lamp1, lamp2, curtains, sensor): super().__init__(sensor) self.lamp1 = lamp1 self.lamp2 = lamp2 self.curtains = curtains def SetBrightnessLamp1(self): return ('brightness is set') def SetBrightnessLamp2(self): return ('brightness is set') def OpenTheCurtains(self): return ('curtains are opened') def CloseTheCurtains(self): return ('curtains are closed') def TurnOn(self, source): super().TurnOn() return ('works') def TurnOff(self, source): super().TurnOff() return ('does not work') class Safety(SensorControlUnit): #Безопасность def __init__(self, camera_inside, camera_outside, air_sensor, door_sensor, sensor): super().__init__(sensor) self.camera_inside = camera_inside self.camera_outside = camera_outside self.air_sensor = air_sensor self.door_sensor = door_sensor def VideoSurveillance(self): #Видеонаблюдение return ('outsiders were not found') def SecurityAlarmSystem(self): #Охранная сигнализация return ('police is called') def FireAlarmSystem(self): #Пожарная сигнализация return ('firefighters is called') def TurnOn(self, source): super().TurnOn() return ('works') def TurnOff(self, source): super().TurnOff() return ('does not work') class PetsControl(SensorControlUnit): #Контроль за питомцами def __init__(self, camera_home, sensor): super().__init__(sensor) self.camera_home = camera_home def FillingTheBowl(self): return ('the bowl is full') def SignalMustnot(self): # зависит от температуры внутри теплицы return ('the pet is scolded') def TurnOn(self, source): super().TurnOn() return ('works') def TurnOff(self, source): super().TurnOff() return ('does not work') class Refrigerator(SensorControlUnit): #Холодильник def __init__(self, temp_refrig, sensor_delay, camera_refrig, sensor): super().__init__(sensor) self.temp_refrig = temp_refrig self.sensor_delay = sensor_delay self.camera_refrig = camera_refrig def SetTemperature(self): return ('the temperature is changed') def LockRefDoors(self): return ('doors of refrigerator are locked') def NotifySpoiledPr(self): return ('the product is deteriorated') def NotifyFinishedPr(self): return ('the product is finished') def TurnOn(self, source): super().TurnOn() return ('works') def TurnOff(self, source): super().TurnOff() return ('does not work')

Код приложения в app.py

from flask import Flask import Classes app = Flask(__name__) @app.route('/') def hello_world(): # put application's code here climate_sensor = Classes.ClimateControl('h', '', '', '', '') lighting_sensor = Classes.Lighting('g', 'g', 'g', 'j') safety_sensor = Classes.Safety('r', 'r', 'r', 't', 't') pets_sensor = Classes.PetsControl('t', 't') refrigerator_sensor = Classes.Refrigerator('l', 'i', 'i', 'i') return climate_sensor.SetTemperature()+' '+lighting_sensor.OpenTheCurtains()+' '+safety_sensor.SecurityAlarmSystem()+' '+pets_sensor.FillingTheBowl()+' '+refrigerator_sensor.NotifyFinishedPr() if __name__ == '__main__': app.run()

Скриншоты

Результаты работы кода приложения представлены на рисунках 1 и 2.

Рисунок 1 – лог сообщений сервера

Рисунок 2 – веб-страница

Выводы

В ходе данной лабораторной работы мы научились создавать и запускать приложение интернета вещей. Были реализованы классы в соответствии с Лабораторной работой №1 и их иерархия, показана работа методов этих классов.