Kategoriarkiv: Smarta hem

API

Ett API, eller ett Application Programming Interface, är ett protokoll som används av applikationer för att hämta information. Information kommer från hemsidor, där informationen lagras. Genom att skicka in olika webb-adresser kan applikationen fråga efter den specifika information som behövs, och får på det sättet inte mer information än den kan hantera.

Temperatur-API

Detta API ger dig en temperatur på en given plats med hjälpa av två parametrar: stad och land.

Kopiera denna text till en webb-läsare: “http://verkstad.cc/iot/mmx/code/get_temperature.php?city=london&country=gb”

Sidan som öppnas visar temperaturen i London, Storbritannien. Testa att ändra parametrarna så att temperatur-API’et visar temperaturen i Tokyo, Japan.

Testa olika länder och städer där du tror att det bör vara olika temperaturer. Jämför till exempel dag och natt, vinter eller sommar. För att komma igång behöver man landskoden för det land man vill använda. Nedan finns några:

  • Australien = AU
  • Kina = CN
  • Egypten = EU
  • Indien = IN
  • Japan = JP
  • Ryssland = RU
  • Sydafrika = ZA
  • Spanien = ES
  • Sverige = SV
  • Storbritannien = GB
  • USA = US

För en lista över alla landskoder, gå in på; https://sv.wikipedia.org/wiki/ISO_3166#ISO_3166-1-koder

Twitter-temperatur

Här ska vi använda samma elektronik som i den förra uppgiften. Men den här gången ska vi ändra koden så att programmet anropar och twittrar vårt temperatur-API.
Vi kommer att skicka ”It’s X degrees in X city! Tweet 1. #CTCerStad” till det gemensamma twitter-kontot.

Material:

  • Arduino YUN
  • 5st kopplingstrådar
  • 2st 10k resistorer (Färgerna på dem är brun, svart, orange och guld)
  • En knapp
  • En LED-lampa
  • Ett kopplingsbord

Nästa steg är samma som tidigare. Om du har kvar dem kan du hoppa till steg 2.

Modifiera koden

  1. Bygg ihop MDF-delarna med knappen och LED-lampan.
  2. Öppna filen “e2_temperature_twitter” från exempel-menyn
  3. Ändra “country”-variabeln i koden så att adressen har den stad och det land ni vill använda.
  4. Ändra även “countryMessage”-variabeln så att rätt stad skrivs ut.
  5. Se till så att knappen och LED-lampan är kopplade till rätt pins på Yún-kortet.
  6. Ladda upp sketchen på kortet.
  7. När den röda L13-lampan lyser är Yún-kortet redo.
  8. Öppna “Serial monitor”-fönstret och tryck sedan på knappen.
  9. När “Tweet sent” syns i den seriella monitorn kan ni gå in på Twitter för att se meddelandet. Det gemensamma Twitter-kontot är :

Precis som med de förra Twitter-meddelandena behöver man ändra på innehållet om man ska skicka flera.

Räkna binärt

Människor har totalt 10 symboler för att representera siffror: från 0 till 9. Genom att kombinera dem kan du representera vilket nummer som helst – 13, 648, 2015, osv. På samma sätt kan i stort sett hela universum representeras med bara ettor och nollor. Allt som behövs är ett system för att kombinera dem.

Föreställ dig fyra switchar som kan sättas på och stängas av. Varje switch har ett värde; ’8’, ’4’, ’2’ och ’1’. När samtliga switchar är avstängda motsvarar detta ’0’ – 0000. Sätt på switch 1 för att representera siffran 1 – 0001. Stäng av switch 1 och sätt på switch 2 för att representera siffran 2 – 0010. Tänk nu noga och försök representera siffran 3. Du sätter på både switch ’2’ och ’1’ – 0011. Detta eftersom 2+1 är lika med 3. Försök få fram siffran 7. Sätt på switch ’4’, ’2’ och ’1’ – 0111. Försök med nummer 11. Sätt på switch ’8’, ’2’ och ’1’ – 1011.
Läs mer

