Web2py som en læringsplattform for IoT del 2 - itnett/FTD02H-N GitHub Wiki
Her er noen fullverdige øvelser og laboratorier for å bruke Web2py til læring innen IoT og ITD-lab.
- Læringsmål: Forstå hvordan sensorer og aktuatorer fungerer og kommuniserer.
- Oppgave: Lag en Web2py-applikasjon som simulerer IoT-enheter (temperatursensor, lysbryter) og visualiserer data.
-
Trinn:
-
Modellering: Definer en tabell for sensordata.
db.define_table('sensor', Field('name'), Field('value', 'double'), Field('timestamp', 'datetime'))
-
Kontroller: Lag en funksjon som simulerer sensordata.
def simulate_sensor(): db.sensor.insert(name='Temperature', value=random.uniform(15.0, 30.0), timestamp=request.now) return dict(data=db(db.sensor).select())
-
Visning: Lag en side for å vise sanntidsdata.
<!-- `views/default/simulate_sensor.html` --> <h2>Sanntidsdata for sensor</h2> {{for sensor in data:}} <p>{{=sensor.name}}: {{=sensor.value}} °C ({{=sensor.timestamp}})</p> {{pass}}
-
Modellering: Definer en tabell for sensordata.
- Læringsmål: Lær hvordan man sender data til Azure IoT Hub fra Web2py.
- Oppgave: Implementer en funksjon for å sende simulerte sensordata til Azure IoT Hub.
-
Trinn:
-
Installasjon: Installer Azure SDK for Python.
pip install azure-iot-device
-
Kontroller: Implementer datainnsending.
from azure.iot.device import IoTHubDeviceClient, Message def send_to_azure(): connection_string = "HostName=your-iot-hub.azure-devices.net;DeviceId=myDeviceId;SharedAccessKey=myKey" client = IoTHubDeviceClient.create_from_connection_string(connection_string) message = Message("Simulert data fra Web2py") client.send_message(message) return "Data sendt til Azure IoT Hub"
-
Installasjon: Installer Azure SDK for Python.
- Læringsmål: Forstå hvordan nettverksenheter fungerer og oppdage problemer.
- Oppgave: Bruk Web2py til å utvikle et enkelt verktøy for å overvåke nettverksenheter.
-
Trinn:
-
Modellering: Definer en tabell for nettverksenheter.
db.define_table('network_device', Field('ip_address'), Field('status', 'string'))
-
Kontroller: Skriv en funksjon for å sjekke tilkobling.
import os def check_connectivity(): devices = db().select(db.network_device.ALL) for device in devices: response = os.system("ping -c 1 " + device.ip_address) device.update_record(status='Online' if response == 0 else 'Offline') return dict(devices=devices)
-
Visning: Lag et grensesnitt for å vise enhetsstatus.
<!-- `views/default/check_connectivity.html` --> <h2>Nettverksenheter Status</h2> {{for device in devices:}} <p>{{=device.ip_address}}: {{=device.status}}</p> {{pass}}
-
Modellering: Definer en tabell for nettverksenheter.
- Læringsmål: Lær hvordan du implementerer grunnleggende sikkerhetstiltak for IoT-enheter.
- Oppgave: Bruk Web2py til å overvåke og analysere sikkerheten til IoT-enheter.
-
Trinn:
-
Sikring av API-er: Implementer tilgangskontroll.
@auth.requires_membership('admin') def secure_endpoint(): return dict(message="Dette er et sikret område")
-
Logging: Opprett logger for overvåking.
import logging logger = logging.getLogger("web2py.iot_security") def log_access(): logger.info(f"User {auth.user.username} accessed {request.function}")
-
Sikring av API-er: Implementer tilgangskontroll.
- Læringsmål: Lær hvordan man administrerer maskinvare i ITD-lab og bruker virtualiseringsløsninger.
- Oppgave: Bruk Web2py til å overvåke maskinvarestatus og administrere virtuelle maskiner.
-
Trinn:
-
Modellering: Lag en tabell for virtualiserte maskiner.
db.define_table('vm', Field('name'), Field('status', 'string'))
-
Kontroller: Skriv funksjoner for å administrere VMer.
def start_vm(vm_id): vm = db.vm[vm_id] # Eksempelkommando for å starte VM os.system(f"virsh start {vm.name}") vm.update_record(status='Running') return "VM startet"
-
Modellering: Lag en tabell for virtualiserte maskiner.
Disse øvelsene og laboratorieoppgavene vil hjelpe deg med å forstå og bruke IoT, nettverksinfrastruktur, og cybersikkerhet i praksis ved å bruke Web2py som en plattform for læring og eksperimentering. 🚀🌐