• No results found

2.1 Metoder för igenkänning av människor

3.1.7 WiFi ESP

Figur 3.13:Överblick av ESP8266 och dess portar. RX =Receive, kopplas till Arduinons TX (digital pin 1)

TX =Transmit, kopplas till Arduinons RX (digital pin 0)

VC C = Inspänning, läs mer i avsnitt Spänningsregulator LM350T på sidan 28

GPIO 0 och GPIO 2 = Används inte

RESET = Vid låg insignal återställs modulen CH_PD =Chip power down, aktivt låg

GND = Jord

För att få strömförsörjning till ESP8266 uppkopplades först en spänningsdelare, dock så fungerade inte detta då ESP8266 fungerar som ett varierbart motstånd och det blir spänningsfall. Lösningen var att ESP8266 uppkopplades mot spän- ningsregulator LM350T för att få konstant 3,3 V spänningsmatning, se 3.1.8. Problemet med ESP8266 är att den drar mellan 135 till 215 mA för att skicka via

28 3 Metod

fall. ESP8266 var då uppkopplad mot en extern spänningskälla på 1200 mA. Då ESP8266 startade upp fungerade den bara ett fåtal gånger med den övriga kret- sen och annars skickadefatal error via serieportarna till Arduinon. Lösningen till

detta problemet blev att den behövde matas från både Arduinons 3,3 V port, samt spänningsregulatorn för att inte få spänningsfall.

För att koppla upp ESP8266 mot det internaWiFi-nätverket behövde den först

uppkopplas mot Arduinon som kan kommunicera via RX- och TX-portarna med ESP8266. Om Arduinon är uppkopplad mot en dator går det även att skriva via den seriella monitorn och manuellt mata in kommandon mot ESP8266 med en standardinställning avbaudrate (bitar/sekund) på 115200. Följande kommandon

tillWiFi-modulen används i det aktuella fallet.

• AT + CI P MU X = ? används för att välja antalet uppkopplingar.

• AT + CW MODE = ? används för att välja kommunikationsform. Där 1 är router, 2 är applikation (mottagare) , och 3 är båda två.

• AT + CI OBAU D = ? används för att välja en baudrate på 115200. ESP8266 har stöd för ett antal olika hastigheter; 9600, 19200, 38400, 74880, 115200, 230400, 460800 och 921600.

• AT + CW LAP ger en lista över nätverk inom räckvidden.

• AT + CW J AP = 00SSI D00,00P ASS00användes för att ansluta till ett av nät- verken. Det valda nätverket sparas mellan uppkopplingarna på ESP8266.

SSI D är namnet på nätverket och P ASS är lösenordet till detsamma.

Då ESP8266 med kommandot AT + RST inte gav en adekvat omstart krävdes det att CH_PD-pinnen användes, vilket skapade en hårdvaruomstart. Hur de res- terande kommandona för ESP8266 användes går att finna i flödesschemat A.2 i appendix.

3.1.8

Spänningsregulator LM350T

En spänningsregulator stabiliserar och reglerar en inspänning så att utspänning- en blir konstant samtidigt som den minskar brus. I detta fall reglerar den ner inspänningen på 5 V till en utspänning på 3,3 V.

En krets kan ses som ett varierbart motstånd, om en vanlig spänningsdelning skulle använts så skulle kretsens motstånd ses som en parallellkoppling i spän- ningsdelningen. Det skulle göra beräkningarna annorlunda och resultatet fun- gerar inte. Det är den stora anledningen till att en spänningsregulator behövs istället för en simpel spänningsdelning.

3.1 Förstudie 29

Figur 3.14:Kopplingsschema av inkopplingen för spänningsregulatorn.

Där C2rekommenderas att vara mellan 1 µF och 100 µF [Semiconductor, 1998].

Därav valdes en tillgänglig 10 µF kondensator, detta för att ge en bättre utim- pedans samtidigt som transienter försvinner.

Tanken med att använda ett varierbart motstånd är som så att det är förhållan- det mellan R1 och R2 som bestämmer utspänningen. Efter lite experimentering

valdes R1till 100Ω och R2till 187Ω. Det resulterade i en utspänning på 3,32 V

vilket ansågs vara rimligt för ändamålet.

I N kopplas till en extern spänningsmatning på 5 V, U T kopplas till ESP8266s VDD.

3.1.9

Räknare

För att kunna jämföra det data som samlades in behövdes en parameter för det faktiska antalet personer i rummet. Till detta ändamål konstruerades en räknare genom att placera två tryckknappar på ytterligare en kopplingsplatta som kopp- lades till Arduinon. När en person gick in i rummet tryckte den ner inpassage- knappen S1och när någon gick ut fick den trycka på utpassageknappen S2, tryck-

knapparna är aktivt höga. Den designade kretsen återfinns i figur 3.15. Antalet personer jämfördes sedan med alla de olika sensorerna i systemet, vilket vidare- utvecklas under avsnittet Testning (3.2.1) på sidan 34.

30 3 Metod

Figur 3.15:Kopplingsschema av inkopplingen för räknaren av antalet per- soner i rummet.

När en knapp för in-/utpassagen trycktes ner blev det ett så kallatinterrupt, av-

brott, i beräkningarna av sensorvärdena och passagen registrerades. Sensorerna fortsatte sedan att beräknas som vanligt för att sedan återgå till att presentera data i Arduinomiljöns egna monitor. D1 och D2 används i uppkopplingen för

