Python från början

Mikroövningar för Introduktion till IoT

Övning 24 / 24

Avslutning: enkel sensorrapport

Beräknad tid: 30 min

Varför

Sista övningen samlar filer, funktioner, listor, dictionaries och slump. Det liknar hur en liten logger kan se ut innan någon riktig sensor kopplas in. Fortfarande bara Python — ingen hårdvara.

Den nya idén

JSON är en vanlig textform för strukturerad data: listor och nyckel–värde-par som både människor och program kan läsa. Python har modulen json i standardbiblioteket.

Spara en lista av dictionaries
import json

rader = [{"temp": 20, "fukt": 41}]
with open("data.json", "w", encoding="utf-8") as fil:
    json.dump(rader, fil, indent=2)

indent=2 gör filen läsbar. json.dump skriver till en redan öppnad fil. Det här är samma sorts data du senare kan skicka över nätet — men det är inte uppgiften nu.

Bygg små funktioner: en som skapar en påhittad mätning, en som skriver rapporten. Huvudprogrammet anropar dem.

Uppgift

Skapa filen sensorrapport.py som gör följande:

  1. Importerar random och json.
  2. Har en funktion ny_matning() som returnerar en dictionary med temp (heltal 18–23) och fukt (heltal 35–50).
  3. Skapar en lista med fem sådana mätningar.
  4. Skriver listan till sensor.json med json.dump.
  5. Skriver ut hur många mätningar som sparades, och den högsta temperaturen i listan.

Öppna sensor.json efter körningen och kontrollera att det ligger fem objekt i en lista. Talen varierar mellan körningar.

Förväntat resultat

Terminalen ska ha två rader i den här stilen. Antalet är alltid 5. Maxtemperaturen är något av de slumpade talen, alltså mellan 18 och 23. Exempel:

python3
Sparade 5 mätningar.
Högsta temperatur: 22

Kör fast?