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.

Øvelse 1: Simulering av IoT-enheter med Web2py

  • 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:
    1. Modellering: Definer en tabell for sensordata.
      db.define_table('sensor', Field('name'), Field('value', 'double'), Field('timestamp', 'datetime'))
    2. 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())
    3. 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}}

Øvelse 2: Integrasjon med Azure IoT Hub

  • 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:
    1. Installasjon: Installer Azure SDK for Python.
      pip install azure-iot-device
    2. 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"

Øvelse 3: Feilsøking av Nettverksenheter og Infrastruktur

  • Læringsmål: Forstå hvordan nettverksenheter fungerer og oppdage problemer.
  • Oppgave: Bruk Web2py til å utvikle et enkelt verktøy for å overvåke nettverksenheter.
  • Trinn:
    1. Modellering: Definer en tabell for nettverksenheter.
      db.define_table('network_device', Field('ip_address'), Field('status', 'string'))
    2. 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)
    3. 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}}

Øvelse 4: Sikkerhetsanalyse for IoT-enheter

  • 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:
    1. Sikring av API-er: Implementer tilgangskontroll.
      @auth.requires_membership('admin')
      def secure_endpoint():
          return dict(message="Dette er et sikret område")
    2. 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}")

Øvelse 5: Bruk av Virtualisering og Maskinvareadministrasjon

  • 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:
    1. Modellering: Lag en tabell for virtualiserte maskiner.
      db.define_table('vm', Field('name'), Field('status', 'string'))
    2. 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"

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. 🚀🌐

⚠️ **GitHub.com Fallback** ⚠️