• No results found

För att kunna jämföra principen med att använda två nät mot ett måste mätresultaten kvantifieras (Lindskog, 2006). Detta kan göra genom att ta fram standardavvikelsen för resp. nät och totalen från mätprincipen med två nät.

Enligt Rung och von Heijne (2018) beskriver Ekvation 7 hur standardavvikelsen beräknas: 𝜎 = .) (+$#+̅)' $*( 0#$ (7) Där: 𝜎 är standardavvikelsen

xk är mätfelet, i detta fall det enskilda kvadrerade avståndsfelet ,𝛥𝑥'+ 𝛥𝑦'

𝑥̅ är medelvärdet av alla kvadrerade avståndsfel n = antalet mätvärden

k = visat numret på första observationen

4 Resultat

Baserat på studieundersökningen så är GPS absolut det bästa systemet, men då bassängen är placerad där den är så kommer detta inte fungera.

Den mest rimliga tekniken att använda till ändamålet är accesspunkter och ett ESP32 mikrochip eftersom arbetet hade ett low-cost perspektiv.

Vid det praktiska provet samlades mätvärden in och beräknades enligt Ekvation 7. Nät 1 hade en standardavvikelse på 0,16 meter, nät 2 på 0,20 meter och

kombinationen med nät 1 och 2 gav en standardavvikelse av det sanna värdet på 0,11 meter. Värdet beskriver nätets mätnoggrannhet även över andra positioner.

Figur 12. Resultat från mätningen med båda nätverken som visar de olika uppmätta koordinaterna för

punkterna med koordinat (3,1; 2,4). Standardavvikelse på 0,11meter.

0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5 0 1 2 3 4 5

Total (3,1; 2,4)

Figur 13. Resultaten från mätningen med nätverk 1 som visar de olika uppmätta koordinaterna för

punkterna med koordinat (3,1; 2,4). Standardavvikelse på 0,15meter.

Figur 14. Resultaten från mätningen med nätverk 2 som visar de olika uppmätta koordinaterna för

5 Diskussion

En standardavvikelse på 0,11 meter är nära målet. Förhållande till modellen och bassängens yta så är det aningen för högt. Med ett kombinerat system av UWB och WiFi eller Bluetooth så kanske ytterligare noggrannhet kan uppnås. Att använda ett kombinerat system kan bidra till en högre noggrannhet. Anledningen till att vi tror det blev svårt med WiFi är att signalstyrkan varierade och som ett resultat av detta så varierade även mätvärdet ganska kraftigt, en del olika filter gjorde det möjligt att ändå kunna presentera ett rimligt resultat.

Mottagaren (ESP32) kräver även en elektrisk matning, detta har inte projektet belyst. För att uppnå detta kan en ackumulator installeras ombord på modellen. För att ladda ackumulatorn skulle en solcellspanel kunna placeras ombord. Detta bör inte vara något större problem då bassängen är placerad utomhus och bassängen belyses viss tid under dagen. Skulle inte detta fungera, kanske möjligheten att använda sig av speglar för att dirigera solstrålarna ner till fartygsmodellen kan vara en lösning.

6 Slutsats

Att använda två system på beskrivet sätt ökade noggrannheten men för ändamålet är det fortfarande för stor avvikelse mellan beräknade värden och verkligheten.

Referenser

Apple. (2021). Apple introduces AirTag. Hämtad 2021-04-23 från https://www.apple.com/newsroom/2021/04/apple-introduces-airtag/ Arduino. (2021). ARDUINO UNO REV3. Hämtad 2021-04-23 från https://store.arduino.cc/arduino-uno-rev3

Beal, V. (2001, 2 maj). WiFi Definition and Meaning. Hämtad 2021-04-19 från https://www.webopedia.com/definitions/wifi/ (Ej använd i texten)

Bluetooth. (2021). The story behind how Bluetooth got its name Hämtad 2021-04-22 från https://www.bluetooth.com/about-us/bluetooth-origin/

Chipster. (u.å.). Allt om RFID Hämtad 2021-03-18 från https://chipster.nu/guider/allt-om-rfid

Device Plus. (2020). Arduino: The Popular Microcontroller Board! Its History and

to How to Use It. Hämtad 2021-04-29 från

https://www.deviceplus.com/arduino/arduino-the-popular-microcontroller-board-its-history-and-to-how-to-use-it/

FAS Military Analysis Network. (1998). Navigation for Weapons Hämtad 2021-04-28 Från https://fas.org/man/dod-101/navy/docs/es310/GPS/GPS.htm

Handley, R. (2021 13april). RFID JOURNAL. Contribute a Guest Article to RFID

Journal. Tillgänglig: https://www.rfidjournal.com/contribute-a-guest-article-to-rfid-journals-audience

Induo. (2020, 25 februari). INOMHUSOPTIMERING DÄR GPS-EN INTE NÅR [Blogginlägg]. Hämtad 2021-03-12 från

https://www.induo.com/b/inomhuspositionering-ips/

Kjell & Company. (2017a). Arduino-hårdvara? Hämtad 2021-03-18 från https://www.kjell.com/se/kunskap/hur-funkar-det/arduino/introduktion/arduino-hardvara

Kjell & Company. (2017b). Vad är Arduino och Genuino? Hämtad 2021-03-17 från https://www.kjell.com/se/kunskap/hur-funkar-det/arduino/introduktion/vad-ar-arduino-och-genuino

Kjell & Company. (2018a). Anslut Arduino till wifi. Hämtad 2021-03-23 från https://www.kjell.com/se/kunskap/hur-funkar-det/arduino/arduino-projekt/anslut-

Kjell & Company. (2018c). Wifi – Trådlöst nätverk. Hämtad 2021-03-02 från https://www.kjell.com/se/kunskap/hur-funkar-det/internet/lokala-natverk/wifi---tradlost-natverk

Kjell & Company. (2019). Kanalplanering. Hämtad 2021-03-02 från https://www.kjell.com/se/kunskap/hur-funkar-det/internet/lokala-natverk/kanalplanering

Lindh, T. (Red.). (1999). Navigation 3 Navigation med teletekniska hjälpmedel. Stockholm: Försvarsmakten.

Lindskog, J. (2006). Mätvärdesbehandling. Lund: Studentlitteratur.

Linksys. (u.å.). What is an Access Point and How is it Different from a Range

Extender? Hämtad 2021-04-22 från https://www.linksys.com/us/r/resource-center/what-is-a-wifi-access-point/

Marketing Team. (2020, 29 september). 5GHz vs 2.4GHz – What is the best WiFi

frequency? Hämtad 2021-04-19 från https://www.tanaza.com/blog/5ghz-vs-2-4ghz/ RANDOM NERD TOUTORIALS. (u.å.). ESP32 Useful Wi-Fi Library Functions

(Arduino IDE) Hämtad 2021-03-23 från

https://randomnerdtutorials.com/esp32-useful-wi-fi-functions-arduino/ Rung, A., von Heijne, E. (2018). Matematik numerus 2C. Stockholm: Liber.

Sempler, K. (2005, 14 december). NyTeknik. Så funkar rfid-taggarna. Tillgänglig: https://www.nyteknik.se/popularteknik/sa-funkar-rfid-taggarna-6370691

Singh, V. (2021, 7 januari). Difference Between C and C++ [Blogginlägg]. Hämtad 2021-04-20 från https://hackr.io/blog/difference-between-c-and-cplusplus

Stirparo, P., Loeschner, J., & Cattani, M. (2012). Bluetooth technology: security features, vulnerabilities and attacks. Digital Citizen Security. doi:

10.13140/RG.2.2.23401.49760

The Nautical Institute. (u.å.). Dynamic positioning. Hämtad 2021-05-01 från

Bilaga 1

Den kod som användes för programmering.

#include <WiFi.h> #include <math.h>

float sensBx1 = 8.8; // Avstånd mellan AP nät 1

float sensBx2 = 8.8; // Avstånd mellan AP nät 2

float sensAy1 = 4.7; // Avstånd mellan Näten i Y-led

float xNet1; // X-koordinat för nät 1

float yNet1; // Y-koordinat för nät 1

float xNet2; // X-koordinat för nät 2

float yNet2; // Y-koordinat för nät 2

float avarageRSSI[5][4]; // Matrismed 2 dimensioner för lagrins av medelvärde // av RSSI-värden

float avRSSI1; // Medelvärde RSSI SSID 1

float avRSSI2; // Medelvärde RSSI SSID 2

float avRSSI3; // Medelvärde RSSI SSID 3

float avRSSI4; // Medelvärde RSSI SSID 4

float avRSSI5; // Medelvärde RSSI båda nätens X

float avRSSI6; // Medelvärde RSSI båda nätens Y

/* Funktion för att beräkna avstånd för nät 1 */ void fCalcNet1() {

yNet1 = (pow(avRSSI2,2)-pow(avRSSI1,2)- // Beräkning av Y-koordinat med hjälp av cirkelns

pow(sensBx1,2))/(sensBx1*2); // ekvation

xNet1 = sqrt(pow(avRSSI1,2)-pow(xNet1,2)); // Beräkning av X-koordinat med hjälp av cirkelns // ekvation

if (yNet1 < 0) { // Kontroll så endast positiv Y-position används

yNet1 = yNet1 * -1; // Om Y-värdet är negativt byts tecken till positivt }

if (xNet1 < 0) { // Kontroll så endast positiv X-position används

xNet1 = xNet1 * -1; // Om X-värdet är negativt byts tecken till positivt }

}

/* Funktion för att beräkna avstånd för nät 2 */ void fCalcNet2() {

yNet2 = (pow(avRSSI4,2)-pow(avRSSI3,2)- // Beräkning av X-koordinat med hjälp av cirkelns

(sensBx2,2))/(sensBx2*2); // ekvation

xNet2 = sqrt(pow(avRSSI3,2)-pow(xNet2,2)); // Beräkning av Y-koordinat med hjälp av cirkelns //ekvation

if (yNet2 < 0) { // Kontroll så endast positiv Y-position används

yNet2 = yNet2 * -1; // Om Y-värdet är negativt byts tecken till positivt }

if (xNet2 < 0) { // Kontroll så endast positiv X-position används

xNet2 = xNet2 * -1; // Om X-värdet är negativt byts tecken till positivt }

}

void setup() {

Serial.begin(115200); // Starta seriel kommunikation för loggning

int nNetworkCount = WiFi.scanNetworks(); // Avläsning av antal nätverk som kan upptäckas

for(int nNetwork = 0; nNetwork < // Loop som körs lika många ggr som antalet funna

nNetworkCount; nNetwork++){ //nätverk

String scSSID = WiFi.SSID(nNetwork); // SSID för det nummer på nätverk som bearbetas i // loopen

if (scSSID == "Kaj-Fi1"){ // Kontroll SSID motsvarar "Kaj-Fi1"

double dDst1 = // Beräkning av avståndet med räta linjens

pow(10, -(double)WiFi.RSSI(nNetwork)/27-1); // ekvation

for (int x=3; x > 0 ; x--){ // Loop för att flytta alla lagrade värden i matrisen ett avarageRSSI[0][x] = avarageRSSI[0][x-1]; // steg

}

avarageRSSI[0][0] = dDst1; // Det senaste värdet lagras i matrisen avRSSI1 = (avarageRSSI[0][0]+avarageRSSI[0][1]+ // Medelvärde av värden i matrisen beräknas avarageRSSI[0][2]+avarageRSSI[0][3])/4; //

}

else if (scSSID == "Kaj-Fi2"){ // Kontroll SSID motsvarar "Kaj-Fi2" double dDst2 = pow(10, - // Beräkning av avståndet med räta linjens (double)WiFi.RSSI(nNetwork)/28-1); // ekvation

for (int x=3; x > 0 ; x--){ // Loop för att flytta alla lagrade värden i matrisen ett avarageRSSI[1][x] = avarageRSSI[1][x-1]; // steg

}

avarageRSSI[1][0] = dDst2; // Det senaste värdet lagras i matrisen avRSSI2 = (avarageRSSI[1][0]+avarageRSSI[1][1]+ // Medelvärde av värden i matrisen avarageRSSI[1][2]+avarageRSSI[1][3])/4; //

}

fCalcNet1(); // Starta beräkning av koordinater för Nät 1

if (scSSID == "Kaj-Fi3"){ // Kontroll SSID motsvarar "Kaj-Fi3"

double dDst3 = pow(10, - // Beräkning av avståndet med räta linjens

(double)WiFi.RSSI(nNetwork)/28-1); // ekvation

for (int x=3; x > 0 ; x--){ // Loop för att flytta alla lagrade värden i matrisen ett avarageRSSI[2][x] = avarageRSSI[2][x-1]; // steg

}

avarageRSSI[2][0] = dDst3; // Det senaste värdet lagras i matrisen avRSSI3 = (avarageRSSI[2][0]+avarageRSSI[2][1]+ // Medelvärde av värden i matrisen avarageRSSI[2][2]+avarageRSSI[2][3])/4; //

}

else if (scSSID == "Kaj-Fi4"){ // Kontroll SSID motsvarar "Kaj-Fi3" double dDst4 = pow(10, -

(double)WiFi.RSSI(nNetwork)/27-1); // Beräkning av avståndet med räta linjens ekvation for (int x=3; x > 0 ; x--){ // Loop för att flytta alla lagrade värden i matrisen ett avarageRSSI[3][x] = avarageRSSI[3][x-1]; // steg

}

avarageRSSI[3][0] = dDst4; // Det senaste värdet lagras i matrisen avRSSI4 = (avarageRSSI[3][0]+avarageRSSI[3][1]+ // Medelvärde av värden i matrisen avarageRSSI[3][2]+avarageRSSI[3][3])/4; //

} }

fCalcNet2(); // Starta beräkning av koordinater för Nät 1

double xTot = ((sensBx1-xNet1)+xNet2)/2; // Beräkna medelvärdet av de två nätens X-koordinater for (int x=3; x > 0 ; x--){ // Loop för att flytta alla lagrade värden i matrisen ett avarageRSSI[4][x] = avarageRSSI[4][x-1]; // steg

avarageRSSI[4][0] = xTot; // Det senaste värdet lagras i matrisen avRSSI5 = (avarageRSSI[4][0]+avarageRSSI[4][1]+ // Medelvärde av värden i matrisen avarageRSSI[4][2]+avarageRSSI[4][3])/4; //

double yTot = ((sensAy1-yNet1)+yNet2)/2; // Beräkna medelvärdet av de två nätens Y-koordinater for (int x=3; x > 0 ; x--){ // Loop för att flytta alla lagrade värden i matrisen ett avarageRSSI[5][x] = avarageRSSI[5][x-1]; // steg

}

avarageRSSI[5][0] = yTot; // Det senaste värdet lagras i matrisen avRSSI6 = (avarageRSSI[5][0]+avarageRSSI[5][1]+ // Medelvärde av värden i matrisen avarageRSSI[5][2]+avarageRSSI[5][3])/4; // /* Endast för loggning */ Serial.print("KF1: "); Serial.print(avRSSI1); Serial.print(", KF2: "); Serial.print(avRSSI2); Serial.print(", X1:"); Serial.print(xNet1); Serial.print(", Y1:"); Serial.print(yNet1); Serial.print(" | ");

Serial.print(" KF3: "); Serial.print(avRSSI3); Serial.print(", KF4: "); Serial.print(avRSSI4); Serial.print(", X2: "); Serial.print(xNet2); Serial.print(", Y2: "); Serial.print(yNet2); Serial.print(" | ");

Serial.print(" X: "); Serial.print(avRSSI6); Serial.print(", Y: "); Serial.println(avRSSI5); }

Bilaga 2

Related documents