IoT-projekt | Uppkopplade lokaler – Del 2: Komponenter och kod

Det är dags för en uppdatering kring mitt lilla IoT-/fortbildningsprojekt igen, det som handlar om uppkopplade klassrum eller lokaler. I det första inlägget skrev jag om syftet och i detta har jag valt komponenter, plattform och börjat koda. Jag har också påbörjat ytterligare ett projekt, som i viss mån kommer att gå hand i hand med detta, men mer om det senare. 

Hårdvara

All kod och alla sensorer är kopplade till en Raspberry Pi3. Lite overkill, jag vet. Men jag har ett antal Pi3:or liggandes, så det är vad jag kommer använda till projektet. Möjligtvis kommer även en databas sättas upp och den kommer nog att köras på en av mina webbservrar. Vi får se hur stort detta projekt växer sig.

Komponenter / Sensorer

Jag har valt billiga, rätt enkla sensorer. Det är den typen av sensorer som du antingen får för några kronor om du beställer dem från Kina, eller betalar ett antal tior för här i Sverige. Det är faktiskt rätt galet hur stor skillnad det är på priserna, så ta en ordentlig titt på lite olika ställen innan du beställer.

Vad som kan vara värt för er att veta är att jag redan hade det mesta av hårdvaran och sensorerna, så det underlättade valet för mig. 🙂 Därför har jag inte gjort någon större efterforskning på vad som funkar bäst och det är inte det viktigaste just nu. Jag vill bara få ihop en prototyp och se om detta kan vara något som är värt att lägga lite tid på.

Viktigt att veta är också att dessa komponenter inte kan ersätta professionell utrustning. Jag kommer att försöka kalibrera det mesta mot kända källor, men det viktigaste för mig är att få fram trender över tid gällande exempelvis temperatur och annat.

Temperatur – Luftfuktighet – DHT11

För att läsa av inomhustemperatur och luftfuktighet har jag valt en DHT11.

DHT11 är sensorn i mitten av bilden.

Ljudsensor – Okänd modell från RobotDyn

För att läsa av ljudstyrka behövde jag en ljudsensor med analog output. Många av dessa har endast digital output och kan därför bara känna av om det är ljud eller ej. Du får alltså bara ut en etta eller en nolla. Den här är köpt via AliExpress från RoboDyn

Ljussensor – LM393

Jag har ett par olika ljussensorer, men har valt att testa denna LM393 Light Sensor, som även den har analog output.

Ljussensorn är den i mitten på bilden.

ADC Analogt till Digitalt – MCP3008

Eftersom dessa komponenter med analog ut är kopplade till en Raspberry Pi3, som inte kan läsa analogt, behövs denna konverterare. MCP3008 funkar riktigt bra för ändamålet.

CO2 – Ingen sensor ännu

Jag hade tänkt att läsa av CO2 i lokalerna, men har inte hittat någon billig enkel sensor för detta ännu, så jag har helt enkelt hoppat över det tills vidare.

API:er – Utomhusväder + pollen + SL

För att ta in data om utomhusväder, pollen och lokaltrafik använder jag API:er från openweathermap.org, skrapar RSS från pollenrapporten.se och Trafiklab
Det här är kostnadsfria API:er, men viss begränsning i antal anrop, så jag kommer behöva justera lite i kod.

Kod – Python + lite html

All kod kommer givetvis att läggas upp på GitHub. Jag är som sagt var ingen programmerare, men om ni är intresserade av att titta på, eller använda er av detta, så är det bara att göra vad ni vill med det. Allt är skrivet i Python, med undantag för koden till skärmarna som ska sitta på plats i lokalerna, som är html/css.

Just nu så rullar alla sensorer. De skulle behöva kalibreras, men det gör jag på plats lite senare. Som ni ser i klippet nedan, som jag la ut på Twitter (och övriga sociala medier) så genereras html och laddas upp till webbserver.

Så just nu är det endast realtidsmätning av data.

https://twitter.com/MickeKring/status/1166797645031100419?s=20

Nästa steg – del 3?

När jag skissade på detta projekt hade jag tänkt få in lite ansiktsigenkänning, men det får nog läggas på is ett tag. Dock kommer en PIR rörelsedetektor läggas till för att känna av om det är folk i rummet. Detta för att eventuellt kunna automatiskt avboka lokaler som är bokade men inget dykt upp till. En magnetisk switch för att känna av om fönster är öppna kommer också att läggas till. Sen ska systemet även kunna boka och avboka lokaler och kommunicera, exempelvis via sms eller liknande.

Närmast ligger dock att börja skissa på hur all data ska lagras och hur jag ska kunna få ut prognoser och liknande ur det. Men där är jag inte än, så jag får helt enkelt återkomma…

Har du frågor? Som vanligt är det bara att ställa dem i valfritt kommentarsfält.

Del 1: Uppstart

Del 2: Komponenter och kod

  1. Verkligen ett intressant projekt! Ska bli intressant att följa!

    En fråga, har du hittat någon billig och stabil magnetisk switch för att se om fönstren är stängda?

    Funderar på att skapa ett script som t.ex. SMS:ar om någon sal har fönster öppna, då vår skola får betala en hög kostnad av säkerhetsbolaget ifall något är öppet.

    1. Hej Jonathan! Kul att höra. Tyvärr blev det lite paus i allt i o m Corona, men nu ska jag fortsätta. På https://rum.arstaskolan.se/b212a-iot kan du se mitt rum i realtid med de senasorer och API:er som används nu och det har rullat utan problem sedan länge tillbaka nu.
      Jag är precis som du ute efter en magnetisk switch att koppla till detta. Tanken är att vaktmästeriet ska få ett sms vid exempelvis 16.30 med de fönster som fortfarande är öppna, så att de kan stänga. Jag brukar använda Twilio för sms då det är enkelt att få att fungera med Python. Jag får återkomma när jag börjar testa version 3.

Kommentarer är stängda.