att inte sammankoppla tryckknapparna till avbrottet, oavsett vilken knapp som trycks ner ska ett avbrott genereras. Mjukvaran tillgodosåg att endast ett knapp- tryck och en knapp kunde registreras åt gången.

L1 är en grön lysdiod som visar för användaren att en inpassage har blivit regi-

strerad och L2är en röd lysdiod som visar att en utpassage har blivit registrerad.

Problem

Under implementationen av räknaren upptäcktes ett problem med att räknaren triggade flera gånger på samma knapptryck. Problemet uppstod när tryckknap- parna skulle registreras med hjälp av ett avbrott. Efter mycket felsökningar och omkodningar där det ansågs omöjligt att ett tryck skulle generera flera registre- ringar upptäcktes till slut problemet.

Avbrottet triggade på positiv flank som på grund av kontaktstudsar kunde gene- rera flera avbrott av samma signal. Detta löstes genom att sätta en 470 pF stor kondensator, C1mellan avbrottssignalen och jord. Efter det var tryckknapparna

3.1 Förstudie 31

3.1.10

Server

För att kunna presentera det data som sensorerna har samlat in behövs en kanal att sprida informationen i. Då minnet i Arduinon är begränsat till 32 kB flash och 1 kBEEPROM så används en molnbaserad lagring för möjligheten att spara mer

data.

Att hitta en molnbaserad lagring som är anpassad för önskemålen påbörjades och Thingspeak upptäcktes. Det är en sida som kan ta emot data via en så kalladAPI- key och en IP-adress.

Thingspeak tillåter användaren att skapa en egen kanal som har en specifikAPI- key dit informationen kan spridas. IP-adressen är densamma för alla som använ-

der tjänsten men kanalen är personlig. Upp till 8 fält kan användas i kanalen och dessa fält kan användas till att visa sensorvärden på, fälten illustreras av de tre graferna i figur 3.16 på sidan 31. I varje fält kan man visa till exempel en graf, och om man valt det alternativet bildas automatiskt en graf med hjälp av inkommande sensorvärden

Figur 3.16:Beskrivande bild över uppkopplingen från sensordata till åt- komst av data via valfri plattform med tillgång till Internet.

Fördelen med att använda molnbaserad lagring är att en större mängd värden kan lagras och informationen finns kvar även om ett problem uppstår i hårdva- ran. Upp till 8000 sensorvärden kan sedan extraheras från Thingspeak för att utföra vidare behandling av data på en dator.

För att visa kanalen får varje användare en egen adress. Här visas graferna men inte på ett fullt ut tillfredställande sätt. I detta projekt är meningen att presentera mer än bara sensorvärdena, bland annat ska sannolikheten för detektering också visas. Därför skapades en hemsida via Wix, som är en molnbaserad webbutveck- lingsplattform. Med hjälp av den kan graferna från Thingspeak presenteras sam- tidigt som annan värdefull information kan få plats på samma plattform. I denna utvecklades en sida för uppvisning på en dator, och en sida anpassad för mobi-

32 3 Metod

la enheter, seexjobb.wix.com/sensor alternativt exjobb.wix.com/sensormobil om en

3.2 Implementation 33

3.2

Implementation

I denna delen presenteras olika testningar utförda under implementationen av systemet. I figur 3.17 syns ett kopplingsschema som beskriver hur de olika de- larna av projektet är kopplade. Hela systemet är inte inkluderat i detalj, för att förstå detta får de individuella kopplingsscheman som finns i metoddelen för re- spektive koppling beskådas. Fuktsensorn är den enda delen i kopplingsschemat som är komplett då den inte använder några yttre komponeneter. 3V 3, 5V samt

GN D i figur 3.17 är kopplade till en kopplingsplatta där de vidarekopplas till

respektive modul. ESP8266 använder sig av en extern strömkälla och är därav inte som de övriga komponenterna spänningssatta via Arduinon.

34 3 Metod

3.2.1

Testning

När sensorerna var kopplade till samma Arduino och på samma kopplingsplatta så började systemet testas. Det första testet utfördes på Cybercom i ett kontors- rum på cirka 25 m2. Uppkopplingen kan ses i figur 3.18.

Figur 3.18:Uppkopplingen med samtliga sensorer och kopplingsplattan för in- och utpassage.

Direkt så upptäcktes ett stort samband mellan temperaturen i rummet gentemot antalet personer som vistades i rummet. I figur 3.19 illustreras just detta, Y-axeln markerar antalet personer (som varierade mellan 1-6) samt temperaturen (som pendlade ungefär ±0,1 °C), X-axeln markerar tiden som varade i 2 timmar och 11 minuter.

Axlarna är utelämnade i grafen av flera skäl:

• Den exakta temperaturen är i detta steg inte känd och bör därmed inte presenteras som det.

• Skillnaden i temperaturen är det viktiga i sammanhanget.

• Tiden var i detta stadie inte helt synkroniserad och därav utelämnas tidsan- givelserna.

3.2 Implementation 35

Figur 3.19:Diagram över hur temperaturen bettede sig gentemot antalet per- soner i ett rum under första testningen av systemet.

Sampling

För att inte få allt för många värden att hantera så valdes det att sampla alla värden från sensorerna var 30e sekund. I figur 3.19 presenteras datat med 262 samplade värden från temperatursensorn.

36 3 Metod

Related documents