Blink

Under introduktionen till programmering fick du lära dig att skapa små program och animationer med Processing. Du satte på och stängde av pixlar på datorskärmen. Arduinon har ingen skärm, men en LED monterad på kortet. Det är som en liten lampa som du enkelt kan sätta på och stänga av. Man skulle kunna säga att Arduinon en skärm med en enda pixel. Den monterade LED:n är kopplad till digitala pin 13.

Det är väldigt enkelt att kontrollera Arduinons monterade LED. Det första exemplet du kommer att programmera heter Blink. Att blinka en LED betyder att upprepade gånger växla mellan de två möjliga tillstånden genom att sätta på och stänga av den.

På samma sätt som Processing-program alltid måste inkludera funktionerna setup() och draw(), måste Arduino-program alltid inkludera funktionerna setup() och loop().

  • setup(): den här delen av programmet körs endast en gång, i början av programmet. Här berättar du för Arduinon vilka pins som ska användas, och om de kommer att användas som inputs eller outputs.
  • loop(): den här delen upprepas för alltid (eller tills du kopplar bort strömförsörjningen). Kommandon i loop() utförs, en efter en, uppifrån och ner. När sista raden kod är nådd körs den första raden kod igen.

Exempel 2.1

I det här exemplet kommer du att få den på Arduinon monterade  LED:n att blinka.

Material

  • 1 Arduino Uno

Instruktioner

  1. Öppna Arduino IDE:t och skriv följande kod:

  1. Koppla Arduinon till din dator med USB-kabeln.
  2. Kompilera och ladda upp koden till Arduinon med den här ikonen. [upload icon]

Resultat

Den monterade LED:n borde nu blinka med ett intervall på två sekunder, en sekund på och en sekund av.

Nya kommandon

  • pinMode(pinNumber, OUTPUT): konfigurerar digitala pin pinNumber så att den uppträder som en output.
  • digitalWrite(pinNumber, HIGH/LOW): skriver HIGH (på) eller LOW (av) till digitala pin pinNumber.
  • delay( time ): pausar programmet i så många millisekunder som  specificerats med time.

Repetition:

  • Varje kommando avslutas med semikolon, ;.
  • Block av kod ryms innanför klammerparenteser { }.
  • Funktioner inleds med definitionen void.
  • Funktioner har parametrar som ryms mellan parenteser ( ). Antalet parametrar styrs av funktionen.

Så här fungerar det

  • setup() konfigureras digitala pin 13, pinen till viken LED:n är kopplad, som en output.
  • loop() sätts LED:n på genom att skrivatill pin 13. Det betyder att 5V skickas till pin 13.
  • Programmet pausar i 1000 millisekunder, 1 sekund.
  • LED:n stängs av genom att skriva LOW till pin 13. Det betyder att 0V skickas till pin 13.
  • Programmet pausar i ytterligare 1000 millisekunder
  • loop() fortsätter upprepas.

Lägg till egna LED:s

Du kan lägga till egna LEDs till kretsen. För att dina elektroniska komponenter i krets ska få ström måste de alla kopplas till ström och jord. På Arduinon förses ström genom pin märkt med “5V” eller genom en av de digitala pinsen (när de sätts till HIGH). Jordpinen är markerad med “GND” (ground).

LED:s har polaritet och är designade för att visa detta. Det långa benet heter anod och är positivt. När den kopplas till en krets ska anoden kopplas till ström, i det här fallet i en digital pin eftersom du vill kunna kontrollera den. Det korta benet, katod, är negativt och ska kopplas till GND.

LEDs går inte sönder om de kopplas fel, men de kommer inte att fungera. En LED kan endast hantera begränsat med ström. För att skydda dem från att brännas behöver du seriekoppla en resistor (även kallat motstånd) med dem. Resistorns värde varierar, i CTC-exemplena används alltid en 220 Ohms sistor retillsammans med en LED. Läs mer om resistorer och Ohms lag här.

