ЛР2_Создание приложения и веб-интерфейса
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА № 42
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
ассистент |
|
|
|
Д.О. Шевяков |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2 СОЗДАНИЕ ПРИЛОЖЕНИЯ ИНТЕРНЕТА ВЕЩЕЙ И ВЕБ-ИНТЕРФЕЙСА |
|
по курсу: ИНТЕРНЕТ ВЕЩЕЙ |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4021 |
|
|
|
Фарзалина Алина |
|
|
|
|
|
фамилия, имя |
Санкт-Петербург 2022
Задание
Создать приложение на Flask.
Реализовать классы и их иерархию, согласно сданной первой лабораторной работе
Показать работу методов этих классов.
Код классов и приложения
Код классов в 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 и их иерархия, показана работа методов этих классов.