Ruuvi Gateway -reititin on suunniteltu toimimaan Ruuvin tuotteiden kanssa heti käyttöönotosta alkaen, jolloin käyttöönotto on nopeaa ja vaivatonta varsinkin silloin, kun käytössäsi on Ruuvi Cloud -pilvipalvelu.
Kerroimme myös tässä artikkelissa, että Ruuvi Gateway -reititin voi toimia myös monipuolisemman IoT-ympäristön kulmakivenä silloinkin, kun käytössäsi on muita kuin Ruuvin valmistamia antureita. Tässä tukiartikkelissa käsittelemme Ruuvi Gateway -reitittimen asettamista toimimaan kolmannen osapuolen Bluetooth LE -viestien välittämiseen ja lähettämiseen edelleen yksinkertaiselle Python-ympäristön päällä toimivalle HTTP/HTTPS -palvelimelle.
Reititin on mahdollista myös asettaa lähettämään kolmannen osapuolen anturitietoja MQTT-palvelimelle. Löydät lisätietoja MQTT-asetusten muokkaamisesta täältä. Huomaa, että kolmannen osapuolen anturitietoja ei ole mahdollista lukea Ruuvi Cloud -pilvipalvelusta.
Kuuntele kolmannen osapuolen Bluetooth LE -laitteiden viestintää Ruuvi Gateway -reitittimellä
Ruuvi Gateway -reitittimeen on sisäänrakennettuna ominaisuus, jonka avulla voit kuunnella kaikkia reitittimen läheisyydessä olevia Bluetooth LE -yhteensopivia viestejä, mikä helpottaa nykyisen IoT-ympäristösi laajentamista kolmannen osapuolen antureihin Ruuvin valmistamien antureiden käyttämisen lisäksi. Tämän lisäksi Ruuvi Gateway -reitittimessä on valmiina mahdollisuus välittää anturitietoja HTTP(S) tai MQTT(S) -palvelimille, joka avaa aivan uusia käyttömahdollisuuksia silloin, kun käytät Ruuvi Gateway -reititintä olemassa olevan IoT-ympäristösi osana.
Seuraavaksi näytämme, kuinka tämä tapahtuu Ruuvi Gateway -reitittimen ohjatun käyttöönoton avulla. Paikanna ensimmäiseksi Ruuvi Gateway -reitittimen virtaliittimen vieressä oleva painike ja paina sitä lyhyesti paperiliittimellä reitittimen sisäisen Wi-Fi-yhteyspisteen käynnistämiseksi. Kun yhteyspiste on aktivoitu, liity yhteyspisteeseen valitsemalla Ruuvi Gateway XXXX -niminen verkko Wi-Fi verkkolistaltasi. Ruuvi Gateway -reitittimen yhteyspisteeseen liittymisestä ja ohjatun käyttöönoton avaamisesta on sivuillamme myös yksityiskohtaisempi ohje.
Ohjatun käyttöönoton avauduttua paina Seuraava-painiketta, kunnes pääset Pilvipalveluasetukset -sivulle. Valitse tällä sivulla edistyneiden asetusten alta löytyvä Käytä Ruuvi Cloudia ja/tai vaihtoehtoista palvelinta sekä määritä muita lisäasetuksia -vaihtoehto. Voit ohittaa HTTP(S) ja MQTT(S) palvelinten konfiguroinnin tässä kohtaa ja siirtyä eteenpäin painamalla kaksi kertaa Seuraava, jolloin päädyt Bluetooth-skannaus -sivulle.
Etsi sivulta seuraavaksi Kuuntele kaikkia Bluetooth-majakkaviestejä (ei ainoastaan Ruuvi-antureita) valinta edistyneiden asetusten alta ja valitse tämä, jolloin Ruuvi Gateway -reitittimesi alkaa kuuntelemaan ympäristöstään kaikkia Bluetooth LE -viestejä pelkkien Ruuvi-antureiden kuuntelemisen lisäksi.
Valitse käytettävä protokolla ja kanavat
Valitse seuraavaksi Kuuntele 1 MBit/s -majakkaviestejä protokollaluettelosta. Kanavat 37, 38, ja 39 ovat oletuksena valittuina. Voit jättää molemmat näistä asetuksista oletusasetuksiinsa. Valitse Seuraava, jonka jälkeen asetukset on tallennettu reitittimelle.
Ota käyttöön Python-ympäristön HTTP(S) palvelin
Seuraavissa kohdissa otamme käyttöön Python-ympäristön ja pystytämme yksinkertaisen HTTP(S)-palvelimen lähiverkkoon Mac-tietokoneella.
Mikäli Python-ympäristöä ei ole vielä asennettu, lataa ja asenna se tietokoneellesi täältä:
https://www.python.org/downloads/
Ruuvi Gateway -reititin käyttää POST-komentoja tietojen lähettämiseen HTTP-palvelimelle. Lataa lisäksi alla oleva skripti Ruuvin GitHub -tietolähteestä, jonka avulla asentamasi Pythonin HTTP-palvelin ymmärtää POST-komentoja:
https://github.com/ruuvi/ruuvi.gwui.html/blob/master/scripts/http_server_auth.py
Luo tietokoneellesi Ruuvi-niminen kansio ja lataa yllä oleva tiedosto juuri luomaasi kansioon. Minun tapauksessani loin uuden kansion Lataukset-kansion sisään.
Seuraavaksi avaa Sovellukset -> Apuohjelmat -kansiosta Terminaali-ohjelma.
Luo ja ota käyttöön virtuaalinen ympäristö, päivitä pip ja asenna pycryptodome
- Siirry Ruuvi-kansioon Terminaalissa
cd /Users/[yourusername]/Downloads/Ruuvi/
- Luo venv
python3 -m venv .venv
Tämän jälkeen on hyvä tarkastaa, että .venv-kansio luotiin Ruuvi-kansion sisään. Voit tarkastaa tämän avaamalla Finderilla Ruuvi-kansion ja valitsemalla Command+Shift+piste. Tämän avulla näet kansion sisältämät piilotiedostot ja .venv-kansion tulee olla kansion sisällä.
- Ota venv käyttöön
source scripts/.venv/bin/activate
- Päivitä pip (valinnainen)
pip3 install --upgrade pip
- Asenna pycryptodome
pip3 install pycryptodome
Olemme valmiita Python-palvelimen käynnistämiseen seuraavaksi. Voit valita käytettäväksi joko HTTP- tai HTTPS-palvelimen. Valitse seuraavissa kohdissa joko Vaihtoehto 1 tai Vaihtoehto 2 oman tarpeesi mukaisesti.
Vaihtoehto 1: Käytä HTTP-palvelinta
- Siirry Ruuvi-kansioon Terminaalissa
cd /Users/[yourusername]/Downloads/Ruuvi/
- Käynnistä HTTP-palvelin
python3 http_server_auth.py --port 8001
Vaihtoehto 2: Luo SSL-sertifikaatit ja käytä HTTPS-palvelinta
Tarvitsemme muutamia tietoja sertifikaattien luomista varten, kuten hostnamen ja client namen.
Nämä voidaan löytää seuraavasti
Kirjoita Mac OS Terminaliin
hostname
Minun tapauksessani hostname on `markos-MacBook-Pro.local`
Client name on sama kuin paikallisverkossa näytetävä Ruuvi Gateway -reitittimen nimi Mac OS -ympäristössä:
Kirjoita Terminaaliin
dns-sd -B
Tämä on omassa verkossani RuuviGateway5FC4.local
Nimi löytyi kätevästi instance name -kohdasta.
Luomme seuraavaksi vaadittavat palvelimen ja asiakkaan käyttämät SSL-sertifikaatit. Tämän toteuttamiseksi käytämme OpenSSL-komentoa Terminaalissa. Huomaa, että sertifikaattitiedostot luodaan siihen kansioon, johon Terminaali osoittaa tällä hetkellä. Omalla kohdallani kansio on User/username/Downloads/Ruuvi/
- Siirry Ruuvi-kansioon Terminaalissa
cd /Users/[yourusername]/Downloads/Ruuvi/
Luo palvelinsertifikaatit (SSL)
Luomme ensimmäiseksi 2048-bittiset omalla allekirjoituksella kirjoitetut palvelinsertifikaatit. Toteuta seuraavat kohdat tässä järjestyksessä.
- Luo yksityinen avain
openssl genrsa -out server_key.pem 2048
- Luo sertifikaatin allekirjoituspyyntö (CSR)
openssl req -new -key server_key.pem -out server_csr.pem
- Luo asiakkaan omalla allekirjoituksella kirjoitettu sertifikaatti
openssl x509 -req -in server_csr.pem -signkey server_key.pem -out server_cert.pem -days 365
Jotta sertifikaatin luonti kohdassa 3 onnistuu, sinua vaaditaan vastaamaan muutamaan lisäkysymykseen. Vastaa alla mainittuihin, muut voit ohittaa painamalla Enter. Täytin omalle kohdalleni seuraaavaa:
Maatunnus (2 kirjainta): `FI`
Tunnettu nimi: `markos-MacBook-Pro.local`
Näiden kohtien toteuttamisen jälkeen palvelinsertifikaatit löytyvät Ruuvi-kansiosta.
Luo asiakasohjelman sertifikaatit (SSL)
Luo seuraavaksi asiakasohjelman vaatima sertifikaatti ja yksityinen avain (2048-bittinen RSA-avain). Toteuta seuraavat kohdat tässä järjestyksessä.
- Luo yksityinen avain
openssl genrsa -out client_key.pem 2048
- Luo sertifikaatin allekirjoituspyyntö (CSR)
openssl req -new -key client_key.pem -out client_csr.pem
- Luo asiakasohjelman sertifikaatti
openssl x509 -req -in client_csr.pem -signkey client_key.pem -out client_cert.pem -days 365
Jotta sertifikaatin luonti kohdassa 3 onnistuu, sinua vaaditaan vastaamaan muutamaan lisäkysymykseen. Vastaa alla mainittuihin, muut voit ohittaa painamalla Enter. Täytin omalle kohdalleni seuraaavaa:
Maatunnus (2 kirjainta): `FI`
Tunnettu nimi `RuuviGateway5FC4.local`
Näiden kohtien toteuttamisen jälkeen asiakasohjelman sertifikaatit löytyvät Ruuvi-kansiosta.
Käynnistä HTTPS-palvelin
- Siirry Ruuvi-kansioon Terminaalissa
cd /Users/[yourusername]/Downloads/Ruuvi/
- Käynnistä HTTPS-palvelin seuraavalla komennolla:
python3 http_server_auth.py --port 8001 --ssl_cert=./server_cert.pem --ssl_key=./server_key.pem --ca_cert=./client_cert.pem
Määritä Ruuvi Gateway -reititin välittämään viestit HTTP-palvelimelle
Ruuvi Gateway -reitittimen asetuksissa on mahdollista määrittää kolmannen osapuolen anturitietojen lähettäminen HTTP(S) ja/tai MQTT(S) -palvelimille. Tällä kertaa lähetämme tiedot HTTP(S)-palvelimelle. Jos haluat käyttää MQTT-palvelinta käytä avuksi tukiartikkeliamme, jonka löydät täältä.
Aloita asetusten muokkaaminen paikantamalla Ruuvi Gateway -reitittimen virtaliittimen vieressä oleva painike ja paina sitä lyhyesti paperiliittimellä sisäänrakennetun Wi-Fi-yhteyspisteen käynnistämiseksi. Kun yhteyspiste on aktivoitu, liity yhteyspisteeseen valitsemalla Ruuvi Gateway XXXX -niminen verkko Wi-Fi verkkolistaltasi.
Kun ohjattu käyttöönotto avautuu, valitse Seuraava, kunnes saavut Pilviyhteys-sivulle. Valitse tällä sivulla Käytä Ruuvi Cloud -pilvipalvelua ja/tai mukautettua palvelinta ja muokkaa muita edistyneitä asetuksia, paina Seuraava, ja valitse Mukautettu palvelin -sivulla HTTP(S) aktiiviseksi. Valinnan aktivoiminen avaa HTTP-asetusten tekemiseen tarvittavat lisäkohdat.
Tarvitset seuraavaksi paikantaa lähiverkossa palvelimena käyttämäsi tietokoneen IP-osoittee tai paikallisen hostnamen.
Joko
Tarkasta IP-osoite käyttöjärjestelmässä siirtymällä kohtaan Asetukset -> Verkko.
Omalla kohdallani Wi-Fi yhteyden alla näkyy IP-osoite 192.168.1.8.
Tai
Vaihtoehtoisesti Mac-tietokoneita käytettäessä voit myös käyttää paikallista hostnamea. Etsi hostname seuraavasti
Kirjoita Terminaaliin
hostname
Minun tapauksessani hostname on `markos-MacBook-Pro.local`
Lisää seuraavaksi palvelimen kohdeosoite Ruuvi Gateway -reitittimen ohjatussa käyttöönotossa aiemmin valitsemasi palvelinvaihtoehdon mukaan (HTTP tai HTTPS).
HTTP-palvelimen tiedot Ruuvi Gateway -reitittimen ohjatussa käyttöönotossa (vaihtoehto 1)
HTTP-palvelimen asetusten lisääminen on suoraviivaista, sillä tarvittavia tietoja ei ole paljoa.
- Anna HTTP-palvelimena toimivan tietokoneesi kohdeosoite. Omalla kohdallani käytän paikallista hostnamea. Käytettävä portti määritettiin aiemmin HTTP-palvelimen käyttöönoton yhteydessä.
- Kolmannen osapuolen anturin käyttämä dataformaatti ei ole tiedossa, eikä Ruuvi Gateway -reititin pysty dekoodaamaan tietoja, joten tietojen lähettäminen raakamuodossa on ainoa vaihtoehto.
- Aseta lähetysväliksi 10 sekuntia, jolloin saat testausta varten jatkuvia päivityksiä.
- Varmista, että tekemäsi asetukset toimivat painamalla Tarkasta-painiketta. Mikäli virheitä ei löydetty, paina Seuraava-painiketta, kunnes olet ohjatun käyttöönoton viimeisellä sivulla ja muutokset on tallennettu.
HTTPS-palvelimen tiedot Ruuvi Gateway -reitittimen ohjatussa käyttöönotossa (vaihtoehto 2)
HTTPS-palvelimen asetuksissa tarvitsemme lisäksi määrittää käytettävät SSL-sertifikaatit, mutta käyttöönotto on muilta osin suoraviivaista.
1. Syötä HTTPS-palvelimena toimivan tietokoneesi URL-osoite.
Omalla kohdallani käytän paikallista hostnamea. Käytettävä portti määritettiin aiemmin HTTP-palvelimen käyttöönoton yhteydessä.
2. Kolmannen osapuolen anturin käyttämä dataformaatti ei ole tiedossa, eikä Ruuvi Gateway -reititin pysty dekoodaamaan tietoja, joten tietojen lähettäminen raakamuodossa on ainoa vaihtoehto.
3. Aseta lähetysväliksi 10 sekuntia, jolloin saat testausta varten jatkuvia päivityksiä.
4. SSL-sertifikaattien lataaminen löytyy lähetysväliasetuksen alta. Valitse käytettäväksi sekä asiakkaan ja palvelimen SSL-sertifikaatit. Omalla kohdallani latasin asiakasohjelman sertifikaatin ja avaimen, sekä palvelimen sertifikaatin.
5. Varmista, että tekemäsi asetukset toimivat painamalla Tarkasta-painiketta. Mikäli virheitä ei löydetty, paina Seuraava-painiketta, kunnes olet ohjatun käyttöönoton viimeisellä sivulla ja muutokset on tallennettu.
Tehtyjen määritysten toimivuuden tarkastaminen
Kun sekä palvelimen puolen määritykset että Ruuvi Gateway -reitittimen asetuksiin tehdyt muutokset on viety loppuun, voit vihdoin tarkastaa, että kolmannen osapuolen anturitiedot lähetetään Ruuvi Gateway -reitittimeltä määrittämääsi HTTP(S)-palvelinosoitteeseen ja myös luetaan palvelimella.
Kirjoita muistiin Ruuvi Gateway -reitittimen ohjatun käyttöönoton päätössivulla Ruuvi Gateway -reitittimelle annettu IP-osoite. Minun tapauksessani IP-osoite on 192.168.1.8.
Avaa seuraavaksi selainikkuna.
http://[yourgatewayip]/history
Tällä sivulla näytetään Ruuvi Gateway -reitittimen tällä hetkellä eteenpäin välittämät anturitiedot. Jos määritykset onnistuivat, tässä listauksessa on mukana myös reitittimen kuulemat kolmannen osapuolen anturin tiedot.
Kolmannen osapuolen anturin viesti lähetetään eteenpäin Ruuvi Gateway -reitittimeltä.
Tarkasta vielä, että samat tiedot vastaanotetaan onnistuneesti myös HTTP(S)-palvelimellesi. Näet tämän yksinkertaisesti Mac OS Terminaali-sovelluksessa pyörivän Python-palvelimen lokitiedoista.
Yhteenveto
Tässä oppaassa tutustuimme kolmannen osapuolten antureiden tietojen keräämiseen Ruuvi Gateway -reitittimellä Ruuvin valmistamien antureiden lisäksi.
Käyttäjät voivat tehokkaasti välittää sekä Ruuvin valmistamien että kolmannen osapuolten valmistamien antureiden tietoja ottamalla käyttöön Ruuvi Gateway -reitittimeen sisäänrakennetun kuunteluominaisuuden.