För att förenkla kopplandet av kretsar kommer du att använda Education-skölden. När skölden är kopplad på din Arduino utökar den Arduinons kapacitet och funktionalitet. För att göra en krets med en LED behöver du använda kopplingsdäcket på sköldens ovansida. Läs mer om kopplingsdäck här och Education-skölden här.

Exempel 2.2

I det här exemplet kommer du att koppla en LED till din Arduino och få den att blinka.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 1 LED
  • 1 220 ohms resistor
  • 2 labbkablar

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla LED:n över kopplingsdäckets mittengap.
  3. Koppla 220 ohm resistorn till digitala pin 5 med en labbkabel. Koppla resistorn till det långa benet på LED:n.
  4. Koppla det korta benet på LED:n till GND med en labbkabel.
  5. Ladda upp den här koden:

Resultat

Som i det tidigare exemplet bör LED:n blinka med ett intervall på två sekunder.

Så här fungerar det

  • setup() konfigureras digitala pin 5, pinen till viken LED:n är kopplad, som en output.
  • loop() sätts LED:n på genom att skriva HIGH till pin 5.
  • Programmet pausar i 1000 millisekunder.
  • LED:n stängs av genom att skriva LOW till pin 5.
  • Programmet pausar i ytterligare 1000 millisekunder.
  • loop() fortsätter att upprepas.

Exempel 2.3

I det här exemplet kommer du att göra en liten modifiering av exempel 2.2 . Du kommer att behålla samma krets men istället för att skriva numret på den digitala pin som LED:n är kopplad till, kommer du att använda en variabel. Om du behöver hjälp med att komma ihpg vad en variabel är kan du gå tillbaka och läsa avsnittet om variabler i det tidigare blocket.

Instruktioner

  1. Ladda upp den här koden:

Resultat

Det här exemplet bör göra exakt samma sak som föregående exempel.

Så här fungerar det

  • Variabeln ledPin deklareras och tilldelas värdet 5, numret på den digitala pin du använder.
  • setup() används variabeln ledPin för att konfigurera pin 5 som en output.
  • loop() sätts LED:n på genom att skriva HIGH till pin 5 med hjälp av ledPin.
  • Programmet pausar i 1000 millisekunder.
  • LED:n stängs av genom att skriva LOW till pin 5.
  • Programmet pausar i ytterligare 1000 millisekunder.
  • loop() fortsätter att upprepas.
Tänk på: Bestämmer du dig för att koppla LED:n till en annan digital pin behöver du bara byta ut pinnumret på en plats i koden istället för tre, om du använder dig av en variabel.

Lär genom att göra

  • Se vad som händer när du ändrar tiden i funktionen delay(). Få ljuset att blinka snabbare eller långsammare.
  • Använd ljuset för att simulera ett hjärtslag. Kolla ditt hjärtslag genom att mäta pulsen. Du kommer märka att du alltid får två pulser, ungefär som tick, tack … pause … tick, tack … pause. Simulera detta med en LED. (Tips: du kan klippa och klistra kod)
  • Se vad som händer när pausen blir väldigt liten. Testa och se om du fortfarande kan se ljuset blinka när du ändrat till delay(10).

VU-meter

Det är möjligt att koppla och kontrollera mer än en LED med din Arduino. I CTC-programmet kallas det för VU-meter när du använder flera LED. i en rad. EducationShield-biblioteket innehåller en klass, vuMeter, med flera funktioner du kan använda för att enkelt kontrollera flera LEDs. Läs mer om VU-metern här.

Piiip

I det här avsnittet kommer att du leka lite med ljud. Ljud är vibrationer. Ljudet från en gitarr kommer exempelvis från strängarnas vibrationer. Du kan även producera ljud med Arduinon genom att generera vibrationer. I följande exempel kommer du att göra detta med en piezohögtalare, och få den att pipa.

