Rajapinnan suunnittelu ja toteutus IoT-laitteelle
Jäppilä, Mikael (2020)
Jäppilä, Mikael
2020
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020052012728
https://urn.fi/URN:NBN:fi:amk-2020052012728
Tiivistelmä
IoT-laitteiden määrän kasvaessa myös niille kehitettävien rajapintojen tarve kasvaa. IoT-laitteiden rajapinnoilla pyritään hakemaan IoT-laitteen keräämää dataa tai lähettämään dataa IoT-laitteelle. Onkin tärkeää osata suunnitella ja toteuttaa IoT-laitteelle oikeanlainen rajapinta.
Tässä työssä suunnitellaan ja toteutetaan toimiva rajapinta IoT-laitteelle. Toteutetun rajapinnan kautta pystytään hakemaan mikrokontrollerin keräämää dataa sen lämpötila- ja kosteussensorilta. Työn aikana saadaan selkeä kuva sopivimmista rajapintateknologioista rajapinnan kehitystä varten teknologiavertailujen perusteella.
Ennen rajapinnan toteuttamista rajapinnalle määriteltiin vaatimukset. Rajapinnan tulisi olla nopea, rajapinnalta palautuvan datan selkeässä ja helposti luettavassa muodossa, rajapinta tulee olla autentikoitu, jolloin ei-halutut henkilöt eivät pääse käsiksi rajapintaan ja helposti päivitettävissä uusilla päätepisteillä, kun mikrokontrolleriin halutaan lisätä uusia sensoreita keräämään dataa.
Vertailtujen teknologioiden ominaisuuksien ja vaatimusten perusteella toteutettiin toimiva rajapinta IoT-laitteelle. Toteutuksen teknologioiksi valikoitui vertailujen perusteella REST-arkkitehtuuri, JSON datamuoto ja FastAPI-rajapintakirjastoa. Toteutettu rajapinta testattiin ja todettiin rajapinnan toiminnallisuuksien ja ominaisuuksien vastaavuus määriteltyihin vaatimuksiin perustuen. Toteutettu rajapinta on nopea, data on selkeässä muodossa, rajapinta on autentikoitu OAuth2-protokollalla ja valittu rajapintakirjasto mahdollistaa rajapinnan päivittämisen helposti.
Toteutettua rajapintaa pystyy hyödyntämään verkko -ja mobiilisovelluksissa. Kehittävissä sovelluksissa pystyy näyttämään rajapinnalta kerättyä lämpötila- ja kosteusdataa reaaliaikaisesti. Käyttämällä aikaa eri teknologioiden vertailuun ja tutustumiseen saadaan toteutettua toimiva, vaatimuksia vastaava rajapinta nopeasti ja helposti. While Internet of Things devices amount keeps growing also the amount of API’s for IoT devices grows. APIs designed for IoT devices fetch data or push data to the IoT device. It is important to design and implement suitable API for the IoT device.
The objectives of this thesis were to plan and implement application programming interface for IoT device. With the implemented application programming interface users can retrieve temperature and humidity data from the IoT device. This thesis gives a clearer picture about the most suitable API technologies for the implementation based on the compared technologies.
The beginning of this study focuses on familiarizing different kinds of API architectures, API data formats and three Python programming language frameworks which are created for API implementation. These three frameworks are Django REST framework, CoAPthon and FastAPI. After familiarizing and comparing different options for the technologies used for the implementation of the API, the study set requirements for the API. The implemented API must be fast. Data should be in a clear format and easy to read. API must be authenticated so unwanted people could not have access to the API. API must be well documented, and API must be updatable if new sensors are added to the IoT device.
Based on the requirements of the API and the compared architectures, data formats and python frameworks, API was developed for the IoT device. Developed API was tested and confirmed that the set requirements for the API were met. The chosen technologies for the implementation are REST architecture, JSON data format and FastAPI framework. Implemented API was tested and meeting the API’s functionalities and requirements was established. The API is fast, easy to understand and use, it is authenticated with OAuth2 protocol and FastAPI framework enables updatability.
Implemented API can be used in web or mobile applications. Developed applications can display requested data from the API in real-time. Temperature and humidity data can be viewed in real-time. Using time to compare different technologies and familiarizing them, implementing suitable API for the IoT device is fast and easy.
Tässä työssä suunnitellaan ja toteutetaan toimiva rajapinta IoT-laitteelle. Toteutetun rajapinnan kautta pystytään hakemaan mikrokontrollerin keräämää dataa sen lämpötila- ja kosteussensorilta. Työn aikana saadaan selkeä kuva sopivimmista rajapintateknologioista rajapinnan kehitystä varten teknologiavertailujen perusteella.
Ennen rajapinnan toteuttamista rajapinnalle määriteltiin vaatimukset. Rajapinnan tulisi olla nopea, rajapinnalta palautuvan datan selkeässä ja helposti luettavassa muodossa, rajapinta tulee olla autentikoitu, jolloin ei-halutut henkilöt eivät pääse käsiksi rajapintaan ja helposti päivitettävissä uusilla päätepisteillä, kun mikrokontrolleriin halutaan lisätä uusia sensoreita keräämään dataa.
Vertailtujen teknologioiden ominaisuuksien ja vaatimusten perusteella toteutettiin toimiva rajapinta IoT-laitteelle. Toteutuksen teknologioiksi valikoitui vertailujen perusteella REST-arkkitehtuuri, JSON datamuoto ja FastAPI-rajapintakirjastoa. Toteutettu rajapinta testattiin ja todettiin rajapinnan toiminnallisuuksien ja ominaisuuksien vastaavuus määriteltyihin vaatimuksiin perustuen. Toteutettu rajapinta on nopea, data on selkeässä muodossa, rajapinta on autentikoitu OAuth2-protokollalla ja valittu rajapintakirjasto mahdollistaa rajapinnan päivittämisen helposti.
Toteutettua rajapintaa pystyy hyödyntämään verkko -ja mobiilisovelluksissa. Kehittävissä sovelluksissa pystyy näyttämään rajapinnalta kerättyä lämpötila- ja kosteusdataa reaaliaikaisesti. Käyttämällä aikaa eri teknologioiden vertailuun ja tutustumiseen saadaan toteutettua toimiva, vaatimuksia vastaava rajapinta nopeasti ja helposti.
The objectives of this thesis were to plan and implement application programming interface for IoT device. With the implemented application programming interface users can retrieve temperature and humidity data from the IoT device. This thesis gives a clearer picture about the most suitable API technologies for the implementation based on the compared technologies.
The beginning of this study focuses on familiarizing different kinds of API architectures, API data formats and three Python programming language frameworks which are created for API implementation. These three frameworks are Django REST framework, CoAPthon and FastAPI. After familiarizing and comparing different options for the technologies used for the implementation of the API, the study set requirements for the API. The implemented API must be fast. Data should be in a clear format and easy to read. API must be authenticated so unwanted people could not have access to the API. API must be well documented, and API must be updatable if new sensors are added to the IoT device.
Based on the requirements of the API and the compared architectures, data formats and python frameworks, API was developed for the IoT device. Developed API was tested and confirmed that the set requirements for the API were met. The chosen technologies for the implementation are REST architecture, JSON data format and FastAPI framework. Implemented API was tested and meeting the API’s functionalities and requirements was established. The API is fast, easy to understand and use, it is authenticated with OAuth2 protocol and FastAPI framework enables updatability.
Implemented API can be used in web or mobile applications. Developed applications can display requested data from the API in real-time. Temperature and humidity data can be viewed in real-time. Using time to compare different technologies and familiarizing them, implementing suitable API for the IoT device is fast and easy.