Digitala inputs

På samma sätt som du kan skriva HIGH eller LOW till en digital pin på Arduinon, kan du läsa HIGH eller LOW från en digital sensor kopplad till en digital pin. Digitala inputs kan, precis som digitala outputs, bara ha två tillstånd.
Läs mer

Uppkopplad gardin

i den här uppgiften kommer du att bygga en gardin som kan justeras med hjälp av temperaturvärdet. Så snart en specifik temperatur är uppnådd kommer “Hem”-Yún meddela “Kontroll”-Yún att stänga gardinen.

Du kommer bygga en testversion av gardinen, och så snart den fungerar som förväntat kommer den bli en i raden av smarta objekt som utgör ditt smarta miniatyr-hem.

Material:

  • Arduino Yún
  • Kopplingstråd
  • RGB-LED
  • Kopplingsbräda
  • Knapp
  • Micro standard Servo-motor
  • 10k resistor (Färgerna på den är brun, svart, orange och guld)

 

Instruktioner för MDF-delar

  1. Limma fast gardinen

Windowshade1.jpg

  1. Placera servo-motorn i öppningen på väggen, och fäst kugghjulet

Windowshade2.jpg

  1. Lås fast gardin-delen på sin plats

Windowshade3.jpg

 

  1. Bygg ihop MDF-delarna med servo-motorn.
  2. Öppna “e3_windowshade_test”-filen från exemplen.
  3. Ladda upp koden till din “Kontroll”-Yún.
  4. Öppna “Serial Monitor”-fönstret och testa så att gardinen fungerar.
  5. Om den fungerar, koppla bort gardin-delen och koppla den till din “Hem”-kopplingsbräda enligt figuren:
  6. Så snart du har tagit bort gardin-delen, koppla LED-lampan till din “Kontroll”-Yún.
  7. Öppna “e3_windowshade_control”-filen från exemplen.
  8. Ladda upp filen till din “Kontroll”-Yún.
  9. Så snart temperaturen din “Hem”-Yún mäter har gått över ett specifik värde bör du kunna trycka på knappen för att stänga gardinen. Så snart värdet går under den uppsatta gränsen kommer de automatiskt att öppnas.

Uppkopplad takventilation

I den här uppgiften kommer du att bygga en uppkopplad takventilation. Så snart en specifik temperatur har uppnåtts kommer din “Hem”-Yún signalera till din “Kontroll”-Yún att den ska öppna ventilationsfönstret.

Du kommer att bygga en testversion, och så snart den fungerar som förväntat kommer den få bli en i raden av smarta objekt som är delar av ditt smarta hem.

Material:

  • Arduino Yún
  • 9x kopplingstrådar
  • En RGB-LED
  • En kopplingsbräda
  • En knapp
  • 10k resistor (Färgerna på den är brun, svart, orange och guld)
  • Magnetspole
  • Transistor
  • 150k resistor (Färgerna på den är brun, grönt, svart, orange och brun)

  1. Bygg ihop MDF-delarna med magnetspolen.
  2. Öppna “e3_roofvent_test”-filen från exemplen.
  3. Ladda upp filen till Yún-kortet.
  4. Öppna “Serial Monitor”-fönstret och testa om ventilationen stängs och öppnas.
  5. Om det fungerar, koppla bort ventilationsfönstret och koppla det till din “Hem”-kopplingsbräda som på figuren:
  6. När du har tagit bort takventilations-delen, koppla LED-lampan till din “Kontroll”-Yún.
  7. Öppna “e3_roofvent_control”-filen från exemplen.
  8. Ladda upp koden till din “Kontroll”-Yún.
  9. Så snart temperaturen på din “Hem”-Yún har nått en specifik gräns ska du kunna trycka på knappen för att öppna ventilationsfönstret. Om temperaturen går under gränsen ska fönstret stängas automatiskt.

Det smarta hemmet

I en hemmiljö finns det mycket information som går att använda och manipulera för att göra hemmet bekvämare, lättare att bo i och mer energisnålt. Ett av de vanligaste IoT-objekten i hemmet mäter temperaturer och kontrollerar termostaten. Andra IoT-områden är:

  • Säkerhet (t.ex. alarm).
  • Ström- och vattenförbrukning.

Vilka andra delar av hemmet kan vi göra smartare?

Det smarta hemmet är inte begränsat till det som händer inuti huset. Det som händer runt om huset är också intressant. Nedan är några exempel på saker som det “smarta hemmet” skulle kunna hjälpa sina ägare med:

  • Meddela att en leverans har kommit.
  • Upplysa om att gräsmattan behövs klippas.
  • Märka att ett husdjur har rymt.
  • Meddela att fågelmataren behöver fyllas.

Referera till CTC IoT Teacher Guide #3.

Vårt hem

I nästa projekt ska vi simulera ett smart hem med hjälpa av en modell. Under dessa uppgifter rekommenderar vi att man arbetar i grupp, och att varje grupp tilldelas ett eget experiment. I hemmet finns det apparater som kontrolleras över internet. Varje grupp ska styra en av dessa, i relation till temperaturen från platsen där hemmet är.

Vi kommer använda oss av två Arduino Yúns:

  • En central Yún som mäter temperaturen i hemmet, som kan ta emot kommandon för att stänga av eller aktivera de olika uppkopplade apparaterna
  • En Yún per grupp som visar temperaturen med en RGB-LED, samt har en knapp för att skicka kommandon till apparaterna


Värden för RGB-LED:
Blå: under 10º C
Vit: mellan 10º C och 20º C
Röd: över 20º C

Reagera

Klara…färdiga…Gå! Testa din reaktionstid!

I det här spelet kommer en av tre LED:s slumpmässigt att lysa upp. När det händer måste du nudda den tillhörande sensorn, så snabbt som möjligt. Om du inte reagerar tillräckligt snabbt är spelet slut.

Uppkopplad fläkt

I den här uppgiften kommer du att bygga en uppkopplad fläkt. Så snart en specifik temperatur uppnåtts kommer din “Hem”-Yún meddela din “Kontroll”-Yún detta, och på så vis tillåta dig att sätta igång fläkten.

Du kommer att börja med att bygga en testversion som du sedan integrerar med de andra objekten i ditt smarta miniatyr-hem.

Material:

  • Arduino Yún
  • Kopplingstråd
  • RGB-LED
  • Kopplingsbräda
  • Knapp
  • DC-motor
  • Transistor
  • 10k resistor (Färgerna på den är brun, svart, orange och guld)
  • 150k resistor (Färgerna på den är brun, grönt, svart, orange och brun)

Instruktioner för MDF-delar

  1. Placera DC-motorn i hålet i taket, och fäst fläkt-delen

Fan1.jpg

  1. Sätt ihop väggar och stöd-delar i tak-delen

Fan2.jpg

  1. Bygg ihop MDF-delarna med DC-motorn.
  2. Öppna “e3_fan_test”-filen från exemplen.
  3. Ladda upp koden till din “Kontroll”-Yún.
  4. Öppna “Serial Monitor”-fönstret och testa så att fläkten går på och av.
  5. Om det fungerar kan du koppla bort fläkt-delen och koppla den på “Hem”-kopplingsbrädan enligt figuren:
  6. Så snart du har tagit bort fläkt-delen, koppla LED-lampan till din “Kontroll”-Yún.
  7. Öppna “e3_fan_control” från exemplen.
  8. Ladda upp koden till din “Kontroll”-Yún.
  9. Så snart din “Hem”-Yúns temperatur har överstigit det specifierade gränsvärdet ska du kunna trycka på knappen för att stänga av fläkten. Om temperaturen hamnar under gränsvärdet ska fläkten automatiskt stängas av.

Uppkopplad tvättlina

I den här uppgiften ska du bygga en uppkopplad tvättlina. När en given temperatur har uppnåtts meddelar vår “hem”-Yún vår “Kontroll”-Yún detta, och ber den fälla ut tvättlinan.

Du kommer att bygga en testversion, och när den fungerar kan du koppla den till “Hem”-Yún’en tillsammans med de andra apparaterna.

Material:

  • 1 Arduino Yún
  • 9 kopplingstrådar
  • 1 RGB-LED
  • 1 kopplingsbräde
  • 1 knapp
  • 1 Micro-kontinuerlig Servo-motor
  • 1 10k resistor (Färgerna på den är brun, svart, orange och guld)
  • Snöre

Assembling the MDF Components

  1. Limma fast den runda spår-delen på den lilla stolpen

Clothesline1.jpg

  1. Fäst servo-motorn genom hålet i vägg-delen, och fäst den runda spår-delen på andra sidan.

Clothesline2.jpg

  1. Klipp en bit snöre, och knyt så att den passar i de runda spår-delarna på miniatyren.

Clothesline3.jpg

  1. Öppna “e3_clothesline_test” från exempel-menyn.
  2. Ladda upp koden till er Arduino Yún.
  3. Öppna “serial monitor”-fönstret och testa uppfällandet samt nedfällandet av tvättlinan.
  4. Om det fungerar, koppla loss tvättline-delen och koppla den till er “hem”-Yúns kopplingsbräde enligt figuren.
  5. När du har tagit bort tvättlinan, koppla LED-lampan till din Yún
  6. Öppna “e3_clothesline_control” från exemplen.
  7. Ladda upp koden till er “Kontroll”-Yún.
  8. Så snart temperaturen på er “hem”-Yún gått över en specifik gräns ska du kunna trycka på knappen som förlänger tvättlinan. Om temperaturen går under den satta gränsen ska tvättlinan automatiskt dras in.

Uppkopplat bevattningssystem

I den här uppgiften kommer du att bygga ett bevattningssystem. Så snart en specifik temperatur har uppnåtts kommer “Hem”-Yún meddela din “Kontroll”-Yún om vattensystemet ska vara på eller av.

Du kommer att börja med att bygga en testversion som du sedan integrerar med de andra objekten i ditt smarta miniatyr-hem.

Material:

  • En Arduino Yún
  • Kopplingstråd
  • RGB-LED
  • Kopplingsbräda
  • Knapp
  • 10k resistor (Färgerna på den är brun, svart, orange och guld)
  • Magnetspole
  • Transistor
  • 150k resistor (Färgerna på den är brun, grönt, svart, orange och brun)

 

Instruktioner för MDF-delar

  1. Sätt magnetspolen i formanpassad del och för den in i den anpassade öppningen på miniatyr-bordet

Watering1.jpg

  1. Placera vattenkannan på bordet

Watering2.jpg

  1. Fäst benen vid bordsskivan

Watering3.jpg

  1. Bygg ihop MDF-delarna med magnetspolen.
  2. Öppna “e3_watering_test”-filen från exemplen.
  3. Ladda upp koden till din “Kontroll”-Yún.
  4. Öppna “Serial Monitor”-fönstret och testa om bevattningssystemet kan slås på och av.
  5. Om det fungerar kan du koppla bort bevattningssystemet och koppla det på din “Hem”-kopplingsbräda likt figuren:

 

  1. Så snart du tagit bort bevattningssystemet kan du koppla LED-lampan till din “Kontroll”-Yún.
  2. Öppna “e3_watering_control” från exemplen.
  3. Ladda upp koden till din “Kontroll”-Yún.
  4. Så snart temperaturen din “Hem”-Yún mäter har gått över ett specifik värde bör du kunna trycka på knappen för att sätta igång bevattningen. Så snart värdet går under den uppsatta gränsen kommer det stängas av automatiskt.